浏览代码

docs(gw_jt808): fix and reformat data exchange guide

JimMoen 2 年之前
父节点
当前提交
725e7a17bb
共有 1 个文件被更改,包括 260 次插入178 次删除
  1. 260 178
      apps/emqx_gateway_jt808/doc/Data_Exchange_Guide_CN.md

+ 260 - 178
apps/emqx_gateway_jt808/doc/Data_Exchange_Guide_CN.md

@@ -1,8 +1,6 @@
-# emqx-jt808
+# JT/T 808 2013 网关数据交换格式
 
-JT/T 808 2013 协议接入网关
-
-该文档定义了 Plugins **emqx_jt808** 和 **EMQX** 之间数据交换的格式
+该文档定义了 **emqx_jt808** 和 **EMQX** 之间数据交换的格式
 
 约定:
 - Payload 采用 Json 格式进行组装
@@ -13,35 +11,35 @@ Json 结构示例
 ## 终端到服务器
 ```json
 {
-    "header" : {
-        "msg_id" : 1,
-        "encrypt": 0,
-        "len": VAL,
-        "phone": 13900000000,
-        "msg_sn": 0
-        },
-    "body": {
-        "seq": 1,
-        "id": 1,
-        "result": 0
-        }
+  "header" : {
+    "msg_id" : 1,
+    "encrypt": 0,
+    "len": VAL,
+    "phone": 13900000000,
+    "msg_sn": 0
+  },
+  "body": {
+    "seq": 1,
+    "id": 1,
+    "result": 0
+  }
 }
 ```
 
 ## 服务器到终端
 ```json
 {
-    "header": {
-        "msg_id": 32769,
-        "encrypt": 0,
-        "phone": 13900000000,
-        "msg_sn": 0
-        },
-    "body": {
-        "seq": 1,
-        "id": 1,
-        "result": 0
-        }
+  "header": {
+    "msg_id": 32769,
+    "encrypt": 0,
+    "phone": 13900000000,
+    "msg_sn": 0
+  },
+  "body": {
+    "seq": 1,
+    "id": 1,
+    "result": 0
+  }
 }
 ```
 
@@ -75,7 +73,8 @@ Json 结构示例
 
 ### 消息体字段对照表
 
-- 终端通用应答 `"msg_id": 1` 0x0001
+#### 终端通用应答 `"msg_id": 1` 0x0001
+
 | Field      | Json Key name | Value Type | Value Type in Json |
 |:----------:|:-------------:|:----------:|:------------------:|
 | 应答流水号 | seq           | word       | integer            |
@@ -83,7 +82,8 @@ Json 结构示例
 | 结果       | result        | byte       | integer            |
 
 
-- 平台通用应答 `"msg_id": 32769` 0x8001
+#### 平台通用应答 `"msg_id": 32769` 0x8001
+
 | Field      | Json Key name | Value Type | Value Type in Json |
 |:----------:|:-------------:|:----------:|:------------------:|
 | 应答流水号 | seq           | word       | integer            |
@@ -91,11 +91,13 @@ Json 结构示例
 | 结果       | result        | byte       | integer            |
 
 
-- 终端心跳 `"msg_id": 2` 0x0002
+#### 终端心跳 `"msg_id": 2` 0x0002
+
 空 Json
 
 
-- 补传分包请求 `"msg_id": 32771` 0x8003
+#### 补传分包请求 `"msg_id": 32771` 0x8003
+
 | Field          | Json Key name | Value Type     | Value Type in Json |
 |:--------------:|:-------------:|:--------------:|:------------------:|
 | 原始消息流水号 | seq           | word           | integer            |
@@ -103,7 +105,8 @@ Json 结构示例
 | 重传包 ID 列表 | ids           | byte(2*length) | list of integer    |
 
 
-- 终端注册 `"msg_id": 256` 0x0100
+#### 终端注册 `"msg_id": 256` 0x0100
+
 | Field     | Json Key name  | Value Type | Value Type in Json |
 |:---------:|:--------------:|:----------:|:------------------:|
 | 省域 ID   | province       | word       | integer            |
@@ -115,28 +118,34 @@ Json 结构示例
 | 车辆标识  | license_number | string     | string             |
 
 
-- 终端注册应答 `"msg_id": 33024` 0x8100
+#### 终端注册应答 `"msg_id": 33024` 0x8100
+
 | Field      | Json Key name | Value Type | Value Type in Json |
 |:----------:|:-------------:|:----------:|:------------------:|
 | 应答流水号 | seq           | word       | integer            |
 | 结果       | result        | byte       | integer            |
 
 只有成功后才有此字段
+
 | Optional Field | Json Key name | Value Type | Value Type in JSON |
+|:--------------:|---------------|------------|--------------------|
 | 鉴权码         | auth_code     | string     | string             |
 
 
-- 终端注销 `"msg_id": 3` 0x0003
+#### 终端注销 `"msg_id": 3` 0x0003
+
 空 Json
 
 
-- 终端鉴权 `"msg_id": 258` 0x0102
+#### 终端鉴权 `"msg_id": 258` 0x0102
+
 | Field  | Json Key name | Value Type | Value Type in Json |
 |:------:|:-------------:|:----------:|:------------------:|
 | 鉴权码 | code          | string     | string             |
 
 
-- 设置终端参数 `"msg_id": 33027` 0x8103
+#### 设置终端参数 `"msg_id": 33027` 0x8103
+
 | Field      | Json Key name | Value Type | Value Type in Json                                     |
 |:----------:|:-------------:|:----------:|:------------------------------------------------------:|
 | 参数总数   | length        | byte       | integer                                                |
@@ -147,11 +156,13 @@ Json 结构示例
 参数 ID 说明见协议规定.
 
 
-- 查询终端参数 `"msg_id": 33028` 0x8104
+#### 查询终端参数 `"msg_id": 33028` 0x8104
+
 空 Json
 
 
-- 查询指定终端参数 `"msg_id": 33030` 0x8106
+#### 查询指定终端参数 `"msg_id": 33030` 0x8106
+
 | Field        | Json Key name | Value Type     | Value Type in Json               |
 |:------------:|:-------------:|:--------------:|:--------------------------------:|
 | 参数总数     | length        | byte           | integer                          |
@@ -160,7 +171,8 @@ Json 结构示例
 参数 ID 列表中元素为 integer
 
 
-- 查询终端应答参数 `"msg_id": 260` 0x0104
+#### 查询终端应答参数 `"msg_id": 260` 0x0104
+
 | Field        | Json Key name | Value Type | Value Type in Json                                     |
 |:------------:|:-------------:|:----------:|:------------------------------------------------------:|
 | 应答流水号   | seq           | word       | integer                                                |
@@ -172,18 +184,21 @@ Json 结构示例
 参数 ID 说明见协议规定.
 
 
-- 终端控制 `"msg_id": 33029 ` 0x8105
+#### 终端控制 `"msg_id": 33029 ` 0x8105
+
 | Field    | Json Key name | Value Type | Value Type in Json |
 |:--------:|:-------------:|:----------:|:------------------:|
 | 命令字   | command       | byte       | integer            |
 | 命令参数 | param         | string     | string             |
 
 
-- 查询终端属性 `"msg_id": 33031` 0x8107
+#### 查询终端属性 `"msg_id": 33031` 0x8107
+
 空 Json
 
 
-- 查询终端属性应答 `"msg_id": 263` 0x0107
+#### 查询终端属性应答 `"msg_id": 263` 0x0107
+
 | Field             | Json Key name    | Value Type | Value Type in Json |
 |:-----------------:|:----------------:|:----------:|:------------------:|
 | 终端类型          | type             | word       | integer            |
@@ -196,10 +211,11 @@ Json 结构示例
 | GNSS 模块属性     | gnss_prop        | byte       | integer            |
 | 通信模块属性      | comm_prop        | byte       | integer            |
 
+- 终端硬件版本号长度、终端固件版本号长度,将被用于二进制报文解析,不向上暴露
 
 
-- 下发终端升级包 `"msg_id": 33032` 0x8108
+#### 下发终端升级包 `"msg_id": 33032` 0x8108
+
 | Field          | Json Key name | Value Type | Value Type in Json     |
 |:--------------:|:-------------:|:----------:|:----------------------:|
 | 升级类型       | type          | byte       | integer                |
@@ -210,14 +226,16 @@ Json 结构示例
 | 升级数据包     | firmware      | binary     | string(base64 encoded) |
 
 
-- 终端升级结果通知 `"msg_id": 264` 0x0108
+#### 终端升级结果通知 `"msg_id": 264` 0x0108
+
 | Field    | Json Key name | Value Type | Value Type in Json |
 |:--------:|:-------------:|:----------:|:------------------:|
 | 升级类型 | type          | byte       | integer            |
 | 升级结果 | result        | byte       | integer            |
 
 
-- 位置信息汇报 `"msg_id": 512` 0x0200
+#### 位置信息汇报 `"msg_id": 512` 0x0200
+
 | Field                | Json Key name | Value Type | Value Type in Json |
 |:--------------------:|:-------------:|:----------:|:------------------:|
 | 报警标志             | alarm         | dword      | integer            |
@@ -230,11 +248,13 @@ Json 结构示例
 | 时间                 | time          | bcd(6)     | string             |
 
 | Optional Field     | Json Key name | Value Type | Value Type in JSON |
+|:------------------:|:-------------:|:----------:|:------------------:|
 | 位置附加信息项列表 | extra         | -          | map                |
 
-%% TODO: refine alarm mroe details
+<!-- TODO: refine alarm mroe details -->
+
+- 位置附加信息项列表, 在 `extra` 中
 
-位置附加信息项列表, 在 `extra` 中
 | Field (附加信息描述)              | Json Key name   | Value Type | Value Type in Json     |
 |:---------------------------------:|:---------------:|:----------:|:----------------------:|
 | 里程                              | mileage         | dword      | integer                |
@@ -250,44 +270,51 @@ Json 结构示例
 | 无线通信网络信号强度              | rssi            | byte       | integer                |
 | GNSS 定位卫星数                   | gnss_sat_num    | byte       | integer                |
 | 后续自定义信息长度                | custome         | -          | string(base64 encoded) |
-| %% TODO 自定义区域                |                 |            |                        |
+| ## TODO 自定义区域                |                 |            |                        |
+
+- 超速报警附加信息(长度1或5), 置于 map `overspeed_alarm` 内
 
-超速报警附加信息(长度1或5), 置于 map `overspeed_alarm` 内
 | Field    | Json Key name | Value Type | Value Type in Json |
 |:--------:|:-------------:|:----------:|:------------------:|
 | 位置类型 | type          | byte       | integer            |
 
 | Optional Field | Json Key name | Value Type | Value Type in JSON |
+|:--------------:|:-------------:|:----------:|:------------------:|
 | 区域或路段 ID  | id            | dword      | integer            |
 
 
-进出区域/路线报警附加信息, 置于 map `in_out_alarm` 内
+- 进出区域/路线报警附加信息, 置于 map `in_out_alarm` 内
+
 | Field         | Json Key name | Value Type | Value Type in Json |
 |:-------------:|:-------------:|:----------:|:------------------:|
 | 位置类型      | type          | byte       | integer            |
 | 区域或路段 ID | id            | dword      | integer            |
-| 方向          | direction     | byte       | integer                   |
+| 方向          | direction     | byte       | integer            |
+
+- 路段行驶时间不足/过长报警附加信息, 置于 map `path_time_alarm` 内
 
-路段行驶时间不足/过长报警附加信息, 置于 map `path_time_alarm` 内
 | Field        | Json Key name | Value Type | Value Type in Json |
 |:------------:|:-------------:|:----------:|:------------------:|
 | 路段 ID      | id            | dword      | integer            |
 | 路段行驶时间 | time          | word       | integer            |
 | 结果         | result        | byte       | integer            |
 
-IO 状态位, 置于 map `io_status` 内
+- IO 状态位, 置于 map `io_status` 内
+
 | Field        | Json Key name | Value Type | Value Type in Json |
 |:------------:|:-------------:|:----------:|:------------------:|
 | 深度休眠状态 | deep_sleep    | 1 bit      | integer            |
 | 休眠状态     | sleep         | 1 bit      | integer            |
 
-模拟量, 置于 map  `analog` 内
+- 模拟量, 置于 map  `analog` 内
+
 | Field    | Json Key name | Value Type | Value Type in Json |
 |:--------:|:-------------:|:----------:|:------------------:|
 | 模拟量 0 | ad0           | 16 bits    | integer            |
 | 模拟量 1 | ad1           | 16 bits    | integer            |
 
-扩展车辆信号状态位, 置于 map `extra` 内
+- 扩展车辆信号状态位, 置于 map `extra` 内
+
 | Field        | Json Key name   | Value Type | Value Type in Json                         |
 |:------------:|:---------------:|:----------:|:------------------------------------------:|
 | 信号         | signal          | - 2 bits   | map, `{"low_beam": VAL, "high_beam": VAL}` |
@@ -305,7 +332,8 @@ IO 状态位, 置于 map `io_status` 内
 | 加热器工作   | heater          | 1 bit      | integer                                    |
 | 离合器状态   | cluth           | 1 bit      | integer                                    |
 
-信号状态, 置于 map `signal` 内
+- 信号状态, 置于 map `signal` 内
+
 | Field      | Json Key name | Value Type | Value Type in Json |
 |:----------:|:-------------:|:----------:|:------------------:|
 | 近光灯信号 | low_beam      | 1 bit      | integer            |
@@ -313,107 +341,113 @@ IO 状态位, 置于 map `io_status` 内
 
 example:
-```
+```json
 {
-    "header" : {
-        "msg_id" : 1,
-        "encrypt": 0,
-        "len": VAL,
-        "phone": 13900000000,
-        "msg_sn": 0
-    },
-    "body": {
-        "alarm": VAL,
-        "status": VAL,
-        "latitude": VAL,
-        "longitude": VAL,
-        "altitude": VAL,
-        "speed": VAL,
-        "direction": VAL,
+  "header" : {
+    "msg_id" : 1,
+    "encrypt": 0,
+    "len": VAL,
+    "phone": 13900000000,
+    "msg_sn": 0
+  },
+  "body": {
+    "alarm": VAL,
+    "status": VAL,
+    "latitude": VAL,
+    "longitude": VAL,
+    "altitude": VAL,
+    "speed": VAL,
+    "direction": VAL,
+    "time": VAL,
+    "extra": {
+      "mileage": VAL,
+      "fuel_unit": VAL,
+      "speed": VAL,
+      "alarm_id": VAL,
+      "overspeed_alarm": {
+        "type": VAL,
+        "id": VAL
+      },
+      "in_out_alarm": {
+        "type": VAL,
+        "id": VAL,
+        "direction": VAL
+      },
+      "path_time_alarm": {
+        "id": VAL,
         "time": VAL,
-        "extra": {
-            "mileage": VAL,
-            "fuel_unit": VAL,
-            "speed": VAL,
-            "alarm_id": VAL,
-            "overspeed_alarm": {
-                "type": VAL,
-                "id": VAL
-            },
-            "in_out_alarm": {
-                "type": VAL,
-                "id": VAL,
-                "direction": VAL
-            },
-            "path_time_alarm": {
-                "id": VAL,
-                "time": VAL,
-                "result": VAL
-            },
-            "signal": {
-                "low_beam": VAL,
-                "high_beam": VAL
-            },
-            "right_turn": VAL,
-            "left_turn": VAL,
-            "break": VAL,
-            "reverse": VAL,
-            "fog": VAL,
-            "side_marker": VAL,
-            "horn": VAL,
-            "air_conditioner": VAL,
-            "neutral": VAL,
-            "retarder": VAL,
-            "abs": VAL,
-            "heater": VAL,
-            "cluth": VAL,
-            "io_status": {
-                "deep_sleep": VAL,
-                "sleep": VAL
-            },
-            "analog": {
-                "ad0": VAL,
-                "ad1": VAL
-            }
-        }
+        "result": VAL
+      },
+      "signal": {
+        "low_beam": VAL,
+        "high_beam": VAL
+      },
+      "right_turn": VAL,
+      "left_turn": VAL,
+      "break": VAL,
+      "reverse": VAL,
+      "fog": VAL,
+      "side_marker": VAL,
+      "horn": VAL,
+      "air_conditioner": VAL,
+      "neutral": VAL,
+      "retarder": VAL,
+      "abs": VAL,
+      "heater": VAL,
+      "cluth": VAL,
+      "io_status": {
+        "deep_sleep": VAL,
+        "sleep": VAL
+      },
+      "analog": {
+        "ad0": VAL,
+        "ad1": VAL
+      }
     }
+  }
 }
 ```
 
 
-- 位置信息查询 `"msg_id": 33281` 0x8201
+#### 位置信息查询 `"msg_id": 33281` 0x8201
+
 空 Json
 
 
-- 位置信息查询应答 `"msg_id": 513` 0x0201
+#### 位置信息查询应答 `"msg_id": 513` 0x0201
+
 | Field        | Json Key name | Value Type | Value Type in Json |
 |:------------:|:-------------:|:----------:|:------------------:|
 | 应答流水号   | seq           | word       | integer            |
 | 位置信息汇报 | params        | -          | map                |
 
 
-- 临时位置跟踪控制 `"msg_id": 33282` 0x8202
+#### 临时位置跟踪控制 `"msg_id": 33282` 0x8202
+
 | Field          | Json Key name | Value Type | Value Type in Json |
 |:--------------:|:-------------:|:----------:|:------------------:|
 | 时间间隔       | period        | word       | integer            |
 | 跟踪位置有效期 | expiry        | dword      | integer            |
 
 
-- 人工确认报警消息 `"msg_id": 33283` 0x8203
+#### 人工确认报警消息 `"msg_id": 33283` 0x8203
+
 | Field            | Json Key name | Value Type | Value Type in Json |
 |:----------------:|:-------------:|:----------:|:------------------:|
 | 报警消息流水号   | seq           | word       | integer            |
 | 人工确认报警类型 | type          | dword      | integer            |
 
 
-- 文本信息下发 `"msg_id": 33536` 0x8300
+#### 文本信息下发 `"msg_id": 33536` 0x8300
+
 | Field    | Json Key name | Value Type | Value Type in Json |
 |:--------:|:-------------:|:----------:|:------------------:|
 | 标志     | flag          | byte       | integer            |
 | 文本信息 | text          | string     | string             |
 
 
-- 事件设置 `"msg_id": 33537` 0x8301
+#### 事件设置 `"msg_id": 33537` 0x8301
+
 | Field        | Json Key name | Value Type | Value Type in Json                                                |
 |:------------:|:-------------:|:----------:|:-----------------------------------------------------------------:|
 | 设置类型     | type          | byte       | integer                                                           |
@@ -424,33 +458,37 @@ example:
 | 事件内容     | content       | string     | string                                                            |
 
 
-- 事件报告 `"msg_id": 769` 0x0301
+#### 事件报告 `"msg_id": 769` 0x0301
+
 | Field   | Json Key name | Value Type | Value Type in Json |
 |:-------:|:-------------:|------------|:------------------:|
 | 事件 ID | id            | byte       | integer            |
 
 
-- 提问下发 `"msg_id": 33538` 0x8302
-| Field        | Json Key name | Value Type | Value Type in Json                                              |
-|:------------:|:-------------:|:----------:|:---------------------------------------------------------------:|
-| 标志         | flag          | byte       | integer                                                         |
-| 问题内容长度 | length        | byte       | integer                                                         |
-| 问题         | question      | string     | string                                                          |
+#### 提问下发 `"msg_id": 33538` 0x8302
+
+| Field        | Json Key name | Value Type | Value Type in Json                                             |
+|:------------:|:-------------:|:----------:|:--------------------------------------------------------------:|
+| 标志         | flag          | byte       | integer                                                        |
+| 问题内容长度 | length        | byte       | integer                                                        |
+| 问题         | question      | string     | string                                                         |
 | 候选答案列表 | answers       | list       | list of answer. `[{"id": ID, "len": LEN, "answer": ANS}, ...]` |
-| 答案 ID      | id            | byte       | integer                                                         |
-| 答案内容长度 | len           | byte       | integer                                                         |
-| 答案内容     | answer        | string     | string                                                          |
+| 答案 ID      | id            | byte       | integer                                                        |
+| 答案内容长度 | len           | byte       | integer                                                        |
+| 答案内容     | answer        | string     | string                                                         |
+
+<!-- TODO: len -> length or other length -> len -->
 
-%% TODO: len -> length or other length -> len
+#### 提问应答 `"msg_id": 770` 0x0302
 
-- 提问应答 `"msg_id": 770` 0x0302
 | Field      | Json Key name | Value Type | Value Type in Json |
 |:----------:|:-------------:|:----------:|:------------------:|
 | 应答流水号 | seq           | word       | integer            |
 | 答案 ID    | id            | byte       | integer            |
 
 
-- 信息点播菜单设置 `"msg_id": 33539` 0x8303
+#### 信息点播菜单设置 `"msg_id": 33539` 0x8303
+
 | Field        | Json Key name | Value Type | Value Type in Json |
 |:------------:|:-------------:|:----------:|:------------------:|
 | 设置类型     | type          | byte       | integer            |
@@ -461,14 +499,16 @@ example:
 | 信息名称     | info          | string     | string             |
 
 
-- 信息点播/取消 `"msg_id": 771` 0x0303
+#### 信息点播/取消 `"msg_id": 771` 0x0303
+
 | Field         | Json Key name | Value Type | Value Type in Json |
 |:-------------:|:-------------:|:----------:|:------------------:|
 | 信息类型      | id            | byte       | integer            |
 | 点拨/取消标志 | flag          | byte       | integer            |
 
 
-- 信息服务 `"msg_id": 33540` 0x8304
+#### 信息服务 `"msg_id": 33540` 0x8304
+
 | Field    | Json Key name | Value Type | Value Type in Json |
 |:--------:|:-------------:|:----------:|:------------------:|
 | 信息类型 | type          | byte       | integer            |
@@ -476,14 +516,16 @@ example:
 | 信息内容 | info          | string     | string             |
 
 
-- 电话回拨 `"msg_id": 33792` 0x8400
+#### 电话回拨 `"msg_id": 33792` 0x8400
+
 | Field    | Json Key name | Value Type | Value Type in Json |
 |:--------:|:-------------:|:----------:|:------------------:|
 | 标志     | type          | byte       | integer            |
 | 电话号码 | phone         | string     | string             |
 
 
-- `"msg_id": 33793` 0x8401
+#### 设置电话本 `"msg_id": 33793` 0x8401
+
 | Field      | Json Key name | Value Type | Value Type in Json |
 |:----------:|:-------------:|:----------:|:------------------:|
 | 设置类型   | type          | byte       | integer            |
@@ -496,23 +538,28 @@ example:
 | 联系人     | name          | string     | string             |
 
 联系人项示例
-`[{"type": TYPE, "phone_len", PH_LEN, "phone": PHONE, "name_len": NAME_LEN, "name": NAME}, ...]`
+```json
+[{"type": TYPE, "phone_len", PH_LEN, "phone": PHONE, "name_len": NAME_LEN, "name": NAME}, ...]
+```
+
 
+#### 车辆控制 `"msg_id": 34048` 0x8500
 
-- `"msg_id": 34048` 0x8500
 | Field    | Json Key name | Value Type | Value Type in Json |
 |:--------:|:-------------:|:----------:|:------------------:|
 | 标志控制 | flag          | byte       | integer            |
 
 
-- `"msg_id": 1280` 0x0500
+#### 车辆控制应答 `"msg_id": 1280` 0x0500
+
 | Field              | Json Key name | Value Type | Value Type in Json |
 |:------------------:|:-------------:|:----------:|:------------------:|
 | 应答流水号         | seq           | word       | integer            |
 | 位置信息汇报消息体 | location      | map        | map of location    |
 
 
-- `"msg_id": 34304` 0x8600
+#### 设置圆形区域 `"msg_id": 34304` 0x8600
+
 | Field        | Json Key name      | Value Type | Value Type in Json |
 |:------------:|:------------------:|:----------:|:------------------:|
 | 设置属性     | type               | byte       | integer            |
@@ -529,7 +576,8 @@ example:
 | 超速持续时间 | overspeed_duration | byte       | integer            |
 
 区域列表示例
-`[{"id": ID,
+```json
+[{"id": ID,
    "flag": FLAG,
    "center_latitude": CEN_LAT,
    "center_longitude": CEN_LON,
@@ -540,10 +588,12 @@ example:
    "overspeed_duration", OVERSPEED_DURATION
    },
   ...
- ]`
+ ]
+```
+
 
+#### 删除圆形区域 `"msg_id": 34305` 0x8601
 
-- 删除圆形区域 `"msg_id": 34305` 0x8601
 | Field        | Json Key name | Value Type | Value Type in Json |
 |:------------:|:-------------:|:----------:|:------------------:|
 | 区域数       | length        | byte       | integer            |
@@ -553,7 +603,8 @@ example:
 `[ID1, ID2, ...]`
 
 
-- 设置矩形区域 `"msg_id": 34306` 0x8602
+#### 设置矩形区域 `"msg_id": 34306` 0x8602
+
 | Field        | Json Key name      | Value Type | Value Type in Json       |
 |:------------:|:------------------:|:----------:|:------------------------:|
 | 设置属性     | type               | byte       | integer                  |
@@ -571,7 +622,8 @@ example:
 | 超速持续时间 | overspeed_duration | byte       | integer                  |
 
 
-- 删除矩形区域 `"msg_id": 34307` 0x8603
+#### 删除矩形区域 `"msg_id": 34307` 0x8603
+
 | Field        | Json Key name | Value Type | Value Type in Json |
 |:------------:|:-------------:|:----------:|:------------------:|
 | 区域数       | length        | byte       | integer            |
@@ -579,7 +631,8 @@ example:
 | 区域 ID 1~n  | -             | dword      | integer            |
 
 
-- 设置多边形区域 `"msg_id": 34308` 0x8604
+#### 设置多边形区域 `"msg_id": 34308` 0x8604
+
 | Field        | Json Key name      | Value Type | Value Type in Json |
 |:------------:|:------------------:|:----------:|:------------------:|
 | 区域 ID      | id                 | dword      | integer            |
@@ -594,7 +647,8 @@ example:
 | 顶点经度     | lng                | dword      | integer            |
 
 
-- 删除多边形区域 `"msg_id": 34309` 0x8605
+#### 删除多边形区域 `"msg_id": 34309` 0x8605
+
 | Field        | Json Key name | Value Type | Value Type in Json |
 |:------------:|:-------------:|:----------:|:------------------:|
 | 区域数       | length        | byte       | integer            |
@@ -602,7 +656,8 @@ example:
 | 区域 ID 1~n  | -             | dword      | integer            |
 
 
-- 设置路线 `"msg_id": 34310` 0x8606
+#### 设置路线 `"msg_id": 34310` 0x8606
+
 | Field            | Json Key name      | Value Type | Value Type in Json |
 |:----------------:|:------------------:|:----------:|:------------------:|
 | 路线 ID          | id                 | dword      | integer            |
@@ -623,7 +678,8 @@ example:
 | 路段超速持续时间 | overspeed_duration | byte       | integer            |
 
 
-- `"msg_id": 34311` 0x8607
+#### 删除路线 `"msg_id": 34311` 0x8607
+
 | Field    | Json Key name | Value Type | Value Type in Json |
 |:--------:|:-------------:|:----------:|:------------------:|
 | 路线数   | length        | byte       | integer            |
@@ -631,14 +687,16 @@ example:
 | 路线 ID  | -             | dword      | integer            |
 
 
-- 行驶记录数据采集命令 `"msg_id": 34560` 0x8700
+#### 行驶记录数据采集命令 `"msg_id": 34560` 0x8700
+
 | Field  | Json Key name | Value Type             | Value Type in Json |
 |:------:|:-------------:|:----------------------:|:------------------:|
 | 命令字 | command       | byte                   | integer            |
 | 数据块 | param         | string(base64 encoded) | string             |
 
 
-- 行驶记录数据上传 `"msg_id": 1792` 0x0700
+#### 行驶记录数据上传 `"msg_id": 1792` 0x0700
+
 | Field      | Json Key name | Value Type             | Value Type in Json |
 |:----------:|:-------------:|:----------------------:|:------------------:|
 | 应答流水号 | seq           | word                   | integer            |
@@ -646,25 +704,29 @@ example:
 | 数据块     | data          | string(base64 encoded) | string             |
 
 
-- 行驶记录参数下传命令 `"msg_id": 34561` 0x8701
+#### 行驶记录参数下传命令 `"msg_id": 34561` 0x8701
+
 | Field  | Json Key name | Value Type             | Value Type in Json |
 |:------:|:-------------:|:----------------------:|:------------------:|
 | 命令字 | command       | byte                   | integer            |
 | 数据块 | param         | string(base64 encoded) | string             |
 
 
-- 电子运单上报 `"msg_id": 1793` 0x0701
+#### 电子运单上报 `"msg_id": 1793` 0x0701
+
 | Field        | Json Key name | Value Type             | Value Type in Json |
 |:------------:|:-------------:|:----------------------:|:------------------:|
 | 电子运单长度 | length        | dword                  | integer            |
 | 电子运单内容 | data          | string(base64 encoded) | string             |
 
 
-- 上报驾驶员身份信息请求 `"msg_id": 34562` 0x8702
+#### 上报驾驶员身份信息请求 `"msg_id": 34562` 0x8702
+
 空 Json
 
 
-- 驾驶员身份信息采集上报 `"msg_id": 1794` 0x0702
+#### 驾驶员身份信息采集上报 `"msg_id": 1794` 0x0702
+
 | Field          | Json Key name | Value Type | Value Type in Json |
 |:--------------:|:-------------:|:----------:|:------------------:|
 | 状态           | status        | byte       | integer            |
@@ -676,7 +738,8 @@ example:
 | 证件有效期     | cert_expiry   | string     | string             |
 
 
-- 定位数据批量上传 `"msg_id": 1796` 0x0704
+#### 定位数据批量上传 `"msg_id": 1796` 0x0704
+
 | Field          | Json Key name | Value Type | Value Type in Json |
 |:--------------:|:-------------:|:----------:|:------------------:|
 | 位置数据类型   | type          | byte       | integer            |
@@ -684,7 +747,8 @@ example:
 | 位置汇报数据项 | location      | list       | list of location   |
 
 
-- `"msg_id": 1797` 0x0705
+#### CAN 总线数据上传 `"msg_id": 1797` 0x0705
+
 | Field                | Json Key name | Value Type | Value Type in Json     |
 |:--------------------:|:-------------:|:----------:|:----------------------:|
 | 数据项个数           | length        | word       | integer                |
@@ -697,7 +761,8 @@ example:
 | CAN 数据             | data          | binary     | string(base64 encoded) |
 
 
-- 多媒体时间信息上传 `"msg_id": 2048` 0x0800
+#### 多媒体时间信息上传 `"msg_id": 2048` 0x0800
+
 | Field          | Json Key name | Value Type | Value Type in Json |
 |:--------------:|:-------------:|:----------:|:------------------:|
 | 多媒体数据 ID  | id            | dword      | integer            |
@@ -707,7 +772,8 @@ example:
 | 通道 ID        | channel       | byte       | integer            |
 
 
-- 多媒体数据上传 `"msg_id": 2049` 0x0801
+#### 多媒体数据上传 `"msg_id": 2049` 0x0801
+
 | Field          | Json Key name | Value Type | Value Type in Json     |
 |:--------------:|:-------------:|:----------:|:----------------------:|
 | 多媒体 ID      | id            | dword      | integer                |
@@ -720,7 +786,8 @@ example:
 
 
 
-- 多媒体数据上传应答 `"msg_id": 34816` 0x8800
+#### 多媒体数据上传应答 `"msg_id": 34816` 0x8800
+
 | Field          | Json Key name | Value Type | Value Type in Json |
 |:--------------:|:-------------:|:----------:|:------------------:|
 | 多媒体 ID      | mm_id         | dword      | integer            |
@@ -728,7 +795,8 @@ example:
 | 重传包 ID 列表 | retx_ids      | list       | list of retry IDs  |
 
 
-- 摄像头立即拍摄命令 `"msg_id": 34817` 0x8801
+#### 摄像头立即拍摄命令 `"msg_id": 34817` 0x8801
+
 | Field             | Json Key name | Value Type | Value Type in Json |
 |:-----------------:|:-------------:|:----------:|:------------------:|
 | 通道 ID           | channel_id    | byte       | integer            |
@@ -743,7 +811,8 @@ example:
 | 色度              | chromaticity  | byte       | integer            |
 
 
-- 摄像头立即拍摄应答 `"msg_id": 2053` 0x0805
+#### 摄像头立即拍摄应答 `"msg_id": 2053` 0x0805
+
 | Field          | Json Key name | Value Type     | Value Type in Json |
 |:--------------:|:-------------:|:--------------:|:------------------:|
 | 应答流水号     | seq           | word           | integer            |
@@ -752,7 +821,8 @@ example:
 | 多媒体 ID 列表 | ids           | byte(4*length) | integer            |
 
 
-- 存储多媒体数据检索 `"msg_id": 34818` 0x8802
+#### 存储多媒体数据检索 `"msg_id": 34818` 0x8802
+
 | Field      | Json Key name | Value Type | Value Type in Json |
 |:----------:|:-------------:|:----------:|:------------------:|
 | 多媒体类型 |               | byte       |                    |
@@ -762,7 +832,8 @@ example:
 | 结束时间   |               | string     |                    |
 
 
-- 存储多媒体数据检索应答 `"msg_id": 2050` 0x0802
+#### 存储多媒体数据检索应答 `"msg_id": 2050` 0x0802
+
 | Field            | Json Key name | Value Type | Value Type in Json    |
 |:----------------:|:-------------:|:----------:|:---------------------:|
 | 应答流水号       | seq           | word       | integer               |
@@ -775,7 +846,8 @@ example:
 | 位置信息汇报     | location      | byte(28)   | map                   |
 
 
-- 存储多媒体数据上传命令 `"msg_id": 34819` 0x8803
+#### 存储多媒体数据上传命令 `"msg_id": 34819` 0x8803
+
 | Field      | Json Key name | Value Type | Value Type in Json |
 |:----------:|:-------------:|:----------:|:------------------:|
 | 多媒体类型 | type          | byte       | integer            |
@@ -786,7 +858,8 @@ example:
 | 删除标志   | delete        | byte       | integer            |
 
 
-- 录音开始命令 `"msg_id": 34820` 0x8804
+#### 录音开始命令 `"msg_id": 34820` 0x8804
+
 | Field      | Json Key name | Value Type | Value Type in Json |
 |:----------:|:-------------:|:----------:|:------------------:|
 | 录音命令   | command       | byte       | integer            |
@@ -795,46 +868,54 @@ example:
 | 音频采样率 | rate          | byte       | integer            |
 
 
-- 单条存储多媒体j叔叔检索上传命令 `"msg_id": 34821` 0x8805
+#### 单条存储多媒体j叔叔检索上传命令 `"msg_id": 34821` 0x8805
+
 | Field     | Json Key name | Value Type | Value Type in Json |
 |:---------:|:-------------:|:----------:|:------------------:|
 | 多媒体 ID | id            | dword      | integer            |
 | 删除标志  | flag          | byte       | integer            |
 
 
-- 数据下行透传 `"msg_id": 35072` 0x8900
+#### 数据下行透传 `"msg_id": 35072` 0x8900
+
 | Field        | Json Key name | Value Type | Value Type in Json     |
 |:------------:|:-------------:|:----------:|:----------------------:|
 | 透传消息类型 | type          | byte       | integer                |
 | 透传消息内容 | data          | binary     | string(base64 encoded) |
 
 
-- 数据上行透传 `"msg_id": 2304` 0x0900
+#### 数据上行透传 `"msg_id": 2304` 0x0900
+
 | Field        | Json Key name | Value Type | Value Type in Json     |
 |:------------:|:-------------:|:----------:|:----------------------:|
 | 透传消息类型 | type          | byte       | integer                |
 | 透传消息内容 | data          | binary     | string(base64 encoded) |
 
 
-- 数据压缩上报 `"msg_id": 2305` 0x0901
+#### 数据压缩上报 `"msg_id": 2305` 0x0901
+
 | Field        | Json Key name | Value Type | Value Type in Json     |
 |:------------:|:-------------:|:----------:|:----------------------:|
 | 压缩消息长度 | length        | dword      | integer                |
 | 压缩消息体   | data          | binary     | string(base64 encoded) |
 
 
-- 平台 RSA 公钥 `"msg_id": 35328` 0x8A00
+#### 平台 RSA 公钥 `"msg_id": 35328` 0x8A00
+
 | Field | Json Key name | Value Type | Value Type in Json     |
 |:-----:|:-------------:|:----------:|:----------------------:|
 | e     | e             | dword      | integer                |
 | n     | n             | byte(128)  | string(base64 encoded) |
 
 
-- 终端 RSA 公钥 `"msg_id": 2560` 0x0A00
+#### 终端 RSA 公钥 `"msg_id": 2560` 0x0A00
+
 | Field | Json Key name | Value Type | Value Type in Json     |
 |:-----:|:-------------:|:----------:|:----------------------:|
 | e     | e             | dword      | integer                |
 | n     | n             | byte(128)  | string(base64 encoded) |
 
-- 0x8F00 ~ 0x8FFF
-- 0x0F00 ~ 0x0FFF
+
+#### 保留 0x8F00 ~ 0x8FFF
+
+#### 保留 0x0F00 ~ 0x0FFF