易企用车
    易企用车
    • 产品介绍
    • 车联网关API
      • token获取接口
        POST
      • 轨迹
        GET
      • 轨迹-分段
        GET
      • 轨迹-里程
        GET
      • 设备-添加
        GET
      • 设备-删除
        DELETE
      • 设备-单设备更新
        PUT
      • 设备-批量启停推送
        GET
      • 设备位置-运维查看设备位置状态
        GET
      • 设备里程-根据里程类型查询
        GET
      • 设备里程-软件校准
        PUT
      • OBD-车身数据
        GET
      • 规则触发回调(告警通知)
        GET
      • 定位更新回调
        GET

    产品介绍

    轻车车联网网关#

    轻车车联网网关 bartender#

    轻车
    轻车车联网基于Spring Boot 2.x技术,将硬件接口的复杂对接转化为简单易用的接口和消息推送方式,具备设备管理、数据分析和消息推送等多种能力,可广泛应用于各种车辆监管场景和应用平台。
    bartender作为本网关的接口服务,能够为车辆联网监管和部标标准的实现提供强有力的支持,助力车辆监管的智能化和规范化。

    bartender接口说明文档#

    文档

    软件架构#

    轻车车联网网关架构

    产品线路图#

    轻车车辆网网关线路图

    系统配置要求#

    配置项规格
    CPU内存1w台设备以内2核4G
    硬盘每100台设备1年20G
    操作系统Linux

    支持设备类型#

    设备类型协议
    康凯斯有线/OBD接电设备康凯斯私有协议
    奇果OBD设备奇果私有协议
    零一OBD设备零一私有协议
    车葫芦OBD设备车葫芦私有协议
    车易控行车记录仪JT808部标协议
    合正行车记录仪合正私有协议
    新源润无线设备新源润私有协议
    ADAS设备JT1078部标协议

    支持报警类型#

    类别报警项
    设备自带报警电瓶拆除报警、非法拆除报警、震动报警、
    风险地点报警、防劫持报警、开盖报警、
    位移报警、伪基站报警
    异常驾驶行为-疲劳/打电话/抽烟
    平台判断报警超速报警、进敏感区域报警、出敏感区域报警、
    掉线报警、停车超时报警、分离报警、
    出省报警、敏感区域停留报警、未进常用区域超时报警、
    原地设防报警、进电力围栏报警、
    出电子围栏报警、围栏内报警、围栏内停车超时报警

    名词说明#

    概念定义
    报文硬件上行数据,例如定位、心跳、报警、OBD等信息。
    服务器时间平台接收报文时间。
    定位时间报文中GPS定位时间,即硬件使用自身GPS模块获得的GPS定位时间。
    在线/离线状态平台收到硬件最后一条报文10分钟后,更新设备状态为离线。上报报文期间为在线。
    停车/行驶状态时速大于5视为行驶,否则停车。离线时设备速度为0。
    里程根据上报定位点,按GPS时间排序,累加定位点间距获得。
    停留点从开始停车到行驶的一段时间视为停留点,停留时长最少10分钟。
    轨迹将历史定位数据按定位时间排序绘制的路线。
    轨迹分段将轨迹分隔为多个行程段。分隔条件默认为,点间距超过10米,定位时间间距超过15分钟。

    安装说明#

    下载 docker-compose.yml 以及 lvn_bootstrap.sh,如果需要自定义可以使用文本编辑器对其中的参数进行自定义,两个文件放置在相同目录。

    快捷安装#

    直接运行lvn_bootstrap.sh,适用于新服务器直接部署运行,会自动安装相关依赖的环境如docker、docker-compose

    自定义安装#

    如已安装对应环境,可跳过该步骤,顺序执行下一个

    安装docker#

    sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

    安装docker-compose#

    sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m) >/usr/local/bin/docker-compose
    chmod +x /usr/local/bin/docker-compose

    添加项目私库地址#

    echo '{ "insecure-registries": [ "123.234.31.106" ],  "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com" ] }' >>/etc/docker/daemon.json

    启动docker#

    systemctl start docker
    systemctl enable docker.service

    定义环境变量#

    LVN_DEPLOY_PATH: 项目日志以及持续化文件保存的地方
    LVN_CLIENT_ID、LVN_CLIENT_SECRET、LVN_APP_CODE:填写项目授权或试用时分发的KEY、CODE

    使用账号密码登录docker私库#

    docker login -u admin -p Harbor12345 http://123.234.31.106

    启动#

    docker-compose up -d

    定义声明#

    端口定义#

    9000,网关服务端口
    9010,授权服务端口
    8012,应用服务端口
    7005,告警处理服务端口
    12061,部标协议TCP端口
    3306,Mysql数据库端口
    6379,Mysql数据库端口

    环境变量#

    环境变量作用是否必填示例
    LVN_DEPLOY_PATH部署目录,日志以及持久化文件会存储在此目录/user/local/lvn/
    LVN_CLIENT_ID终端ID必填yiqiyongche
    LVN_CLIENT_SECRET终端秘钥必填xxxxxx
    LVN_BAIDU_GEO_KEY百度逆地理编码key必填xxxxxxx,xxxxx
    LVN_GAODE_WIFI_KEY高德智能定位解析key非必填xxxxxxx,xxxxx
    LVN_GAODE_LBS_KEY高德lbs解析key非必填xxxxxxx,xxxxx
    ** 本项目逆地理编码、基站解析、热点解析调用两大地图商(百度和高德)的api,调用秘钥(key)需按调用量需求申请对应的配额,代码内默认使用了个人版key,不支持生产环境。
    https://lbsyun.baidu.com/apiconsole/center#/home
    https://console.amap.com/dev/key/app

    使用说明#

    1. API鉴权#

    初次使用时我们会提供调用终端的鉴权信息client_id和client_secret,调用鉴权接口可获取凭证access_token,之后便可开始使用其他业务API接口。
    输入图片说明
    鉴权接口 POST /oauth/token
    此接口返回的token_type和access_token使用' '(空格)连接后,在请求header中携带调用业务接口。
    请求参数
    名称位置类型必选说明
    grant_typequerystring是固定参数
    client_idquerystring是客户端ID
    client_secretquerystring是客户端密钥
    成功返回示例
    {
      "access_token": "this_is_an_example_access_token",
      "token_type": "bearer",
      "expires_in": 40528,
      "scope": "all",
      "jti": "483fb3cf-e63b-415d-93bd-bdd4f12a8213"
    }
    返回结果
    状态码状态码含义说明数据模型
    200OK成功Inline
    返回数据结构
    名称类型必选约束中文名说明
    » access_tokenstringtruenone鉴权tokennone
    » token_typestringtruenone鉴权类型none
    » expires_inintegertruenone多少秒后token过期none

    2. 设备接入与消息接收#

    系统搭建完成后,若使用第三方硬件,需将硬件配置到对应协议的TCP(UDP)上线端口,若使用我司设备,可联系客服配置。
    如图所示,首先添加设备以确保设备上线,若需接收设备实时定位和告警,需开启事件推送。
    输入图片说明

    设备-添加接口 GET /devices/syn#

    支持相同型号批量添加,使用默认参数,可绕过鉴权。
    请求参数
    名称位置类型必选说明
    clientIdquerystring是客户端ID
    categoryNoquerystring是设备型号,长名称
    deviceNumsquerystring是设备号,批量使用逗号间隔
    返回结果
    状态码状态码含义说明数据模型
    200OK成功Inline

    设备-批量启停推送接口 GET /devices/batch#

    若设备导入时没有指定启用状态,则默认启用,不需要批量启用。若导入时指定设备初始状态为停用,则需要使用该接口控制,停用时,不推送定位状态、事件信息。
    请求参数
    名称位置类型必选说明
    devicesquerystring是需要启停的设备编号,多个时用逗号间隔
    isEnablequerystring是0:启用 1:停用
    返回结果
    状态码状态码含义说明数据模型
    200OK成功Inline
    3.
    验证设备上线

    设备位置-运维查看设备位置状态接口 GET /opt/location#

    运维使用查询设备最新定位状态,当设备号不存在时提示“设备号不存在”
    请求参数
    名称位置类型必选说明
    deviceNumquerystring是none
    成功返回示例
    {
      "code": 200,
      "data": {
        "categoryNo": "DO90",
        "categoryNoShort": "DO90",
        "createTime": "2022-07-27 05:12:00",
        "deviceNum": "868120250375836",
        "direction": 28,
        "directionName": "东北",
        "gpsTime": "2022-07-26 16:14:49",
        "isMoving": 0,
        "latBd": 29.116056,
        "latGc": 29.109734,
        "lngBd": 119.654767,
        "lngGc": 119.648356,
        "locMode": 9,
        "satCount": 15,
        "speed": 0,
        "startTimeMovingStop": "2022-06-23 07:45:53",
        "startTimeOnOffLine": "2022-07-27 05:12:00",
        "wifiFlag": 1
      },
      "message": "",
      "success": true
    }
    返回结果
    状态码状态码含义说明数据模型
    200OK成功Inline
    返回数据结构
    名称类型必选约束中文名说明
    » codeintegertruenonenone
    » dataobjecttruenonenone
    »» categoryNostringtruenone设备类型none
    »» categoryNoShortstringtruenone设备类型短名none
    »» createTimestringtruenone创建时间none
    »» deviceNumstringtruenone设备号none
    »» directionintegertruenone方向none
    »» directionNamestringtruenone方向描述none
    »» gpsTimestringtruenone定位时间none
    »» isMovingintegertruenone行驶中状态 行驶:1;停车:0none
    »» latBdnumbertruenone百度坐标纬度none
    »» latGcnumbertruenone高德坐标纬度none
    »» lngBdnumbertruenone百度坐标经度none
    »» lngGcnumbertruenone高德坐标经度none
    »» locModeintegertruenone定位方式 0-GPS;1-LBS单基站;2-LBS多基站;5-WIFI;9-不定位none
    »» satCountintegertruenone卫星数 卫星个数none
    »» speedintegertruenone速度none
    »» startTimeMovingStopstringtruenone行驶/停车 + 起始时刻 年月日 时分秒none
    »» startTimeOnOffLinestringtruenone在线/离线起始时刻 年月日 时分秒none
    »» wifiFlagintegertruenone设备类型 1:有线none
    » messagestringtruenonenone
    » successbooleantruenonenone

    常见问题#

    设备在线总数和各端口在线数#

    可根据各端口实时在线数量粗略判断端口健康状态,当某端口车辆较少或当前时间大部分车辆在停车状态,则不足以判断端口健康情况。可参考以下SQL query查询在线数量。

    设备不上线问题#

    定位更新回调接收不到该设备数据,或超过30分钟没有新数据。
    运维建议:
    1.
    确认设备是否已通电,车辆正常行驶。
    2.
    与网络运营商确认物联网卡为可用状态。
    3.
    避免将车辆置于地下停车场等信号差的位置,参看设备说明书,根据指示灯判断,确认网络信号良好,GPS信号良好。

    设备定位不准问题#

    车辆于地图定位与实际位置有偏差。
    运维建议:
    1.
    确认车辆正常行驶,否则可能导致设备断电。
    2.
    确认定位更新回调接收该设备数据正常,若无更新,怀疑存在设备不上线问题。
    3.
    若回调数据中定位标识AV=V,说明设备搜索不到卫星信号,GPS定位失败,建议开车移动到信号较好的位置。

    功能特性#

    功能说明
    协议解析可接入有线、无线、行车记录仪、OBD设备,支持部标协议与行业主流私有协议,实时对设备下发指令。
    实时数据分析根据设备实时上报,计算定位、车身数据、轨迹、里程、停留点等数据。
    告警规则引擎根据自定义的告警规则,实时计算告警。
    离线数据分析支持对轨迹、报文、告警等大量动态数据检索,并统计分析。
    消息推送推送定位更新和告警事件,便于实现数据同步和生成客户消息。
    数据接口查询定位、轨迹、里程、指令、视频等数据接口。

    系统架构#

    轻车车联网网关.png

    系统配置要求#

    配置项规格
    CPU内存1w台设备以内2核4G
    硬盘每100台设备1年20G
    操作系统Linux

    支持设备类型#

    设备类型协议
    康凯斯有线/OBD接电设备康凯斯私有协议
    奇果OBD设备奇果私有协议
    零一OBD设备零一私有协议
    车葫芦OBD设备车葫芦私有协议
    车易控行车记录仪JT808部标协议
    合正行车记录仪合正私有协议
    新源润无线设备新源润私有协议
    ADAS设备JT1078部标协议

    支持报警类型#

    类别报警项
    设备自带报警电瓶拆除报警、非法拆除报警、震动报警、
    风险地点报警、防劫持报警、开盖报警、
    位移报警、伪基站报警
    异常驾驶行为-疲劳/打电话/抽烟
    平台判断报警超速报警、进敏感区域报警、出敏感区域报警、
    掉线报警、停车超时报警、分离报警、
    出省报警、敏感区域停留报警、未进常用区域超时报警、
    原地设防报警、进电力围栏报警、
    出电子围栏报警、围栏内报警、围栏内停车超时报警

    名词说明#

    概念定义
    报文硬件上行数据,例如定位、心跳、报警、OBD等信息。
    服务器时间平台接收报文时间。
    定位时间报文中GPS定位时间,即硬件使用自身GPS模块获得的GPS定位时间。
    在线/离线状态平台收到硬件最后一条报文10分钟后,更新设备状态为离线。上报报文期间为在线。
    停车/行驶状态时速大于5视为行驶,否则停车。离线时设备速度为0。
    里程根据上报定位点,按GPS时间排序,累加定位点间距获得。
    停留点从开始停车到行驶的一段时间视为停留点,停留时长最少10分钟。
    轨迹将历史定位数据按定位时间排序绘制的路线。
    轨迹分段将轨迹分隔为多个行程段。分隔条件默认为,点间距超过10米,定位时间间距超过15分钟。

    安装说明#

    下载 docker-compose.yml 以及 lvn_bootstrap.sh,如果需要自定义可以使用文本编辑器对其中的参数进行自定义,两个文件放置在相同目录。

    快捷安装#

    直接运行lvn_bootstrap.sh,适用于新服务器直接部署运行,会自动安装相关依赖的环境如docker、docker-compose

    自定义安装#

    如已安装对应环境,可跳过该步骤,顺序执行下一个

    安装docker#

    sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

    安装docker-compose#

    sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m) >/usr/local/bin/docker-compose
    chmod +x /usr/local/bin/docker-compose

    添加项目私库地址#

    echo '{ "insecure-registries": [ "123.234.31.106" ],  "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com" ] }' >>/etc/docker/daemon.json

    启动docker#

    systemctl start docker
    systemctl enable docker.service

    定义环境变量#

    LVN_DEPLOY_PATH: 项目日志以及持续化文件保存的地方
    LVN_CLIENT_ID、LVN_CLIENT_SECRET、LVN_APP_CODE:填写项目授权或试用时分发的KEY、CODE

    使用账号密码登录docker私库#

    docker login -u admin -p Harbor12345 http://123.234.31.106

    启动#

    docker-compose up -d

    定义声明#

    端口定义#

    9000,网关服务端口
    9010,授权服务端口
    8012,应用服务端口
    7005,告警处理服务端口
    12061,部标协议TCP端口
    3306,Mysql数据库端口
    6379,Mysql数据库端口

    环境变量#

    环境变量作用示例
    LVN_DEPLOY_PATH部署目录,日志以及持久化文件会存储在此目录/user/local/lvn/
    LVN_CLIENT_ID终端IDyiqiyongche
    LVN_CLIENT_SECRET终端秘钥xxxxxx
    LVN_BAIDU_GEO_KEY百度反地理编码keyxxxxxxx,xxxxx
    LVN_GAODE_WIFI_KEY高德wifi解析keyxxxxxxx,xxxxx
    LVN_GAODE_LBS_KEY高德lbs解析keyxxxxxxx,xxxxx

    2. API鉴权#

    初次使用时我们会提供调用终端的鉴权信息client_id和client_secret,调用鉴权接口可获取凭证access_token,之后便可开始使用其他业务API接口。
    1.png

    鉴权接口 POST /oauth/token#

    此接口返回的token_type和access_token使用' '(空格)连接后,在请求header中携带调用业务接口。
    请求参数
    名称位置类型必选说明
    grant_typequerystring是固定参数
    client_idquerystring是客户端ID
    client_secretquerystring是客户端密钥
    成功返回示例
    {
      "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzY29wZSI6WyJhbGwiXSwiZXhwIjoxNjQ4MTQ0Nzk4LCJqdGkiOiI0ODNmYjNjZi1lNjNiLTQxNWQtOTNiZC1iZGQ0ZjEyYTgyMTMiLCJjbGllbnRfaWQiOiJ5aXFpeW9uZ2NoZSJ9.HD8Xd4UL9-kcfJHIYKi_5zmSvM8pi4Ms4WccLAlqEr7BlJ6f_4KrXIM9IWRzIXJIBTelN-NNNXMu6bzJ0NLmMp1GuLYTeUZNih5_wBeLP9FIv23iMRvupiNtOsMztSkd80HgscNLfaiK5A2Bz99hzZuz0CZKS8wmPapEzKf-Kx3Y0X_5hYSZEvc67X9u5enhYcMlnaiR-MUDXpMmpRO9aMJCH_Ow85IVtSQ42bHbisgypefo1Nnqx-HmlQIvaJtTs2kPmCATO06H4Hg0jIvPr0R47Fnnh0d3sN0WUBIbKt39Ta81iGjutP1rl9WQFMvyrCGH-LhFodBA-4wecs0S_A",
      "token_type": "bearer",
      "expires_in": 40528,
      "scope": "all",
      "jti": "483fb3cf-e63b-415d-93bd-bdd4f12a8213"
    }
    返回结果
    状态码状态码含义说明数据模型
    200OK成功Inline
    返回数据结构
    名称类型必选约束中文名说明
    » access_tokenstringtruenone鉴权tokennone
    » token_typestringtruenone鉴权类型none
    » expires_inintegertruenone多少秒后token过期none

    3. 设备接入与消息接收#

    系统搭建完成后,若使用第三方硬件,需将硬件配置到对应协议的TCP(UDP)上线端口,若使用我司设备,可联系客服配置。
    如图所示,首先添加设备以确保设备上线,若需接收设备实时定位和告警,需开启事件推送。
    2.png

    设备-添加接口 GET /devices/syn#

    支持相同型号批量添加,使用默认参数,可绕过鉴权。
    请求参数
    名称位置类型必选说明
    clientIdquerystring是客户端ID
    categoryNoquerystring是设备型号,长名称
    deviceNumsquerystring是设备号,批量使用逗号间隔
    返回结果
    状态码状态码含义说明数据模型
    200OK成功Inline

    设备-批量启停推送接口 GET /devices/batch#

    若设备导入时没有指定启用状态,则默认启用,不需要批量启用。若导入时指定设备初始状态为停用,则需要使用该接口控制,停用时,不推送定位状态、事件信息。
    请求参数
    名称位置类型必选说明
    devicesquerystring是需要启停的设备编号,多个时用逗号间隔
    isEnablequerystring是0:启用 1:停用
    返回结果
    状态码状态码含义说明数据模型
    200OK成功Inline

    4. 验证设备上线#

    设备位置-运维查看设备位置状态接口 GET /opt/location#

    运维使用查询设备最新定位状态,当设备号不存在时提示“设备号不存在”
    请求参数
    名称位置类型必选说明
    deviceNumquerystring是none
    成功返回示例
    {
      "code": 200,
      "data": {
        "categoryNo": "DO90",
        "categoryNoShort": "DO90",
        "createTime": "2022-07-27 05:12:00",
        "deviceNum": "868120250375836",
        "direction": 28,
        "directionName": "东北",
        "gpsTime": "2022-07-26 16:14:49",
        "isMoving": 0,
        "latBd": 29.116056,
        "latGc": 29.109734,
        "lngBd": 119.654767,
        "lngGc": 119.648356,
        "locMode": 9,
        "satCount": 15,
        "speed": 0,
        "startTimeMovingStop": "2022-06-23 07:45:53",
        "startTimeOnOffLine": "2022-07-27 05:12:00",
        "wifiFlag": 1
      },
      "message": "",
      "success": true
    }
    返回结果
    状态码状态码含义说明数据模型
    200OK成功Inline
    返回数据结构
    名称类型必选约束中文名说明
    » codeintegertruenonenone
    » dataobjecttruenonenone
    »» categoryNostringtruenone设备类型none
    »» categoryNoShortstringtruenone设备类型短名none
    »» createTimestringtruenone创建时间none
    »» deviceNumstringtruenone设备号none
    »» directionintegertruenone方向none
    »» directionNamestringtruenone方向描述none
    »» gpsTimestringtruenone定位时间none
    »» isMovingintegertruenone行驶中状态 行驶:1;停车:0none
    »» latBdnumbertruenone百度坐标纬度none
    »» latGcnumbertruenone高德坐标纬度none
    »» lngBdnumbertruenone百度坐标经度none
    »» lngGcnumbertruenone高德坐标经度none
    »» locModeintegertruenone定位方式 0-GPS;1-LBS单基站;2-LBS多基站;5-WIFI;9-不定位none
    »» satCountintegertruenone卫星数 卫星个数none
    »» speedintegertruenone速度none
    »» startTimeMovingStopstringtruenone行驶/停车 + 起始时刻 年月日 时分秒none
    »» startTimeOnOffLinestringtruenone在线/离线起始时刻 年月日 时分秒none
    »» wifiFlagintegertruenone设备类型 1:有线none
    » messagestringtruenonenone
    » successbooleantruenonenone

    常见运维问题#

    设备在线总数和各端口在线数#

    可根据各端口实时在线数量粗略判断端口健康状态,当某端口车辆较少或当前时间大部分车辆在停车状态,则不足以判断端口健康情况。可参考以下SQL query查询在线数量。

    设备不上线问题#

    定位更新回调接收不到该设备数据,或超过30分钟没有新数据。
    运维建议:
    1.
    确认设备是否已通电,车辆正常行驶。
    2.
    与网络运营商确认物联网卡为可用状态。
    3.
    避免将车辆置于地下停车场等信号差的位置,参看设备说明书,根据指示灯判断,确认网络信号良好,GPS信号良好。

    设备定位不准问题#

    车辆于地图定位与实际位置有偏差。
    运维建议:
    1.
    确认车辆正常行驶,否则可能导致设备断电。
    2.
    确认定位更新回调接收该设备数据正常,若无更新,怀疑存在设备不上线问题。
    3.
    若回调数据中定位标识AV=V,说明设备搜索不到卫星信号,GPS定位失败,建议开车移动到信号较好的位置。
    下一页
    token获取接口
    Built with