以下内容为ControlBus 协议下slamware支持功能命令及响应总结,pdf版请点击这里下载。ControlBus详尽内容请参阅ControlBus 通讯接口协议手册。
Table 1 Request CMD Table
u8 | u8 | u8 | u8[] | u8 |
|
Flag | Length | CMD | Payload[n] | Checksum | Control Bus Packet |
---|---|---|---|---|---|
0x10 | Length[7:0] | CMD | Data | checksum | ----Standard Frame |
0x50 | Length[15:0] | CMD | Data | checksum | ----Long Frame |
CMD | NAME | DESCRIPTION | PAYLOAD[n] |
---|---|---|---|
0x00 | SYNC | 强制同步帧。用于实现通讯信道同步 | 随机填充数据,任意长度 |
0x01 | ECHO | ECHO 帧,用于测试 Slave 通讯状况 | 任意值 |
0xF8 | CTRL_BUS | Control Bus协议扩展,扩展请求命令由Payload中第一个字节决定(命令参见Table 4). | Control Bus协议数据包,参见Table 4 |
0x02 – 0x0F | Reserved | 保留 | NA |
Table 2 Response CMD Table
u8 | u8 | u8 | u8[] | u8 |
|
Flag | Length | Response | Payload[n] | Checksum | Control Bus Packet |
---|---|---|---|---|---|
0x10 | Length[7:0] | Resp | Data | checksum | ----Standard Frame |
0x50 | Length[15:0] | Resp | Data | checksum | ----Long Frame |
Response | NAME | DESCRIPTION | PAYLOAD[n] |
---|---|---|---|
0x00 | SYNC | 强制同步帧应答包 | 完整复制收到的请求帧 |
0x01 | ECHO | ECHO 帧应答包 | 完整复制收到的请求帧 |
0x02 | OK | <OK>当前请求正确执行或系统无异常 | 请求所需数据。 |
0x03 | ERROR | <Error>请求执行错误(错误码参见Table 3) | 错误码,详见Table 3 |
0xFF | INVALID | <Invalid>数据包接收不完整或者结构错误 | 无 |
其他 | Reserved | 保留 | NA |
Table 3 Error Code Table
Error | DESCRIPTION |
---|---|
0x10 | Slave 协议栈信道没有完成同步 |
0x20 | 请求命令包长度超过了当前 Slave 协议栈缓冲区承受范围 |
0x40 | 请求命令包校验和不匹配 |
0x8000 | 请求命令包中的 CMD 字段不被 Slave 支持 |
0x8001 | 请求命令在执行中遇到格式类错误,例如请求参数不符合规范 |
0x8002 | 请求命令在执行中遇到操作类错误,例如执行过程遇到问题而无法继续 |
Table 4 Control Bus Request Table
u8 | u8 | u8 | u8 | u8[] | u8 |
|
Flag | Length | CMD | Request | Data[n] | Checksum | Control Bus Packet: |
---|---|---|---|---|---|---|
0x10 | Length[7:0] | 0xF8 | CTRL_BUS_CMD | Data | checksum | ----Standard Frame |
0x50 | Length[15:0] | 0xF8 | CTRL_BUS_CMD | Data | checksum | ----Long Frame |
Request | NAME | DESCRIPTION | Data[n] |
---|---|---|---|
0x10 * | CONNECT_BASE | 请求连接外部系统 | 协议版本号(u8) |
0x20 * | GET_BASE_CONF | 请求获得外部系统的参数 | 无 |
0x21 | GET_BASE_CONF_ADV | 请求获得外部系统的参数(扩展)。SLAMWARE 先尝试该指令,若返回错误码0x8000,则再调用 0x20 | 无 |
0x30 * | GET_BASE_STATUS | 请求获取外部系统的电池电量,充电状态 | 无 |
0x31 * | GET_BASE_MOTOR_DATA | 请求外部系统返回轮组运行距离累计值 | 无 |
0x32 * | GET_BASE_SENSOR_DATA | 请求外部系统返回距离传感器的数据 | 无 |
0x33 * | GET_BASE_BUMPER_DATA | 请求外部系统返回触碰传感器的数据 | 无 |
0x34 * | GET_CHARGER_DATA | 请求外部系统返回自动回充的数据 | 自动回充的数据类型(u8) |
0x35 | GET_AUXILIARY_ANCHOR | 请求辅助定位传感器数据 | 无 |
0x40 * | SET_BASE_MOTOR | 请求外部系统控制轮组运动 | 运动速度(s32[4]) |
0x41 * | SET_V_AND_GET_DEADRECKON | 请求外部系统设置速度变量并获取上一个周期的Deadreckon数据。 | X轴向速度量(s32) Y轴向速度量(s32) 角速度量(s32) |
0x50 * | POLL_BASE_CMD | 查询外部系统是否有命令发送。外部系统只能在SLAMWARE Core发送外部系统控制命令查询请求的后才可以发送控制命令。外部系统的命令代码,只能是SLAMWARE Core支持的命令代码。(外部命令参见Table 5)。 | 无 |
0x5F * | POLL_BASE_ANS_CMD | 回应外部系统命令请求 | 无 |
0x60 * | SEND_EVENT | 通知外部系统 SLAMWARE CORE事件.(事件码参见Table 6) | 系统事件编号(u8)详见Table 6 |
0x90 * | HEALTH_MGMT | 获取外部系统健康状况 | 0x01 |
*外部系统必须响应
Table 5 Control Bus External CMD Table
u8 | u8 | u8 | u8 | u8[] | u8 |
|
Flag | Length | Response | CMD | Data[n] | Checksum | Control Bus Packet: |
---|---|---|---|---|---|---|
0x10 | Length[7:0] | 0x02 | CTRL_BUS_CMD | Data | checksum | ----Standard Frame |
0x50 | Length[15:0] | 0x02 | CTRL_BUS_CMD | Data | checksum | ----Long Frame |
CMD | NAME | DESCRIPTION | Data[n] |
---|---|---|---|
0x51 | GET_INFO | 获取SLAMWARE CORE系统信息,包含软硬件版本,网络配置。 | 无 |
0x52 | RESET_WIFI | 重置SLAMWARE CORE无线网络 | 无 |
0x53 | FW_UPGRADING | 更新SLAMWARE CORE固件 | 无 |
0x80 | START_SWEEP | 开始清扫(仅针对扫地机版本) | 无 |
0x81 | STOP_SWEEP | 结束清扫(仅针对扫地机版本) | 无 |
0x82 | SPOT_SWEEP | 定点清扫(仅针对扫地机版本) | 无 |
0x90 | GET_HEALTH | 获取健康状况 | 无 |
0xA0 | MOVE_FORWARD | 向前 | 无 |
0xA1 | MOVE_BACKWARD | 向后 | 无 |
0xA2 | TURN_LEFT | 向左 | 无 |
0xA3 | TURN_RIGHT | 向右 | 无 |
0xAF | CANCEL_ACTION | 取消上一步操作 | 无 |
0xB0 | GET_AUXILIARY_ANCHOR | 获取辅助定位传感器 | 无 |
Table 6 Slamcore System Event Table
CMD | NAME | DESCRIPTION |
---|---|---|
0x61 | LIDAR_CONN_FAIL | LIDAR连接失败 |
0x62 | LIDAR_RAMPUP_FAIL | LIDAR启动失败 |
0x63 | SYSTEM_UP_OK | 系统启动成功 |
0x64 | FIRMWARE_UPDATE | 系统固件升级 |
0x65 | CORE_DISCONNECT | 系统断开连接 |
0x66 | FIRMWARE_UPDATE_OK | 固件升级成功 |
0x80 | START_SWEEP | 通知外部系统清扫开始(仅针对扫地机版本) |
0x81 | END_SWEEP | 通知外部系统清扫结束(仅针对扫地机版本) |