emqx/apps/emqx_gateway_jt808/doc/Data_Exchange_Guide_CN.md

41 KiB

emqx-jt808

JT/T 808 2013 协议接入网关

该文档定义了 Plugins emqx_jt808EMQX 之间数据交换的格式

约定:

  • Payload 采用 Json 格式进行组装
  • Json Key 采用全小写格式命名

Json 结构示例

终端到服务器

{
    "header" : {
        "msg_id" : 1,
        "encrypt": 0,
        "len": VAL,
        "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
        }
}

数据类型对照表

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_totalfrag_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