Форум » » ADA Cinema Rapture У кого есть протокол? » Ответить

ADA Cinema Rapture У кого есть протокол?

Zerberus: Собственно, сабж. Есть ли у кого-нибудь протокол управления для ADA Cinema Rapture по IP. Куда у него стучаться и прочее. Буду премного благодарен.

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

Игорь K.: Можете не давать, если сомневаетесь. Нет проблем. Я лично могу к ним заехать и спросить, если встретится такой редкий даже на родине аппарат.

Вячеслав: DmitriiP пишет: UDP это не TCP у него нет понятия подключения У UDP нет понятия "установления соединения". Под подключением я понимал передачу данных. Хэлп, как мы уже поняли вызывает скорее вопросы чем ответы и дословно его воспринимать не стоит. DmitriiP вы как сами то предлагаете реализовать входящее подключение удаленного устройства с заранее неизвестным адресом? В хэлпе вам предлагают его прописать, но Вы его не знаете, потому как он DHCP, да даже если статика на нескольких устройствах (не отдельный же UDP/IP для каждого такого устройства создавать). Я предложил прописать адрес самого контроллера. Ваш вариант какой? (про бродкаст и мультикаст мы пока не говорим)

Игорь K.: Вячеслав, извините, я вклинюсь. Какого лешего вам мерещатся "удаленные устройства с заранее неизвестным адресом"? Я не думаю, что что-то серьезное пропустил в этом всем, но все, что происходит в сетях управления оборудованием должно быть известно управляющему устройству. При чем броадкаст и мультикаст при решении задач управления?


Вячеслав: Никого же не удивляет общепринятое подключение тачпанели с заранее неизвестным адресом.(в этом случае у нас в IPtable 127.0.0.1) Почему же должен удивлять вариант похожего подключения по UDP. У меня есть конкретный пример для UDP, когда требуется организовать входящее соединение на процессор. Но я намеренно не привожу его, дабы не уводить тему в сторону. Бродкаст и мультикаст заявлены в качестве вариантов UDP подключения, если взглянуть на хэлп. В случае мультикаста и бродкаста своеобразное представление адресов получателя и отправителя, поэтому чтоб опять не уводить тему в неправильном направлении, я в примечании отметил, что бродкаст и мультикаст мы пока не рассматриваем. Хотя чей то опыт применения крестрон а этой сфере конечно же мне интересен.

Вячеслав: Я проверял на socket, это работает. Я не проверял на элементе UDP/IP

Вячеслав: Из пустого в порожний. Так я и не говорил, что в устройстве DHCP, которое будет подключаться к крестрон не прописан адрес контроллера. Я говорил, что в контроллер не обязан знать адрес удаленного устройства заранее.

Игорь K.: Стоп, достаточно оффтопа.

Zerberus: Итак, как и обещал. Следует использовать два UDP соединения: Порт UDP 48716 открыт на самом усилителе и в него следует слать команды; порт UDP 48717 следует открыть у себя и с него получать обратную связь. Все команды начинаются и заканчиваются символами \xFF \xFF\x03\x00\x01\x5A\x5E\xFF - повысить громкость на 1 дБ \xFF\x03\x00\x01\x5B\x5F\xFF - понизить громкость на 1 дБ \xFF\x03\x00\x01\x37\x3B\xFF - повысить громкость на 0,5 дБ \xFF\x03\x00\x01\x38\x3C\xFF - понизить громкость на 0,5 дБ \xFF\x03\x00\x01\x22\x26\xFF - mute/unmute \xFF\x03\x00\x01\x21\x25\xFF - Включить \xFF\x03\x00\x01\x08\x0C\xFF - Выключить \xFF\x03\x00\x10\x70\x83\xFF - Выбрать вход 1 \xFF\x03\x00\x10\x71\x84\xFF - Выбрать вход 2 \xFF\x03\x00\x10\x72\x85\xFF - Выбрать вход 3 \xFF\x03\x00\x10\x73\x86\xFF - Выбрать вход 4 С обратной связью всё несколько интересней. Данные приходят фрагментированными - фактически: один пакет UDP - один байт. Это происходит из-за того, что в этой коробке используется мост Ethernet - UART NetBurner SBL2e. Естественно, что за сетью он не поспевает и мы видим то, что видим. Сразу предостерегу от использования UDP сокета в SIMPL+ - ничего не получится. Вы просто не успеете обрабатывать данные из-за той самой фрагментации. Благо, что симпле это делается элементарно. Все пакеты обратной связи выглядят примерно вот так: \x0F [данные] \x03\x00\xF0 Собственно, \x0F - индикатор начала кадра, \x03\x00\xF0 - индикатор окончания. Можно просто ловить \xF0 - в данных он никогда не встречается. Данные - это обычный ASCII текст такого вида: ALL -29.0 DB или SATELLITE 2. Первое указывает на то, что общая громкость выставлена на -29 дБ, а второе, что выбран вход 2, который в конфигурации усилителя назван как SATELLITE. Как видите, протокол очень простой. P.S. у DIN-AP3 какие-то проблемы с UDP, на нём программу я так и не завёл, зато на CP3 программа завелась без проблем.

Igor: Zerberus, т.о. протокол в целом совпадает с протоколом Cinema MachII, который уже давно не секрет. Надеюсь, начальник особого отдела ADA не застрелится ;)

Вячеслав: Zerberus пишет: Cразу предостерегу от использования UDP сокета в SIMPL+ - ничего не получится. Вы просто не успеете обрабатывать данные из-за той самой фрагментации. Да ну! Были случаи когда я не успевал обработать данные, потому что их было слишком много в единицу времени. Банально не хватало размера буфера (даже нескольких) Но вот чтобы фрагментация была помехой, да еще с отличным разделителем, это навряд ли. Загоняйте все в while(find("\xF0",RCV_BUF)>0){парсер} и все будет ОК.

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



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