Udp Artnet包结构
尽管我已经找到了这么多允许程序员使用Artnet/ArtnetDMX协议的库,但我还没有找到正确的结构来以代码(到套接字)发送Artnet 结构是给定的,但我就是不知道字节应该以什么顺序发送。 我是一个接一个地向宇宙发送字节,还是需要发送包含所有值的字节数组 有没有人有通过UDP发送Artnet的经验Udp Artnet包结构,udp,byte,dmx512,Udp,Byte,Dmx512,尽管我已经找到了这么多允许程序员使用Artnet/ArtnetDMX协议的库,但我还没有找到正确的结构来以代码(到套接字)发送Artnet 结构是给定的,但我就是不知道字节应该以什么顺序发送。 我是一个接一个地向宇宙发送字节,还是需要发送包含所有值的字节数组 有没有人有通过UDP发送Artnet的经验 这是维基百科上给出的结构:我对Art Net v2使用以下结构 typedef struct { char ID[8]; //"Art-Net" UInt16 Op
这是维基百科上给出的结构:我对Art Net v2使用以下结构
typedef struct {
char ID[8]; //"Art-Net"
UInt16 OpCode; // See Doc. Table 1 - OpCodes eg. 0x5000 OpOutput / OpDmx
UInt16 version; // 0x0e00 (aka 14)
UInt8 seq; // monotonic counter
UInt8 physical; // 0x00
UInt8 subUni; // low universe (0-255)
UInt8 net; // high universe (not used)
UInt16 length; // data length (2 - 512)
uint8_t data[512]; // universe data
} ArtnetDmx;
如果你想写一个Art Net应用程序,你应该认真阅读网站上的文档
我会遵循版本2(14)规范,因为版本3在野外非常罕见。物理、子宇宙和网络都可以从IP地址推断出来。为此编写一个构造函数非常方便,它将您正在寻址的控制器的IP作为4个字节。@aj.toulan的规范是正确的。您可以使用IP来计算数据包参数,但是,大多数控制器不遵循规范的这一部分。例如,一台DHCP上的共享计算机恰好输出Art Net,即使它的IP不符合规范,我的客户端仍然可以接收到它。
typedef struct {
char ID[8]; //"Art-Net"
UInt16 OpCode; // See Doc. Table 1 - OpCodes eg. 0x5000 OpOutput / OpDmx
UInt16 version; // 0x0e00 (aka 14)
UInt8 seq; // monotonic counter
UInt8 physical; // 0x00
UInt8 subUni; // low universe (0-255)
UInt8 net; // high universe (not used)
UInt16 length; // data length (2 - 512)
uint8_t data[512]; // universe data
} ArtnetDmx;