Автор Тема: Осваиваем WInlirc посылку  (Прочитано 18537 раз)

Оффлайн QuickWitted

  • Moderator
  • VIP
  • *****
  • Сообщений: 885
  • Репутация: +1/-0
    • http://www.mindrunway.ru/
    • Личное сообщение (Оффлайн)
Осваиваем WInlirc посылку
« : Мая 15, 2008, 09:28:09 »
Может даброуважаемый алл видел в енете внятное описание упаковки данных от сервера LIRC в стандартный UDP пакет?
киньте плиз...

------------------------------------------------
Основное вынесено в верх

Если кому надо, то вот
Исходники сервера и клиента WInlirc на Delphi

как потом выяснилось к UDP он не имеет отношения, а сам UDP отпочковался в свой проект
в разделе Блок 9 для 'Lan Bridge' освоен обмен пакетами по протоколу UDP.

http://www.mindrunway.ru/GraniCubLanB.html
« Последнее редактирование: Мая 13, 2011, 08:36:14 от QuickWitted »
Модерирую ветку форума о “самодельных” системах управления компьютером с пульта.
Список форумов > Технический форум > Интернет-проекты участников форума > Mind Run Way

Оффлайн alexis031182

  • Full
  • ****
  • Сообщений: 1012
  • Репутация: +0/-0
    • http://www.slovensk.ru/fspo
    • E-mail
    • Личное сообщение (Оффлайн)
Осваиваем WInlirc посылку
« Ответ #1 : Мая 15, 2008, 13:52:16 »
Может это подойдёт: "http://home.arcor.de/borkenhagen/IgorplugUDP/index.html"
« Последнее редактирование: Мая 15, 2008, 13:53:10 от alexis031182 »

Оффлайн QuickWitted

  • Moderator
  • VIP
  • *****
  • Сообщений: 885
  • Репутация: +1/-0
    • http://www.mindrunway.ru/
    • Личное сообщение (Оффлайн)
Осваиваем WInlirc посылку
« Ответ #2 : Мая 15, 2008, 15:07:46 »
Цитата: alexis031182
Может это подойдёт: "http://home.arcor.de/borkenhagen/IgorplugUDP/index.html"

О этой страничке я уже знал
http://home.arcor.de/borkenhagen/IgorplugUDP/IgorplugUDP.py
Кстати это единственный ресурс с фото IgorplugUDP...
(даже у автора фотографий не было)

Но мне интересено описание посылки Lirc с комментариями, а не ковырять
чужой скрипт. (кстати а кто нить его проверял в работе?)

Модерирую ветку форума о “самодельных” системах управления компьютером с пульта.
Список форумов > Технический форум > Интернет-проекты участников форума > Mind Run Way

Оффлайн QuickWitted

  • Moderator
  • VIP
  • *****
  • Сообщений: 885
  • Репутация: +1/-0
    • http://www.mindrunway.ru/
    • Личное сообщение (Оффлайн)
Осваиваем WInlirc посылку
« Ответ #3 : Мая 16, 2008, 11:48:57 »
По тем данным, что найдены в енете
пакет Lirc содержит только имя кнопки...
а пакет игоря отправляет данные...

я не спец в линуксах, но по моему это демонстрационный
пример только поясняющий принцип...
(т.е. не рабочий... где табличный перевод пульса в имя)

Кстати вопрос к знатокам сетей
UDP порт должен быть виден снаружи по сети?

Запускаю плагин Игоря или свой аналог на 3 дельфи,
но внешние сканеры наличие нового порта не фиксируют...
Модерирую ветку форума о “самодельных” системах управления компьютером с пульта.
Список форумов > Технический форум > Интернет-проекты участников форума > Mind Run Way

Оффлайн alexis031182

  • Full
  • ****
  • Сообщений: 1012
  • Репутация: +0/-0
    • http://www.slovensk.ru/fspo
    • E-mail
    • Личное сообщение (Оффлайн)
Осваиваем WInlirc посылку
« Ответ #4 : Мая 16, 2008, 20:16:30 »
Цитата: QuickWitted
По тем данным, что найдены в енете
пакет Lirc содержит только имя кнопки...
Что это значит "имя кнопки"? Краткое описание протокола, по которому работает демон lircrcd вот:
lircrcd syntactically uses the same protocol as lircd described in the last section. It supports the following commands:

[b]IDENT ident[/b] - each program connecting to lircrcd identifies itself using this program. ident is the string that is used in the prog token inside the .lircrc file.

[b]CODE code[/b] - when the client receives the code string from lircd it will send it to lircrcd and will receive back the applicable config string from the .lircrc config file. It should resend the CODE command until nothing is returned back which means that nothing (more) should happen in response to code. This command is used each time the lirc_code2char() function is called by a client.

[b]GETMODE[/b] - lircrcd will return the current mode string.

Цитата: QuickWitted
а пакет игоря отправляет данные...
Судя по всему, это так.

Цитата: QuickWitted
я не спец в линуксах, но по моему это демонстрационный
пример только поясняющий принцип...
(т.е. не рабочий... где табличный перевод пульса в имя)
Данный скрипт преобразует пакеты, полученные с устройства IgorplugUDP, в формат, понятный демону lircd, а затем пересылает их на localhost (то есть на тот же самый компьютер, который этот самый скрипт и исполняет) на порт 8765.

Цитата: QuickWitted
Кстати вопрос к знатокам сетей
UDP порт должен быть виден снаружи по сети?
Если он защищён брадмауэром, программным и/или аппаратным, то нет.

Цитата: QuickWitted
Запускаю плагин Игоря или свой аналог на 3 дельфи,
но внешние сканеры наличие нового порта не фиксируют...
Он и не появится. Прослушку сетевого порта должен организовывать демон (сервер, если угодно) lircd. Программа IgorplugUDP - лишь сетевой клиент.
« Последнее редактирование: Мая 16, 2008, 20:16:58 от alexis031182 »

Оффлайн QuickWitted

  • Moderator
  • VIP
  • *****
  • Сообщений: 885
  • Репутация: +1/-0
    • http://www.mindrunway.ru/
    • Личное сообщение (Оффлайн)
Осваиваем WInlirc посылку
« Ответ #5 : Мая 19, 2008, 11:59:44 »
Цитата: alexis031182
Что это значит "имя кнопки"? Краткое описание протокола, по которому работает демон lircrcd вот:

Тогда переспрошу: Разве в lircrcd пакете упакованным в UDP передаётся длительность пульсов посылки?
Как я понял из енета - там имя кнопки (пример Key_Play) передаётся в программы клиенты...
и при совпадении имени с заданным - происходит действие в клиентской программе...
(например при приходе Key_Play плагин винампа запускает воспроизведение )
Или я ошибаюсь? Но тогда как происходит управление программамами с клиентом Lirc?

Цитата: alexis031182
Данный скрипт преобразует пакеты, полученные с устройства IgorplugUDP, в формат, понятный демону lircd, а затем пересылает их на localhost (то есть на тот же самый компьютер, который этот самый скрипт и исполняет) на порт 8765.

Смущает отсутствие алгоритма ХЭШирования и таблицы перевода ХЭШ1 => Key_Play.
(это если в lirc UDP передаётся именно имя кнопки...)


Цитата: alexis031182
Он и не появится. Прослушку сетевого порта должен организовывать демон (сервер, если угодно) lircd.
Программа IgorplugUDP - лишь сетевой клиент.

Сетевой клиент открывает порт для приёма данных... А сервер в этот порт данные и отправляет...
(это точно, после дрессировки антивиря - моя прога заработала, появился порт и данные забегали...)

1) моя прога создаёт порт и принимает с него данные – на этом этапе OK!
2) Дллка Игоря - его тоже создаёт, но данные дальше дллки Игоря не идут... наружу не выходят...
3) Схема Игоря - не жизнеспособна... Ток на ногах МК выше номинального, а данные не передаются...
    (правильнее сказать принимаются с битой контрольной суммой и битым идентификатором пакета,
     поэтому их сетевая не опознают и следственно они не приходят в программу...)  
     переделка схемы решила эту проблему... данные приходят, CRC - правильный...
« Последнее редактирование: Мая 19, 2008, 12:01:19 от QuickWitted »
Модерирую ветку форума о “самодельных” системах управления компьютером с пульта.
Список форумов > Технический форум > Интернет-проекты участников форума > Mind Run Way

Оффлайн alexis031182

  • Full
  • ****
  • Сообщений: 1012
  • Репутация: +0/-0
    • http://www.slovensk.ru/fspo
    • E-mail
    • Личное сообщение (Оффлайн)
Осваиваем WInlirc посылку
« Ответ #6 : Мая 19, 2008, 14:37:01 »
Цитата: QuickWitted
Тогда переспрошу: Разве в lircrcd пакете упакованным в UDP передаётся длительность пульсов посылки?
Как я понял из енета - там имя кнопки (пример Key_Play) передаётся в программы клиенты...
и при совпадении имени с заданным - происходит действие в клиентской программе...
(например при приходе Key_Play плагин винампа запускает воспроизведение )
Или я ошибаюсь? Но тогда как происходит управление программамами с клиентом Lirc?
Думаю, что вот здесь имеется ответ на ваш вопрос:

Whenever lircd receives a IR signal it will broadcast the following string to each client:

<code> <repeat count> <button name> <remote control name>

code is a 64-bit encoding (in hexadecimal representation) of the IR signal. It's usage in applications is deprecated and should be ignored. [b]The repeat count shows how long the user has been holding down a button.[/b] The counter will start at 0 and increment each time a new IR signal has been received. The button name and remote control name are defined in the lircd config file. Their purpose should be quite self-explanatory. They must not contain any whitespace.

Цитата: QuickWitted
Смущает отсутствие алгоритма ХЭШирования и таблицы перевода ХЭШ1 => Key_Play.
(это если в lirc UDP передаётся именно имя кнопки...)
Насколько я успел разобраться, этого действительно нет.

Цитата: QuickWitted
Сетевой клиент открывает порт для приёма данных... А сервер в этот порт данные и отправляет...
(это точно, после дрессировки антивиря - моя прога заработала, появился порт и данные забегали...)
Здесь как-то всё очень странно. В таком случае lircd превращается в сетевого клиента, что вообще непонятно. По идее, lircd должен открыть UDP-порт, ваше приложение-клиент к нему подключается и начинает принимать данные. Конечно, если вы всё это делаете на одном компе, тогда ваши слова ясны.

Цитата: QuickWitted
1) моя прога создаёт порт и принимает с него данные – на этом этапе OK!
2) Дллка Игоря - его тоже создаёт, но данные дальше дллки Игоря не идут... наружу не выходят...
3) Схема Игоря - не жизнеспособна... Ток на ногах МК выше номинального, а данные не передаются...
    (правильнее сказать принимаются с битой контрольной суммой и битым идентификатором пакета,
     поэтому их сетевая не опознают и следственно они не приходят в программу...)  
     переделка схемы решила эту проблему... данные приходят, CRC - правильный...
То есть всё заработало?

Оффлайн QuickWitted

  • Moderator
  • VIP
  • *****
  • Сообщений: 885
  • Репутация: +1/-0
    • http://www.mindrunway.ru/
    • Личное сообщение (Оффлайн)
Осваиваем WInlirc посылку
« Ответ #7 : Мая 20, 2008, 09:57:26 »
Цитата: alexis031182
Здесь как-то всё очень странно. В таком случае lircd превращается в сетевого клиента, что вообще непонятно. По идее, lircd должен открыть UDP-порт, ваше приложение-клиент к нему подключается и начинает принимать данные. Конечно, если вы всё это делаете на одном компе, тогда ваши слова ясны.

Устройство не имеет приёмника - только передатчик...
отправляет пакет на заданный порт заданного IP без каких либо проверок...
на компе этот порт должен быть открыт...
(устройство в силу односторонней направленности свой порт слушать не может, но эмулирует его наличие)

Цитата: alexis031182
То есть всё заработало?

К сожалению НЕТ...
1) Нет бортовой распознавалки... потеря одного пакета из 5 приводит к
    потере всей посылки... но это переделаю позже...
2) родная библиотека дохлая...
3) моя работает только на машинах с дэльфи...

Использую компоненты OleCtrls, isp3;

которые создают класс
type
  TForm1 = class(TForm)
    UDP1: TUDP;

отсутствующий на др. машинах...

Т.к. сейчас занят основной работай и доделкой IgorPlug2
нет времени ковырять енет для ответа на этот вопрос...
(не откажусь от помощи по адаптации данной проги...
вышлю по почте)
Модерирую ветку форума о “самодельных” системах управления компьютером с пульта.
Список форумов > Технический форум > Интернет-проекты участников форума > Mind Run Way

Оффлайн alexis031182

  • Full
  • ****
  • Сообщений: 1012
  • Репутация: +0/-0
    • http://www.slovensk.ru/fspo
    • E-mail
    • Личное сообщение (Оффлайн)
Осваиваем WInlirc посылку
« Ответ #8 : Мая 20, 2008, 11:20:58 »
Цитата: QuickWitted
Устройство не имеет приёмника - только передатчик...
отправляет пакет на заданный порт заданного IP без каких либо проверок...
на компе этот порт должен быть открыт...
(устройство в силу односторонней направленности свой порт слушать не может, но эмулирует его наличие)
Хорошо, понял. Теперь хочу уточнить, что является принимающей пакеты от устройства программой, это в данном случае lircd, IgorplugUDP или ваша собственная разработка? Общую схему можете описать? То есть какой порядок расстановки элементов в этой схеме.

Цитата: QuickWitted
К сожалению НЕТ...
1) Нет бортовой распознавалки... потеря одного пакета из 5 приводит к
    потере всей посылки... но это переделаю позже...
2) родная библиотека дохлая...
3) моя работает только на машинах с дэльфи...

Использую компоненты OleCtrls, isp3;

которые создают класс
type
  TForm1 = class(TForm)
    UDP1: TUDP;

отсутствующий на др. машинах...

Т.к. сейчас занят основной работай и доделкой IgorPlug2
нет времени ковырять енет для ответа на этот вопрос...
(не откажусь от помощи по адаптации данной проги...
вышлю по почте)
Я к сожалению не силён в электронике, но имею опыт в программировании на C. Коды на Delphi мне в большинстве своём понятны. Со 2 июня ухожу в отпуск, можем вместе поработать над этой задачей.

Оффлайн QuickWitted

  • Moderator
  • VIP
  • *****
  • Сообщений: 885
  • Репутация: +1/-0
    • http://www.mindrunway.ru/
    • Личное сообщение (Оффлайн)
Осваиваем WInlirc посылку
« Ответ #9 : Мая 20, 2008, 12:32:44 »
Цитата: alexis031182
Хорошо, понял. Теперь хочу уточнить, что является принимающей пакеты от устройства программой

На данном этапе только моя прога (собственная разработка)
Комплектная дллка IgorplugUDP - не отдаёт принятые данные...

Цитата: alexis031182
Общую схему можете описать? То есть какой порядок...
Порядок такой
1) берём пилу и молоток
    (это не шутка)
2) ...

Дальнейшие пояснения и схему могу выслать мылом...
(К сожалению участились случаи плагиата, поэтому не буду раскрывать все тонкости)
Потом как закончу выложу со статьей на сайте...

Цитата: alexis031182
Я к сожалению не силён в электронике

пояснения элементарны... ошибиться трудно...

Цитата: alexis031182
можем вместе поработать над этой задачей.

Я за... у нас командная разработка... Ссылку на автора сохраню...

Модерирую ветку форума о “самодельных” системах управления компьютером с пульта.
Список форумов > Технический форум > Интернет-проекты участников форума > Mind Run Way

Оффлайн alexis031182

  • Full
  • ****
  • Сообщений: 1012
  • Репутация: +0/-0
    • http://www.slovensk.ru/fspo
    • E-mail
    • Личное сообщение (Оффлайн)
Осваиваем WInlirc посылку
« Ответ #10 : Мая 20, 2008, 13:40:59 »
Цитата: QuickWitted
На данном этапе только моя прога (собственная разработка)
Комплектная дллка IgorplugUDP - не отдаёт принятые данные...
То есть вы не используете liircd?

Цитата: QuickWitted
Порядок такой
1) берём пилу и молоток
    (это не шутка)
2) ...

Дальнейшие пояснения и схему могу выслать мылом...
(К сожалению участились случаи плагиата, поэтому не буду раскрывать все тонкости)
Потом как закончу выложу со статьей на сайте...
пояснения элементарны... ошибиться трудно...
Меня мало интересуют технические тонкости, тем более что касается там всяких схем устройства. Я могу оказать посильную помощь лишь в создании и апгрейде ПО. Но даже для этого потребуется больше информации, в частности подробное описание или сам код имеющегося приложения, так как, говоря откровенно, не имею опыта работы, связанной с подключением инфракрасников к компу.

Также хотелось бы узнать, как вы планируете распространять свой проект - под какой лицензией. Если ПО планируется продавать, нам, к сожалению, с вами не по пути. Повторюсь, при этом, что само устройство меня не интересует, исключительно приложение.

Оффлайн QuickWitted

  • Moderator
  • VIP
  • *****
  • Сообщений: 885
  • Репутация: +1/-0
    • http://www.mindrunway.ru/
    • Личное сообщение (Оффлайн)
Осваиваем WInlirc посылку
« Ответ #11 : Мая 20, 2008, 14:37:46 »
Цитата: alexis031182
То есть вы не используете liircd?

Пока нет - но хочу...

Цитата: alexis031182
потребуется больше информации, в частности подробное описание или сам код имеющегося приложения

Я не против - они открытые...
напиши мне на почту - отправлю...

Цитата: alexis031182
не имею опыта работы, связанной с подключением инфракрасников к компу.

Подключением занимается специализированная прога...
но ей надо отдать данные... Обычно этим занимается библиотека которая в свою очередь
как-то общается с драйвером...

Цитата: alexis031182
Также хотелось бы узнать, как вы планируете распространять свой проект - под какой лицензией.

Выложу на сайт... С бесплатными прошивками и библиотеками...
Лицензия по-моему GNU, но с закрытым кодом...

Цитата: alexis031182
Если ПО планируется продавать, нам, к сожалению, с вами не по пути. Повторюсь, при этом, что само устройство меня не интересует, исключительно приложение.

А я ПО делать и не собираюсь... Т.к. оно уже дано сделано, причём профессионально несколькими конторами...
Есть платные, условно бесплатные, с открытым кодом и т.д. выбирай какое нравится...

Нужна только библиотека которая бы собирала и отдавала данные основному ПО стороннего разработчика...

Да чуть не забыл – если будешь разработчиком библиотеки, то и тип лицензии на неё выбирать тебе...
(уточню проект НЕ КОМЕРЧЕСКИЙ - т.е. библиотека должна быть полнофункциональной и без ограничений)




Модерирую ветку форума о “самодельных” системах управления компьютером с пульта.
Список форумов > Технический форум > Интернет-проекты участников форума > Mind Run Way

Оффлайн alexis031182

  • Full
  • ****
  • Сообщений: 1012
  • Репутация: +0/-0
    • http://www.slovensk.ru/fspo
    • E-mail
    • Личное сообщение (Оффлайн)
Осваиваем WInlirc посылку
« Ответ #12 : Мая 20, 2008, 14:56:25 »
Вот, кстати, показался интересным текст с сайта www.cesko.host.sk/IgorPlugUDP/IgorPlug-UDP%20(AVR)_eng.htm:

Цитировать
Device supports only transmitting, because receiving is not possible at this microcontroller speed. Therefore we must use device on full duplex networks only! Otherwise is probability that on network occurs collisions during device transmitting and because device not checks collisions (not receiving), then the transmitted code is not delivered to destination. Full duplex networks are for example direct connection to computer network card through crossover cable. In the future I want to test the device on complex network with network switch and more active computers connected - if you have access to some network give me please your test result ;-) .

Ты уверен, что всё сделал правильно в своих тестах? Пробовал ли менять адрес назначения посылки пакетов?

Оффлайн QuickWitted

  • Moderator
  • VIP
  • *****
  • Сообщений: 885
  • Репутация: +1/-0
    • http://www.mindrunway.ru/
    • Личное сообщение (Оффлайн)
Осваиваем WInlirc посылку
« Ответ #13 : Мая 20, 2008, 15:05:17 »
Цитата: alexis031182
Вот, кстати, показался интересным текст с сайта www.cesko.host.sk/IgorPlugUDP/IgorPlug-UDP%20(AVR)_eng.htm:
Ты уверен, что всё сделал правильно в своих тестах? Пробовал ли менять адрес назначения посылки пакетов?

В своих - уверен...  <_< поэтому у меня и работает...  
А с оригинальным два вечере провозился...  

----------------------------------------------
Добавлено позднее

Если кому надо, то вот
Исходники сервера и клиента WInlirc на Delphi

как потом выяснилось к UDP он не имеет отношения, а сам UDP отпочковался в свой проект
в разделе Блок 9 для 'Lan Bridge' освоен обмен пакетами по протоколу UDP.

http://www.mindrunway.ru/GraniCubLanB.html
« Последнее редактирование: Мая 13, 2011, 08:37:42 от QuickWitted »
Модерирую ветку форума о “самодельных” системах управления компьютером с пульта.
Список форумов > Технический форум > Интернет-проекты участников форума > Mind Run Way

 

Последние сообщения на форуме: