RS232-DMX512

按下面协议通过窗口发码到我们盒子就可以控制DMX512灯了。

RS232DMX 盒子协议命令表
序号 命令 RS232发字节数 说明 RS232返回值 例子
1 0xC0 xx 2 全部512通道赋值为 xx(0~255) 返回 0xC0 为正确

返回 0xC0 0xE0 错误

全部通道为255(开灯):0xC0 0xFF   全部通道为0(关灯):0xC0 0x00
2 0xC1 xx 2 假设接的灯为RGB 3通道灯,全部R通道赋值,就是第1、4、7、10 … 通道赋值为 xx(0~255)  这个命令并不会改变其他非R通道的值 返回 0xC1 为正确

返回 0xC1 0xE0 错误

追加全部红灯亮度,开一半亮:0xC1 128         追加全部R通道全亮:0xC1 0xFF
3 0xB1 xx 2 功能同上,只是会把全部512通道先清零,只留下1、4、7、10… R通道的值,会把其他通道的值清零 返回 0xB1 为正确

返回 0xB1 0xE0 错误

关闭所有灯,同上只红灯开一半亮,只留红灯:0xB1 0x80                      全部R通道全亮,其他关闭:0xB1 0xFF
4 0xC2 xx 2 假设接的灯为RGB 3通道灯,全部G通道赋值,就是第2、5、8、11 … 通道赋值为 xx(0~255)  这个命令并不会改变其他非G通道的值 返回 0xC2 为正确

返回 0xC2 0xE0 错误

追加全部绿灯亮度,开一半亮:0xC2 128         追加全部绿通道全亮:0xC2 0xFF
5 0xB2 xx 2 功能同上,只是会把全部512通道先清零,只留下2、5、8、11… G通道的值,会把其他通道的值清零 返回 0xB2 为正确

返回 0xB2 0xE0 错误

关闭所有灯,同上只绿灯开一半亮,只留绿灯:0xB2 0x80                      全部G通道全亮,其他关闭:0xB2 0xFF
6 0xC3 xx 2 假设接的灯为RGB 3通道灯,全部B通道赋值,就是第3、6、9、12 … 通道赋值为 xx(0~255)  这个命令并不会改变其他非R通道的值 返回 0xC3 为正确

返回 0xC3 0xE0 错误

追加全部蓝灯亮度,开一半亮:0xC3 128         追加全部B通道全亮:0xC3 0xFF
7 0xB3 xx 2 功能同上,只是会把全部512通道先清零,只留下3、6、9、12… B通道的值,会把其他通道的值清零 返回 0xB3 为正确

返回 0xB3 0xE0 错误

关闭所有灯,同上只蓝灯开一半亮,只留蓝灯:0xB3 0x80                      全部B通道全亮:0xB3 0xFF
8 0xC4 cc xx 3 发送通道值(通道小于255),cc为那个通道,xx为通道对应的值,类似我们SDK函数 DMXSend(通道,通道的值) 返回 0xC4 为正确

返回 0xC4 C 通道错误

返回 0xC4 D 通道值错误

假设你接了一台电脑灯,第8通道是水平移动,想让灯转半圈,发命令:0xC4 07 128 灯就会转半圈,如果需要转到底,就把128改成255,注意:我们通道的记数是从0开始,不是从1开始,因此通道8,就是数字7  (这个例子相当于控制台推子8 推到128 或者推到底)
9 0xC5 cc1 cc2 xx 4 发送通道值(通道可以大于255),通道值为cc1+cc2,xx为通道对应的值 返回 0xC5 为正确

返回 0xC5 C 通道错误

返回 0xC5 D 通道值错误

假设你接了一台电脑灯,地址码300是水平移动,想让灯转到底,发命令:0xC5 255 44 255 灯就会转底 (地址码为300,从0开始记数,299=255+44,cc1和cc2可以随便组合成299都可以) (这个例子相当于控制台推子300推到底)
10 0xC6 R G B 4 假设接的灯为RGB 3通道灯,全部RGB通道赋值 R、G、B为颜色0~255的值 返回 0xC6 为正确           返回 0xC6 R R值错误

返回 0xC6 G G值错误

返回 0xC6 B B值错误

假设你接了170个RGB三通道的灯,那么可以通过发不同的RGB值,可以组合成256*256*256种颜色的变化
11 0xC7 cc ll xx 4 这个命令类似MA控制台的THUR命令或者TO命令,意思是从起始cc通道开始,发ll长度个通道,值为xx 返回 0xC7 为正确

返回 0xC7 B 起始通道错误

返回 0xC7 L 长度错误

返回 0xC7 D 通道值错误

比如想让地址码为10到30的通道共20个通道全部为255,可以发这样的命令:0xC7 09 20 255 ,注意,通道记数是从0开始记数的
12 0xC8 cc gg ll xx 5 这个命令非常有意思,十分适合做灯光show,意思是从起始cc通道开始,每隔gg通道,发ll台数量的灯,值为xx 返回 0xC8 为正确

返回 0xC8 B 起始通道错误

返回 0xC8 G 间隔错误

返回 0xC8 P 数量错误

返回 0xC8 D 通道值错误

假设你的沙盘接了6台电脑灯,电脑灯通道数是12,电脑灯第1通道是水平移动,那么地址码1是第一台灯的X移动,地址码13是第2台的X,地址码25是第3台的X… 如果需要这6台灯同时一致水平移动到最大,可以这样发码:0xC8 00 12 6 255
13 0xC9 buf0 buf1 buf2… 随便字节 批量发送全部512通道值,可以是一个通道,也可以是全部512通道值,buf0对应第一通道,buf1对应第2通道,buf2对应第3通道… 返回 0xC9 0xE0 表示整包发送完 假设buf[512]保存的是全部512通道的值,可以通过 0xC9 buf[0] buf[1] buf[2] buf[3]… 这样发每个通道的数据,可以发全部通道,也可以只发前面几个通道
14 0xA1 1 内置效果,只针对RGB三通道灯,RGB渐变效果 返回 0xA1 为正确 假设你接了170个RGB三通道的灯,那么这些灯会RGB渐变,注意,运行内置效果后,不再接收其他命令,需要发0x44停止内置效果才能接收其他命令,内置效果时,盒子的红灯会闪,绿灯灭
15 0xA2 1 内置效果,只针对RGB三通道灯, 七彩循环变化 返回 0xA2 为正确 假设你接了170个RGB三通道的灯,那么这些灯会RGB七彩变化,注意,运行内置效果后,不再接收其他命令,需要发0x44停止内置效果才能接收其他命令,内置效果时,盒子的红灯会闪,绿灯灭
16 0xA3 1 内置效果,只针对RGB三通道灯, 七色闪变 返回 0xA3 为正确 假设你接了170个RGB三通道的灯,那么这些灯会RGB七色闪变,注意,运行内置效果后,不再接收其他命令,需要发0x44停止内置效果才能接收其他命令,内置效果时,盒子的红灯会闪,绿灯灭
17 0xA4 R G B FN 2~5 内置效果,只针对RGB三通道灯, 彗星追逐,RGB为颜色值,FN为0时是正追,大于0时为反追 返回 0xA4 为正确 每24个通道为1段彗星,整个512通道可以分为21段彗星进行追逐,彗星的颜色是通过RGB值来改变的,正反追是通过FN的值来决定的,效果十分cool,假设需要红灯正追时,可以不发完整5字节命令,只需要发2个字节就可以:0xA4 255, 关闭效果发0x44
18 0x44 1 停止内置效果 无返回 在运行内置效果时,所有内置效果必须发 0x44 进行停止,否则不接收其他任何命令
注:此盒子只能用9600波特率,8位数据位,1位停止位,无奇偶校验(9600 8N1)。  因为波特率不快,因此2字节命令建议不要小于50ms重复发命令,多字节命令建议不要小于100ms重复发数据,否则上个命令还没有接收完,下个命令又来了,会覆盖上个命令;不管是几字节命令,同一条命令字节之间必须连续发送,不能间隔发送,如果要间隔,不要大于5ms,否则间隔太大,会做超时处理;除B1、B2、B3外,其他命令不会更改未触及通道原先保留的值。盒子修复了第1代不刷新bug,现在会自动刷新,无需外部发命令进行刷新,这个和第1代产品有很大改进,控制LED灯不会闪烁。盒子在接收232数据时,红灯会闪,如果绿灯闪,表示接收到不认识命令,或者命令没有接收完全;运行内置效果时,红灯会闪烁,绿灯是关闭;可以通过2个灯的状态来判断盒子状态