Пример Delphi UDPClient -> Связь и анализатор ArtNet

Недавно я начал проект, в котором мне нужно объединить OSC с протоколом ArtNet. В то время как у OSC (Open Sound Control) есть несколько примеров и документации, и группа vvvv также написала парсер Delphi, который работает действительно хорошо, протокол ArtNet - Ethernet DMX - практически не имеет поддержки или, лучше сказать, примера для delphi вообще. Единственное, что мне удалось найти, это: http://mbed.org/users/okini3939/code/DmxArtNet/docs/c59dc374fc64/DmxArtNet_8cpp_source.html который кажется неполным, и я не могу этого сделать вообще. Связь с автором была выстрелом в темноте...

В любом случае, главное - это байтовое кодирование перед отправкой их через UDPClient. Теперь, поскольку это в основном то же самое, как работает OSC, я думаю, это не так уж и страшно, тем более, что кроме OSC, ArtNet нужно только ОТПРАВИТЬ биты через UDPClient, и он вообще ничего не получает (с OSC, большинство парсера было о получении и декодировании пакета...) Но, наряду с тем, что я осмелился сказать "это не имеет большого значения", я должен сказать, что в то же время я не знаком с тем, как сделать это вообще.

Здесь на страницах 22 и 23 находится таблица ArtDmx с информацией о формате байтов...

www.artisticlicence.com/WebSiteMaster/User%20Guides/art-net.pdf

Я думаю, что это то, что я должен сделать, чтобы отправлять команды...

Кто-нибудь что-нибудь знает об этом, или у него есть время, чтобы быстро взглянуть на то, как он работает, и, возможно, даже привести пример того, как я могу отправить данные из приложения delphi...?

Спасибо!

Marcs

РЕДАКТИРОВАТЬ: похоже, что их сайт не работает, так как ссылка на PDF больше не работает, однако у меня все еще есть его открытая копия, поэтому я скопирую содержимое ниже:

Пакеты ArtDmx могут транслироваться, но это не рекомендуется. Значительное повышение эффективности сети может быть достигнуто за счет одноадресной рассылки ArtDmx. Когда ArtDmx является Unicast, должны использоваться следующие правила: Передающее устройство должно регулярно ArtPoll сети обнаруживать любые изменения в настройках переключателя юниверса. Если передающее устройство выбирает Unicast, то оно должно Unicast ArtDmx ко всем узлам, которые подписаны (в ArtPollReply) на этот юниверс. Подписанный означает любые юниверсы, перечисленные в массивах Swin и Swout. Если в юниверсе нет подписчиков, которые передатчик желает отправить, то ArtDmx может транслироваться. Реализаторы должны обеспечить динамическое изменение между одноадресной и широковещательной передачей. Если количество подписчиков юниверса превышает данное число, вещание может стать более эффективным. Использование только одноадресной передачи является обязательным для систем, использующих более 30 юниверсов. Таблица: http://shrani.si/f/2c/GQ/3NF9rewr/artnet-udp-table.png

1 ответ

Решение

Итак, через некоторое время, один из основных разработчиков VVVV, Joreg, записал информацию для модулей Delphi, огромное спасибо им и команде vvvv.

https://github.com/vvvv/DelphiArtnet

А вот такая ветка: http://vvvv.org/forum/delphi-artnet-dmx-support...#comment-110297

Надеюсь, это поможет кому-то еще!

Другие вопросы по тегам