Просмотр полной версии : Обучаем IrDA
Как известно, для управления техникой при помощи ИК порта нужны коды сигналов передаваемых этой технике. Но зачастую (а это 100% моей домашней техники) эти коды найти практически нереально.
Имеется идея интуитивного обучения PSP этим кодам:
- Переводим ИК порт в режим прослушивания
- При помощи ПДУ нужного нам устройства передаём сигнал
- Указываем какой команде будет соответствовать этот сигнал
- Переводим ИК порт в режим посыла и "палим" в технику полученным сигналом :)
Почему это не реально, и почему до сих пор ни одно из виданных мною homebrew приложений это не реализует?
pspowner
08.09.2007, 16:02
Как известно, для управления техникой при помощи ИК порта нужны коды сигналов передаваемых этой технике. Но зачастую (а это 100% моей домашней техники) эти коды найти практически нереально.
Имеется идея интуитивного обучения PSP этим кодам:
- Переводим ИК порт в режим прослушивания
- При помощи ПДУ нужного нам устройства передаём сигнал
- Указываем какой команде будет соответствовать этот сигнал
- Переводим ИК порт в режим посыла и "палим" в технику полученным сигналом :)
Почему это не реально, и почему до сих пор ни одно из виданных мною homebrew приложений это не реализует?
Пробовал я это, делал, не слушается техника. Видимо так какие-то прерывания не учитываются при такой отсылке, вобщем хз, но не пашет такая схема 100%
Для наладонников видел такую штуку. для псп вроде тоже была хомка на qj. теоретически конечно работать должно на 100%, но даже на наладоннике не все команды техника понимала.
http://dl.qj.net/Wi-Fi---IR-Apps-Homebrew-Applications-PSP-/catid/189
Я как раз благодаря этой идее попал в этот раздел.
Просто тупое копирование трафика с пульта ДУ и последующее его посылание на целевое устройство не дали результата.
(хотя я потом проверил - трафик передаваемый моей псп был полностью аналогичен тому что был принят).
Тогда я подумал, что при поступлении сигнала (первого байта) надо запустить цикл который будет не просто ловить трафик, но и еще скорость поступления трафика, обозначая в логе специальным символом паузу в сигнале)(скажем потом в случае не поступания сигнала в течении 100-300 мсек означает что сигнал кончился).
В ообщем написать 2 функции:
1. ловит трафик, и когда начинает поступать сигнал - записывать сигнал в лог + отсчитывать паузу в сигнала.
(в идеале вообще было бы хорошо привязать все это к системному времени в псп, а не просто циклом отсчитывать паузу, правда я не знаю, как можно было бы выполнить привязку к системному времени псп)
2. открывает файл с сохраненным сигналом и посылает его через irda.
pspowner
18.09.2007, 15:32
Там, возможно я неправ, идёт битовый паттерн. Т.е. например 3 бита отослал, пауза, потом ещё 7 - типа код устройства.. и.т.п.
Потому если ты замеришь время получения 1 байта(или всех) - ты не будешь точно знать где пауза.
ИМХО.
Супер! О паузах я даже и не задумывался...
Попробую отловить их через sceRtcGetCurrentTick
XProger, отпишись о результатах, а если не жалко, то выложи код, которым будешь пытаться реализовать.
В ообщем я пытался реализовать запись пауз в файл и потом создание пауз при отправке их через ir - но не осилил из-за моего уровня программирования, и неправильного подхода.
В ообщем если кто-то еще захочет в этом покопаться - то сперва надо получить быстрый прием и быструю передачу без потерь данных текста через IR (это можно сделать только на двух псп - чтобы действительно хорошо проконтролировать этот процесс).
После того как прием передача проверены на стабильность - тем или иным способом реализовать паузы, причем проверить чтобы они оказались одинаковыми при приеме и передаче.
После этого думаю все заработает.
tv-control.zip (http://ifolder.ru/3846263) (pass: "www.pspx.ru", 20 кб, src + eboot.pbp)
pspowner
23.10.2007, 15:57
Ваще, имхо, открывать инфракрасный порт нада с параметром PSP_O_NOWAIT
т.е. так -
irdafd = sceIoOpen("irda0:", PSP_O_RDWR | PSP_O_NOWAIT, 0);
А то есть подозрение, все твои паузы контроллер ИК-порта переждал в таймауте. А так можно надеяца поймать паузу за хвост...
Хотя конечно муть всё это...
Помойму IR-DA на PSP версии 2.0,тобишь не скоростная и тормознутая!
Ну у IRshell'ского плагина хватает скорости на передачу сигнала взятого из pronto-кода, исходя из этого можно думать что скорости чтения тоже должно хватить чтобы получить копию сигнала с пульта.
Я тут смотрел в нете - даже для мобильных есть Java приложения (коммерческие) которые обеспечивают управление через ИК и с функцией обучения кодам.
vBulletin® v3.8.7, Copyright ©2000-2025, vBulletin Solutions, Inc. Перевод: zCarot