珠海云洲无人艇对外通信协议文档
协议版本
V1.0
发布日期:2025年7月28日
目录
- 协议概述
- 数据帧格式
- 数据结构规范
- 字段详细说明
- 数据示例
1. 协议概述
本协议定义了珠海云洲无人艇系统的数据传输规范,采用JSON格式进行数据交换。协议设计解决了TCP通信中的粘包问题,通过特殊分隔符确保数据完整性。
2. 数据帧格式
为解决TCP粘包问题,每条JSON数据需添加特殊分隔符:
$${JSON数据}##
- 起始符:
$$
- 结束符:
##
- 多数据包处理:接收方需按
$$和##切分数据流
粘包处理示例:
原始数据包:
{ "equip_id": "141032", ... }
{ "equip_id": "141033", ... }
传输格式:
$${ "equip_id": "141032", ... }##$${ "equip_id": "141033", ... }##
3. 数据结构规范
顶层结构
| 字段 |
类型 |
必填 |
描述 |
示例值 |
| equip_id |
字符串 |
是 |
设备唯一标识符 |
"141032" |
| company |
字符串 |
是 |
所属公司 |
"珠海云洲" |
| crs |
字符串 |
是 |
坐标系标准 |
"WGS84" |
| date |
字符串 |
是 |
数据采集时间 |
"2025-07-28 10:21:22" |
| lon |
字符串 |
是 |
经度坐标 |
"113.1234567" |
| lat |
字符串 |
是 |
纬度坐标 |
"22.1234567" |
| info |
对象 |
是 |
设备状态信息 |
{...} |
设备状态信息 (info)
| 字段 |
类型 |
必填 |
描述 |
| usv_mode |
字符串 |
是 |
工作模式 |
| prop |
数组 |
是 |
推进器信息 |
| battery |
数组 |
是 |
电池信息 |
| generator |
数组 |
否 |
发电机信息(可选) |
| fuel |
数组 |
否 |
油量信息(可选) |
| status |
对象 |
是 |
航行状态参数 |
4. 字段详细说明
4.1 航行状态 (status)
| 字段 |
类型 |
单位 |
描述 |
示例值 |
| heading |
字符串 |
° |
航向 |
"0.000000" |
| yaw |
字符串 |
° |
艏向 |
"0.000000" |
| pitch |
字符串 |
° |
纵摇 |
"0.000000" |
| roll |
字符串 |
° |
横摇 |
"0.000000" |
| speed |
字符串 |
kn |
航速 |
"0.000000" |
4.2 工作模式 (usv_mode)
| 值 |
描述 |
| 待机模式 |
设备待机状态 |
| 其他模式 |
根据设备定义 |
4.3 推进器信息 (prop)
| 字段 |
类型 |
单位 |
描述 |
备注 |
| index |
整数 |
- |
推进器序号 |
0=左推进器, 1=右推进器 |
| rpm |
整数 |
rpm |
推进器转速 |
|
4.4 电池信息 (battery)
| 字段 |
类型 |
单位 |
描述 |
备注 |
| index |
整数 |
- |
电池序号 |
|
| name |
字符串 |
- |
电池名称 |
如"设备电池1" |
| vol |
字符串 |
V |
电压 |
|
| ele |
字符串 |
A |
电流(可选) |
无电流信息时字段缺失 |
| soc |
整数 |
% |
剩余电量(可选) |
无电量信息时字段缺失 |
4.5 发电机信息 (generator)
| 字段 |
类型 |
单位 |
描述 |
备注 |
| index |
整数 |
- |
发电机序号 |
|
| rpm |
整数 |
rpm |
转速 |
|
| load |
整数 |
% |
负载率 |
|
| vol |
字符串 |
V |
启动电池电压 |
|
4.6 油量信息 (fuel)
| 字段 |
类型 |
单位 |
描述 |
备注 |
| index |
整数 |
- |
油箱序号 |
|
| name |
字符串 |
- |
油箱名称 |
如"右前舱油箱" |
| capacity |
整数 |
% |
剩余油量 |
|
5. 数据示例
{
"equip_id": "141032",
"company": "珠海云洲",
"crs": "WGS84",
"date": "2025-07-28 10:21:22",
"lon": "22.1234567",
"lat": "113.1234567",
"info": {
"usv_mode": "待机模式",
"prop": [
{"index": 0, "rpm": 800},
{"index": 1, "rpm": 900}
],
"battery": [
{"index": 5, "vol": "11.2", "name": "设备电池3"},
{"index": 4, "vol": "11.2", "name": "设备电池2"}
],
"generator": [
{"index": 1, "rpm": 1110, "payload": 70, "vol": 13},
{"index": 0, "rpm": 1110, "payload": 70, "vol": 13}
],
"fuel": [
{"index": 3, "name": "右前舱油箱", "capacity": 30},
{"index": 4, "name": "右后仓油箱", "capacity": 40}
],
"status": {
"heading": "0.000000",
"yaw": "0.000000",
"pitch": "0.000000",
"roll": "0.000000",
"speed": "0.000000"
}
}
}
修订记录
| 版本 |
日期 |
修改说明 |
修改人 |
| V1.0 |
2025-07-28 |
初始版本发布 |
詹佳欣 |