在小小的3.2软件运行更复杂一点比我要在这里分享,主要是因为它的控制多个照明设备,你可以看到一些在最后一步。然而,他们都遵循相同的基本结构:
每一个发光二极管的对象有一个ethernetudp端口,它可以发送和接收数据。在这种情况下,我们只发送数据到吊灯,不需要得到什么。在该对象的内部,有一个灯泡的数据发送协议,这在某种程度上,遵循MIDI协议。从本质上讲,7位长度的信息保证没有失去同步,您可以指定球的位置和强度如下。
消息1 =灯泡数= 0B 1 nnn nnnn
消息2 =强度= 0B 0ⅢⅢ
这个非常简单的协议选择的观点是,如果最高位为1,那么下面的字节集灯泡的强度在位置nnn nnnn。这样,如果你开始听的消息在传输过程中,你将永远得不到的同步数据在哪里!
使用这种方法,一段时间后,它变得有点繁琐,需要发送64个字节32个字节的数据。所以,这是更简单的方法:
消息1 =同步= 0xff或0b1111 1111
消息216 =数据= 0x00 -> 0x7f(7位分辨率)
再次使用该协议,我们只有等到第七点要高,那么以下所有用接下来的32个字节数据的字节数。这样,我们从64字节/帧降到了33,好多了;)