JT/T808 协议网关
- 终端侧:通过 JT/T 808 协议进行交换数据,实现不同类型的数据的上报,或者发送下行的消息到终端。
- 平台侧:emqx-jt808 将报文解码后执行 注册/鉴权、或将数据报文 PUBLISH 到特定的主题上;代理订阅下行主题,将下行的 PUBLISH 消息转化为 JT/T 808 协议的报文结构,下发到终端。
创建模块
打开 EMQX Dashboard (opens new window),点击左侧的 “模块” 选项卡,选择添加:
选择 JT/T808 协议接入网关:
配置相关基础参数:
添加监听端口:
点击确认到配置参数页面:
点击添加后,模块添加完成:
emqx-jt808 实现规定:
- 系统内以手机号作为一个连接的唯一标识,即 ClientId
emqx-jt808 的实现支持匿名的方式接入认证:
注册请求详细格式如下:
注册请求:
Method: POST
Body:
{ "province": 58,
"city": 59,
"manufacturer": "Infinity",
"model": "Q2",
"license_number": "ZA334455",
"color": 3,
"phone", "00123456789"
}
鉴权请求:
URL: http://127.0.0.1:8991/jt808/auth
Method: POST
Body:
{ "code": "authcode",
}
鉴权应答:
注:鉴权请求只会在系统未保存鉴权码时调用(即终端直接发送鉴权报文进行登录系统)
emqx-jt808 中通过配置上下行主题来收发终端消息:
上行
例如:制造商Id 为 abcde
和 终端Id 为 1234567
的设备。
首先先使用 MQTT 客户端订阅主题 jt808/abcde1234567/up
:
例如终端在上报 数据上行透传(0x0900)
类型的消息后,订阅端会收到:
注:透明传输类,data 域的内容会 base64 编码一次在上报出来
数据下行
$ mosquitto_pub -t jt808/abcde1234567/dn -m '{"body":{"data":"MTIzNDU2","type":240},"header":{"msg_id":35072}}'
注:下行 JSON 中,header 中的内容只需要带 msg_id 即可;body 中的内容根据不同的 msg_id 有不同的结构