JT/T808 协议网关

    1. 终端侧:通过 JT/T 808 协议进行交换数据,实现不同类型的数据的上报,或者发送下行的消息到终端。
    2. 平台侧:emqx-jt808 将报文解码后执行 注册/鉴权、或将数据报文 PUBLISH 到特定的主题上;代理订阅下行主题,将下行的 PUBLISH 消息转化为 JT/T 808 协议的报文结构,下发到终端。

    创建模块

    打开 ,点击左侧的 “模块” 选项卡,选择添加:

    选择 JT/T808 协议接入网关:

    image-20200927213049265

    配置相关基础参数:

    添加监听端口:

    image-20200927213049265

    点击确认到配置参数页面:

    image-20200927213049265

    点击添加后,模块添加完成:

    emqx-jt808 实现规定:

    • 系统内以手机号作为一个连接的唯一标识,即 ClientId

    emqx-jt808 的实现支持匿名的方式接入认证: | 配置项 | 说明 | | —————————————- | ————————————————— | | 允许匿名登录 | 是否允许匿名用户登录 | 注册服务地址 | JT/T808 终端注册的 HTTP 接口地址 | | 认证服务地址 | JT/T808 终端接入鉴权的 HTTP 接口地址 | | 下行消息主题格式 | 上行主题。上行消息到 EMQ X 系统中的消息主题%c: 接入客户端的 ClientId,%p: 接入客户端的 Phone| | 上行消息主题格式 | 下行主题。上行消息到 EMQ X 系统中的消息主题%c: 接入客户端的 ClientId,%p: 接入客户端的 Phone| | 允许最大报文长度 | 最大处理的单个JT/T808协议报文大小|

    注册请求详细格式如下:

    注册请求:

    1. Method: POST
    2. Body:
    3. { "province": 58,
    4. "city": 59,
    5. "manufacturer": "Infinity",
    6. "model": "Q2",
    7. "license_number": "ZA334455",
    8. "color": 3,
    9. "phone", "00123456789"
    10. }

    鉴权请求:

    1. URL: http://127.0.0.1:8991/jt808/auth
    2. Method: POST
    3. Body:
    4. { "code": "authcode",
    5. }

    鉴权应答:

    注:鉴权请求只会在系统未保存鉴权码时调用(即终端直接发送鉴权报文进行登录系统)

    emqx-jt808 中通过配置上下行主题来收发终端消息:

    上行

    例如:制造商Idabcde终端Id1234567 的设备。

    首先先使用 MQTT 客户端订阅主题 jt808/abcde1234567/up

      例如终端在上报 数据上行透传(0x0900) 类型的消息后,订阅端会收到:

      注:透明传输类,data 域的内容会 base64 编码一次在上报出来

      数据下行

      1. $ mosquitto_pub -t jt808/abcde1234567/dn -m '{"body":{"data":"MTIzNDU2","type":240},"header":{"msg_id":35072}}'

      注:下行 JSON 中,header 中的内容只需要带 msg_id 即可;body 中的内容根据不同的 msg_id 有不同的结构