终端-网关协议
<h5>简要描述</h5>
<ul>
<li>网关与云端交互协议</li>
</ul>
<h5>请求 URL</h5>
<ul>
<li>参见环境信息</li>
</ul>
<h5>请求方式</h5>
<ul>
<li>emq</li>
</ul>
<h5>上行协议(属性上报,故障上报)</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">索引</th>
<th style="text-align: left;">内容</th>
<th style="text-align: left;">长度</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">0</td>
<td style="text-align: left;">起始符</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;">126</td>
<td style="text-align: left;">uint8</td>
</tr>
<tr>
<td style="text-align: left;">1</td>
<td style="text-align: left;">命令字</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;">50 属性上报 10:蓝牙故障</td>
<td style="text-align: left;">uint8</td>
</tr>
<tr>
<td style="text-align: left;">2</td>
<td style="text-align: left;">设备SN</td>
<td style="text-align: left;">18bytes</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">20</td>
<td style="text-align: left;">MAC地址</td>
<td style="text-align: left;">6bytes</td>
<td style="text-align: left;">00:1B:44:11:3A:B7</td>
<td style="text-align: left;">不带冒号</td>
</tr>
<tr>
<td style="text-align: left;">26</td>
<td style="text-align: left;">硬件版本主位</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">27</td>
<td style="text-align: left;">硬件版本次位</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">28</td>
<td style="text-align: left;">软件版本主位</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">29</td>
<td style="text-align: left;">软件版本次位</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">30</td>
<td style="text-align: left;">软件版本补丁位</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">31</td>
<td style="text-align: left;">联网方式</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;">0:有线;1:wifi;2:自动切换</td>
<td style="text-align: left;">unit8</td>
</tr>
<tr>
<td style="text-align: left;">32</td>
<td style="text-align: left;">有线连接状态</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;">0:已断开;1:已连接</td>
<td style="text-align: left;">unit8</td>
</tr>
<tr>
<td style="text-align: left;">33</td>
<td style="text-align: left;">wifi连接状态</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;">0:已断开;1:已连接</td>
<td style="text-align: left;">unit8</td>
</tr>
<tr>
<td style="text-align: left;">34</td>
<td style="text-align: left;">MESH组网联网状态</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;">0:已退出;1:已入网</td>
<td style="text-align: left;">unit8</td>
</tr>
<tr>
<td style="text-align: left;">35</td>
<td style="text-align: left;">上报时间</td>
<td style="text-align: left;">8bytes</td>
<td style="text-align: left;">long型时间戳</td>
</tr>
<tr>
<td style="text-align: left;">42</td>
<td style="text-align: left;">结束符</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;">127</td>
<td style="text-align: left;">uint8</td>
</tr>
</tbody>
</table>
<h5>上行协议(请求、应答)</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">索引</th>
<th style="text-align: left;">内容</th>
<th style="text-align: left;">长度</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">0</td>
<td style="text-align: left;">起始符</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;">126</td>
<td style="text-align: left;">uint8</td>
</tr>
<tr>
<td style="text-align: left;">1</td>
<td style="text-align: left;">命令字</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">uint8</td>
</tr>
<tr>
<td style="text-align: left;">2</td>
<td style="text-align: left;">设备SN</td>
<td style="text-align: left;">18bytes</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">20</td>
<td style="text-align: left;">上报时间</td>
<td style="text-align: left;">8bytes</td>
<td style="text-align: left;">long型时间戳</td>
</tr>
<tr>
<td style="text-align: left;">28</td>
<td style="text-align: left;">目标值长度</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">29</td>
<td style="text-align: left;">目标值</td>
<td style="text-align: left;"></td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">29+</td>
<td style="text-align: left;">结束符</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;">127</td>
<td style="text-align: left;">uint8</td>
</tr>
</tbody>
</table>
<h5>备注</h5>
<ul>
<li>对于应答,在终端设置失败时上报即可,成功无需上报。</li>
</ul>
<h5>下行协议(指令下发)</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">索引</th>
<th style="text-align: left;">内容</th>
<th style="text-align: left;">长度</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">0</td>
<td style="text-align: left;">起始符</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;">126</td>
<td style="text-align: left;">uint8</td>
</tr>
<tr>
<td style="text-align: left;">1</td>
<td style="text-align: left;">命令字</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">uint8</td>
</tr>
<tr>
<td style="text-align: left;">2</td>
<td style="text-align: left;">设备SN</td>
<td style="text-align: left;">18bytes</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">20</td>
<td style="text-align: left;">服务器时间</td>
<td style="text-align: left;">8bytes</td>
<td style="text-align: left;">long型时间戳</td>
</tr>
<tr>
<td style="text-align: left;">28</td>
<td style="text-align: left;">组播地址</td>
<td style="text-align: left;">2bytes</td>
<td style="text-align: left;">组播地址</td>
<td style="text-align: left;">unit16</td>
</tr>
<tr>
<td style="text-align: left;">30</td>
<td style="text-align: left;">设定目标值长度</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">uint8</td>
</tr>
<tr>
<td style="text-align: left;">31</td>
<td style="text-align: left;">目标值</td>
<td style="text-align: left;"></td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">31 + 目标值长度</td>
<td style="text-align: left;">结束符</td>
<td style="text-align: left;">127</td>
<td style="text-align: left;">0X7F</td>
<td style="text-align: left;">uint8</td>
</tr>
</tbody>
</table>
<h5>下行协议(定时任务下发)</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">索引</th>
<th style="text-align: left;">内容</th>
<th style="text-align: left;">长度</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">0</td>
<td style="text-align: left;">起始符</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;">126</td>
<td style="text-align: left;">uint8</td>
</tr>
<tr>
<td style="text-align: left;">1</td>
<td style="text-align: left;">命令字</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">uint8</td>
</tr>
<tr>
<td style="text-align: left;">20</td>
<td style="text-align: left;">网关SN</td>
<td style="text-align: left;">18bytes</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">38</td>
<td style="text-align: left;">服务器时间</td>
<td style="text-align: left;">8bytes</td>
<td style="text-align: left;">long型时间戳</td>
</tr>
<tr>
<td style="text-align: left;">46</td>
<td style="text-align: left;">组播地址</td>
<td style="text-align: left;">2bytes</td>
<td style="text-align: left;">组播地址</td>
<td style="text-align: left;">unit16</td>
</tr>
<tr>
<td style="text-align: left;">48</td>
<td style="text-align: left;">任务主状态</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">0整体任务关闭,1整体任务开启</td>
</tr>
<tr>
<td style="text-align: left;">49</td>
<td style="text-align: left;">任务类型</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">定时任务类型(0每天重复 1每周重复)</td>
</tr>
<tr>
<td style="text-align: left;">50</td>
<td style="text-align: left;">定时任务个数</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">unit8</td>
</tr>
<tr>
<td style="text-align: left;">51</td>
<td style="text-align: left;">定时任务字节数</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">unit8</td>
</tr>
<tr>
<td style="text-align: left;">52</td>
<td style="text-align: left;">开始时间</td>
<td style="text-align: left;">2bytes</td>
<td style="text-align: left;">一个表示时一个表示分 09:34</td>
</tr>
<tr>
<td style="text-align: left;">54</td>
<td style="text-align: left;">结束时间</td>
<td style="text-align: left;">2bytes</td>
<td style="text-align: left;">一个表示时一个表示分 13:23</td>
</tr>
<tr>
<td style="text-align: left;">56</td>
<td style="text-align: left;">重复周期</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;">00000000 最高位第七位为无效0 第6到第0位对应周一到周日</td>
</tr>
<tr>
<td style="text-align: left;">63</td>
<td style="text-align: left;">启用状态</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;">0禁用;1启用</td>
<td style="text-align: left;">unit8</td>
</tr>
<tr>
<td style="text-align: left;">64</td>
<td style="text-align: left;">定时任务ID</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">不定长</td>
</tr>
<tr>
<td style="text-align: left;"></td>
<td style="text-align: left;">结束符</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;">127</td>
<td style="text-align: left;">uint8</td>
</tr>
</tbody>
</table>
<h5>备注</h5>
<ul>
<li>在没有定时任务时,任务类型以后直接时结束符</li>
</ul>
<h5>下行协议(ota版本检查结果)</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">索引</th>
<th style="text-align: left;">内容</th>
<th style="text-align: left;">长度</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">0</td>
<td style="text-align: left;">起始符</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;">126</td>
<td style="text-align: left;">uint8</td>
</tr>
<tr>
<td style="text-align: left;">1</td>
<td style="text-align: left;">命令字</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;">66 固件版本检查响应</td>
<td style="text-align: left;">uint8</td>
</tr>
<tr>
<td style="text-align: left;">2</td>
<td style="text-align: left;">设备SN</td>
<td style="text-align: left;">18bytes</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">20</td>
<td style="text-align: left;">服务器时间</td>
<td style="text-align: left;">8bytes</td>
<td style="text-align: left;">long型时间戳</td>
</tr>
<tr>
<td style="text-align: left;">28</td>
<td style="text-align: left;">mesh地址</td>
<td style="text-align: left;">2byte</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">网关单播地址</td>
</tr>
<tr>
<td style="text-align: left;">30</td>
<td style="text-align: left;">固件版本major</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">uint8</td>
</tr>
<tr>
<td style="text-align: left;">31</td>
<td style="text-align: left;">固件版本minor</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">uint8</td>
</tr>
<tr>
<td style="text-align: left;">32</td>
<td style="text-align: left;">固件版本patch</td>
<td style="text-align: left;">1bytes</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">uint16</td>
</tr>
<tr>
<td style="text-align: left;">34</td>
<td style="text-align: left;">升级文件MD5</td>
<td style="text-align: left;">16bytes</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">50</td>
<td style="text-align: left;">升级文件大小</td>
<td style="text-align: left;">4bytes</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">uint32</td>
</tr>
<tr>
<td style="text-align: left;">54</td>
<td style="text-align: left;">升级文件URL</td>
<td style="text-align: left;"></td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">54+url长度 目标值长度</td>
<td style="text-align: left;">结束符</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;">127</td>
<td style="text-align: left;">uint8</td>
</tr>
</tbody>
</table>
<h5>下行协议(时钟同步响应)</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">索引</th>
<th style="text-align: left;">内容</th>
<th style="text-align: left;">长度</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">0</td>
<td style="text-align: left;">起始符</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;">126</td>
<td style="text-align: left;">uint8</td>
</tr>
<tr>
<td style="text-align: left;">1</td>
<td style="text-align: left;">命令字</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;"></td>
<td style="text-align: left;">uint8</td>
</tr>
<tr>
<td style="text-align: left;">2</td>
<td style="text-align: left;">设备SN</td>
<td style="text-align: left;">18bytes</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">20</td>
<td style="text-align: left;">服务器时钟</td>
<td style="text-align: left;">8bytes</td>
<td style="text-align: left;">long型时间戳</td>
</tr>
<tr>
<td style="text-align: left;">28</td>
<td style="text-align: left;">mesh地址</td>
<td style="text-align: left;">2bytes</td>
<td style="text-align: left;">网关单播地址</td>
</tr>
<tr>
<td style="text-align: left;">30</td>
<td style="text-align: left;">结束符</td>
<td style="text-align: left;">1byte</td>
<td style="text-align: left;">127</td>
<td style="text-align: left;">uint8</td>
</tr>
</tbody>
</table>
<h5>备注</h5>