最近我开始了一个项目,我需要将 OSC 与 ArtNet 协议结合起来。虽然 OSC(开放声音控制)有一些可用的示例和文档,并且 vvvv 小组也编写了非常好用的 Delphi 解析器,但 ArtNet - 以太网 DMX 协议 - 实际上不支持,或者更好地说,根本不支持 delphi 的示例。我唯一设法找到的是:http: //mbed.org/users/okini3939/code/DmxArtNet/docs/c59dc374fc64/DmxArtNet_8cpp_source.html 这似乎不完整,我根本无法完成。联系作者是在黑暗中拍摄的......
无论如何,主要是在通过 UDPClient 发送它们之前进行字节编码。现在,由于这与 OSC 的工作方式基本相同,我想这没什么大不了的,尤其是因为除了 OSC,ArtNet 只需要通过 UDPClient 发送 tose 位,并且什么都没有收到(使用 OSC,大多数解析器是关于接收和解码数据包的......)但是,除了我敢说“这没什么大不了的”,我不得不说同时我不熟悉如何去做。
在第 22 页和第 23 页是带有字节格式信息的 ArtDmx 表...
www.artisticlicence.com/WebSiteMaster/User%20Guides/art-net.pdf
我认为这是为了发送命令我必须做的......
有谁知道它,或者有时间快速看看它是如何工作的,甚至可以举一个例子来说明我如何从delphi的应用程序发送数据......?
谢谢!
马克
编辑: 看起来他们的网站已关闭,因为指向 pdf 的链接不再有效,但是我仍然打开了它的副本,所以我将复制以下内容:
ArtDmx 数据包可以广播,但不推荐。单播 ArtDmx 可以显着提高网络效率。当 ArtDmx 为单播时,必须使用以下规则: 传输设备必须定期 ArtPoll 网络以检测 Universe 交换机设置的任何变化。如果传输设备选择单播,则它必须将 ArtDmx 单播到订阅(在 ArtPollReply 中)该 Universe 的所有节点。已订阅表示 Swin 和 Swout 数组中列出的任何 Universe。如果没有发送者希望发送的宇宙的订阅者,则可以广播 ArtDmx。实施者应提供单播和广播之间的动态变化。如果 Universe 订阅者的数量超过给定数量,则广播可能会变得更有效率。对于使用超过 30 个 Universe 的系统,只能强制使用单播。桌子: http://shrani.si/f/2c/GQ/3NF9rewr/artnet-udp-table.png