CN114938386B - 一种车云通信系统 - Google Patents
一种车云通信系统 Download PDFInfo
- Publication number
- CN114938386B CN114938386B CN202210549204.5A CN202210549204A CN114938386B CN 114938386 B CN114938386 B CN 114938386B CN 202210549204 A CN202210549204 A CN 202210549204A CN 114938386 B CN114938386 B CN 114938386B
- Authority
- CN
- China
- Prior art keywords
- data
- vehicle
- current
- type
- identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Telephonic Communication Services (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明实施例涉及一种车云通信系统,所述系统包括:数据配置服务端、数据发布服务端、数据上报服务端和车辆;数据配置服务端用于维护根格式列表集合,并保持与数据发布服务端、数据上报服务端的同步;车辆用于在车辆启动时从数据发布服务端获得第一车辆格式序列,还用于按预设数据上传频率根据第一车辆格式序列进行本地CAN数据的采集与拼装生成第一上报报文向数据上报服务端发送;数据上报服务端用于对第一上报报文进行数据解析,并对解析数据进行协议封装生成第三方车云通信报文向第三方云平台发送。通过本发明系统即使不对车辆做任何通信协议升级也能保证车辆可以接入任意云平台。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种车云通信系统。
背景技术
随着智能网联技术和自动驾驶技术发展逐步成熟,同一车辆可能会将自身采集的控制器局域网络(Controller Area Network,CAN)数据传入不同云平台进行管理,不同品牌、类型的车辆也可能按同一数据采集要求将各自的CAN数据传入同一云平台进行管理。这种情况下,若要提前在车辆上对各个云平台的数据采集与通信协议进行预支持显然是很难实现的,若要通过不断升级来扩大车辆的协议支持范围也会受车辆本地计算资源限制而无法做到无限制的拓展。
发明内容
本发明的目的,就是针对现有技术的缺陷,提供一种车云通信系统,该系统包括:数据配置服务端、数据发布服务端、数据上报服务端和车辆。通过本发明系统在车辆和第三方云平台之间架设一个协议转换系统,将所有协议转换工作的开发与升级都集中在该协议转换系统上完成,在车辆端只需支持一种车云通信协议即与本发明系统的通信协议即可,如此就能实现即使不对车辆做任何通信协议升级也能轻松接入任意云平台的目的。
为实现上述目的,本发明实施例提供了一种车云通信系统,所述系统包括:数据配置服务端、数据发布服务端、数据上报服务端和车辆;
所述数据配置服务端分别与所述数据发布服务端和所述数据上报服务端连接;所述数据配置服务端用于对本地的根格式列表集合进行管理维护,并保持所述数据发布服务端本地的第一格式列表集合以及所述数据上报服务端本地的第二格式列表集合与所述根格式列表集合数据同步;
所述车辆分别与所述数据发布服务端和所述数据上报服务端连接;所述车辆用于在车辆启动时,从本地获取车辆编码生成当前车辆编码,并将携带了所述当前车辆编码的格式序列申请指令向所述数据发布服务端发送,并接收所述数据发布服务端回发的第一车辆格式序列存于本地;所述车辆还用于按预设的数据上传频率,根据所述第一车辆格式序列进行本地CAN数据的采集与拼装处理生成对应的第一上报报文,并将所述第一上报报文向所述数据上报服务端发送;
所述数据发布服务端用于从所述格式序列申请指令中提取所述当前车辆编码;并根据所述当前车辆编码对本地的所述第一格式列表集合进行车辆格式序列查询处理得到对应的所述第一车辆格式序列;并将所述第一车辆格式序列向所述车辆回发;
所述数据上报服务端与第三方云平台连接;所述数据上报服务端用于根据本地的所述第二格式列表集合对所述第一上报报文进行数据解析处理生成对应的第一解析数据;并按与所述第三方云平台约定的通信协议,对所述第一解析数据进行协议封装生成对应的第三方车云通信报文;并将所述第三方车云通信报文向所述第三方云平台发送。
优选的,所述根格式列表集合包括多个车辆格式列表,每个所述车辆格式列表对应一个车辆编码;所述车辆格式列表包括多个版本的车辆格式序列,每个所述车辆格式序列对应一个版本激活状态,所述版本激活状态包括已激活状态和未激活状态;所述车辆格式列表中有且只有一个所述车辆格式序列的所述版本激活状态为已激活状态;所述车辆格式序列包括多个车辆数据标识;所述车辆格式序列中,第1个所述车辆数据标识为一类时间戳标识或二类时间戳标识;
所述第一、第二格式列表集合与所述根格式列表集合的数据内容保持同步。
优选的,所述数据配置服务端具体用于在所述对本地的根格式列表集合进行管理维护时,向用户提供对根格式列表集合的创建与删除操作界面,以及对各个车辆格式列表的创建、修改及删除操作界面,以及对各个车辆格式列表与各个车辆编码的绑定、解绑操作界面,以及对各个车辆格式序列的创建、修改、激活、取消激活和删除操作界面,以及对各个车辆数据标识的创建、修改、和删除操作界面;并在每次用户确认并提交操作内容时,对当次管理维护的操作步骤进行记录生成对应的第一操作脚本并保存;
所述数据配置服务端具体用于在所述保持所述数据发布服务端本地的第一格式列表集合以及所述数据上报服务端本地的第二格式列表集合与所述根格式列表集合数据同步时,对本地的同步方式状态字进行识别;若所述同步方式状态字被预设为实时同步方式,则每产生一个新的所述第一操作脚本时就将所述第一操作脚本作为对应的第一同步脚本,并就将携带了所述第一同步脚本的同步操作指令分别向所述数据发布服务端和所述数据上报服务端发送,并对所述数据发布服务端和所述数据上报服务端回发的两个同步操作状态进行识别,若两个同步操作状态均为操作成功则确认所述第一、第二格式列表集合同步成功,并将所述第一操作脚本删除;若所述同步方式状态字被预设为定期同步方式,则每间隔一个预设的同步时长就对本地存储的所述第一操作脚本的数量进行统计,若统计数量不为0则对本地存储的一个或多个所述第一操作脚本按时间顺序进行顺次脚本拼接生成对应的所述第一同步脚本,并将携带了所述第一同步脚本的所述同步操作指令分别向所述数据发布服务端和所述数据上报服务端发送,并对所述数据发布服务端和所述数据上报服务端回发的两个同步操作状态进行识别,若两个同步操作状态均为操作成功则确认所述第一、第二格式列表集合同步成功,并将本地存储的一个或多个所述第一操作脚本删除;
所述数据发布服务端还用于从所述同步操作指令中提取出所述第一同步脚本;并根据所述第一同步脚本对本地的所述第一格式列表集合进行同步操作;操作成功则向所述数据配置服务端回发具体为操作成功的同步操作状态;
所述数据上报服务端还用于从所述同步操作指令中提取出所述第一同步脚本;并根据所述第一同步脚本对本地的所述第二格式列表集合进行同步操作;操作成功则向所述数据配置服务端回发具体为操作成功的同步操作状态。
优选的,所述数据发布服务端具体用于在所述根据所述当前车辆编码对本地的所述第一格式列表集合进行车辆格式序列查询处理时,将所述第一格式列表集合中,与所述当前车辆编码对应的所述车辆格式列表作为当前车辆格式列表;并将所述当前车辆格式列表中,所述版本激活状态为已激活状态的所述车辆格式序列作为对应的所述第一车辆格式序列。
优选的,所述车辆与所述数据上报服务端本地均预设一个内容相同的数据标识词典;所述数据标识词典包括多个数据标识记录;所述数据标识记录包括数据标识字段、数据类型字段和数据长度字段;所述数据类型字段包括6字节时间戳类型、8字节时间戳类型、逻辑类型、字节类型、字类型、双字类型、浮点类型和字符串类型;所述数据标识字段的长度为2字节;
所述数据类型字段为6字节时间戳类型时对应的所述数据长度字段为6,所述数据类型字段为8字节时间戳类型时对应的所述数据长度字段为8,所述数据类型字段为逻辑类型时对应的所述数据长度字段为1,所述数据类型字段为字节类型时对应的所述数据长度字段为1,所述数据类型字段为字类型时对应的所述数据长度字段为2,所述数据类型字段为双字类型时对应的所述数据长度字段为4,所述数据类型字段为浮点类型时对应的所述数据长度字段无效,所述数据类型字段为字符串类型时对应的所述数据长度字段无效;
所述数据标识字段为一类时间戳标识时对应的所述数据类型字段为6字节时间戳类型,所述数据标识字段为二类时间戳标识时对应的所述数据类型字段为8字节时间戳类型。
优选的,所述车辆具体用于在所述根据所述第一车辆格式序列进行本地CAN数据的采集与拼装处理时,统计所述第一车辆格式序列中所述车辆数据标识的数量记为数量n;
并对所述第一车辆格式序列中第1个到第n个所述车辆数据标识进行逐个提取作为当前数据标识,并根据所述当前数据标识采集对应的本地CAN数据作为当前采集数据,并将所述数据标识词典中所述数据标识字段与所述当前数据标识匹配的所述数据标识记录的所述数据类型字段提取出来作为当前数据类型,并按所述当前数据类型对所述当前采集数据进行数据类型转换生成对应的当前转换数据,并对所述当前数据标识进行2字节长度的十六进制数转换得到对应的当前标识数据,若所述当前数据类型为6字节时间戳类型或8字节时间戳类型则由所述当前转换数据组成对应的数据项i,若所述当前数据类型不为6字节时间戳类型、8字节时间戳类型、浮点类型或字符串类型则由所述当前标识数据与所述当前转换数据组成对应的数据项i,若所述当前数据类型为浮点类型或字符串类型则对所述当前转换数据的字节长度进行统计得到对应的当前数据长度并对所述当前数据长度进行单字节十六进制转换并由所述当前标识数据、所述当前数据长度和所述当前转换数据组成对应的所述数据项,其中,1≤i≤n,所述当前数据长度为单字节数据;
并对所述数据项i按从1到n的顺序进行顺次拼接得到对应的第一报文体;并对所第一报文体的字节长度进行统计,并将统计结果转换为3字节长的当前报文长度;并由预设的单字节长的报文头标识、3字节长的所述当前报文长度、预设的单字节长的报文类型标识和所述第一报文体拼接生成对应的所述第一上报报文。
优选的,所述数据上报服务端具体用于在所述根据本地的所述第二格式列表集合对所述第一上报报文进行数据解析处理时,通过数据接收通道与车辆编码的对应关系确认所述第一上报报文对应的车辆编码并将之记为当前车辆编码;并对所述第一上报报文进行报文检查与报文体提取处理得到对应的第二报文体;并将所述第二格式列表集合中与所述当前车辆编码对应的所述车辆格式列表作为当前车辆格式列表,并将所述当前车辆格式列表中所述版本激活状态为已激活状态的所述车辆格式序列作为对应的当前车辆格式序列;并根据所述当前车辆格式序列对所述第二报文体进行报文数据解析处理生成对应的所述第一解析数据。
进一步的,所述数据上报服务端具体用于在所述对所述第一上报报文进行报文检查与报文体提取处理时,将所述第一上报报文中的第1个字节数据提取出来作为对应的当前报文头标识、将第2到4个字节数据提取出来进行三字节十六进制数转换作为对应的当前报文长度、将第5个字节数据提取出来作为对应的当前报文类型标识、将第6到最后1个字节的数据提取出来作为对应的当前报文体;并对所述当前报文体的字节长度进行统计生成对应的第一长度;并在所述当前报文头标识与预设的报文头标识匹配、且所述第一长度与所述当前报文长度匹配、且所述当前报文类型标识与预设的报文类型标识匹配时,确认本次报文检查成功并将所述当前报文体作为对应的所述第二报文体。
进一步的,所述数据上报服务端具体用于在所述根据所述当前车辆格式序列对所述第二报文体进行报文数据解析处理时,将所述当前车辆格式序列中第1个所述车辆数据标识提取出来作为当前数据标识,若所述当前数据标识为一类时间戳标识则将所述第二报文体的头6字节数据提取出来作为当前解析数据项,若所述当前数据标识为二类时间戳标识则将所述第二报文体的头8字节数据提取出来作为所述当前解析数据项;并将所述当前解析数据项向预设的解析数据序列添加,添加成功后将所述当前解析数据项记为前一解析数据项;
并将所述当前车辆格式序列中所述当前数据标识的下一个所述车辆数据标识提取出来作为新的当前数据标识,并将所述第二报文体中所述前一解析数据项的后两个字节提取出来作为第一数据标识,若所述当前数据标识与所述第一数据标识匹配则将所述数据标识词典中所述数据标识字段与所述当前数据标识匹配的所述数据标识记录的所述数据类型字段和数据长度字段提取出来作为对应的第一数据类型和第一数据长度,若所述第一数据类型不为浮点类型或字符串类型则在所述第二报文体中从所述第一数据标识后的第1个字节开始提取长度为所述第一数据长度的一个或多个字节作为第一数据体、并由所述第一数据标识、所述第一数据长度和所述第一数据体组成新的所述当前解析数据项,若所述第一数据类型为浮点类型或字符串类型则在所述第二报文体中将所述第一数据标识后的第1个字节提取出来作为第二数据长度、并从所述第一数据标识后的第2个字节开始提取长度为所述第二数据长度的一个或多个字节数据作为所述第一数据体、并由所述第一数据标识、所述第二数据长度和所述第一数据体组成新的所述当前解析数据项;并将所述当前解析数据项向所述解析数据序列添加,添加成功后将所述当前解析数据项记为前一解析数据项;依次类推,再将所述当前车辆格式序列中所述当前数据标识的下一个所述车辆数据标识提取出来作为新的当前数据标识、将所述第二报文体中所述前一解析数据项的后两个字节提取出来作为新的所述第一数据标识,直到所述当前车辆格式序列中所述当前数据标识的下一个所述车辆数据标识为空为止;
将所述解析数据序列作为对应的所述第一解析数据。
优选的,所述车辆与所述数据发布服务端间基于MQTT协议进行数据传输;
所述车辆与所述数据上报服务端间基于TCP协议进行数据传输,并在数据传输时基于SSL双通道认证方式进行传输,且在所述车辆侧或所述数据上报服务端侧一旦发现双通道中任一通道断开连接则立即对另一通道进行主动关闭。
本发明实施例提供了一种车云通信系统,该系统包括:数据配置服务端、数据发布服务端、数据上报服务端和车辆。其中,数据配置服务端通过根格式列表集合的车辆格式列表为每个接入车辆配置多个版本的采集数据格式序列即车辆格式序列,并为根格式列表集合与数据发布服务端和数据上报服务端上的第一、第二格式列表集合提供数据同步机制;车辆在每次启动之后,都会从数据发布服务端处获得本次启动过程应采用的采集数据格式序列即第一车辆格式序列,并按设定频率根据第一车辆格式序列对自车的CAN数据进行持续采集,并将采集到的数据按约定格式封装成上传报文发送到数据上报服务端;数据上报服务端按约定格式对车辆上传报文进行解析,再根据第三方云平台的车云通信协议对解析数据进行二次封装,再将封装数据发送至第三方云平台。本发明实际是基于数据配置服务端、数据发布服务端和数据上报服务端在车辆和第三方云平台之间架设了一个协议转换系统,所有协议转换工作的开发与升级都可集中在该协议转换系统上完成,而在车辆端只需支持一种车云通信协议即与本发明系统的通信协议即可,如此就能在不对车辆做任何通信协议升级的前提下使车辆可以轻松接入任意云平台。
附图说明
图1为本发明实施例提供的一种车云通信系统的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种车云通信系统的结构示意图,如图1所示,本车云通信系统1包括:数据配置服务端11、数据发布服务端12、数据上报服务端13和车辆14。车云通信系统1与任意第三方云平台2连接。
这里,数据配置服务端11为远程的中控服务器或云平台;数据发布服务端12为远程的消息队列遥测传输(Message Queuing Telemetry Transport,MQTT)服务器或云平台;数据上报服务端13为远程的传输控制协议(Transmission Control Protocol,TCP)网关、服务器或云平台;第三方云平台2为对任意一个需要对车辆14进行CAN数据采集的云平台。如图1所示,车辆14通过无线网络分别与数据发布服务端12和数据上报服务端13连接;数据配置服务端11通过无线或有线方式分别与数据发布服务端12和数据上报服务端13连接;数据上报服务端13通过无线或有线方式与第三方云平台2连接。
数据配置服务端11用于对本地的根格式列表集合进行管理维护,并保持数据发布服务端12本地的第一格式列表集合以及数据上报服务端13本地的第二格式列表集合与根格式列表集合数据同步;
其中,根格式列表集合包括多个车辆格式列表,每个车辆格式列表对应一个车辆编码;车辆格式列表包括多个版本的车辆格式序列,每个车辆格式序列对应一个版本激活状态,版本激活状态包括已激活状态和未激活状态;车辆格式列表中有且只有一个车辆格式序列的版本激活状态为已激活状态;车辆格式序列包括多个车辆数据标识;车辆格式序列中,第1个车辆数据标识为一类时间戳标识或二类时间戳标识;第一、第二格式列表集合与根格式列表集合的数据内容保持同步。
这里,根格式列表集合用于存储所有在数据配置服务端11上完成注册的车辆对应的所有版本的数据采集要求;数据配置服务端11为每个注册车辆分配一个车辆格式列表和一个唯一编码即车辆编码,并使车辆格式列表与车辆编码绑定;车辆格式列表中每个车辆格式序列对应一个第三方云平台的一版数据采集要求,所谓数据采集要求实际就是第三方云平台所需采集的CAN数据类别,例如,平台一进行车辆管理需要的CAN数据为:速度、航向角和加速度,平台二进行车辆管理需要的CAN数据为:车辆编码、速度和航向角,那么平台一、二对应的数据采集要求就分别为{速度,航向角,加速度}和{车辆编码,航向角,加速度},不难看出本发明实施例所说的数据采集要求可由一个数据序列表示即车辆格式序列,每个车辆格式序列由多个需采集数据的数据标识即车辆数据标识构成,每个车辆数据标识对应数据采集要求中规定一个CAN数据类别;本发明实施例默认车辆在单次启动周期内只对接一个第三方云平台的一版数据采集要求,所以车辆格式列表中只有一个车辆格式序列的版本激活状态为已激活状态;另外,本发明实施例默认将各个车辆格式序列的第1个车辆数据标识设为时间戳标识,并提供两类时间戳标识(一类、二类时间戳标识)以供使用,其中,一类时间戳标识表示6字节时间戳,二类时间戳标识表示8字节时间戳。
例如,设当前与车云通信系统1连接的第三方云平台2对车辆14的CAN数据采集要求为:车辆编码、速度、航向角和制动防抱死系统(Antilock Brake System,ABS)状态,且第三方云平台2对时间戳的要求为6字节时间戳,又已知预设的一类时间戳标识为标识S,预设的对应车辆编码、速度、航向角和ABS状态的车辆数据标识分别为标识1、标识2、标识6、标识56;那么根格式列表集合中与当前车辆14对应的车辆格式列表里版本激活状态为已激活状态车辆格式序列应为{标识S,标识1,标识2,标识6,标识56}。
本发明实施例的一种具体实现方式中,数据配置服务端11具体用于在对本地的根格式列表集合进行管理维护时,向用户提供对根格式列表集合的创建与删除操作界面,以及对各个车辆格式列表的创建、修改及删除操作界面,以及对各个车辆格式列表与各个车辆编码的绑定、解绑操作界面,以及对各个车辆格式序列的创建、修改、激活、取消激活和删除操作界面,以及对各个车辆数据标识的创建、修改、和删除操作界面;并在每次用户确认并提交操作内容时,对当次管理维护的操作步骤进行记录生成对应的第一操作脚本并保存。
这里,本发明实施例的车云通信系统1以数据配置服务端11为中控端对所有与本车云通信系统1对接的第三方云平台2的数据采集要求进行整体维护,数据配置服务端11则以本地的根格式列表集合为数据采集要求的维护对象并基于根格式列表集合的数据结构提供多种编辑(创建、修改、删除、绑定、解绑、激活、取消激活)界面对根格式列表集合的各个数据项(根格式列表集合、车辆格式列表、车辆格式序列、车辆数据标识)进行编辑;并在每次编辑完成即用户确认并提交操作内容时将当次的编辑操作步骤即当次管理维护的操作步骤以脚本的方式即第一操作脚本进行存储。
例如,数据配置服务端11的管理员即用户登录数据配置服务端11之后,在根格式列表集合中做了一个车辆格式列表A的创建操作,并对其与车辆编码A进行了绑定操作,并在车辆格式列表A中做了一个车辆格式序列A的创建操作,并对车辆格式序列A中的车辆数据标识A进行了创建操作,并对车辆格式序列A中的版本激活状态进行了激活操作,那么,就可以得到5个第一脚本分别为:记录车辆格式列表A创建的第一脚本1、记录车辆格式列表A与车辆编码A绑定的第一脚本2、记录创建车辆格式序列A的第一脚本3、记录创建车辆数据标识1的第一脚本4、记录激活车辆格式序列A的第一脚本5。
本发明实施例的另一种具体实现方式中,数据配置服务端11具体用于在保持数据发布服务端12本地的第一格式列表集合以及数据上报服务端13本地的第二格式列表集合与根格式列表集合数据同步时,对本地的同步方式状态字进行识别;若同步方式状态字被预设为实时同步方式,则每产生一个新的第一操作脚本时就将第一操作脚本作为对应的第一同步脚本,并就将携带了第一同步脚本的同步操作指令分别向数据发布服务端12和数据上报服务端13发送,并对数据发布服务端12和数据上报服务端13回发的两个同步操作状态进行识别,若两个同步操作状态均为操作成功则确认第一、第二格式列表集合同步成功,并将第一操作脚本删除;若同步方式状态字被预设为定期同步方式,则每间隔一个预设的同步时长就对本地存储的第一操作脚本的数量进行统计,若统计数量不为0则对本地存储的一个或多个第一操作脚本按时间顺序进行顺次脚本拼接生成对应的第一同步脚本,并将携带了第一同步脚本的同步操作指令分别向数据发布服务端12和数据上报服务端13发送,并对数据发布服务端12和数据上报服务端13回发的两个同步操作状态进行识别,若两个同步操作状态均为操作成功则确认第一、第二格式列表集合同步成功,并将本地存储的一个或多个第一操作脚本删除。
这里,本车云通信系统1中的数据发布服务端12和数据上报服务端13各自本地存有一个与数据配置服务端11上根格式列表集合保持数据同步的第一、第二格式列表集合;本发明实施例规定以数据配置服务端11为中控端向数据发布服务端12和数据上报服务端13发起数据同步操作以此确保第一、第二格式列表集合与根格式列表集合的同步性。在发起数据同步操作时,本发明实施例在数据配置服务端11基于本地设置的同步方式状态字提供两种同步激活方式以供选择:一种为实时同步方式,另一种为定期同步方式;实时同步方式下数据配置服务端11每产生一个第一操作脚本就需要将该脚本向数据发布服务端12和数据上报服务端13发送进行同步操作,定期同步方式下数据配置服务端11每间隔一个指定时段也就是同步时长,对本地未处理的第一操作脚本的数量进行统计,统计数量不为0说明存在尚未同步的操作脚本,此时就按时间顺序对各个脚本进行拼接得到第一同步脚本,并将第一同步脚本向数据发布服务端12和数据上报服务端13发送进行同步操作。
例如,数据配置服务端11上由管理员于9点到9点30分的时段内的一系列操作产生了5个第一脚本1、2、3、4、5;若本地设置的同步方式状态字为实时同步方式,那么在9点到9点30分总共会发起5次同步操作;若本地设置的同步方式状态字为定期同步方式,同步时长为3小时并从每日的0时起还是计时,那么9点之后的同步时间点为12点,数据配置服务端11在12点统计第一脚本的数量为5,并由第一脚本1+第一脚本2+第一脚本3+第一脚本4+第一脚本5组成第一同步脚本,并通过第一同步脚本发起1次同步操作。
数据发布服务端12用于从同步操作指令中提取出第一同步脚本;并根据第一同步脚本对本地的第一格式列表集合进行同步操作;操作成功则向数据配置服务端11回发具体为操作成功的同步操作状态。
这里为数据发布服务端12接收到数据配置服务端11的同步操作指令之后的处理流程,本发明实施例中第一格式列表集合与根格式列表集合的数据结构以及操作方式保持一致,所以数据发布服务端12只需在第一格式列表集合上执行第一同步脚本就完成当次的同步操作。
数据上报服务端13用于从同步操作指令中提取出第一同步脚本;并根据第一同步脚本对本地的第二格式列表集合进行同步操作;操作成功则向数据配置服务端11回发具体为操作成功的同步操作状态。
这里为数据上报服务端13接收到数据配置服务端11的同步操作指令之后的处理流程,本发明实施例中第二格式列表集合与根格式列表集合的数据结构以及操作方式保持一致,所以数据上报服务端13只需在第二格式列表集合上执行第一同步脚本就完成当次的同步操作。
车辆14用于在车辆启动时,从本地获取车辆编码生成当前车辆编码,并将携带了当前车辆编码的格式序列申请指令向数据发布服务端12发送,并接收数据发布服务端12回发的第一车辆格式序列存于本地;车辆14还用于按预设的数据上传频率,根据第一车辆格式序列进行本地CAN数据的采集与拼装处理生成对应的第一上报报文,并将第一上报报文向数据上报服务端13发送;
其中,车辆14与数据发布服务端12间基于MQTT协议进行数据传输;车辆14与数据上报服务端13间基于TCP协议进行数据传输,并在数据传输时基于安全套接字协议(SecureSockets Layer,SSL)的双通道认证方式进行传输,且在车辆14侧或数据上报服务端13侧一旦发现双通道中任一通道断开连接则立即对另一通道进行主动关闭。
这里,本发明实施例规定车辆14在每次点火启动之后都需要向数据发布服务端12发送格式序列申请指令,从而获得最新的车辆格式序列也就是第一车辆格式序列作为本次点火启动之后需要遵循的数据采集要求,需要说明的是若车辆14在一次点火启动之后按最大发送次数连续发送多次格式序列申请指令均未获得回发的第一车辆格式序列则车辆14在本次点火启动之后不做任何数据采集也不对数据上报服务端13发送任何上报报文;本发明实施例还规定车辆14在每次点火启动之后,都需与数据上报服务端13建立安全的带有双向认证功能的数据传输通道并基于双向安全数据通道进行数据传输,无论在车辆14侧还是数据上报服务端13侧一旦发现双通道中的任一通道断开连接则立即对另一通道进行主动关闭,双向安全数据通道全部关闭后再由车辆14侧向数据上报服务端13发起申请重建双向安全数据通道;本发明实施例还规定车辆14在接收到第一车辆格式序列之后,以第一车辆格式序列作为数据采集要求,按预先设定的CAN数据采集频率即数据上传频率对本地的CAN数据进行采集,并将采集到的数据按与数据上报服务端13的约定协议进行拼装从而得到第一上报报文向数据上报服务端13发送。
数据发布服务端12还用于从格式序列申请指令中提取当前车辆编码;并根据当前车辆编码对本地的第一格式列表集合进行车辆格式序列查询处理得到对应的第一车辆格式序列;并将第一车辆格式序列向车辆14回发。
本发明实施例的另一种具体实现方式中,数据发布服务端12具体用于在根据当前车辆编码对本地的第一格式列表集合进行车辆格式序列查询处理时,将第一格式列表集合中,与当前车辆编码对应的车辆格式列表作为当前车辆格式列表;并将当前车辆格式列表中,版本激活状态为已激活状态的车辆格式序列作为对应的第一车辆格式序列。
这里为数据发布服务端12接收到车辆14发送的格式序列申请指令之后的处理流程,数据发布服务端12基于格式序列申请指令中的当前车辆编码对本地的第一格式列表集合进行查询得到对应的车辆格式序列作为第一车辆格式序列向车辆14回发。
例如,第一格式列表集合中与车辆编码AA000011对应的车辆格式列表为车辆格式列表A,车辆格式列表A中包括3个版本的车辆格式序列分别为车辆格式序列1、2、3,其中车辆格式序列1包括4个车辆数据标识为{标识S,标识1,标识2,标识56},车辆格式序列2包括3个车辆数据标识为{标识S,标识1,标识2},车辆格式序列3包括5个车辆数据标识为{标识S,标识1,标识2,标识6,标识56},标识S对应具体为一类时间戳的CAN数据类别,标识1对应具体为车辆编码的CAN数据类别、标识2对应具体为速度的CAN数据类别、标识6对应具体为航向角的CAN数据类别、标识56对应具体为ABS状态的CAN数据类别;车辆格式列表A中,车辆格式序列1、2的版本激活状态为未激活状态,车辆格式序列3的版本激活状态为已激活状态;又已知格式序列申请指令中的当前车辆编码为AA000011,那么,数据发布服务端12对本地的第一格式列表集合进行查询得到的第一车辆格式序列就应为车辆格式序列3。该第一车辆格式序列说明,车辆14在本次启动周期内需要定期采集车辆的以下CAN数据(车辆编码、速度、航向角、ABS状态)并带着6字节的时间戳组成上报报文向数据上报服务端13发送。
上述车辆14与数据发布服务端12的交互过程是对车辆14在每次点火启动主动申请车辆格式序列的实施过程,除此之外,需要说明的是本发明实施例还支持一种由数据发布服务端12向车辆14主动推送车辆格式序列的技术实现,该技术实现由数据发布服务端12主动下推车辆格式序列和车辆14接收主动下推的车辆格式序列并进行本地替换两个环节构成。其中,数据发布服务端12还用于在对本地的第一格式列表集合进行同步操作成功之后,对本次同步操作中是否存在对车辆格式序列的激活操作进识别,若存在则将被激活的车辆格式序列提取出来作为对应的第一激活车辆格式序列,并将与第一激活车辆格式序列对应的车辆编码作为对应的第一推送车辆编码,并将携带了第一推送车辆编码的主动下推指令向第一推送车辆编码对应的车辆14发送。对应的,车辆14还用于在点火启动的行驶过程中对数据发布服务端12下发的指令进行识别,若数据发布服务端12下发的指令为主动下推指令则从主动下推指令中提取出第一激活车辆格式序列,并使用第一激活车辆格式序列对本地当前存储的第一车辆格式序列进行替换;随后按预设的数据上传频率,根据新的第一车辆格式序列进行本地CAN数据的采集与拼装处理生成对应的第一上报报文,并将第一上报报文向数据上报服务端13发送。
本发明实施例的车辆14与数据上报服务端13本地均预设一个内容相同的数据标识词典;数据标识词典包括多个数据标识记录;数据标识记录包括数据标识字段、数据类型字段和数据长度字段;数据类型字段包括6字节时间戳类型、8字节时间戳类型、逻辑类型、字节类型、字类型、双字类型、浮点类型和字符串类型;数据标识字段的长度为2字节;数据类型字段为6字节时间戳类型时对应的数据长度字段为6,数据类型字段为8字节时间戳类型时对应的数据长度字段为8,数据类型字段为逻辑类型时对应的数据长度字段为1,数据类型字段为字节类型时对应的数据长度字段为1,数据类型字段为字类型时对应的数据长度字段为2,数据类型字段为双字类型时对应的数据长度字段为4,数据类型字段为浮点类型时对应的数据长度字段无效,数据类型字段为字符串类型时对应的数据长度字段无效;数据标识字段为一类时间戳标识时对应的数据类型字段为6字节时间戳类型,数据标识字段为二类时间戳标识时对应的数据类型字段为8字节时间戳类型。
这里,数据标识词典是车辆14在进行上传报文拼装、数据上报服务端13在进行上传报文解析时会用到的数据结构参考词典;数据标识词典的每个数据标识记录对应一个具体的CAN数据对象(诸如时间戳数据对象、车辆编码数据对象、速度数据对象、航向角数据对象、ABS状态数据对象等);数据标识记录的数据标识字段用于存储对应CAN数据对象的唯一标识(诸如一、二类时间戳标识、车辆编码标识、速度标识、航向角标识、ABS状态标识等),数据标识字段与车辆格式序列中的车辆数据标识对应,数据标识字段存储的为2字节长的正整数,也就是说车辆数据标识的取值范围为从1到65535;数据标识记录的数据类型字段用于存储对应CAN数据对象的计算机数据类型,该类类型包括6字节时间戳类型、8字节时间戳类型、逻辑类型(等同于计算机数据中的Bool数据类型)、字节类型(等同于计算机数据中的Byte数据类型)、字类型(等同于计算机数据中的Word数据类型)、双字类型(等同于计算机数据中的Dword数据类型)、浮点类型(等同于计算机数据中的Float数据类型)和字符串类型(等同于计算机数据中的String数据类型);数据类型字段的存储长度不做限制,若用数字或单个字符的方式对各数据类型进行表示(例如,使用数值0或字符S表示6字节时间戳类型)那么数据类型字段的存储空间使用1个字节即可,若用字符串方式对各数据类型进行表示(例如,使用字符串“TIMESTAMP”表示6字节时间戳类型)那么数据类型字段的存储空间就应为一个变长的存储空间;数据标识记录的数据长度字段用于存储对应CAN数据对象的数据字节长度,数据长度字段的存储空间使用1个字节即可;数据长度字段的具体设置与对应的数据类型字段相关,数据类型字段=6字节时间戳类型时数据长度字段=6,数据类型字段=8字节时间戳类型时数据长度字段=8,数据类型字段=逻辑类型时数据长度字段=1,数据类型字段=字节类型时数据长度字段=1,数据类型字段=字类型时数据长度字段=2,数据类型字段=双字类型时数据长度字段=4,另外,在数据类型字段为浮点类型或字符串类型时因其对应的实际数据长度为变长的所以数据长度字段被设为无效,为与正常数据长度区分开来此处在将数据长度字段被设为无效时可将无效值定为0值或负值。
下文通过一个示例对数据标识词典进行进一步说明,该词典中对数据标识字段的取值做如下约定:预先约定一类时间戳数据对象对应标识S取值为1、二类时间戳数据对象对应标识U取值为2、车辆编码数据对象对应标识1取值为3、速度数据对象对应标识2取值为4、航向角数据对象对应标识6取值为8、ABS状态数据对象对应标识56取值为58,该词典中对数据类型字段的取值做如下约定:预先约定6字节时间戳类型用数值1表示、8字节时间戳类型用数值2表示、逻辑类型用数值3表示、字节类型用数值4表示、字类型用数值5表示、双字类型用数值6表示、浮点类型用数值7表示、字符串类型用数值8表示;该示例数据标识词典中每个数据标识记录的长度为4字节,其中数据标识字段为2字节,数据类型字段为1字节,数据长度字段为1字节;设该示例数据标识词典包括5个数据标识记录,分别为:
数据标识记录1:数据标识字段=1、数据类型字段=1、数据长度字段=6,
数据标识记录2:数据标识字段=3、数据类型字段=8、数据长度字段=0,
数据标识记录3:数据标识字段=4、数据类型字段=5、数据长度字段=2,
数据标识记录4:数据标识字段=8、数据类型字段=6、数据长度字段=4,
数据标识记录5:数据标识字段=58、数据类型字段=4、数据长度字段=1;
那么,设该示例数据标识词典实际就是对以下CAN数据对象进行了限定:限定一类时间戳数据对象的数据类型为6字节时间戳类型且长度为6字节长,限定车辆编码数据对象的数据类型为字符串类型且长度变长,限定速度数据对象的数据类型为字类型且长度为2字节,限定航向角数据对象的数据类型为双字类型且长度为4字节,限定ABS状态数据对象的数据类型为字节类型且长度为1字节。
基于上述数据标识词典和本地的第一车辆格式序列本发明实施例的车辆14就能对本地CAN数据进行采集与拼装。
本发明实施例的另一种具体实现方式中,车辆14具体用于在根据第一车辆格式序列进行本地CAN数据的采集与拼装处理时,统计第一车辆格式序列中车辆数据标识的数量记为数量n;并对第一车辆格式序列中第1个到第n个车辆数据标识进行逐个提取作为当前数据标识,并根据当前数据标识采集对应的本地CAN数据作为当前采集数据,并将数据标识词典中数据标识字段与当前数据标识匹配的数据标识记录的数据类型字段提取出来作为当前数据类型,并按当前数据类型对当前采集数据进行数据类型转换生成对应的当前转换数据,并对当前数据标识进行2字节长度的十六进制数转换得到对应的当前标识数据,若当前数据类型为6字节时间戳类型或8字节时间戳类型则由当前转换数据组成对应的数据项i,若当前数据类型不为6字节时间戳类型、8字节时间戳类型、浮点类型或字符串类型则由当前标识数据与当前转换数据组成对应的数据项i,若当前数据类型为浮点类型或字符串类型则对当前转换数据的字节长度进行统计得到对应的当前数据长度并对当前数据长度进行单字节十六进制转换并由当前标识数据、当前数据长度和当前转换数据组成对应的数据项,其中,1≤i≤n,当前数据长度为单字节数据;并对数据项i按从1到n的顺序进行顺次拼接得到对应的第一报文体;并对所第一报文体的字节长度进行统计,并将统计结果转换为3字节长的当前报文长度;并由预设的单字节长的报文头标识、3字节长的当前报文长度、预设的单字节长的报文类型标识和第一报文体拼接生成对应的第一上报报文。
本发明实施例的另一种具体实现方式中,车辆14具体用于在按当前数据类型对当前采集数据进行数据类型转换时,对当前数据类型进行识别;若当前数据类型为6字节时间戳类型则对当前采集数据进行6字节长度的十六进制数转换,并将转换结果从高到低按字节进行切分得到6个单字节的十六进制数,并将这6个单字节的十六进制数按从高到低顺序排序,并将排序得到的6字节序列作为对应的当前转换数据;若当前数据类型为8字节时间戳类型则对当前采集数据进行8字节长度的十六进制数转换,并将转换结果从高到低按字节进行切分得到8个单字节的十六进制数,并将这8个单字节的十六进制数按从高到低顺序排序,并将排序得到的8字节序列作为对应的当前转换数据;若当前数据类型为逻辑类型则首先对当前采集数据进行逻辑数值转换,并对转换结果进行1字节长度的十六进制数转换,并将转换结果作为对应的当前转换数据;若当前数据类型为字节类型则对当前采集数据进行1字节长度的十六进制数转换,并将转换结果作为对应的当前转换数据;若当前数据类型为字类型则对当前采集数据进行2字节长度的十六进制数转换,并将转换结果从高到低按字节进行切分得到2个单字节的十六进制数,并将这2个单字节的十六进制数按从高到低顺序排序,并将排序得到的2字节序列作为对应的当前转换数据;若当前数据类型为双字类型则对当前采集数据进行4字节长度的十六进制数转换,并将转换结果从高到低按字节进行切分得到4个单字节的十六进制数,并将这4个单字节的十六进制数按从高到低顺序排序,并将排序得到的4字节序列作为对应的当前转换数据;若当前数据类型为浮点类型则按已知的浮点数值十六进制转换规则对当前采集数据进行十六进制数转换,并将转换结果从高到低按字节进行切分得到多个单字节的十六进制数,并将这多个单字节的十六进制数按从高到低顺序排序,并将排序得到的字节序列作为对应的当前转换数据;若当前数据类型为字符串类型则首先对当前采集数据的字符串中的单个字符按从高到低的顺序逐个进行单字节的十六进制ASCII码转换从而得到一个由多个单字节ASCII码组成的ASCII码序列,再将该ASCII码序列作为对应的当前转换数据。
本发明实施例的另一种具体实现方式中,车辆14具体用于在对当前数据标识进行2字节长度的十六进制数转换时,对当前数据标识进行2字节长度的十六进制数转换,并将转换结果从高到低按字节进行切分得到2个单字节的十六进制数,并将这2个单字节的十六进制数按从高到低顺序排序,并将排序得到的2字节序列作为对应的当前标识数据。
例如,已知第一车辆格式序列为{标识S=1,标识1=3,标识2=4,标识6=8,标识56=58},标识S对应一类时间戳标识即6字节时间戳标识,标识1对应具体为车辆编码的CAN数据类别、标识2对应具体为速度的CAN数据类别、标识6对应具体为航向角的CAN数据类别、标识56对应具体为ABS状态的CAN数据类别;又已知数据标识词典包括:数据标识记录1(数据标识字段=1、数据类型字段=1、数据长度字段=6),数据标识记录2(数据标识字段=3、数据类型字段=8、数据长度字段=0),数据标识记录3(数据标识字段=4、数据类型字段=5、数据长度字段=2),数据标识记录4(数据标识字段=8、数据类型字段=6、数据长度字段=4),数据标识记录5(数据标识字段=58、数据类型字段=4、数据长度字段=1);那么,统计第一车辆格式序列中车辆数据标识的数量n=5,对第一车辆格式序列中第1个到第5个车辆数据标识进行逐个提取作为当前数据标识:
在当前数据标识为第1个车辆数据标识即标识S=1时,因为标识S对应具体为一类时间戳的CAN数据类别,所以车辆14在本地进行即时时间戳CAN数据采集到一个具体为十进制数1650614217866的当前采集数据;数据标识词典中数据标识字段与标识S=1匹配的当前数据类型为6字节时间戳类型,按6字节时间戳类型对当前采集数据1650614217866进行数据类型转换得到一个6字节序列作为当前转换数据即{0x01,0x80,0x50,0x46,0x2C,0x8A},同理对当前数据标识=1进行2字节长度的十六进制数转换可以得到对应的当前标识数据{0x00,0x01},因为当前数据类型为6字节时间戳类型所以由当前转换数据组成数据项1{0x01,0x80,0x50,0x46,0x2C,0x8A};
在当前数据标识为第2个车辆数据标识即标识1=3时,因为标识1对应具体为车辆编码的CAN数据类别,所以车辆14在本地进行车辆编码的CAN数据采集到一个具体为字符串‘AA000011’的当前采集数据;数据标识词典中数据标识字段与标识1=3匹配的当前数据类型为字符串类型,按字符串类型对当前采集数据‘AA000011’进行转换得到ASCII码序列{0x41,0x41,0x30,0x30,0x30,0x30,0x31,0x31}作为当前转换数据,对当前数据标识=3进行2字节长度的十六进制数转换可以得到对应的当前标识数据{0x00,0x03},因为当前数据类型为字符串类型所以对当前转换数据的字节长度进行统计得到对应的当前数据长度=8并对当前数据长度进行单字节十六进制转换则得到当前数据长度=0x08,由当前标识数据+当前数据长度+当前转换数据组成数据项2{0x00,0x03,0x08,0x41,0x41,0x30,0x30,0x30,0x30,0x31,0x31};
在当前数据标识为第3个车辆数据标识即标识2=4时,因为标识2对应具体为速度的CAN数据类别,所以车辆14在本地进行速度的CAN数据采集到一个具体为十进制数1351(米/秒)的当前采集数据;数据标识词典中数据标识字段与标识2=4匹配的当前数据类型为字类型,按字类型对当前采集数据1351进行数据类型转换得到一个2字节序列作为当前转换数据即{0x05,0x47},同理对当前数据标识=4进行2字节长度的十六进制数转换可以得到对应的当前标识数据{0x00,0x04},因为当前数据类型不为6字节时间戳类型、8字节时间戳类型、浮点类型或字符串类型,所以由当前标识数据+当前转换数据组成数据项3{0x00,0x04,0x05,0x47};
在当前数据标识为第4个车辆数据标识即标识6=8时,因为标识6对应具体为航向角的CAN数据类别,所以车辆14在本地进行航向角的CAN数据采集到一个具体为十进制数101219的当前采集数据;数据标识词典中数据标识字段与标识6=8匹配的当前数据类型为双字类型,按双字类型对当前采集数据101219进行数据类型转换得到一个4字节序列作为当前转换数据即{0x00,0x01,0x8B,0x63},同理对当前数据标识=8进行2字节长度的十六进制数转换可以得到对应的当前标识数据{0x00,0x08},因为当前数据类型不为6字节时间戳类型、8字节时间戳类型、浮点类型或字符串类型,所以由当前标识数据+当前转换数据组成数据项4{0x00,0x08,0x00,0x01,0x8B,0x63};
在当前数据标识为第5个车辆数据标识即标识56=58时,因为标识56对应具体为ABS状态的CAN数据类别,所以车辆14在本地进行ABS状态的CAN数据采集到一个具体为十进制数1的当前采集数据;数据标识词典中数据标识字段与标识56=58匹配的当前数据类型为字节类型,按字节类型对当前采集数据1进行数据类型转换得到的当前转换数据为0x01,同理对当前数据标识=58进行2字节长度的十六进制数转换可以得到对应的当前标识数据{0x00,0x3A},因为当前数据类型不为6字节时间戳类型、8字节时间戳类型、浮点类型或字符串类型,所以由当前标识数据+当前转换数据组成数据项5{0x00,0x3A,0x01};
在得到数据项1-5之后,按从1到5的顺序进行顺次拼接得到的第一报文体为:
{0x01,0x80,0x50,0x46,0x2C,0x8A},{0x00,0x03,0x08,0x41,0x41,0x30,0x30,0x30,0x30,0x31,0x31},{0x00,0x04,0x05,0x47},{0x00,0x08,0x00,0x01,0x8B,0x63},{0x00,0x3A,0x01};
对所第一报文体的字节长度进行统计得到统计结果为30则3字节长的当前报文长度为{0x00,0x00,0x1E};若预设的单字节长报文头标识默认为0xF1,预设的单字节长报文类型标识默认为0x01,那么最终得到的由报文头标识+3字节长的当前报文长度+报文类型标识+第一报文体组成的第一上报报文为:
{0xF1},{0x00,0x00,0x1E},{0x01},{0x01,0x80,0x50,0x46,0x2C,0x8A},{0x00,0x03,0x08,0x41,0x41,0x30,0x30,0x30,0x30,0x31,0x31},{0x00,0x04,0x05,0x47},{0x00,0x08,0x00,0x01,0x8B,0x63},{0x00,0x3A,0x01}。
数据上报服务端13还用于根据本地的第二格式列表集合对第一上报报文进行数据解析处理生成对应的第一解析数据;并按与第三方云平台2约定的通信协议,对第一解析数据进行协议封装生成对应的第三方车云通信报文;并将第三方车云通信报文向第三方云平台2发送。
这里,数据上报服务端13在收到车辆14上发的第一上报报文之后首先基于与车辆14报文拼装处理流程对应的报文解析处理流程对第一上报报文进行解析得到第一解析数据,再基于与第三方云平台2约定的通信协议对第一解析数据进行转协议封装。按这样的处理方式,切换任意的第三方云平台2之后,只需在数据上报服务端13上对第三方云平台2的通信协议进行开发升级即可,无需在车辆14上对任何第三方云平台2的通信协议进行开发。
本发明实施例的另一种具体实现方式中,数据上报服务端13具体用于在根据本地的第二格式列表集合对第一上报报文进行数据解析处理时,通过数据接收通道与车辆编码的对应关系确认第一上报报文对应的车辆编码并将之记为当前车辆编码;并对第一上报报文进行报文检查与报文体提取处理得到对应的第二报文体;并将第二格式列表集合中与当前车辆编码对应的车辆格式列表作为当前车辆格式列表,并将当前车辆格式列表中版本激活状态为已激活状态的车辆格式序列作为对应的当前车辆格式序列;并根据当前车辆格式序列对第二报文体进行报文数据解析处理生成对应的第一解析数据。
这里,因为数据上报服务端13与车辆14之间是通过双向安全通道进行数据传输的,数据上报服务端13在分配双向安全通道时就会为每组双向安全通道绑定其对应的车辆编码;所以,当数据上报服务端13从某一双向安全通道接收到第一上报报文之后,就可基于通道的绑定车辆编码确认当前接入的车辆14的车辆编码;在确认了当前车辆编码之后,数据上报服务端13先对第一上报报文进行报文检查与报文体提取,然后根据当前车辆编码从本地的第二格式列表集合中找到与当前车辆编码对应的车辆格式列表,然后再基于当前车辆格式序列对第二报文体进行报文数据解析。
例如,确认得到的当前车辆编码为AA000011;已知第二格式列表集合中与车辆编码AA000011对应的车辆格式列表为车辆格式列表A,车辆格式列表A中包括:车辆格式序列1{标识S,标识1,标识2,标识56},车辆格式序列2{标识S,标识1,标识2},车辆格式序列3{标识S,标识1,标识2,标识6,标识56},且车辆格式序列1、2为未激活状态,车辆格式序列3为已激活状态;那么,数据上报服务端13基于当前车辆编码查询得到的当前车辆格式序列就应为车辆格式序列3{标识S,标识1,标识2,标识6,标识56}。
本发明实施例的另一种具体实现方式中,数据上报服务端13具体用于在对第一上报报文进行报文检查与报文体提取处理时,将第一上报报文中的第1个字节数据提取出来作为对应的当前报文头标识、将第2到4个字节数据提取出来进行三字节十六进制数转换作为对应的当前报文长度、将第5个字节数据提取出来作为对应的当前报文类型标识、将第6到最后1个字节的数据提取出来作为对应的当前报文体;并对当前报文体的字节长度进行统计生成对应的第一长度;并在当前报文头标识与预设的报文头标识匹配、且第一长度与当前报文长度匹配、且当前报文类型标识与预设的报文类型标识匹配时,确认本次报文检查成功并将当前报文体作为对应的第二报文体。
这里,由前文方案说明与示例展示我们可知,第一上报报文的结构为:报文头标识(1字节长)+当前报文长度(3字节长)+报文类型标识(1字节长)+第一报文体,其中当前报文长度实际就是第一报文体的长度;数据上报服务端13对第一上报报文进行报文检查就是对报文头标识是否为默认值(例如0xF1)、报文类型标识是否为默认值(例如0x01)、当前报文长度是否与第一报文体的实际长度匹配进行检查;检查通过后会将其中的报文体提出来作为第二报文体。需要说明的是,在将第2到4个字节数据提取出来作为对应的当前报文长度时提取出来的是一个3字节序列{D1,D2,D3},需要对该3字节序列进行3字节十六进制数转换得到当前报文长度=D1*0x10000+D2*0x100+D3;
例如,第一上报报文为:
{0xF1},{0x00,0x00,0x1E},{0x01},{0x01,0x80,0x50,0x46,0x2C,0x8A},{0x00,0x03,0x08,0x41,0x41,0x30,0x30,0x30,0x30,0x31,0x31},{0x00,0x04,0x05,0x47},{0x00,0x08,0x00,0x01,0x8B,0x63},{0x00,0x3A,0x01};
那么,当前报文类型标识为0xF1,当前报文长度=0x00*0x10000+0x00*0x100+0x1E=30,当前报文类型标识为0x01,当前报文体的字节长度也就是第一长度为30,因为当前报文头标识与预设报文头标识匹配、第一长度与当前报文长度匹配、当前报文类型标识与预设报文类型标识匹配,所以本次报文检查成功且第二报文体为:
{0x01,0x80,0x50,0x46,0x2C,0x8A},{0x00,0x03,0x08,0x41,0x41,0x30,0x30,0x30,0x30,0x31,0x31},{0x00,0x04,0x05,0x47},{0x00,0x08,0x00,0x01,0x8B,0x63},{0x00,0x3A,0x01}。
本发明实施例的另一种具体实现方式中,数据上报服务端13具体用于在根据当前车辆格式序列对第二报文体进行报文数据解析处理时,将当前车辆格式序列中第1个车辆数据标识提取出来作为当前数据标识,若当前数据标识为一类时间戳标识则将第二报文体的头6字节数据提取出来作为当前解析数据项,若当前数据标识为二类时间戳标识则将第二报文体的头8字节数据提取出来作为当前解析数据项;并将当前解析数据项向预设的解析数据序列添加,添加成功后将当前解析数据项记为前一解析数据项;并将当前车辆格式序列中当前数据标识的下一个车辆数据标识提取出来作为新的当前数据标识,并将第二报文体中前一解析数据项的后两个字节提取出来作为第一数据标识,若当前数据标识与第一数据标识匹配则将数据标识词典中数据标识字段与当前数据标识匹配的数据标识记录的数据类型字段和数据长度字段提取出来作为对应的第一数据类型和第一数据长度,若第一数据类型不为浮点类型或字符串类型则在第二报文体中从第一数据标识后的第1个字节开始提取长度为第一数据长度的一个或多个字节作为第一数据体、并由第一数据标识、第一数据长度和第一数据体组成新的当前解析数据项,若第一数据类型为浮点类型或字符串类型则在第二报文体中将第一数据标识后的第1个字节提取出来作为第二数据长度、并从第一数据标识后的第2个字节开始提取长度为第二数据长度的一个或多个字节数据作为第一数据体、并由第一数据标识、第二数据长度和第一数据体组成新的当前解析数据项;并将当前解析数据项向解析数据序列添加,添加成功后将当前解析数据项记为前一解析数据项;依次类推,再将当前车辆格式序列中当前数据标识的下一个车辆数据标识提取出来作为新的当前数据标识、将第二报文体中前一解析数据项的后两个字节提取出来作为新的第一数据标识,直到当前车辆格式序列中当前数据标识的下一个车辆数据标识为空为止;并将解析数据序列作为对应的第一解析数据。
这里,需要说明的是,在对当前数据标识与第一数据标识进行匹配时,因为第一数据标识为一个2字节序列所以要对其进行2字节十六进制数转换,例如第一数据标识为{E1,E2}则第一数据标识对应的2字节十六进制数转换结果=E1*0x100+E2,然后再使用该2字节十六进制数转换结果与当前数据标识进行比对,比对时若二者值相等则视为匹配。
例如,已知第二报文体为:
{0x01,0x80,0x50,0x46,0x2C,0x8A},{0x00,0x03,0x08,0x41,0x41,0x30,0x30,0x30,0x30,0x31,0x31},{0x00,0x04,0x05,0x47},{0x00,0x08,0x00,0x01,0x8B,0x63},{0x00,0x3A,0x01};
已知当前车辆格式序列为{标识S=1,标识1=3,标识2=4,标识6=8,标识56=58};已知本地的数据标识词典包括:数据标识记录1(数据标识字段=1、数据类型字段=1、数据长度字段=6),数据标识记录2(数据标识字段=3、数据类型字段=8、数据长度字段=0),数据标识记录3(数据标识字段=4、数据类型字段=5、数据长度字段=2),数据标识记录4(数据标识字段=8、数据类型字段=6、数据长度字段=4),数据标识记录5(数据标识字段=58、数据类型字段=4、数据长度字段=1);
那么,将当前车辆格式序列中第1个车辆数据标识提取出来生成的当前数据标识为标识S=1,因为标识S为一类时间戳标识,所以将第二报文体的头6字节数据提取出来作为当前解析数据项即{0x01,0x80,0x50,0x46,0x2C,0x8A};
将当前车辆格式序列中当前数据标识(标识S)的下一个车辆数据标识提取出来生成的新的当前数据标识为标识1=3,将第二报文体中前一解析数据项{0x01,0x80,0x50,0x46,0x2C,0x8A}的后两个字节提取出来生成的第一数据标识为{0x00,0x03},因为第一数据标识对应的2字节十六进制数转换结果为3与当前数据标识匹配,所以从数据标识词典中数据标识字段与当前数据标识=3匹配的第一数据类型=8、第一数据长度=0,因为第一数据类型=8表示为字符串类型,所以在第二报文体中将第一数据标识{0x00,0x03}后的第1个字节0x08提取出来作为第二数据长度,从第一数据标识后的第2个字节0x41开始提取8个字节数据生成的第一数据体为{0x41,0x41,0x30,0x30,0x30,0x30,0x31,0x31},得到由第一数据标识+第二数据长度+第一数据体组成新的当前解析数据项为{0x00,0x03,0x08,0x41,0x41,0x30,0x30,0x30,0x30,0x31,0x31};
依次类推,再将当前车辆格式序列中当前数据标识(标识1)的下一个车辆数据标识提取出来生成的新的当前数据标识为标识2=4,将第二报文体中前一解析数据项{0x00,0x03,0x08,0x41,0x41,0x30,0x30,0x30,0x30,0x31,0x31}的后两个字节提取出来生成的第一数据标识为{0x00,0x04},因为第一数据标识对应的2字节十六进制数转换结果为4与当前数据标识匹配,所以从数据标识词典中数据标识字段与当前数据标识=4匹配的第一数据类型=5、第一数据长度=2,因为第一数据类型=5表示为字类型不为6字节时间戳类型、8字节时间戳类型、浮点类型或字符串类型,所以在第二报文体中从第一数据标识{0x00,0x04}后的第1个字节0x05开始提取2个字节生成的第一数据体为{0x05,0x47},得到由第一数据标识+第一数据长度+第一数据体组成的新的当前解析数据项应为{0x00,0x04,0x02,0x05,0x47};
依次类推,再将当前车辆格式序列中当前数据标识(标识2)的下一个车辆数据标识提取出来生成的新的当前数据标识为标识6=8,将第二报文体中前一解析数据项{0x00,0x04,0x02,0x05,0x47}的后两个字节提取出来生成的第一数据标识为{0x00,0x08},因为第一数据标识对应的2字节十六进制数转换结果为8与当前数据标识匹配,所以从数据标识词典中数据标识字段与当前数据标识=8匹配的第一数据类型=6、第一数据长度=4,因为第一数据类型=6表示为双字类型不为6字节时间戳类型、8字节时间戳类型、浮点类型或字符串类型,所以在第二报文体中从第一数据标识{0x00,0x08}后的第1个字节0x00开始提取4个字节生成的第一数据体为{0x00,0x01,0x8B,0x63},得到由第一数据标识+第一数据长度+第一数据体组成的新的当前解析数据项应为{0x00,0x08,0x04,0x00,0x01,0x8B,0x63};
依次类推,再将当前车辆格式序列中当前数据标识(标识6)的下一个车辆数据标识提取出来生成的新的当前数据标识为标识56=58,将第二报文体中前一解析数据项{0x00,0x08,0x04,0x00,0x01,0x8B,0x63}的后两个字节提取出来生成的第一数据标识为{0x00,0x3A},因为第一数据标识对应的2字节十六进制数转换结果为58与当前数据标识匹配,所以从数据标识词典中数据标识字段与当前数据标识=58匹配的第一数据类型=4、第一数据长度=1,因为第一数据类型=4表示为字节类型不为6字节时间戳类型、8字节时间戳类型、浮点类型或字符串类型,所以在第二报文体中从第一数据标识{0x00,0x3A}后的第1个字节0x00开始提取1个字节生成的第一数据体为{0x01},得到由第一数据标识+第一数据长度+第一数据体组成的新的当前解析数据项应为{0x00,0x3A,0x01,0x01};
当前车辆格式序列中当前数据标识(标识56)的下一个车辆数据标识为空则停止继续类推解析,最终得到的第一解析数据即为如下由5组解析数据项构成的数据集合:
{0x01,0x80,0x50,0x46,0x2C,0x8A},{0x00,0x03,0x08,0x41,0x41,0x30,0x30,0x30,0x30,0x31,0x31},{0x00,0x04,0x02,0x05,0x47},{0x00,0x08,0x04,0x00,0x01,0x8B,0x63},{0x00,0x3A,0x01,0x01}。
不难看出第一解析数据的数据集合中,除第一组解析数据项之外其余解析数据项都采用标准的TLV(Type-length-value)结构,这种结构有利于数据上报服务端13进行直接数据值读取,也方便基于各组解析数据项进行二次封装。
本发明实施例提供了一种车云通信系统,该系统包括:数据配置服务端、数据发布服务端、数据上报服务端和车辆。数据配置服务端通过根格式列表集合的车辆格式列表为每个接入车辆配置多个版本的车辆格式序列,并为根格式列表集合与数据发布服务端和数据上报服务端上的第一、第二格式列表集合提供数据同步机制;车辆在每次启动之后,都会从数据发布服务端处获得本次启动过程应采用的第一车辆格式序列,并按设定频率根据第一车辆格式序列对自车的CAN数据进行持续采集,并将采集到的数据按约定格式封装成上传报文发送到数据上报服务端;数据上报服务端按约定格式对车辆上传报文进行解析,再根据第三方云平台的车云通信协议对解析数据进行二次封装,再将封装数据发送至第三方云平台。本发明实际是在车辆和第三方云平台之间架设了一个协议转换系统,如此就能在不对车辆做任何通信协议升级的前提下使车辆可以轻松接入任意云平台。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的系统、模块、单元及算法的步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的系统、模块、单元或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种车云通信系统,其特征在于,所述系统包括:数据配置服务端、数据发布服务端、数据上报服务端和车辆;
所述数据配置服务端分别与所述数据发布服务端和所述数据上报服务端连接;所述数据配置服务端用于对本地的根格式列表集合进行管理维护,并保持所述数据发布服务端本地的第一格式列表集合以及所述数据上报服务端本地的第二格式列表集合与所述根格式列表集合数据同步;
所述车辆分别与所述数据发布服务端和所述数据上报服务端连接;所述车辆用于在车辆启动时,从本地获取车辆编码生成当前车辆编码,并将携带了所述当前车辆编码的格式序列申请指令向所述数据发布服务端发送,并接收所述数据发布服务端回发的第一车辆格式序列存于本地;所述车辆还用于按预设的数据上传频率,根据所述第一车辆格式序列进行本地CAN数据的采集与拼装处理生成对应的第一上报报文,并将所述第一上报报文向所述数据上报服务端发送;
所述数据发布服务端用于从所述格式序列申请指令中提取所述当前车辆编码;并根据所述当前车辆编码对本地的所述第一格式列表集合进行车辆格式序列查询处理得到对应的所述第一车辆格式序列;并将所述第一车辆格式序列向所述车辆回发;
所述数据上报服务端与第三方云平台连接;所述数据上报服务端用于根据本地的所述第二格式列表集合对所述第一上报报文进行数据解析处理生成对应的第一解析数据;并按与所述第三方云平台约定的通信协议,对所述第一解析数据进行协议封装生成对应的第三方车云通信报文;并将所述第三方车云通信报文向所述第三方云平台发送。
2.根据权利要求1所述的车云通信系统,其特征在于,
所述根格式列表集合包括多个车辆格式列表,每个所述车辆格式列表对应一个车辆编码;所述车辆格式列表包括多个版本的车辆格式序列,每个所述车辆格式序列对应一个版本激活状态,所述版本激活状态包括已激活状态和未激活状态;所述车辆格式列表中有且只有一个所述车辆格式序列的所述版本激活状态为已激活状态;所述车辆格式序列包括多个车辆数据标识;所述车辆格式序列中,第1个所述车辆数据标识为一类时间戳标识或二类时间戳标识;
所述第一、第二格式列表集合与所述根格式列表集合的数据内容保持同步。
3.根据权利要求2所述的车云通信系统,其特征在于,
所述数据配置服务端具体用于在所述对本地的根格式列表集合进行管理维护时,向用户提供对根格式列表集合的创建与删除操作界面,以及对各个车辆格式列表的创建、修改及删除操作界面,以及对各个车辆格式列表与各个车辆编码的绑定、解绑操作界面,以及对各个车辆格式序列的创建、修改、激活、取消激活和删除操作界面,以及对各个车辆数据标识的创建、修改、和删除操作界面;并在每次用户确认并提交操作内容时,对当次管理维护的操作步骤进行记录生成对应的第一操作脚本并保存;
所述数据配置服务端具体用于在所述保持所述数据发布服务端本地的第一格式列表集合以及所述数据上报服务端本地的第二格式列表集合与所述根格式列表集合数据同步时,对本地的同步方式状态字进行识别;若所述同步方式状态字被预设为实时同步方式,则每产生一个新的所述第一操作脚本时就将所述第一操作脚本作为对应的第一同步脚本,并就将携带了所述第一同步脚本的同步操作指令分别向所述数据发布服务端和所述数据上报服务端发送,并对所述数据发布服务端和所述数据上报服务端回发的两个同步操作状态进行识别,若两个同步操作状态均为操作成功则确认所述第一、第二格式列表集合同步成功,并将所述第一操作脚本删除;若所述同步方式状态字被预设为定期同步方式,则每间隔一个预设的同步时长就对本地存储的所述第一操作脚本的数量进行统计,若统计数量不为0则对本地存储的一个或多个所述第一操作脚本按时间顺序进行顺次脚本拼接生成对应的所述第一同步脚本,并将携带了所述第一同步脚本的所述同步操作指令分别向所述数据发布服务端和所述数据上报服务端发送,并对所述数据发布服务端和所述数据上报服务端回发的两个同步操作状态进行识别,若两个同步操作状态均为操作成功则确认所述第一、第二格式列表集合同步成功,并将本地存储的一个或多个所述第一操作脚本删除;
所述数据发布服务端还用于从所述同步操作指令中提取出所述第一同步脚本;并根据所述第一同步脚本对本地的所述第一格式列表集合进行同步操作;操作成功则向所述数据配置服务端回发具体为操作成功的同步操作状态;
所述数据上报服务端还用于从所述同步操作指令中提取出所述第一同步脚本;并根据所述第一同步脚本对本地的所述第二格式列表集合进行同步操作;操作成功则向所述数据配置服务端回发具体为操作成功的同步操作状态。
4.根据权利要求2所述的车云通信系统,其特征在于,
所述数据发布服务端具体用于在所述根据所述当前车辆编码对本地的所述第一格式列表集合进行车辆格式序列查询处理时,将所述第一格式列表集合中,与所述当前车辆编码对应的所述车辆格式列表作为当前车辆格式列表;并将所述当前车辆格式列表中,所述版本激活状态为已激活状态的所述车辆格式序列作为对应的所述第一车辆格式序列。
5.根据权利要求2所述的车云通信系统,其特征在于,
所述车辆与所述数据上报服务端本地均预设一个内容相同的数据标识词典;所述数据标识词典包括多个数据标识记录;所述数据标识记录包括数据标识字段、数据类型字段和数据长度字段;所述数据类型字段包括6字节时间戳类型、8字节时间戳类型、逻辑类型、字节类型、字类型、双字类型、浮点类型和字符串类型;所述数据标识字段的长度为2字节;
所述数据类型字段为6字节时间戳类型时对应的所述数据长度字段为6,所述数据类型字段为8字节时间戳类型时对应的所述数据长度字段为8,所述数据类型字段为逻辑类型时对应的所述数据长度字段为1,所述数据类型字段为字节类型时对应的所述数据长度字段为1,所述数据类型字段为字类型时对应的所述数据长度字段为2,所述数据类型字段为双字类型时对应的所述数据长度字段为4,所述数据类型字段为浮点类型时对应的所述数据长度字段无效,所述数据类型字段为字符串类型时对应的所述数据长度字段无效;
所述数据标识字段为一类时间戳标识时对应的所述数据类型字段为6字节时间戳类型,所述数据标识字段为二类时间戳标识时对应的所述数据类型字段为8字节时间戳类型。
6.根据权利要求5所述的车云通信系统,其特征在于,
所述车辆具体用于在所述根据所述第一车辆格式序列进行本地CAN数据的采集与拼装处理时,统计所述第一车辆格式序列中所述车辆数据标识的数量记为数量n;
并对所述第一车辆格式序列中第1个到第n个所述车辆数据标识进行逐个提取作为当前数据标识,并根据所述当前数据标识采集对应的本地CAN数据作为当前采集数据,并将所述数据标识词典中所述数据标识字段与所述当前数据标识匹配的所述数据标识记录的所述数据类型字段提取出来作为当前数据类型,并按所述当前数据类型对所述当前采集数据进行数据类型转换生成对应的当前转换数据,并对所述当前数据标识进行2字节长度的十六进制数转换得到对应的当前标识数据,若所述当前数据类型为6字节时间戳类型或8字节时间戳类型则由所述当前转换数据组成对应的数据项i,若所述当前数据类型不为6字节时间戳类型、8字节时间戳类型、浮点类型或字符串类型则由所述当前标识数据与所述当前转换数据组成对应的数据项i,若所述当前数据类型为浮点类型或字符串类型则对所述当前转换数据的字节长度进行统计得到对应的当前数据长度并对所述当前数据长度进行单字节十六进制转换并由所述当前标识数据、所述当前数据长度和所述当前转换数据组成对应的所述数据项,其中,1≤i≤n,所述当前数据长度为单字节数据;
并对所述数据项i按从1到n的顺序进行顺次拼接得到对应的第一报文体;并对所第一报文体的字节长度进行统计,并将统计结果转换为3字节长的当前报文长度;并由预设的单字节长的报文头标识、3字节长的所述当前报文长度、预设的单字节长的报文类型标识和所述第一报文体拼接生成对应的所述第一上报报文。
7.根据权利要求5所述的车云通信系统,其特征在于,
所述数据上报服务端具体用于在所述根据本地的所述第二格式列表集合对所述第一上报报文进行数据解析处理时,通过数据接收通道与车辆编码的对应关系确认所述第一上报报文对应的车辆编码并将之记为当前车辆编码;并对所述第一上报报文进行报文检查与报文体提取处理得到对应的第二报文体;并将所述第二格式列表集合中与所述当前车辆编码对应的所述车辆格式列表作为当前车辆格式列表,并将所述当前车辆格式列表中所述版本激活状态为已激活状态的所述车辆格式序列作为对应的当前车辆格式序列;并根据所述当前车辆格式序列对所述第二报文体进行报文数据解析处理生成对应的所述第一解析数据。
8.根据权利要求7所述的车云通信系统,其特征在于,
所述数据上报服务端具体用于在所述对所述第一上报报文进行报文检查与报文体提取处理时,将所述第一上报报文中的第1个字节数据提取出来作为对应的当前报文头标识、将第2到4个字节数据提取出来进行三字节十六进制数转换作为对应的当前报文长度、将第5个字节数据提取出来作为对应的当前报文类型标识、将第6到最后1个字节的数据提取出来作为对应的当前报文体;并对所述当前报文体的字节长度进行统计生成对应的第一长度;并在所述当前报文头标识与预设的报文头标识匹配、且所述第一长度与所述当前报文长度匹配、且所述当前报文类型标识与预设的报文类型标识匹配时,确认本次报文检查成功并将所述当前报文体作为对应的所述第二报文体。
9.根据权利要求7所述的车云通信系统,其特征在于,
所述数据上报服务端具体用于在所述根据所述当前车辆格式序列对所述第二报文体进行报文数据解析处理时,将所述当前车辆格式序列中第1个所述车辆数据标识提取出来作为当前数据标识,若所述当前数据标识为一类时间戳标识则将所述第二报文体的头6字节数据提取出来作为当前解析数据项,若所述当前数据标识为二类时间戳标识则将所述第二报文体的头8字节数据提取出来作为所述当前解析数据项;并将所述当前解析数据项向预设的解析数据序列添加,添加成功后将所述当前解析数据项记为前一解析数据项;
并将所述当前车辆格式序列中所述当前数据标识的下一个所述车辆数据标识提取出来作为新的当前数据标识,并将所述第二报文体中所述前一解析数据项的后两个字节提取出来作为第一数据标识,若所述当前数据标识与所述第一数据标识匹配则将所述数据标识词典中所述数据标识字段与所述当前数据标识匹配的所述数据标识记录的所述数据类型字段和数据长度字段提取出来作为对应的第一数据类型和第一数据长度,若所述第一数据类型不为浮点类型或字符串类型则在所述第二报文体中从所述第一数据标识后的第1个字节开始提取长度为所述第一数据长度的一个或多个字节作为第一数据体、并由所述第一数据标识、所述第一数据长度和所述第一数据体组成新的所述当前解析数据项,若所述第一数据类型为浮点类型或字符串类型则在所述第二报文体中将所述第一数据标识后的第1个字节提取出来作为第二数据长度、并从所述第一数据标识后的第2个字节开始提取长度为所述第二数据长度的一个或多个字节数据作为所述第一数据体、并由所述第一数据标识、所述第二数据长度和所述第一数据体组成新的所述当前解析数据项;并将所述当前解析数据项向所述解析数据序列添加,添加成功后将所述当前解析数据项记为前一解析数据项;依次类推,再将所述当前车辆格式序列中所述当前数据标识的下一个所述车辆数据标识提取出来作为新的当前数据标识、将所述第二报文体中所述前一解析数据项的后两个字节提取出来作为新的所述第一数据标识,直到所述当前车辆格式序列中所述当前数据标识的下一个所述车辆数据标识为空为止;
将所述解析数据序列作为对应的所述第一解析数据。
10.根据权利要求1所述的车云通信系统,其特征在于,
所述车辆与所述数据发布服务端间基于MQTT协议进行数据传输;
所述车辆与所述数据上报服务端间基于TCP协议进行数据传输,并在数据传输时基于SSL双通道认证方式进行传输,且在所述车辆侧或所述数据上报服务端侧一旦发现双通道中任一通道断开连接则立即对另一通道进行主动关闭。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210549204.5A CN114938386B (zh) | 2022-05-20 | 2022-05-20 | 一种车云通信系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210549204.5A CN114938386B (zh) | 2022-05-20 | 2022-05-20 | 一种车云通信系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114938386A CN114938386A (zh) | 2022-08-23 |
CN114938386B true CN114938386B (zh) | 2023-07-14 |
Family
ID=82864795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210549204.5A Active CN114938386B (zh) | 2022-05-20 | 2022-05-20 | 一种车云通信系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114938386B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105376310A (zh) * | 2015-10-31 | 2016-03-02 | 杭州鸿泉数字设备有限公司 | 车联网云通信系统 |
CN106657324A (zh) * | 2016-12-17 | 2017-05-10 | 深圳市索菱实业股份有限公司 | 一种车辆网云通信系统 |
CN108833489A (zh) * | 2018-05-24 | 2018-11-16 | 腾讯科技(深圳)有限公司 | 车辆云平台的数据推送、处理方法和装置 |
CN111726414A (zh) * | 2020-06-29 | 2020-09-29 | 湖北亿咖通科技有限公司 | 一种车辆上报数据的处理方法和车辆数据上报系统 |
CN113867732A (zh) * | 2021-09-26 | 2021-12-31 | 北京中交兴路信息科技有限公司 | 一种报文信息处理方法、系统以及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10011156B2 (en) * | 2015-08-06 | 2018-07-03 | General Motors Llc | Cloud-based in-car HVAC system |
-
2022
- 2022-05-20 CN CN202210549204.5A patent/CN114938386B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105376310A (zh) * | 2015-10-31 | 2016-03-02 | 杭州鸿泉数字设备有限公司 | 车联网云通信系统 |
CN106657324A (zh) * | 2016-12-17 | 2017-05-10 | 深圳市索菱实业股份有限公司 | 一种车辆网云通信系统 |
CN108833489A (zh) * | 2018-05-24 | 2018-11-16 | 腾讯科技(深圳)有限公司 | 车辆云平台的数据推送、处理方法和装置 |
CN111726414A (zh) * | 2020-06-29 | 2020-09-29 | 湖北亿咖通科技有限公司 | 一种车辆上报数据的处理方法和车辆数据上报系统 |
CN113867732A (zh) * | 2021-09-26 | 2021-12-31 | 北京中交兴路信息科技有限公司 | 一种报文信息处理方法、系统以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114938386A (zh) | 2022-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111917772B (zh) | 一种适配充电桩通信协议方法和装置 | |
CN106453482A (zh) | 一种物联网中间件系统及物联网系统 | |
CN111162972A (zh) | 基于语义分析的车载以太网协议栈自动化测试方法 | |
CN107943831A (zh) | 一种基于HBase的电网历史数据集中存储方法 | |
CN107463706A (zh) | 一种基于Hadoop的海量录波数据存储和解析方法及系统 | |
CN114938386B (zh) | 一种车云通信系统 | |
US20020078065A1 (en) | Object-oriented method and system for transfrring a file system | |
CN114793250B (zh) | 一种可配置化的can数据解析方法 | |
CN109857808B (zh) | 基于中立数据结构的纵向数据同步系统及方法 | |
CN106603502A (zh) | 一种基于xml的iec 60870‑5‑104与goose转换方法 | |
CN113132313A (zh) | 分布式can数据处理方法及其系统 | |
CN105450733B (zh) | 一种业务数据分发处理方法及系统 | |
CN109656564A (zh) | 基于labview和.net实现dbc报文的解析方法及系统 | |
CN109284319A (zh) | 一种基于大数据可视化技术的审计系统 | |
CN109698813A (zh) | 一种智能抄表系统及方法 | |
CN110839022A (zh) | 一种基于xml语言的车载控制软件通信协议解析方法 | |
CN108717438B (zh) | 一种链式数据状态采集系统及方法 | |
CN106982165A (zh) | 数据压缩方法及其系统 | |
CN115052046A (zh) | 一种数字化的网络通讯协议的处理方法 | |
CN101262481A (zh) | 一种计算机网络远程服务识别系统及其识别方法 | |
CN112953988B (zh) | 一种基于ftp的数据对接方法及装置 | |
CN114363377B (zh) | 一种机械车辆通信方法及系统 | |
CN113220727A (zh) | 基于云平台的电力物联数据可视化展现系统及其展现方法 | |
CN110428516B (zh) | 一种gjb289a总线数据的记录和处理方法 | |
CN116842701A (zh) | 一种基于规则模型的无人机地面仿真综合控制系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |