# emqx-jt808 JT/T 808 2013 协议接入网关 该文档定义了 Plugins **emqx_jt808** 和 **EMQX** 之间数据交换的格式 约定: - Payload 采用 Json 格式进行组装 - Json Key 采用全小写格式命名 Json 结构示例 ## 终端到服务器 ```json { "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 } } ``` ## 数据类型对照表 | JT808 Defined Type | In Json Type | Comment | |:------------------:|:------------:|:----------:| | BYTE | integer | in decimal | | WORD | integer | in decimal | | DWORD | integer | in decimal | | BYTE(n) | string | | | BCD(n) | string | | | STRING | string | | ## 字段对照表 ### 消息头字段对照表 | Field | Json Key name | Value Type | Value Type in Json | |:------------:|:-------------:|:----------:|:------------------:| | 消息 ID | msg_id | word | integer | | 数据加密方式 | encrypt | word | integer | | 终端手机号 | phone | bcd(6) | string | | 消息流水号 | msg_sn | word | integer | | Optional Field | Json Key name | Value Type | Value Type in JSON | |:--------------:|:-------------:|:----------:|:------------------:| | 消息总包数 | frag_total | word | integer | | 消息包序号 | frag_sn | word | integer | - 存在 `frag_total` 与 `frag_sn` 时表示消息体为长消息,进行分包处理 ### 消息体字段对照表 - 终端通用应答 `"msg_id": 1` 0x0001 | Field | Json Key name | Value Type | Value Type in Json | |:----------:|:-------------:|:----------:|:------------------:| | 应答流水号 | seq | word | integer | | 应答 ID | id | word | integer | | 结果 | result | byte | integer | - 平台通用应答 `"msg_id": 32769` 0x8001 | Field | Json Key name | Value Type | Value Type in Json | |:----------:|:-------------:|:----------:|:------------------:| | 应答流水号 | seq | word | integer | | 应答 ID | id | word | integer | | 结果 | result | byte | integer | - 终端心跳 `"msg_id": 2` 0x0002 空 Json - 补传分包请求 `"msg_id": 32771` 0x8003 | Field | Json Key name | Value Type | Value Type in Json | |:--------------:|:-------------:|:--------------:|:------------------:| | 原始消息流水号 | seq | word | integer | | 重传包总数 | length | byte | integer | | 重传包 ID 列表 | ids | byte(2*length) | list of integer | - 终端注册 `"msg_id": 256` 0x0100 | Field | Json Key name | Value Type | Value Type in Json | |:---------:|:--------------:|:----------:|:------------------:| | 省域 ID | province | word | integer | | 市县域 ID | city | word | integer | | 制造商 ID | manufacture | byte(5) | string | | 终端型号 | model | byte(20) | string | | 终端 ID | dev_id | byte(7) | string | | 车牌颜色 | color | byte | integer | | 车辆标识 | license_number | string | string | - 终端注册应答 `"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 空 Json - 终端鉴权 `"msg_id": 258` 0x0102 | Field | Json Key name | Value Type | Value Type in Json | |:------:|:-------------:|:----------:|:------------------:| | 鉴权码 | code | string | string | - 设置终端参数 `"msg_id": 33027` 0x8103 | Field | Json Key name | Value Type | Value Type in Json | |:----------:|:-------------:|:----------:|:------------------------------------------------------:| | 参数总数 | length | byte | integer | | 参数项列表 | params | list | list of id and value. `[{"id":ID, "value": VAL}, ...]` | | 参数项 | id | dword | integer | | 参数值 | value | byte | integer | 参数 ID 说明见协议规定. - 查询终端参数 `"msg_id": 33028` 0x8104 空 Json - 查询指定终端参数 `"msg_id": 33030` 0x8106 | Field | Json Key name | Value Type | Value Type in Json | |:------------:|:-------------:|:--------------:|:--------------------------------:| | 参数总数 | length | byte | integer | | 参数 ID 列表 | ids | byte(2*length) | list of id. `[1, 2, 3, 4, ...]` | 参数 ID 列表中元素为 integer - 查询终端应答参数 `"msg_id": 260` 0x0104 | Field | Json Key name | Value Type | Value Type in Json | |:------------:|:-------------:|:----------:|:------------------------------------------------------:| | 应答流水号 | seq | word | integer | | 应答参数个数 | length | byte | integer | | 参数项列表 | params | list | list of id and value. `[{"id":ID, "value": VAL}, ...]` | | 参数项 | id | dword | integer | | 参数值 | value | byte | integer | 参数 ID 说明见协议规定. - 终端控制 `"msg_id": 33029 ` 0x8105 | Field | Json Key name | Value Type | Value Type in Json | |:--------:|:-------------:|:----------:|:------------------:| | 命令字 | command | byte | integer | | 命令参数 | param | string | string | - 查询终端属性 `"msg_id": 33031` 0x8107 空 Json - 查询终端属性应答 `"msg_id": 263` 0x0107 | Field | Json Key name | Value Type | Value Type in Json | |:-----------------:|:----------------:|:----------:|:------------------:| | 终端类型 | type | word | integer | | 制造商 ID | manufacture | byte(5) | string | | 终端型号 | model | byte(20) | string | | 终端 ID | id | byte(7) | string | | 终端 SIM 卡 ICCID | iccid | byte(10) | string | | 终端硬件版本号 | hardware_version | string | string | | 终端硬件固件号 | firmware_version | string | string | | GNSS 模块属性 | gnss_prop | byte | integer | | 通信模块属性 | comm_prop | byte | integer | -- 终端硬件版本号长度、终端固件版本号长度,将被用于二进制报文解析,不向上暴露 - 下发终端升级包 `"msg_id": 33032` 0x8108 | Field | Json Key name | Value Type | Value Type in Json | |:--------------:|:-------------:|:----------:|:----------------------:| | 升级类型 | type | byte | integer | | 制造商 ID | manufacturer | byte(5) | string | | 版本号长度 | ver_len | byte | integer | | 版本号 | version | string | string | | 升级数据包长度 | fw_len | dword | integer | | 升级数据包 | firmware | binary | string(base64 encoded) | - 终端升级结果通知 `"msg_id": 264` 0x0108 | Field | Json Key name | Value Type | Value Type in Json | |:--------:|:-------------:|:----------:|:------------------:| | 升级类型 | type | byte | integer | | 升级结果 | result | byte | integer | - 位置信息汇报 `"msg_id": 512` 0x0200 | Field | Json Key name | Value Type | Value Type in Json | |:--------------------:|:-------------:|:----------:|:------------------:| | 报警标志 | alarm | dword | integer | | 状态 | status | dword | integer | | 纬度 | latitude | dword | integer | | 经度 | longitude | dword | integer | | 高程 | altitude | word | integer | | 速度 | speed | word | integer | | 方向 | direction | word | integer | | 时间 | time | bcd(6) | string | | Optional Field | Json Key name | Value Type | Value Type in JSON | | 位置附加信息项列表 | extra | - | map | %% TODO: refine alarm mroe details 位置附加信息项列表, 在 `extra` 中 | Field (附加信息描述) | Json Key name | Value Type | Value Type in Json | |:---------------------------------:|:---------------:|:----------:|:----------------------:| | 里程 | mileage | dword | integer | | 油量 | fuel_meter | word | integer | | 行驶记录功能获取的速度 | speed | word | integer | | 需要人工确认报警事件的 ID | alarm_id | word | integer | | 超速报警附加信息(长度1或5) | overspeed_alarm | - | map | | 进出区域/路线报警附加信息 | in_out_alarm | - | map | | 路段行驶时间不足/过长报警附加信息 | path_time_alarm | - | map | | 扩展车辆信号状态位 | 见状态位附表 | - | - | | IO 状态位 | io_status | - | map | | 模拟量 | analog | - | map | | 无线通信网络信号强度 | rssi | byte | integer | | GNSS 定位卫星数 | gnss_sat_num | byte | integer | | 后续自定义信息长度 | custome | - | string(base64 encoded) | | %% TODO 自定义区域 | | | | 超速报警附加信息(长度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` 内 | Field | Json Key name | Value Type | Value Type in Json | |:-------------:|:-------------:|:----------:|:------------------:| | 位置类型 | type | byte | integer | | 区域或路段 ID | id | dword | integer | | 方向 | direction | byte | integer | 路段行驶时间不足/过长报警附加信息, 置于 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` 内 | Field | Json Key name | Value Type | Value Type in Json | |:------------:|:-------------:|:----------:|:------------------:| | 深度休眠状态 | deep_sleep | 1 bit | integer | | 休眠状态 | sleep | 1 bit | integer | 模拟量, 置于 map `analog` 内 | Field | Json Key name | Value Type | Value Type in Json | |:--------:|:-------------:|:----------:|:------------------:| | 模拟量 0 | ad0 | 16 bits | integer | | 模拟量 1 | ad1 | 16 bits | integer | 扩展车辆信号状态位, 置于 map `extra` 内 | Field | Json Key name | Value Type | Value Type in Json | |:------------:|:---------------:|:----------:|:------------------------------------------:| | 信号 | signal | - 2 bits | map, `{"low_beam": VAL, "high_beam": VAL}` | | 右转向灯信号 | right_turn | 1 bit | integer | | 左转向灯信号 | left_turn | 1 bit | integer | | 制动信号 | brake | 1 bit | integer | | 倒档信号 | reverse | 1 bit | integer | | 雾灯信号 | fog | 1 bit | integer | | 示廓灯 | side_marker | 1 bit | integer | | 喇叭状态 | horn | 1 bit | integer | | 空调状态 | air_conditioner | 1 bit | integer | | 空档信号 | neutral | 1 bit | integer | | 缓速器工作 | retarder | 1 bit | integer | | ABS 工作 | abs | 1 bit | integer | | 加热器工作 | heater | 1 bit | integer | | 离合器状态 | cluth | 1 bit | integer | 信号状态, 置于 map `signal` 内 | Field | Json Key name | Value Type | Value Type in Json | |:----------:|:-------------:|:----------:|:------------------:| | 近光灯信号 | low_beam | 1 bit | integer | | 远光灯信号 | high_beam | 1 bit | integer | 例 example: ``` { "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, "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 空 Json - 位置信息查询应答 `"msg_id": 513` 0x0201 | Field | Json Key name | Value Type | Value Type in Json | |:------------:|:-------------:|:----------:|:------------------:| | 应答流水号 | seq | word | integer | | 位置信息汇报 | params | - | map | - 临时位置跟踪控制 `"msg_id": 33282` 0x8202 | Field | Json Key name | Value Type | Value Type in Json | |:--------------:|:-------------:|:----------:|:------------------:| | 时间间隔 | period | word | integer | | 跟踪位置有效期 | expiry | dword | integer | - 人工确认报警消息 `"msg_id": 33283` 0x8203 | Field | Json Key name | Value Type | Value Type in Json | |:----------------:|:-------------:|:----------:|:------------------:| | 报警消息流水号 | seq | word | integer | | 人工确认报警类型 | type | dword | integer | - 文本信息下发 `"msg_id": 33536` 0x8300 | Field | Json Key name | Value Type | Value Type in Json | |:--------:|:-------------:|:----------:|:------------------:| | 标志 | flag | byte | integer | | 文本信息 | text | string | string | - 事件设置 `"msg_id": 33537` 0x8301 | Field | Json Key name | Value Type | Value Type in Json | |:------------:|:-------------:|:----------:|:-----------------------------------------------------------------:| | 设置类型 | type | byte | integer | | 设置总数 | length | byte | integer | | 事件项列表 | events | list | list of event. `[{"id": ID, "length": LEN, "content": CON}, ...]` | | 事件 ID | id | byte | integer | | 事件内容长度 | length | byte | integer | | 事件内容 | content | string | string | - 事件报告 `"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 | | 候选答案列表 | answers | list | list of answer. `[{"id": ID, "len": LEN, "answer": ANS}, ...]` | | 答案 ID | id | byte | integer | | 答案内容长度 | len | byte | integer | | 答案内容 | answer | string | string | %% TODO: len -> length or other length -> len - 提问应答 `"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 | Field | Json Key name | Value Type | Value Type in Json | |:------------:|:-------------:|:----------:|:------------------:| | 设置类型 | type | byte | integer | | 信息项总数 | length | byte | integer | | 信息项列表 | menus | list | list of menu | | 信息类型 | type | byte | integer | | 信息名称长度 | length | word | integer | | 信息名称 | info | string | string | - 信息点播/取消 `"msg_id": 771` 0x0303 | Field | Json Key name | Value Type | Value Type in Json | |:-------------:|:-------------:|:----------:|:------------------:| | 信息类型 | id | byte | integer | | 点拨/取消标志 | flag | byte | integer | - 信息服务 `"msg_id": 33540` 0x8304 | Field | Json Key name | Value Type | Value Type in Json | |:--------:|:-------------:|:----------:|:------------------:| | 信息类型 | type | byte | integer | | 信息长度 | length | word | integer | | 信息内容 | info | string | string | - 电话回拨 `"msg_id": 33792` 0x8400 | Field | Json Key name | Value Type | Value Type in Json | |:--------:|:-------------:|:----------:|:------------------:| | 标志 | type | byte | integer | | 电话号码 | phone | string | string | - `"msg_id": 33793` 0x8401 | Field | Json Key name | Value Type | Value Type in Json | |:----------:|:-------------:|:----------:|:------------------:| | 设置类型 | type | byte | integer | | 联系人总数 | length | byte | integer | | 联系人项 | contacts | list | list of contact. | | 标志 | type | byte | integer | | 号码长度 | phone_len | byte | integer | | 电话号码 | phone | string | string | | 联系人长度 | name_len | byte | integer | | 联系人 | name | string | string | 联系人项示例 `[{"type": TYPE, "phone_len", PH_LEN, "phone": PHONE, "name_len": NAME_LEN, "name": NAME}, ...]` - `"msg_id": 34048` 0x8500 | Field | Json Key name | Value Type | Value Type in Json | |:--------:|:-------------:|:----------:|:------------------:| | 标志控制 | flag | byte | integer | - `"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 | Field | Json Key name | Value Type | Value Type in Json | |:------------:|:------------------:|:----------:|:------------------:| | 设置属性 | type | byte | integer | | 区域总数 | length | byte | integer | | 区域项 | areas | list | list of area. | | 区域 ID | id | dword | integer | | 区域属性 | flag | dword | integer | | 中心点纬度 | center_latitude | dword | integer | | 中心点经度 | center_longitude | dword | integer | | 半径 | radius | dword | integer | | 起始时间 | start_time | string | string | | 结束时间 | end_time | string | string | | 最高速度 | max_speed | word | integer | | 超速持续时间 | overspeed_duration | byte | integer | 区域列表示例 `[{"id": ID, "flag": FLAG, "center_latitude": CEN_LAT, "center_longitude": CEN_LON, "radius": RADIUS, "start_time": START_TIME, "end_time": END_TIME, "max_speed", MAX_SPEED, "overspeed_duration", OVERSPEED_DURATION }, ... ]` - 删除圆形区域 `"msg_id": 34305` 0x8601 | Field | Json Key name | Value Type | Value Type in Json | |:------------:|:-------------:|:----------:|:------------------:| | 区域数 | length | byte | integer | | 区域 ID 列表 | ids | list | list of id. | | 区域 ID 1~n | - | dword | integer | `[ID1, ID2, ...]` - 设置矩形区域 `"msg_id": 34306` 0x8602 | Field | Json Key name | Value Type | Value Type in Json | |:------------:|:------------------:|:----------:|:------------------------:| | 设置属性 | type | byte | integer | | 区域总数 | length | byte | integer | | 区域项 | areas | list | list of rectangle area. | | 区域 ID | id | dword | integer | | 区域属性 | flag | dword | integer | | 左上点纬度 | lt_lat | dword | integer | | 左上点经度 | lt_lng | dword | integer | | 右下点纬度 | rb_lat | dword | integer | | 右下点经度 | rb_lng | dword | integer | | 起始时间 | start_time | string | string | | 结束时间 | end_time | string | string | | 最高速度 | max_speed | word | integer | | 超速持续时间 | overspeed_duration | byte | integer | - 删除矩形区域 `"msg_id": 34307` 0x8603 | Field | Json Key name | Value Type | Value Type in Json | |:------------:|:-------------:|:----------:|:------------------:| | 区域数 | length | byte | integer | | 区域 ID 列表 | ids | list | list of id. | | 区域 ID 1~n | - | dword | integer | - 设置多边形区域 `"msg_id": 34308` 0x8604 | Field | Json Key name | Value Type | Value Type in Json | |:------------:|:------------------:|:----------:|:------------------:| | 区域 ID | id | dword | integer | | 区域属性 | flag | dword | integer | | 起始时间 | start_time | string | string | | 结束时间 | end_time | string | string | | 最高速度 | max_speed | word | integer | | 超速持续时间 | overspeed_duration | byte | integer | | 区域总顶点数 | length | word | integer | | 顶点项列表 | points | list | list of point. | | 顶点纬度 | lat | dword | integer | | 顶点经度 | lng | dword | integer | - 删除多边形区域 `"msg_id": 34309` 0x8605 | Field | Json Key name | Value Type | Value Type in Json | |:------------:|:-------------:|:----------:|:------------------:| | 区域数 | length | byte | integer | | 区域 ID 列表 | ids | list | list of id. | | 区域 ID 1~n | - | dword | integer | - 设置路线 `"msg_id": 34310` 0x8606 | Field | Json Key name | Value Type | Value Type in Json | |:----------------:|:------------------:|:----------:|:------------------:| | 路线 ID | id | dword | integer | | 路线属性 | flag | word | integer | | 起始时间 | start_time | string | string | | 结束时间 | end_time | string | string | | 路线总拐点数 | length | word | integer | | 拐点项 | points | list | list of point. | | 拐点 ID | point_id | dword | integer | | 路段 ID | path_id | dword | integer | | 拐点纬度 | point_lat | dword | integer | | 拐点经度 | point_lng | dword | integer | | 路段宽度 | width | byte | integer | | 路段属性 | attrib | byte | integer | | 路段行驶过长阈值 | passed | word | integer | | 路段行驶不足阈值 | uncovered | word | integer | | 路段最高速度 | max_speed | word | integer | | 路段超速持续时间 | overspeed_duration | byte | integer | - `"msg_id": 34311` 0x8607 | Field | Json Key name | Value Type | Value Type in Json | |:--------:|:-------------:|:----------:|:------------------:| | 路线数 | length | byte | integer | | 路线列表 | ids | list | list of id | | 路线 ID | - | dword | integer | - 行驶记录数据采集命令 `"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 | Field | Json Key name | Value Type | Value Type in Json | |:----------:|:-------------:|:----------------------:|:------------------:| | 应答流水号 | seq | word | integer | | 命令字 | command | byte | integer | | 数据块 | data | string(base64 encoded) | string | - 行驶记录参数下传命令 `"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 | Field | Json Key name | Value Type | Value Type in Json | |:------------:|:-------------:|:----------------------:|:------------------:| | 电子运单长度 | length | dword | integer | | 电子运单内容 | data | string(base64 encoded) | string | - 上报驾驶员身份信息请求 `"msg_id": 34562` 0x8702 空 Json - 驾驶员身份信息采集上报 `"msg_id": 1794` 0x0702 | Field | Json Key name | Value Type | Value Type in Json | |:--------------:|:-------------:|:----------:|:------------------:| | 状态 | status | byte | integer | | 时间 | time | string | string | | IC 卡读取结果 | ic_result | byte | integer | | 驾驶员姓名 | driver_name | string | string | | 从业资格证编码 | certificate | string | string | | 发证机构名称 | organization | string | string | | 证件有效期 | cert_expiry | string | string | - 定位数据批量上传 `"msg_id": 1796` 0x0704 | Field | Json Key name | Value Type | Value Type in Json | |:--------------:|:-------------:|:----------:|:------------------:| | 位置数据类型 | type | byte | integer | | 数据项个数 | length | word | integer | | 位置汇报数据项 | location | list | list of location | - `"msg_id": 1797` 0x0705 | Field | Json Key name | Value Type | Value Type in Json | |:--------------------:|:-------------:|:----------:|:----------------------:| | 数据项个数 | length | word | integer | | CAN 总线数据接收时间 | time | bcd(5) | integer | | CAN 总线数据项 | can_data | list | list of can data. | | CAN 总线通道号 | channel | 1 bit | integer | | 帧类型 | frame_type | 1 bit | integer | | 数据采集方式 | data_method | 1 bit | integer | | CAN 总线 ID | id | 29 bits | integer | | CAN 数据 | data | binary | string(base64 encoded) | - 多媒体时间信息上传 `"msg_id": 2048` 0x0800 | Field | Json Key name | Value Type | Value Type in Json | |:--------------:|:-------------:|:----------:|:------------------:| | 多媒体数据 ID | id | dword | integer | | 多媒体类型 | type | byte | integer | | 多媒体编码格式 | format | byte | integer | | 事件项编码 | event | byte | integer | | 通道 ID | channel | byte | integer | - 多媒体数据上传 `"msg_id": 2049` 0x0801 | Field | Json Key name | Value Type | Value Type in Json | |:--------------:|:-------------:|:----------:|:----------------------:| | 多媒体 ID | id | dword | integer | | 多媒体类型 | type | byte | integer | | 多媒体编码格式 | format | byte | integer | | 事件项编码 | event | byte | integer | | 通道 ID | channel | byte | integer | | 位置信息汇报 | location | byte(28) | map | | 多媒体数据包 | multimedia | binary | string(base64 encoded) | - 多媒体数据上传应答 `"msg_id": 34816` 0x8800 | Field | Json Key name | Value Type | Value Type in Json | |:--------------:|:-------------:|:----------:|:------------------:| | 多媒体 ID | mm_id | dword | integer | | 重传包总数 | length | byte | integer | | 重传包 ID 列表 | retx_ids | list | list of retry IDs | - 摄像头立即拍摄命令 `"msg_id": 34817` 0x8801 | Field | Json Key name | Value Type | Value Type in Json | |:-----------------:|:-------------:|:----------:|:------------------:| | 通道 ID | channel_id | byte | integer | | 拍摄命令 | command | word | integer | | 拍照间隔/录像时间 | period | word | integer | | 保存标志 | save | byte | integer | | 分辨率 | resolution | byte | integer | | 图像/视频质量 | quality | byte | integer | | 亮度 | bright | byte | integer | | 对比度 | contrast | byte | integer | | 饱和度 | saturate | byte | integer | | 色度 | chromaticity | byte | integer | - 摄像头立即拍摄应答 `"msg_id": 2053` 0x0805 | Field | Json Key name | Value Type | Value Type in Json | |:--------------:|:-------------:|:--------------:|:------------------:| | 应答流水号 | seq | word | integer | | 结果 | result | byte | integer | | 多媒体 ID 个数 | length | word | integer | | 多媒体 ID 列表 | ids | byte(4*length) | integer | - 存储多媒体数据检索 `"msg_id": 34818` 0x8802 | Field | Json Key name | Value Type | Value Type in Json | |:----------:|:-------------:|:----------:|:------------------:| | 多媒体类型 | | byte | | | 通道 ID | | byte | | | 事件项编码 | | byte | | | 起始时间 | | string | | | 结束时间 | | string | | - 存储多媒体数据检索应答 `"msg_id": 2050` 0x0802 | Field | Json Key name | Value Type | Value Type in Json | |:----------------:|:-------------:|:----------:|:---------------------:| | 应答流水号 | seq | word | integer | | 多媒体数据项总数 | length | word | integer | | 检索项 | result | list | list of search result | | 多媒体 ID | id | dword | integer | | 多媒体类型 | type | byte | integer | | 通道 ID | channel | byte | integer | | 事件项编码 | event | byte | integer | | 位置信息汇报 | location | byte(28) | map | - 存储多媒体数据上传命令 `"msg_id": 34819` 0x8803 | Field | Json Key name | Value Type | Value Type in Json | |:----------:|:-------------:|:----------:|:------------------:| | 多媒体类型 | type | byte | integer | | 通道 ID | channel | byte | integer | | 事件项编码 | event | byte | integer | | 起始时间 | start_time | string | string | | 结束时间 | end_time | string | string | | 删除标志 | delete | byte | integer | - 录音开始命令 `"msg_id": 34820` 0x8804 | Field | Json Key name | Value Type | Value Type in Json | |:----------:|:-------------:|:----------:|:------------------:| | 录音命令 | command | byte | integer | | 录音时间 | time | word | integer | | 保存标志 | save | byte | integer | | 音频采样率 | rate | byte | integer | - 单条存储多媒体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 | Field | Json Key name | Value Type | Value Type in Json | |:------------:|:-------------:|:----------:|:----------------------:| | 透传消息类型 | type | byte | integer | | 透传消息内容 | data | binary | string(base64 encoded) | - 数据上行透传 `"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 | Field | Json Key name | Value Type | Value Type in Json | |:------------:|:-------------:|:----------:|:----------------------:| | 压缩消息长度 | length | dword | integer | | 压缩消息体 | data | binary | string(base64 encoded) | - 平台 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 | 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