度行·智能车辆云DuGo

    MQTT协议接入

    如果在创建新项目时您选择MQTT协议作为车辆设备连接DuGo的接入方式,您可以根据本文档构造MQTT数据包,使用MQTT协议连接DuGo并快速上报车辆数据到DuGo平台。

    MQTT客户端SDK

    DuGo的“MQTT接入”与Paho(即MQTT Client SDK)完全兼容,如果开发者需要开发MQTT客户端,可到Paho官方网站下载SDK并获取帮助文档,详情如下:

    Client MQTT 3.1 MQTT 3.1.1 LWT SSL/TLS Automatic Reconnect Offline Buffering Message Persistence WebSocket Support Standard MQTT Support Blocking API Non-Blocking API High Availability
    Java
    Python
    JavaScript
    GoLang
    C
    .Net (C#)
    Android Service
    Embedded C/C++

    MQTT连接地址

    当您创建完MQTT协议的项目后,在“项目管理”的“获取连接地址”中可以取得MQTT接入的连接地址。

    图片

    MQTT发布与订阅的topic

    当您在MQTT协议的项目中绑定车辆时,DuGo会自动为您创建两个topic,一个topic具有向DuGo上报数据的权限,另一个topic具有从DuGo监听数据的权限。

    1. 具有publish权限的topic:

    $baidu/ivc/upload/{userId}/{vehicleId}/#

    1. 具有subscribe权限的topic:

    $baidu/ivc/resp/{userId}/{vehicleId}/#

    MQTT数据格式

    上传多个轨迹点

    接口说明

    使用具有publish权限的topic: $baidu/ivc/upload/{userId}/{vehicleId} pub消息。

    您可以为一个vehicle上传多个数据点,每个请求由两部分组成:

    • 用户信息(用户id)
    • 数据列表

    要享受地图服务,相关参数名(即data数据结构里map的key)必须使用下述预定义字段。

    请求参数

    参数名 参数含义 类型 是否必填 备注
    userId 用户百度智能云id string 用户百度智能云id,登陆百度智能云后可在用户中心查看
    points 点数组 array point 结构体

    Point 结构体

    参数名 参数含义 类型 是否必填 备注
    locTime 定位时设备的时间 Unix时间戳 输入的locTime不能大于当前服务端时间10分钟以上,即不支持存未来的轨迹点
    vehicleId 车辆唯一标识 string(0-128) 车辆的唯一标识,如vin码、车机终端手机号等。与topic中的vehicleId不同时不予以处理。
    data 需要上传的车辆数据 map<String, Object> key、value对, value 可以是String, Int 或 Double latitude, longitude 为GPS信息

    预定义字段

    字段名 意义 类型 备注
    latitude 纬度 double(-90.0 , +90.0)
    longitude 经度 double(-180.0 , +180.0)
    speed 速度 double 单位:km/h
    direction 方向 int 取值规则:范围为[0,359],0度为正北方向,顺时针
    height 高度 double 单位米
    radius 定位精度,GPS或定位SDK返回的值 double 单位米
    coordTypeInput 坐标类型 string 该字段用于描述上传的坐标类型。可选值为:
    wgs84:GPS 坐标
    gcj02:国测局加密坐标
    bd09ll:百度经纬度坐标,不传则默认百度坐标系

    自定义字段

    在用户上传的数据(data)中,除了预定义字段,用户还可以填写自定义字段。用户可以自定义字段名和信号长度,例:上传车速信息 "data" : {"XX_speed" : 31.20},车速的字段名定义为XX_speed, 上传的车速的值为31.20。由于DuGo没有用到预定义字段“speed”,这个值将不会作为地图服务的参考数据,仅作为普通数据保存。详情请参考请求示例。

    请求示例

    publish topic: $baidu/ivc/upload/7cd05161707c41439e3b1be885d00104/13288886666
    payload:
    {
      "points" : [ {
        "locTime" : 1497578785,
       "vehicleId" : "13288886666",
        "data" : {
          "ppp" : 1,
          "ddd" : 1.2,
          "latitude" : 31.20374,
          "longitude" : 121.546963
        }
      }, {
        "locTime" : 1497578786,
       "vehicleId" : "13288886666",
        "data" : {
          "ccc" : 1.2,
          "latitude" : 31.20374,
          "longitude" : 121.546963
        }
      } ],
      "userId" : "7cd05161707c41439e3b1be885d00104"
    }
    上一篇
    HTTP协议接入
    下一篇
    GB-T32960协议接入