# 附:开发接口协议说明
相关文档:
4) Navi++ 开发手册
简要说明:
- 导航控制-网络通信(全功能)
参考文档(可以点击下载:Navi++ 开发手册)
UDP通信
服务器会定时向网段内所有设备广播消息,广播间隔 3 秒(s)。将本地端口绑定为6789,即可收到服务器的广播消息。
# code: python
(b'boocax_boocaslam:boocax-test-SERVER', ('192.168.3.78', 43435))
b'…':表示这是一个 bytes 格式的字符串(Python); boocax_boocaslam:服务器验证字段; boocax-test-SERVER:服务器名称; 192.168.3.78:服务器 IP; 43435:端口,可无视。TCP 连接统一使用 6789 端口
注意: 可能会收到来自同一IP、同一服务器,但是端口不同的广播信息。这些广播实为同一台服务器发出,编程时需留意。
基于 TCP 的私有通信协议 Boocaslam 服务器与 APP/ROS 间通信使用私有协议,协议消息包含四个字节的固定头部(Head)与消息体(Body)。
消息格式
固定头部
前 4 个字节为 Head(固定头部)部分,表示后面的消息体的字长(字节数);低位字节在前。 例:如果数据包长度为 10, 则这四个字节是:(0A, 00, 00, 00),即 Head 为 0A000000;
消息体
Head 后紧接消息体,使用 JSON 格式,UTF-8 编码。
消息体格式说明:
APP 与服务器相互发送的所有消息的 JSON 描述中,都包含 参数"message_type",表明消息的类型; 对于文件传输,文件内容通过 base64 编码协议编码后传输,详见第五章"文件传输"。
- 导航控制(2)-串口通信(仅导航控制)
参考文档:Navi++ 应用层串口协议
串口设置
校验位:无
数据位:8bit
停止位:1bit
波特率:9600
数据格式
Head:协议头,固定两个字节: 0xAA 0x55
Len:数据长度,1 个字节,Cmd 和 Payload 的数据长度之和
Cmd:命令类型,1 个字节
Payload:实际数据,长度 0-254 之间
Crc:校验码,一个字节。Len,Cmd,Payload
这三个部分的数据逐字节异
- 控制板通讯-串口通信
参考文档(可以点击下载:底盘驱动控制 M20 产品手册)