Форум » » [РЕШЕНО] Помогите с TCP/IP Client (AVR ONKYO) » Ответить

[РЕШЕНО] Помогите с TCP/IP Client (AVR ONKYO)

alejandro: Управление ресивером нужно построить через Ethernet. Подскажите, пожалуйста, как правильно создать TCP/IP Client для этой цели. Делал по "видеомануалу" отсюда, получился вот такой Клиент. Не все получившиеся в итоге входы/выходы мне понятны. То, что есть в help'ах не помогло. За любую подсказку заранее спасибо. UPD. Разобрался благодаря подсказкам форумчан. Спасибо им за это. Суть проблемы была в двух вещах: 1. Я не понимал самой схемы взаимоотношений между системой и сторонним железом по Ethernet. 2. По этой причине я не знал о существовании TCP/IP клиента, не понимал его назначения и не умел им пользоваться. Всё это оказалось делом несложным. Разобравшись с основами, я столкнулся с тем, что командные управляющие строки в случае управления через Ethernet отличаются от строк, потребных при управлении по RS-232. Например, команда на включение ресивера выглядит в разных случаях по-разному: TCP/IP: ISCP\x00\x00\x00\x10\x00\x00\x00\x08\x01\x00\x00\x00!1PWR01\r RS-232: !1PWR01\r На йаху-гроуп нашел модуль, предназначавшийся (как я понял позднее) для управления AVRs Onkyo/Integra через порт RS-232. На сайте crestron.com нашел и скачал архив с модулем для сетевого управления AVRs Onkyo/Integra через Ethernet. Весь крестроновский модуль (а он включает в себя кучу плюшек на все случае жизни) мне показался чрезмерным для моих целей, посему я решил пойти своим путем - я взял йаховский модуль и переписал его. Переписывание коснулось той части, где он готовит команды для отправления на устройство через клиент. Так же я сократил некоторые (не нужные мне) входы и фидбэки и добавил некоторые свои (в основном, касающиеся зоны 2). Ответы устройства исходный модуль парсит и без того корректно. Такие вот дела. Всем спасибо за помощь.

Ответов - 28, стр: 1 2 All

Игорь K.: Не нужно бросаться на излишне сложные варианты решений. Ресиверами Onkyo можно управлять по TCP/IP проще, используя элементы SIMPL. В вашем испанском примере чувак лепит модуль, что необязательно. Что делать: 1. Добавьте компонент TCP/IP Client в программу. 2. Забейте в него IP адрес ресивера, подключенного в ту же сеть, что и процессор. 3. Укажите номер порта 60128. 4. Далее все аналогично работе через любой последовательный интерфейс.

beomaster: А почему вы не хотите использовать или переписать родной крестроновский модуль?

p.vladi: Так для Onkyo есть модули на офсайте крестрона, и, на яху группе есть модули.. есть даже управление громкости слайдером. или я отстал от жизни?


alejandro: Игорь K. beomaster p.vladi Во-первых, спасибо Вам за ваши комментарии и помощь. Теперь по порядку. 1. Добавил TCP/IP Client в конфигураторе системы, 2. Прописал там же статический IP-адрес моего ресивера в сети (общей с MC3), 3. Открыл символ клиента и указал в нем порт 60128d, 4. Нашел в yahoo.group файл модуля для управления ресиверами Onkyo. 5. Скачал его, скомпилировал для 3-series (MC3), 6. Соединил символы вот таким образом: ВОПРОСЫ: 1. Правильно ли я понял, что соединенный таким образом TCP/IP Client будет осуществлять программную связь с железом (т.е., с ресивером) и принимать/отсылать управляющие/ответные строки от модуля ONKYO RECEIVER (см. картинку выше) к собственно ресиверу и обратно? 2. Мне нужно непрерывное соединение ресивера с процессором, посему я на соответствующий вход Клиента подаю постоянно 1. Правильно ли это в моем случае? 3. В одном из обсуждений на этом форуме я прочел слова уважаемого Игорь K. о том, что для сохранения/поддержания постоянного соединения необходимо с периодичностью 5 секунд посылать на устройство/Клиент некую команду/запрос. Как это делать в моем случае? Создать 5-секундный цикл и с его помощью отправлять на вход Клиента команду? Какую? Я предположил, что логически рассуждая, модуль должен, в принципе, этим озаботиться сам, но покопавшись в модуле, ничего похожего на цикл, созданный с этой целью, я не нашел. Короче говоря, здесь для меня полная неясность. Проясните, пожалуйста. ЗЫ. Простите меня, если я задаю "странные" вопросы, но повторюсь: это для меня первый опыт такого рода, так что потерпите, пожалуйста, немного. Я хочу научиться и научусь, а пока вот... :)

Игорь K.: Ответы на предыдущий пост по пунктам: 1. Да. 2. Да. Постоянная связь осуществляется на уровне Telnet, отличие только в номере порта свзяи. Должна быть постоянная "1". 3. Т.н. "Heartbeat" - условие или требование протокола управления оконечного устройства. В данном случае не требуется.

alejandro: Игорь K. Спасибо. Потихоньку получается. :) Хм. Клиент слышит ресивер, модуль корректно парсит ответы ресивера. Команд ресивер не слушается. Полагал, что нужно где-то в настройках ресивера "разрешить" ему управляться снаружи, но что-то ничего похожего найти не могу.

Игорь K.: ОК, значит данные от ресивера модуль разбирает и выводит? А команды отправляются и не исполняются?

alejandro: Отправляются из модуля на клиент. Судя по тому, что connection есть (и в обратном направлении работает), они отправляются и на железо. Реакции пока ноль. UPD. Модуль выдает команды в таком виде !1MVLDOWN !1MVLUP !1AMT01 и пр.

Igor: alejandro, а приведите, пожалуйста, команду в сыром, шестнадцатеричном виде - для этого в отладчике, там, где Вы ее подслушали, команде "ReceiverCommandString" надо задать вид Hexadecimal all.

Игорь K.: Модуль не тот. Строка должна начинаться с "ISCP" Возьмите модуль, заточенный для работы по Ethernet.

alejandro: Игорь K. Ответы от ресивера имеют, в основном, такой вид: ISCP000@000*1000!1MVL0AJ ISCP000@000*1000!1AMT01J и т.п. Цветом выделены постоянные (не меняющиеся) значения.

alejandro: На yahoo нашел два модуля, оба потестил, и оба выдают одинаковые команды (одного вида).

Игорь K.: На Crestron.com есть все модули для Onkyo.

alejandro: Не могу найти. Ткните меня в ссылку, пожалуйста! (

beomaster: http://www.crestron.com/resources/product_and_programming_resources/integrated_partner_modules/default.asp?manufacturer_id=58

alejandro: beomaster Спасибо большое! )

Игорь K.: ОК, если небыло доступа к ПО на Cerstron.com давайте знать. Здесь помогут.

beomaster: Онкио не управлял, но должно быть как на Интегре, по идее, не забудьте в меню ресивера найти пункт, где LAN активен и в режиме стендбай, чтобы поднимать его по сети из спящего режима.

alejandro: beomaster Спасибо. В настройках конечно сразу "попросил" ресивер не засыпать. С модулем по Вашей ссылке пытаюсь разобраться. Непросто. На яху гроуп есть пара очень компактных и лаконичных модулей S+ без дополнительной SW логики и пр., но для RS-232. Вот бы такой же для TCP/IP!

alejandro: Игорь K. Доступ есть. Просто не находил. Спасибо. Уже помогли. Трудно с ним разобраться.



полная версия страницы