Форум » » [РЕШЕНО] Помогите с 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. Доступ есть. Просто не находил. Спасибо. Уже помогли. Трудно с ним разобраться.

alejandro: В общем, решил переписать яховский модуль заново (очень уж он лаконичный) с управляющими строками для TCP/IP (с префиксами). Благо они в достатке присутствуют в модулях от crestron.com. Дело рутинное, конечно...

alejandro: Собственно, всё. Написал UPD в топике.

4ertjaga_88: добрый день,столкнулся с интеграцией onkyo...скачал модули с сайта крестрон, управляю по 232...всё управляется хорошо,но есть проблемка...не могу задавать уровень громкости аналоговым сигналом,только дискретно вверх и вниз....модуль "onkyo_tx_nr1009_v1_0_demo"....подскажите может другой какой нить модуль...пытался найти на яху груп упомянутый тут,но не смог...

Igor: 4ertjaga_88, каково точное название изделия Onkyo?

Игорь K.: Посмотрите внутри модуля. Минимальный уровень громкости Main Zone: \x49\x53\x43\x50\x00\x00\x00\x10\x00\x00\x00\x03\x01\x00\x00\x00\x30\x30\x0D Максимальный: \x49\x53\x43\x50\x00\x00\x00\x10\x00\x00\x00\x03\x01\x00\x00\x00\x36\x34\x0D Напишите модуль, который при подаче аналогового значения будет формировать команду. С другой стороны, такой подход небезопасен тем, что возможны резкие скачки усиления. Финальный продукт для IP может быть таким, например: Analog_Input VU_In; String_Output Out; Change VU_In { IF (VU_In<=15) { Out = "\x49\x53\x43\x50\x00\x00\x00\x10\x00\x00\x00\x03\x01\x00\x00\x00\x30"+ITOHEX(VU_IN)+"\x0D"; } Else { Out = "\x49\x53\x43\x50\x00\x00\x00\x10\x00\x00\x00\x03\x01\x00\x00\x00"+ITOHEX(VU_IN)+"\x0D"; } } Для RS232 еще проще.

4ertjaga_88: Onkyo pr-sc 5530.....модули писать не хотелось бы, т.к. еще ни разу не делал этого...а программирование крестрона лишь малая часть того, что приходиться программить,то не оч хотелось бы тратить время на освоение написания модулей(((

Вячеслав: У меня не все команды работают для ONKYO (модуль взят c crestronapplication). Не работает в большинстве своем для zone2. Скачал протокол с гугла, в модуле оказалось все верно. Тем не менее под задачу все равно пришлось модуль допиливать. Например, радиостанции соxраняет только для Main zone для zone 2 можно только вызывать и т.п. C громкостью тоже намучался (даже уже и не помню, победил или нет, была какая то засада с фидбэком). Нужно было автоматически убавлять громкость, при превышении установленного порога. Так как маленький ребенок любил крутить ручку, находясь по близости ).

Igor: 4ertjaga_88, получается? Сегодня буду писать маленькую программу с участием Integra.



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