EMQ X Enterprise 新版本:新增车联网行业 GB/T32960 协议支持

死锁专家
• 阅读 2181

前言

在过去的几年中,车联网已经从概念发展成潮流,席卷各大汽车制造商和相关的上下游行业,围绕车联网产业标准体系建设,我国相关部门一系列的指导标准应运而生。

EMQ 致力于为企业提供优质的万物互联引擎,不仅与主流汽车制造商及产业链相关企业建立了广泛的合作,也从国家标准和行业标准层面提供了更多的能力和技术支持。此前 EMQ X 已经支持 JT/T 808 协议, 随着 v4.2.3 版本发布,EMQ X 新增了又一个车联网相关 GB/T32960 协议的接入能力。

《GB/T32960 电动汽车远程服务与管理系统技术规范:通讯协议及数据格式》是用于新能源车辆远程服务平台间通讯的指导标准,基于 TCP 传输协议,可应用于车载通讯模块与远程服务平台间的通讯。 本文将从使用者角度介绍 EMQ X 如何接入 GB/T32960 协议设备。

工作原理

EMQ X 企业版中提供了 GB/T 32960 协议网关模块,按照其功能逻辑和整个系统的关系,将整个消息交换的过程可以分成三个部分:终端侧,平台侧和其它侧。

EMQ X Enterprise 新版本:新增车联网行业 GB/T32960 协议支持

  1. 终端侧:通过 GB/T 32960 协议进行交换数据,实现不同类型的数据的上报,或者发送下行的消息到终端。
  2. 平台侧:EMQ X GB/T 32960 网关将报文解码后在 EMQ X 内部转为 MQTT 协议进行数据上下行操作:

    • 数据上行:将上行数据报文以 MQTT PUBLISH 的形式发布到特定的主题上;
    • 数据下行:将需要下行的数据 PUBLISH 到特定的主题,消息将转化为 GB/T 32960 协议的报文结构,下发到终端。
  3. 其它侧,通过 EMQ X 企业版的规则引擎可以将 2 中出现的上行数据存储/转发到企业的数据库、流处理平台(如 Kafka)和业务系统中;企业应用平台可以通过多种方式下发控制指令到 EMQ X,最终将数据发送到终端侧。

如何启用

下载 EMQ X 企业版 v4.2.3 之后的版本,启动之后打开 Dashboard,在 模块 菜单下添加并启用 GB/T 32960 网关即可。

  1. 点击 选择 进入模块选择界面,在 协议接入 中选择 GB/T 32960 网关
  2. 点击 选择 按钮,进入 GB/T 32960 网关 配置页面,进行启动前配置;
  3. 配置重传、报文、消息长度等参数之后,配置 TCP 监听器参数,点击 添加 后即可启用 GB/T 32960 网关。

EMQ X Enterprise 新版本:新增车联网行业 GB/T32960 协议支持

EMQ X Enterprise 新版本:新增车联网行业 GB/T32960 协议支持

EMQ X Enterprise 新版本:新增车联网行业 GB/T32960 协议支持

相关资料

在开发与支持过程中,我们整理了 GB/T 32960 行业与开发相关的资料如下:

  • GBT 32960.1-2016 电动汽车远程服务与管理系统技术规范 第1部分:总则
  • GBT 32960.2-2016 电动汽车远程服务与管理系统技术规范 第2部分:车载终端
  • GBT 32960.3-2016 电动汽车远程服务与管理系统技术规范 第3部分:通讯协议及数据格式
  • EMQ X 企业版 GB/T 32960 网关数据交换格式

关注 EMQX 微信公众号,回复「 32960 」即可获取资料下载地址。

附:数据交换格式示例

以下是 GB/T 32960 和 EMQ X 之间数据交换的格式,数据格式有以下约定:

  • Payload 采用 JSON 格式进行组装
  • JSON Key 采用大驼峰格式命名

由于篇幅有限,此处仅提供部分交换格式示例,完整数据格式详见文末资料以及官网文档。

上行数据

数据流向: Terminal -> GB/T 32960 网关 -> EMQ X。

车辆登入

Topic: gbt32960/${vin}/upstream/vlogin

{
    "Cmd": 1,
    "Encrypt": 1,
    "Vin": "1G1BL52P7TR115520",
    "Data": {
        "ICCID": "12345678901234567890",
        "Id": "C",
        "Length": 1,
        "Num": 1,
        "Seq": 1,
        "Time": {
            "Day": 29,
            "Hour": 12,
            "Minute": 19,
            "Month": 12,
            "Second": 20,
            "Year": 12
        }
    }
}

车辆登出

Topic: gbt32960/${vin}/upstream/vlogout

{
    "Cmd": 4,
    "Encrypt": 1,
    "Vin": "1G1BL52P7TR115520",
    "Data": {
        "Seq": 1,
        "Time": {
            "Day": 1,
            "Hour": 2,
            "Minute": 59,
            "Month": 1,
            "Second": 0,
            "Year": 16
        }
    }
}

下行数据

GB/T 32960 网关对终端的控制采用 Request-Response 模式,向对用的 Topic 发送控制数据,响应结果将从特性的 Topic 返回:

请求

请求数据流向:EMQ X -> GB/T 32960 网关 -> Terminal

下行主题:gbt32960/${vin}/dnstream

应答

应答数据流向:Terminal -> GB/T 32960 网关 -> EMQ X

上行应答主题:gbt32960/${vin}/upstream/response

参数查询

Req:

{
    "Action": "Query",
    "Total": 2,
    "Ids": ["0x01", "0x02"]
}

Response:

{
    "Cmd": 128,
    "Encrypt": 1,
    "Vin": "1G1BL52P7TR115520",
    "Data": {
        "Total": 2,
        "Params": [
            {"0x01": 6000},
            {"0x02": 10}
        ],
        "Time": {
            "Day": 2,
            "Hour": 11,
            "Minute": 12,
            "Month": 2,
            "Second": 12,
            "Year": 17
        }
    }
}

参数设置

Req:

{
    "Action": "Setting",
    "Total": 2,
    "Params": [{"0x01": 5000},
               {"0x02": 200}]
}

Response:

// fixme? 终端是按照这种方式返回?
{
    "Cmd": 129,
    "Encrypt": 1,
    "Vin": "1G1BL52P7TR115520",
    "Data": {
        "Total": 2,
        "Params": [
            {"0x01": 5000},
            {"0x02": 200}
        ],
        "Time": {
            "Day": 2,
            "Hour": 11,
            "Minute": 12,
            "Month": 2,
            "Second": 12,
            "Year": 17
        }
    }
}

终端控制

远程升级: Req:

{
    "Action": "Control",
    "Command": "0x01",
    "Param": {
        "DialingName": "hz203",
        "Username": "user001",
        "Password": "password01",
        "Ip": "192.168.199.1",
        "Port": 8080,
        "ManufacturerId": "BMWA",
        "HardwareVer": "1.0.0",
        "SoftwareVer": "1.0.0",
        "UpgradeUrl": "ftp://emqtt.io/ftp/server",
        "Timeout": 10
    }
}

车载终端关机:

{
    "Action": "Control",
    "Command": "0x02"
}

车载终端报警:

{
    "Action": "Control",
    "Command": "0x06",
    "Param": {"Level": 0, "Message": "alarm message"}
}
版权声明: 本文为 EMQ 原创,转载请注明出处。

原文链接:https://www.emqx.cn/blog/release-notes-emq-x-enterprise-4-2-3

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
添砖java的啾 添砖java的啾
4年前
distinct效率更高还是group by效率更高?
目录00结论01distinct的使用02groupby的使用03distinct和groupby原理04推荐groupby的原因00结论先说大致的结论(完整结论在文末):在语义相同,有索引的情况下groupby和distinct都能使用索引,效率相同。在语义相同,无索引的情况下:distinct效率高于groupby。原因是di
Wesley13 Wesley13
3年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Karen110 Karen110
4年前
​一篇文章总结一下Python库中关于时间的常见操作
前言本次来总结一下关于Python时间的相关操作,有一个有趣的问题。如果你的业务用不到时间相关的操作,你的业务基本上会一直用不到。但是如果你的业务一旦用到了时间操作,你就会发现,淦,到处都是时间操作。。。所以思来想去,还是总结一下吧,本次会采用类型注解方式。time包importtime时间戳从1970年1月1日00:00:00标准时区诞生到现在
Stella981 Stella981
3年前
IoT爆发前夕,企业架构要面对哪些变革?
物联网(IoT),是当下乃至未来的一个技术热点,在过去的2020年,随着5G等前沿技术的持续落地,万物互联已然成为大势所趋。不难发现,在IoT产业滚滚向前的进程里,与之相关的数据库、操作系统及软件应用如雨后春笋般逐渐出现;家电家居、工业、汽车等传统领域也开始与IoT结合,实现相关应用落地,并持续实现产业变革。值得欣喜的是,纵观全球IoT产业发展,中国的增
Wesley13 Wesley13
3年前
AI两入政府工作报告,无人车开始驶向快车道
与往年有所不同的是,汽车成为今年两会上提及次数最多、变化最大的行业,并再次被写入政府工作报告。而除了新能源汽车、二手车限迁政策、下调进口汽车关税等行业内的热门议题,汽车和互联网、AI等新经济的融合几成共识。!(https://oscimg.oschina.net/oscnet/de524e1af7ee4356a38b8300fd16c
一朵云开启智慧交通新未来
“聪明的车”上“智慧的路”靠的是“灵活的网”配“强大的云”作为交通出行的重要载体及交通系统当中的核心环节,汽车的智能化和网联化是未来发展的重要方向。车联网运用大数据和云计算手段,对车辆位置、速度和路线信息、驾驶人信息、道路拥堵事故信息以及各种多媒体应用领域等重要信息元素进行整理与计算,实现无人驾驶汽车、智能汽车网络化交互性控制。WHAT——什么是车联网?车联
赵颜 赵颜
1年前
车载V2X如何选型安全芯片
ACX200T面向5G车联网CV2X应用的安全芯片,满足V2X场景下消息认证的专用安全芯片,该款芯片采用公司自主的高速硬件加密引擎,支持国家标准SM1、SM2、SM3、SM4密码算法,同时支持国际ECDSA、AES、SHA1密码算法。可实现网联汽车云端认证