PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   Программирование для PSP (https://www.pspx.ru/forum/forumdisplay.php?f=101)
-   -   Обучаем IrDA (https://www.pspx.ru/forum/showthread.php?t=52182)

XProger 08.09.2007 05:15

Обучаем IrDA
 
Как известно, для управления техникой при помощи ИК порта нужны коды сигналов передаваемых этой технике. Но зачастую (а это 100% моей домашней техники) эти коды найти практически нереально.
Имеется идея интуитивного обучения PSP этим кодам:
- Переводим ИК порт в режим прослушивания
- При помощи ПДУ нужного нам устройства передаём сигнал
- Указываем какой команде будет соответствовать этот сигнал
- Переводим ИК порт в режим посыла и "палим" в технику полученным сигналом :)

Почему это не реально, и почему до сих пор ни одно из виданных мною homebrew приложений это не реализует?

pspowner 08.09.2007 16:02

Цитата:

Сообщение от XProger (Сообщение 510999)
Как известно, для управления техникой при помощи ИК порта нужны коды сигналов передаваемых этой технике. Но зачастую (а это 100% моей домашней техники) эти коды найти практически нереально.
Имеется идея интуитивного обучения PSP этим кодам:
- Переводим ИК порт в режим прослушивания
- При помощи ПДУ нужного нам устройства передаём сигнал
- Указываем какой команде будет соответствовать этот сигнал
- Переводим ИК порт в режим посыла и "палим" в технику полученным сигналом :)

Почему это не реально, и почему до сих пор ни одно из виданных мною homebrew приложений это не реализует?

Пробовал я это, делал, не слушается техника. Видимо так какие-то прерывания не учитываются при такой отсылке, вобщем хз, но не пашет такая схема 100%

l3VGV 10.09.2007 10:39

Для наладонников видел такую штуку. для псп вроде тоже была хомка на qj. теоретически конечно работать должно на 100%, но даже на наладоннике не все команды техника понимала.

http://dl.qj.net/Wi-Fi---IR-Apps-Hom...PSP-/catid/189

anton85 18.09.2007 15:19

Я как раз благодаря этой идее попал в этот раздел.

Просто тупое копирование трафика с пульта ДУ и последующее его посылание на целевое устройство не дали результата.
(хотя я потом проверил - трафик передаваемый моей псп был полностью аналогичен тому что был принят).

Тогда я подумал, что при поступлении сигнала (первого байта) надо запустить цикл который будет не просто ловить трафик, но и еще скорость поступления трафика, обозначая в логе специальным символом паузу в сигнале)(скажем потом в случае не поступания сигнала в течении 100-300 мсек означает что сигнал кончился).

В ообщем написать 2 функции:
1. ловит трафик, и когда начинает поступать сигнал - записывать сигнал в лог + отсчитывать паузу в сигнала.
(в идеале вообще было бы хорошо привязать все это к системному времени в псп, а не просто циклом отсчитывать паузу, правда я не знаю, как можно было бы выполнить привязку к системному времени псп)
2. открывает файл с сохраненным сигналом и посылает его через irda.

pspowner 18.09.2007 15:32

Там, возможно я неправ, идёт битовый паттерн. Т.е. например 3 бита отослал, пауза, потом ещё 7 - типа код устройства.. и.т.п.

Потому если ты замеришь время получения 1 байта(или всех) - ты не будешь точно знать где пауза.

ИМХО.

XProger 18.09.2007 16:21

Супер! О паузах я даже и не задумывался...
Попробую отловить их через sceRtcGetCurrentTick

anton85 18.09.2007 16:25

XProger, отпишись о результатах, а если не жалко, то выложи код, которым будешь пытаться реализовать.

anton85 23.10.2007 14:22

В ообщем я пытался реализовать запись пауз в файл и потом создание пауз при отправке их через ir - но не осилил из-за моего уровня программирования, и неправильного подхода.

В ообщем если кто-то еще захочет в этом покопаться - то сперва надо получить быстрый прием и быструю передачу без потерь данных текста через IR (это можно сделать только на двух псп - чтобы действительно хорошо проконтролировать этот процесс).

После того как прием передача проверены на стабильность - тем или иным способом реализовать паузы, причем проверить чтобы они оказались одинаковыми при приеме и передаче.

После этого думаю все заработает.

tv-control.zip (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);

А то есть подозрение, все твои паузы контроллер ИК-порта переждал в таймауте. А так можно надеяца поймать паузу за хвост...

Хотя конечно муть всё это...

T.I.P. 23.10.2007 16:10

Помойму IR-DA на PSP версии 2.0,тобишь не скоростная и тормознутая!

anton85 23.10.2007 17:57

Ну у IRshell'ского плагина хватает скорости на передачу сигнала взятого из pronto-кода, исходя из этого можно думать что скорости чтения тоже должно хватить чтобы получить копию сигнала с пульта.

Я тут смотрел в нете - даже для мобильных есть Java приложения (коммерческие) которые обеспечивают управление через ИК и с функцией обучения кодам.


Текущее время: 03:01. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.