|
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 передает команды, и вот с нею-то и общаться... |