YAAN协议
一、 描述:
通讯方式:RS-485 “4800,8,N,1” ,下面以0x开头的数据为十六进制数
波特率
|
4800
|
数据位
|
8
|
校验位
|
无
|
停止位
|
1
|
YAAN协议命令格式:
首字节
|
地址
|
命令号
|
数据
|
校验和
|
0x02
|
1 字节
|
1字节
|
1或2字节
|
1 字节
|
说明:
1.首字节永远是0x02
2.地址范围是0x00~0xff (十进制是0 ~ 255),其中0xff为广播地址
3.命令号范围为1-17
4.数据由一个(命令号2-11)或两个(命令号 1 和 12-17)字节组成
5.校验和占一个字节,将前面字节求和后取其低字节
例如:
命令: 0x02 0xFF 0x01 0x04 0x00 0x06
说明:
1.0x02是首字节
2.0xFF是广播地址,所有云台都将接收此命令
3.0x01表示是1号命令
4.0x04是数据1、0x00是数据2
5. 0x06是校验和,具体求法是:
sum = 0x02 + 0xFF + 0x01 + 0x04 + 0x00 = 0x 106
校验和是0x 106的低字节0x06
二、基本协议
命令号
|
数据1
|
数据2
|
说明
(命令长度6字节)
|
0x01
|
0x01 右
0x02 左
0x04 上
0x08 下
0x10 缩小
0x20 放大
0x40 聚焦近
0x80 聚焦远
|
0x01 光圈开
0x02 光圈关
|
云台和镜头命令
(数据1和2的每一个二进制位代表一个具体的功能,当此位为1时,该项功能打开)
|
0x01
|
0x00
|
0x00
|
停止命令
|
0x0E
|
0x00 ~ 0xFF
水平方向速度
|
0x00 ~ 0xFF
垂直方向速度
|
云台速度
|
0x0F
|
0x03
|
0x00
|
水平自动
|
说明:
1,为了使云台连续转动,云台命令和速度命令必须要重复发送,时间间隔大约在200ms左右。使云台停止转动要使用停止命令。
2,为了使镜头变化平滑,镜头控制命令应该每隔200ms重复发送,在停止控制时要使用停止命令,这样可以马上停止。
3,云台的水平方向和垂直方向可以组合为一个命令,如水平向右是0x01,垂直向上是0x04,那么右上方向是 0x05(“相加”或“按位或” 运算)。
4,云台的方向和速度命令应该联合使用。
例子:
云台地址为1,要求向左上方向旋转,则每200ms发送如下命令:
0x02
|
0x01
|
0x01
|
0x06
|
0x00
|
0x0A
|
0x02
|
0x01
|
0x0E
|
0x80
|
0x60
|
0xF1
|
云台停止命令:
0x02
|
0x01
|
0x01
|
0x00
|
0x00
|
0x04
|
0x02
|
0x01
|
0x0E
|
0x00
|
0x00
|
0x11
|
三、高级协议:
命令号
|
数据
|
说明
(命令长度5字节)
|
|
0x02
|
1-128
|
招回预置位
|
|
0x03
|
0x00
|
自动巡航
|
|
0x05
|
1-128
|
保存预置位
|
|
0x06
|
1-128
|
添加巡航点
|
|
0x08
|
0x00
|
清除全部巡航点
|
|
0x0B
|
3-255
|
设置停留时间(秒)
|
|
|
|||
命令号
|
数据1
|
数据2
|
说明
(命令长度6字节)
|
0x0F
|
0x01
|
0x00~0xFF
|
水平自动速度
|
0x02
|
0x01
|
设置左边界
|
|
0x02
|
设置右边界
|
说明:上述命令不需要重复发送,在自动巡航和水平自动等命令发出后,不应该有其他命令发出,否则会被忽略而处理下一个命令