终端topic报文实体说明
<h3>1、属性上报:fjiot/R2116/push/{设备SN}/property</h3>
<h4>报文实体示例</h4>
<pre><code class="language-json">{ "sn":"njxxxxxxxx01",
"batteryLevel":101, //类型:整型 备注:电池电量
"cameraStatus":1, //类型:整型 备注:摄像头状态 0异常,1正常
"deviceStatus":0, //类型:整型 备注:设备状态: 0空闲; 1作业; 2用户暂停; 3作业完成; 4异常暂停; 5充电中
"vericalStatus":6, //类型:整型 备注:VCU状态 0静止; 1前进; 2后退; 3左转; 4右转; 5掉头; 6异常
"controlModel":0, //手动模式开启后,能够对行驶速度、滚筒速度、滚筒控制、手动充电、前后左右控制、ABCD点回充进行设置
"walkSpeed":2, //类型:整形 备注:行走速度 0:低 1:中 2:高
"drumSpeed":1, //类型:整形 备注:滚筒速度 0:低 1:中 2:高
"drumAction":1, //类型:整形 备注:滚筒控制 0:停 1:顺时针 2:逆时针
"manualCharge":0, //类型:整形 备注:手动充电 0:关 1:开
"location":{
"lat":0,
"lon":0
}, //类型:obj 备注:lat 纬度 lon经度
"timezone": "Asia/Shanghai", //类型:字符串 备注:车机时区
"systemTimestamp":"2021-10-25 14:52:42.078", //类型:字符串 备注:车机时间
"loadAvg":"4.21 4.25 3.64 1/144 8357", //类型:字符串 备注:CPU平均负载
"freeRam":782737408, //类型:整形 备注:空闲ram
"startUpTime":1606, //类型:整型 备注:开机时间
"totalRam":1055404032, //类型:整形 备注:总ram
"freeDisk": 62, //类型:整型 备注:空闲存储空间
"currentField":0, //类型:整型 备注:当前工作区
"remotePort":14378 //类型:整形 备注:远程ssh端口号
"ws_camera_type":1, //类型:整形 备注:Websocket摄像头图传类型 0:单目 1:双目
"escape_mode":1 //类型:整形 备注:脱困模式 0:禁用 1:启用
}</code></pre>
<h3>2、VCU异常/恢复事件上报:fjiot/R2116/push/{设备SN}/vcu</h3>
<h4>报文实体示例</h4>
<pre><code class="language-json">{
"sn":"njxxxxxxxx01",
"error":1, //0:无故障或故障已恢复 1:异常
"errorCode":"VCU异常" //故障编码
}</code></pre>
<h3>3、摄像头异常/恢复事件上报:fjiot/R2116/push/{设备SN}/media</h3>
<h4>报文实体示例</h4>
<pre><code class="language-json">{
"sn":"njxxxxxxxx01",
"error":1, //0:无故障或故障已恢复 1:异常
"errorCode":"摄像头异常" //故障编码
}</code></pre>
<h3>4、设备状态异常/恢复事件上报:fjiot/R2116/push/{设备SN}/media</h3>
<h4>报文实体示例</h4>
<pre><code class="language-json">{
"sn":"njxxxxxxxx01",
"error":1, //见下详细描述
"errorCode":"设备状态异常" //故障编码
}
</code></pre>
<table>
<thead>
<tr>
<th style="text-align: left;">error</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">0</td>
<td style="text-align: left;">无故障或故障已恢复</td>
</tr>
<tr>
<td style="text-align: left;">1</td>
<td style="text-align: left;">未知异常</td>
</tr>
<tr>
<td style="text-align: left;">2</td>
<td style="text-align: left;">用户造成的异常</td>
</tr>
<tr>
<td style="text-align: left;">3</td>
<td style="text-align: left;">工作时间超过了预设时间</td>
</tr>
<tr>
<td style="text-align: left;">4</td>
<td style="text-align: left;">odo超时(车机和vcu通信超时)</td>
</tr>
<tr>
<td style="text-align: left;">5</td>
<td style="text-align: left;">防撞条触发超过一定时间</td>
</tr>
<tr>
<td style="text-align: left;">6</td>
<td style="text-align: left;">工作区imu超过预设角</td>
</tr>
<tr>
<td style="text-align: left;">7</td>
<td style="text-align: left;">imu瞬时变化率超过预设值</td>
</tr>
<tr>
<td style="text-align: left;">8</td>
<td style="text-align: left;">出口处偏离轨迹</td>
</tr>
<tr>
<td style="text-align: left;">9</td>
<td style="text-align: left;">没有找到50cm功能钉</td>
</tr>
<tr>
<td style="text-align: left;">10</td>
<td style="text-align: left;">无停止转向次数超过预设值</td>
</tr>
<tr>
<td style="text-align: left;">11</td>
<td style="text-align: left;">防撞条触发次数超过预设值</td>
</tr>
<tr>
<td style="text-align: left;">12</td>
<td style="text-align: left;">工作距离超过最大长度预设值</td>
</tr>
<tr>
<td style="text-align: left;">13</td>
<td style="text-align: left;">防撞条异常,一直处于触发状态</td>
</tr>
<tr>
<td style="text-align: left;">14</td>
<td style="text-align: left;">磁钉提前切换推料模式</td>
</tr>
<tr>
<td style="text-align: left;">15</td>
<td style="text-align: left;">开关门继电器释放异常</td>
</tr>
</tbody>
</table>
<h3>5、作业任务情况上报:fjiot/R2116/push/{设备SN}/task/work</h3>
<h4>报文实体示例</h4>
<pre><code class="language-json">{
"sn":"njxxxxxxxx01",
"task":[{
"taskId":"1", //任务id
"taskCode":"", //任务编号
"taskStatus":1, //任务状态
"timestamp":12313123, //时间戳
"fieldMark":2, //作业场地
"fieldLoop":1 //作业圈数
}
]
}</code></pre>
<h3>6、本地定时作业任务同步:fjiot/R2116/push/{设备SN}/task/sync</h3>
<h4>报文实体示例</h4>
<pre><code class="language-json">{
"sn":"njxxxxxxxx01",
"task":[{
"taskId":"1", //任务id
"taskCode":"", //任务编号
"taskName":"", //任务名称
"fieldMark":[1,1,0,0,0,0,0,0], //作业场地
"fieldLoop":[1,1,0,0,0,0,0,0], //作业圈数
"startTime":[930,1035,1140,1255,1300,1405], //开始时间
"taskRepeat":1, //重复作业1:每天2:仅一次
"taskType":1, //循环类型1:单场作业2:多场作业3:循环作业
"loopType":2, //作业顺序 1:场地优先循环 2:作业次数优先循环
"distance":1 //离栏距离
}
]
}</code></pre>
<h3>7、每日作业任务同步:fjiot/R2116/push/{设备SN}/task/daily</h3>
<h4>报文实体示例</h4>
<pre><code class="language-json">{
"sn":"njxxxxxxxx01",
"task":{
"num":1, //子任务数量
"sub":[
{
"taskId":4, //任务组ID
"subId":1, //子任务序号
"time":"1646", //子任务时间
"field_mark":[ 1,0,0,0,0,0,0,0], //子任务设置工作场地
"field_loop":[ 1,0,0,0,0,0,0,0] //子任务设置工作圈数
}
]
}</code></pre>
<h3>8、设备返回充电桩上报:fjiot/R2116/push/{设备SN}/charge/home</h3>
<h4>报文实体示例</h4>
<pre><code class="language-json">{
"sn":"njxxxxxxxx01",
"status":1, //状态 1:开始2:结束 3:异常
"timestamp":123321 //时间戳
}</code></pre>
<h3>9、设备充电情况上报:fjiot/R2116/push/{设备SN}/charge/work</h3>
<h4>报文实体示例</h4>
<pre><code class="language-json">{
"sn":"njxxxxxxxx01",
"chargeStatus":1, //状态1:开始充电(车机开始执行充电行为)2:开始供电(充电桩开始向电池供电)3:完成充电(充电时长达到或电池充满)4:充电异常结束
"batteryLevel":13, //电量
"timestamp":131231 //时间戳
}</code></pre>
<h3>10、设备本地充电任务同步:fjiot/R2116/push/{设备SN}/charge/sync</h3>
<h4>报文实体示例</h4>
<pre><code class="language-json">{
"sn":"njxxxxxxxx01",
"chargeTaskStartTime":[930,1035,1140,1255,1300,1405] //充电开始时间
}</code></pre>
<h3>11、设备版本信息上报:fjiot/R2116/push/{设备SN}/version</h3>
<h4>报文实体示例</h4>
<pre><code class="language-json">{
"sn":"njxxxxxxxx01",
"driveVersion":"00.115", //行驶模块版本
"smartVersion":"1.0.0.27" //智能模块版本
}</code></pre>
<h3>12、设备应答:fjiot/R2116/push/{设备SN}/reply</h3>
<h4>报文实体示例</h4>
<pre><code class="language-json">{
}</code></pre>
<h3>13、服务端新建作业任务:fjiot/R2116/push/{设备SN}/server/task/new</h3>
<h4>报文实体示例</h4>
<pre><code class="language-json">{
"sn":"sn号",
"taskId": 1, //非必要字段,cmd为 1 时此参数无效,id 自动分配
"taskName": "test", //以下均为非必要字段,cmd为 2 时无效
"taskType": 1, //1单场 2多场 3巡线
"fieldMark": [1,0,0,0,0,0,0,0],
"fieldLoop": [1,0,0,0,0,0,0,0],
"startTime": [1646],
"taskRepeat": 1, //1每天 2单次
"loopType" : 1, //1场地优先 2循环次数优先
"taskDistanceFromFence": 0 //离栏距离
}</code></pre>
<h3>14、服务端更新作业任务:fjiot/R2116/push/{设备SN}/server/task/update</h3>
<h4>报文实体示例</h4>
<pre><code class="language-json">{
"sn":"sn号",
"taskId": 1, //
"taskName": "test", //以下均为非必要字段,cmd为 2 时无效
"taskType": 1, //1单场 2多场 3巡线
"fieldMark": [1,0,0,0,0,0,0,0],
"fieldLoop": [1,0,0,0,0,0,0,0],
"startTime": [1646],
"taskRepeat": 1, //1每天 2单次
"loopType" : 1, //1场地优先 2循环次数优先
"taskDistanceFromFence": 0 //离栏距离
}</code></pre>
<h3>15、服务端删除作业任务:fjiot/R2116/push/{设备SN}/server/task/delete</h3>
<h4>报文实体示例</h4>
<pre><code class="language-json">{
"sn":"sn号",
"taskId": 1 //
}</code></pre>
<h3>16、服务端设置充电任务:fjiot/R2116/push/{设备SN}/server/charge/set</h3>
<h4>报文实体示例</h4>
<pre><code class="language-json">{
"sn":"sn号" ,
"chargeTaskStartTime":[930,1035,1140,1255,1300,1405] //充电开始时间
}</code></pre>
<h3>17、设备返回充电桩:fjiot/R2116/push/{设备SN}/server/charge/back</h3>
<pre><code class="language-json">{
"sn":"sn号",
"fieldMark":1, //字段内容见物模型
"site":1 //字段内容见物模型
}</code></pre>
<h3>18、服务端修改速度参数:fjiot/R2116/push/{设备SN}/server/speed/set</h3>
<h4>报文实体示例</h4>
<pre><code class="language-json">{
"sn":"sn号",
"walkSpeed":1, //类型:整形 备注:行走速度 0:低 1:中 2:高
"drumSpeed":1, //类型:整形 备注:滚筒速度 0:低 1:中 2:高
"drumAction":1
}</code></pre>
<h3>19、服务端指令下发:fjiot/R2116/push/{设备SN}/server/command</h3>
<h4>报文实体示例</h4>
<p>如果是单值下发,只需要发指令值直接填入【command】即可;
如果没有指令值,比如【设备重启】,无需传【command】</p>
<pre><code class="language-json">{
"sn":"sn号",
"commandType":3, //见下方描述
"command":1 //简单指令需要变化的值,详情参见物模型
}
{
"sn":"sn号",
"commandType":1 //见下方描述
}</code></pre>
<table>
<thead>
<tr>
<th>commandType</th>
<th style="text-align: center;">对应描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td style="text-align: center;">设备重启</td>
</tr>
<tr>
<td>2</td>
<td style="text-align: center;">设备紧急停止</td>
</tr>
<tr>
<td>3</td>
<td style="text-align: center;">车辆行驶控制(VCU控制)</td>
</tr>
<tr>
<td>4</td>
<td style="text-align: center;">修改充电状态</td>
</tr>
<tr>
<td>5</td>
<td style="text-align: center;">图片推送控制 <br> command 0:下线(停止发送);<br>1:在线(发送图片)</td>
</tr>
<tr>
<td>6</td>
<td style="text-align: center;">修改手动模式</td>
</tr>
<tr>
<td>7</td>
<td style="text-align: center;">服务端同步终端作业任务</td>
</tr>
<tr>
<td>8</td>
<td style="text-align: center;">服务端同步终端每日任务</td>
</tr>
<tr>
<td>9</td>
<td style="text-align: center;">服务端同步终端充电任务</td>
</tr>
</tbody>
</table>