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