Printable Version of Topic
Click here to view this topic in its original format |
Forums > Глюкодром > Есть вопрос к программерам по lircd |
Posted by: VxWorks on 20-03-2008, 03:00 |
Есть такая задачка - надо организовать управление девайсом через веб-нитерфейс. На девайсе есть телнет и lircd. Это все. lircd умеет слушать порты. Вопросы: 1. Возможно ли управление lircd по tcp или udp портам? То есть, как понять, что ему надо подсунуть, чтобы он сделал какое-то действие? 2. Если 1 не работает, то как написать программу, которая будет генерировать (симулировать) события для lircd? |
Posted by: FiL on 20-03-2008, 04:28 |
смотря что там управлять надо... Если то, что надо ты можешь сделать через телнет, то проще написать веб-интерфейс, который будет телнетиться и выполнять некие действия. И не заморачиваться с lircd. А если через телнет не катит, то нафик ты его упомянул? ![]() |
Posted by: VxWorks on 20-03-2008, 11:24 |
Через телнет управлять не получается. А упомянул... сдуру наверное. |
Posted by: FiL on 20-03-2008, 20:12 |
![]() Ну, тогда не знаю. Я с lirc-ем знаком исключительно по-наслышке. Даже ни разу не видел. |
Posted by: Set on 20-03-2008, 21:55 |
Мне бы ваши проблемы... вроде проще не бывает... ![]() "The main task of lircd is to decode the infrared signals and provide an uniform interface for client applications. Clients can connect to lircd through a Unix domain socket which is located in /dev/lircd. Using this socket they will get the infrared codes received by lircd and they can send commands to lircd." |
Posted by: VxWorks on 20-03-2008, 22:16 |
И как подключиться к этому сокету? Объясни для тупых, плиз. Инфракрасного порта в девайсе, кстати, нет. |
Posted by: Set on 20-03-2008, 22:43 |
Тогда у меня полные непонятки... ![]() |
Posted by: VxWorks on 20-03-2008, 23:00 |
ОК, попытаюсь объяснить попроще, насколько у меня получится ![]() ДАНО: Есть сетевой девайс. На котором бегает Familiar Linux с жутко кастрированным Busybox. По какому принципу его кастрировали, я не знаю, бо, скажем, netcat есть, а trace нету. Из коммуникаций есть телнет и httpd. Можно прикрутить ftpd и smb если очень надо. Сорсов к софту, бегающему на девайсе (кроме телнета и веб-сервака) нету и ломать его нельзя (ну вот нельзя и все, засудят). Софт управляется нажатиями кнопок на морде девайса, а также двумя енкодерами (крутящаяся ручка типа реостата, как регуляторы громкости на стереосистемах). Управлять девайсом через телнет нельзя. В смысле, можно поиграться с линуксом на нем, но функциональность можно только убить, переключать функции нельзя. Ну и шатдаун ему сделать можно, или рестарт. Встроенный lircd имеет может симулировать нажатие кнопок и вращение ручек (при работе с пультом, которого в данной конфигурации девайса нет физически, но весь софт для него есть). ЗАДАЧА: Написать софт, который будет управлять данным девайсом через веб-интерфейс. Или виндовую программу, которая будет контролировать эту фиговину. Если требуется, можно закинуть на девайс собственноручно написанный софт, для этого все есть. |
Posted by: Set on 20-03-2008, 23:55 |
Что-нибудь из этого там стоит? irpty irxevent irrecord irw |
Posted by: Set on 21-03-2008, 00:12 |
http://www.lirc.org/html/technical.html (http://www.lirc.org/html/technical.html |
Posted by: VxWorks on 21-03-2008, 00:32 | ||
|
Posted by: Set on 21-03-2008, 01:10 |
Есть httpd - можно сваять вэбинтерфейс, где через cgi запускается прога и пишет нужную команду в сокет (/dev/lircd). Что и как писать провисано в доках и можно посмотреть в сорсах lircd. Вроде всё просто... ![]() |
Posted by: VxWorks on 21-03-2008, 01:16 |
Что значит "пишет в сокет"? Открывает /dev/lircd как файл и пишет туда какие-то данные? Примерчик не подкинешь? ![]() Опять же, сорсов на данный конкретный lircd нет. Или они все одинаковые? |
Posted by: Set on 21-03-2008, 01:37 |
Я думаю они все на одно лицо. ![]() Можно попробовать через echo некая-таинственная-строка >> /dev/lircd (или куда оно там пишет... в конфигах lircd это прописано) |
Posted by: VxWorks on 21-03-2008, 02:37 |
Вот так? # lircd --device=/dev/lircd --output=/tmp/lircout --logfile=/tmp/lirclog # echo 0x02FD >> /dev/lircd -sh: cannot create /dev/lircd: No such device В логах ничего нет. Просто /dev/lirc (стандарт для входного потока) тоже нет, но есть /dev/lircd, который вроде как стандарт для выходного потока. У меня есть такое нехорошее ощущение, что данный конкретный lircd не предназначен для работы со входными сокетами... Что скажешь? |
Posted by: yury_usa on 21-03-2008, 03:38 |
VxWorks а что в итоге из всего этого должно получится? У меня такое чувство, что все можно гораздо проще сделать ![]() |
Posted by: Brait on 21-03-2008, 03:56 | ||
LIRC Documentation (http://www.lirc.org/html/install.html#installing says:
BTW, соответствующий модуль скомпилирован, загружен? lsmod, modprobe? |
Posted by: Set on 21-03-2008, 04:05 | ||||
В /tmp/lircout надо ![]() |
Posted by: FiL on 21-03-2008, 04:56 |
не, в /tmp/lircout - там аутпут. А нужен инпут. Инпут указывается через --device. Но он уже вроде как должен быть на момент запуска. Вообще, что там есть в девайсах на предмет lirc'a? а irsend есть? Ведь специальный тул вроде как... |
Posted by: VxWorks on 21-03-2008, 12:19 | ||||||
Brait
FiL
![]() |
Posted by: Set on 21-03-2008, 18:10 |
Там есть irexec и файл .lircrc (он вроде в /etc/lircrc или /home/... должен быть) ? Ибо если через него запускаются проги по нажатию кнопок, тогда сокеты нафиг не сдались. Если нет - значит есть демон, читающий из оутпута лирцд, соответственно и писать надо в оутпут. |
Posted by: Brait on 24-03-2008, 10:26 |
VxWorks IMHO, лучше найти инфо по программе, в которую LIRC передает команды, и вот с нею-то и общаться... |