一种车端数据上传方法、接收方法、装置、设备及介质与流程

未命名 09-07 阅读:94 评论:0


1.本发明涉及车辆数据通信技术领域,具体涉及一种车端数据上传方法、接收方法、装置、设备及介质。


背景技术:

2.随着智能网联汽车的发展,车端的信号数据可以通过4g/5g网络上传到云平台;进而为用户提供服务,例如在手机app上查看当前的车辆状态(门开关状态、门锁状态、胎压、行驶里程、剩余可行驶里程等)、车辆功能推荐(通过分析用户的驾驶偏好,为用户推荐某些功能)。同时,企业也希望采集尽量多的整车信号,通过数据分析、挖掘,对产品研发提供数据支撑。此外,自动驾驶的算法需要持续迭代,需要大量的数据。因此,需要开发一套通用的数据采集系统,即可以采集信号类数据,用于业务应用,也可以采集图像、点云等数据,支撑自动驾驶算法闭环。同时,考虑到采集策略的灵活变化,还需要采用配置的方式来实现数据采集内容的灵活调整。
3.相关技术主要针对车端控制器局域网络(controller area network,can)信号进行配置化采集,包括变化、周期、以及特殊事件触发后批量信号的打包,未提及数据上云的封装方式。此外,车端各个域控所发出的信号类型较多,不只是can信号,如直接的物理值信号、json字符串、proto字符串等。特别是某些事件触发后,需要采集的信号可能包含各种类型不同的信号,相关方案无法支持此类复杂规则的配置化采集。而数据上云通常为json结构的字符串,考虑到上云数据包对网络资源的开销,以proto序列化字符串的形式可以大量节省资源,但此时为了支持配置化采集,需要维护车端事件采集配置与proto解析配置两份配置文件,配置文件维护工作量大。


技术实现要素:

4.有鉴于此,本发明提供了一种车端数据上传方法、接收方法、装置、设备及介质,以解决以proto序列化字符串的形式上传数据时,需要维护车端事件采集配置与proto解析配置两份配置文件,配置文件维护工作量大的技术问题。
5.第一方面,本发明提供了一种车端数据上传方法,应用于车端,所述方法包括:从云端获取事件的触发规则和事件的proto配置模板,所述proto配置模板为云端根据事件对应的信号清单和采集规则生成的;根据所述proto配置模板获取事件的采集规则和信号清单;根据所述采集规则对所述信号清单中信号对应的数据进行缓存;根据所述触发规则判断目标事件是否触发;当所述目标事件触发时,基于所述proto配置模板从缓存的数据中获取所述目标事件对应的目标信号的值,并将所述目标信号的值封装成事件数据包;将所述事件数据包序列化成字符串后上传至云端。
6.本发明的一种车端数据上传方法,通过获取云端根据事件对应的信号清单和采集规则生成的proto配置模板,根据所述proto配置模板获取事件的采集规则和信号清单,根据所述采集规则对所述信号清单中信号对应的数据进行缓存,根据所述触发规则判断目标
事件是否触发;当根据触发规则判定所述目标事件触发时,基于所述proto配置模板从缓存的数据中获取所述目标事件对应的目标信号的值,并将所述目标信号的值封装成事件数据包,将所述事件数据包序列化成字符串后上传至云端,由此,本发明实施例能够通过proto配置模板动态灵活地管理目标事件及其对应的目标信号,并在目标事件触发时将目标信号的值封装、序列化成字符串后上传至云端,只需要维护proto配置模板就能实现对事件采集规则和封装规则的灵活调整,减小配置文件维护的工作量,并且,用proto序列化方式实现车端数据上云,可以降低上云数据包的大小,达到节省网络开销的目的。
7.在一种可选的实施方式中,所述根据所述proto配置模板获取事件的采集规则和信号清单,包括:根据所述proto配置模板获取massage结构体的名称和成员字段;根据massage结构体的名称获取事件的采集规则;根据所述成员字段获取对应的信号名,并根据所述信号名组成信号清单。
8.通过解析proto配置模板的massage结构体的名称和成员字段得到采集规则和信号清单,仅通过一份配置文件即可同时维护采集规则和事件需要采集的信号,减少维护工作量,且能够避免云端与车端配置不一致的情况。
9.在一种可选的实施方式中,所述基于所述proto配置模板从缓存的数据中获取所述目标事件对应的目标信号的值,并将所述目标信号的值封装成事件数据包,包括:从所述proto配置模板中加载所述目标事件的massage结构体;将所述目标事件的massage结构体中的成员字段作为所述目标事件对应的目标信号的信号名;根据所述信号名从缓存的数据中查询所述目标信号的值;根据所述目标信号的值为所述目标事件的massage结构体中的成员字段赋值,完成事件数据包的封装。
10.通过加载proto配置模板中的message结构体,然后采集message结构体中对应信号进行封装,能够准确获取每个事件对应的信号数据,且能够适用proto序列化方式实现车端数据上云。
11.在一种可选的实施方式中,所述根据所述目标信号的值为所述目标事件的massage结构体中的成员字段赋值,包括:判断所述目标信号的值是否为预设类型消息体;当所述目标信号的值为预设类型消息体时,根据所述proto配置模板在所述目标事件的massage结构体中建立子massage结构体;根据所述子massage结构体的子成员字段从所述目标信号对应的消息体中获取子信号的值;根据所述子信号的值为所述子massage结构体的子成员字段赋值。
12.通过建立子massage结构体对特殊的目标信号进行封装,提高数据采集的适用性。
13.在一种可选的实施方式中,所述根据所述触发规则判断目标事件是否触发,包括:根据所述触发规则获取目标事件的触发信号和对应的触发条件;根据所述触发信号的值、所述触发条件和预设的组合逻辑判断目标事件是否触发。
14.通过根据所述触发信号的值、所述触发条件和预设的组合逻辑判断目标事件是否触发,能够灵活设置触发规则。
15.第二方面,本发明提供了一种车端数据接收方法,应用于云端,所述方法包括:根据事件对应的信号清单和采集规则生成事件的proto配置模板;基于车端发起的请求下发所述proto配置模板和事件的触发规则;接收车端上传的字符串并将所述字符串进行反序列化得到事件数据包,所述字符串为车端根据所述proto配置模板获取事件的采集规则和
信号清单,根据所述采集规则对所述信号清单中信号对应的数据进行缓存,根据所述触发规则判断目标事件是否触发,当所述目标事件触发时,基于所述proto配置模板从缓存的数据中获取所述目标事件对应的目标信号的值,并将所述目标信号的值封装成事件数据包,将所述事件数据包进行序列化获得;对所述事件数据包进行解析获得目标信号的值。
16.本发明实施例的一种车端数据接收方法,能够通过proto配置模板动态灵活地管理目标事件及其对应的目标信号,并在目标事件触发时将目标信号的值封装、序列化成字符串后上传至云端,只需要维护proto配置模板就能实现对事件采集规则和封装规则的灵活调整,减小配置文件维护的工作量,并且,用proto序列化方式实现车端数据上云,可以降低上云数据包的大小,达到节省网络开销的目的。
17.在一种可选的实施方式中,所述根据事件对应的信号清单和采集规则生成事件的proto配置模板,包括:根据事件对应的采集规则构建massage结构体的名称;根据事件对应的信号清单中的信号名构建massage结构体的成员字段;根据构建的massage结构体生成事件的proto配置模板。
18.本发明实施例可以使proto配置模板同时包含了采集规则和需要采集的信号的信号名。
19.第三方面,本发明提供了一种车端数据上传装置,所述装置包括:配置获取模块,用于从云端获取事件的触发规则和事件的proto配置模板,所述proto配置模板为云端根据事件对应的信号清单和采集规则生成的;配置解析模块,用于根据所述proto配置模板获取事件的采集规则和信号清单;数据缓存模块,用于根据所述采集规则对所述信号清单中信号对应的数据进行缓存;触发判断模块,用于根据所述触发规则判断目标事件是否触发;数据封装模块,用于当所述目标事件触发时,基于所述proto配置模板从缓存的数据中获取所述目标事件对应的目标信号的值,并将所述目标信号的值封装成事件数据包;数据传输模块,用于将所述事件数据包序列化成字符串后上传至云端。
20.第四方面,本发明提供了一种车端数据接收装置,所述装置包括:配置生成模块,用于根据事件对应的信号清单和采集规则生成事件的proto配置模板;配置接收模块,用于基于车端发起的请求下发所述proto配置模板和事件的触发规则;字符串接收模块,用于接收车端上传的字符串并将所述字符串进行反序列化得到事件数据包,所述字符串为车端根据所述proto配置模板获取事件的采集规则和信号清单,根据所述采集规则对所述信号清单中信号对应的数据进行缓存,根据所述触发规则判断目标事件是否触发,当所述目标事件触发时,基于所述proto配置模板从缓存的数据中获取所述目标事件对应的目标信号的值,并将所述目标信号的值封装成事件数据包,将所述事件数据包进行序列化获得;数据包解析模块,用于对所述事件数据包进行解析获得目标信号的值。
21.第五方面,本发明提供了一种计算机设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行上述第一方面中任一实施方式的车端数据上传方法,或上述第二方面中任一实施方式的车端数据接收方法。
22.第六方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行上述第一方面中任一实施方式的车端数据上传方法,或上述第二方面中任一实施方式的车端数据接收方法。
附图说明
23.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
24.图1是本发明实施例的车端数据上传方法的流程示意图;
25.图2是本发明实施例的proto配置模板的示意图;
26.图3是本发明实施例的特殊事件对应的massage结构体的示意图
27.图4是本发明实施例的车端数据接收方法的流程示意图;
28.图5是本发明实施例的车端数据上传装置的结构框图;
29.图6是本发明实施例的车端数据接收装置的结构框图;
30.图7是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
31.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
32.在相关技术中,车端数据上云通常采用json结构的字符串,但考虑到上云数据包对网络资源的开销,以proto序列化字符串的形式可以大量节省资源,但此时需要维护车端事件采集配置与proto解析配置两份配置文件,甚至可能出现云端与车端配置不一致的情况。基于此,本发明实施例提供了一种车端数据上传方法。
33.根据本发明实施例,提供了一种车端数据上传方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
34.本发明实施例中提供的一种车端数据上传方法,应用于车端,车端具体为设置于汽车、货车等车辆上的数据采集模块,随着智能网联汽车的发展,车端的信号数据可以通过4g/5g网络上传到云端,方便用户查看当前的车辆状态,同时,也便于企业根据整车信号进行数据分析、挖掘,对产品研发提供数据支撑。
35.图1是本发明实施例的车端数据上传方法的流程图,如图1所示,该流程包括如下步骤:
36.步骤s101,接收云端下发的事件的触发规则和事件的proto配置模板,proto配置模板为云端根据事件对应的信号清单和采集规则生成的。
37.具体地,车端在进程启动的时候,可以向云端发起http请求,获取事件触发规则和事件的proto配置模板。
38.其中,云端下发的事件包括但不限于车辆行驶中操作所产生的数据,例如,安全事件、碰撞事件、控制事件等,车端通过传感器采集数据,采集的数据包括车辆速度、驾驶员安全带状态、转向信号开关状态、制动踏板位置等;例如,记录碰撞前5s的速度、加速度变化,
制动踏板状态、安全带使用情况等事件数据。又例如,碰撞事件,几秒钟内的车速、发动机转速、制动开关状态、纵向加速度、方向盘转向角度、安全带使用情况等。
39.触发规则可以表明信号与事件的映射关系,即哪些信号会触发事件,同一个信号可以参与多个事件的触发规则判断。触发规则通过云端维护,可以是一个信号对应一个事件触发,例如,当某个信号的值达到阈值时则表明事件触发。也可以是多个信号对应一个事件触发,例如两个信号同时达到阈值才表明事件触发。
40.proto配置模板是云端根据预先采集的事件对应的信号清单和采集规则生成的,事件对应的信号清单包括事件触发后需要采集的信号,采集规则为对需要采集的信号的采集规则。示例性地,采集规则包括变化采集,在信号发生变化时只采集变化字段;周期采集,根据上传周期定时采集信号数据并上传;持续时长采集,采集在事件触发前后若干时间段内信号的所有数据并上传。
41.步骤s102,根据proto配置模板获取事件的采集规则和信号清单。
42.具体地,按照proto配置模板中预定义的格式,解析出所需要采集的信号清单和采集规则。
43.步骤s103,根据采集规则对信号清单中信号对应的数据进行缓存。
44.具体地,车端可以采集域内和域外各个控制器所发出的信号,车端的数据来源有很多种,如can报文数据(信号需要根据一定的规则解析获得)、实际的物理值信号、json字符串等。车端并不关心数据的来源与种类,区别信号的,仅是信号名,因此只需根据信号名获取对应采集规则就可以确定缓存策略。
45.采集规则和缓存策略是相对应的,车端可以根据采集规则可以获得对应信号的缓存策略。在收到不同来源的信号数据后,进行统一格式调整,并依据缓存策略进行数据缓存。如信号的采集规则包含周期(ct)、变化(it)、持续时长(ba)采集规则。对周期采集规则和变化采集规则对应的信号的缓存策略,只需要保存最新的数据,如周期,每次来了就替换新,周期性地更新最新的数据,如变化采集规则,采集新的数据后,先与历史的比较,判断完了将旧的替换成新的既可。对于持续时长采集规则对应的信号的缓存策略,事件触发后需要传前若干秒的数据,需要持续缓存。
46.步骤s104,根据触发规则判断目标事件是否触发。
47.具体地,触发规则定义了何时触发目标事件,例如制定了一个阈值,当某个信号的值超过这个阈值时即触发目标事件。在缓存中即时更新信号值后,车端会根据触发规则对此进行判断,并决定是否触发目标事件。
48.步骤s105,当目标事件触发时,基于proto配置模板从缓存的数据中获取目标事件对应的目标信号的值,并将目标信号的值封装成事件数据包。
49.当目标事件触发时,根据proto配置模板中目标事件对应的信号,从缓存中获取对应信号的值,并将其封装成事件数据包,该事件数据包可以包含多个信号的值。
50.步骤s106,将事件数据包序列化成字符串后上传至云端。
51.具体地,通过protobuf的库函数将事件数据包进行序列化后,上传至云端存储。依据proto配置模板封装的事件数据包,可以序列化为字符串。车端与云端建立长久的mqtt传输通道,事件数据包以序列化字符串的形式上传至云端,一方面可以降低传输数据量,节省开销,另一方面,事件数据包的解析需要对应的proto配置规则,增加了数据的安全性。
52.本发明实施例的一种车端数据上传方法,通过获取云端根据事件对应的信号清单和采集规则生成的proto配置模板,根据proto配置模板获取事件的采集规则和信号清单,根据采集规则对信号清单中信号对应的数据进行缓存,根据触发规则判断目标事件是否触发;当根据触发规则判定目标事件触发时,基于proto配置模板从缓存的数据中获取目标事件对应的目标信号的值,并将目标信号的值封装成事件数据包,将事件数据包序列化成字符串后上传至云端,由此,本发明实施例能够通过proto配置模板动态灵活地管理目标事件及其对应的目标信号,并在目标事件触发时将目标信号的值封装、序列化成字符串后上传至云端,只需要维护proto配置模板就能实现对事件采集规则和封装规则的灵活调整,减小配置文件维护的工作量,并且,用proto序列化方式实现车端数据上云,可以降低上云数据包的大小,达到节省网络开销的目的。
53.在一些可选的实施方式中,上述步骤s102,根据proto配置模板获取事件的采集规则和信号清单,包括:
54.步骤s1021,根据proto配置模板获取massage结构体的名称和成员字段。
55.步骤s1022,根据massage结构体的名称获取事件的采集规则。
56.步骤s1023,根据成员字段获取对应的信号名,并根据信号名组成信号清单。
57.具体地,proto配置模板主要由若干个massage结构体组成。每一个massage结构体对应一个事件,每个message结构体中包含多个成员字段,每个成员字段都对应了一个具体的信号。在事件名中体现采集规则,并将事件名加载在massage结构体的名称中,massage结构体的成员字段即为该事件需要采集的信号名。由此,通过解析proto配置模板中的massage结构体的名称和成员字段可以得到采集规则和需要采集的信号的信号名,并根据信号名组成信号清单。
58.如图2所示,proto配置模板中有三个massage结构体,分别对应三类事件。up_dat_cardata_dat_it001代表变化采集事件,事件名为it001,其中的各个成员(filed)代表信号,采集规则为变化采集,即仅采集并上传变化内容。up_dat_cardata_dat_ct001_10000代表周期采集事件,事件名ct001,采集规则为周期采集,例如上传周期10s,定时采集各成员字段代表的信号上传。up_dat_cardata_dat_ba072代表持续采集事件,采集规则为持续时长采集,即上传事件触发前后若干时间段内信号的所有数据,在缓存时会对ba072_signallists结构中所有信号做持续缓存。
59.通过解析proto配置模板的massage结构体的名称和成员字段得到采集规则和信号清单,仅通过一份配置文件即可同时维护采集规则和事件需要采集的信号,减少维护工作量,且能够避免云端与车端配置不一致的情况。
60.在一些可选的实施方式中,步骤s105中,基于proto配置模板从缓存的数据中获取目标事件对应的目标信号的值,并将目标信号的值封装成事件数据包,包括:
61.步骤s1051,从proto配置模板中加载目标事件的massage结构体。
62.具体地,在目标事件触发后,需要从proto配置模板中加载对应的message结构体。
63.步骤s1052,将目标事件的massage结构体中的成员字段作为目标事件对应的目标信号的信号名。
64.具体地,每个事件对应一个message结构体,因此,从目标事件的message结构体中提取每个成员字段的名称,作为该目标事件对应的目标信号的信号名,能够使采集的信号
和目标事件进行绑定,避免采集其他不需要的信号,获取信号名后可以方便后续从缓存中查询该信号的数据。
65.步骤s1053,根据信号名从缓存的数据中查询目标信号的值。
66.具体地,根据步骤s1052中获取的信号名,从缓存中查询该信号最新的数据值,以便进行事件数据包的封装。如果没有查到该信号的数据,则返回错误信息。
67.步骤s1054,根据目标信号的值为目标事件的massage结构体中的成员字段赋值,完成事件数据包的封装。
68.具体地,根据步骤s1053中获取的目标信号的值,将其赋值给message结构体中对应的成员字段,以完成事件数据包的封装,使得事件数据包包括对应信号数据信息,且能够适用proto序列化方式实现车端数据上云。
69.通过加载proto配置模板中的message结构体,然后采集message结构体中对应信号进行封装,能够准确获取每个事件对应的信号数据,且能够适用proto序列化方式实现车端数据上云。
70.在一些可选的实施方式中,步骤s1054中,根据目标信号的值为目标事件的massage结构体中的成员字段赋值,包括:
71.步骤a1,判断目标信号的值是否为预设类型消息体。
72.步骤a2,当目标信号的值为预设类型消息体时,根据proto配置模板在目标事件的massage结构体中建立子massage结构体。
73.步骤a3,根据子massage结构体的子成员字段从目标信号对应的消息体中获取子信号的值。
74.步骤a4,根据子信号的值为子massage结构体的子成员字段赋值。
75.具体地,在获取目标信号的值后,需要对其进行类型判断,如果该值是一个预设类型消息体,则进行下一步的解析操作。如果该值不是预设类型消息体,则只是将目标信号的值给对应的成员字段赋值。示例性地,预设类型消息体为json消息体。
76.由于车端数据的多样性,在采集信号时,会存在特殊事件和特殊信号,例如,个别目标信号的数据内容可能为json消息体,需要基于proto配置模板从json消息体中解析目标子信号。此时,根据json消息体的成员参数,在目标事件的massage结构体中对该目标信号设计子massage。如图3所示,车端对信号进行缓存时,直接缓存整个json消息体作为信号的值。事件触发后,动态加载massage结构体中成员字段并查询信号值进行赋值。封装信号时,为json类型的目标信号建立子massage,动态遍历子massage的成员字段,从json消息体中获取对应子信号的值,封装成子massage,作为信号值。
77.通过建立子massage结构体对特殊的目标信号进行封装,提高数据采集的适用性。
78.在一些可选的实施方式中,步骤s104,根据触发规则判断目标事件是否触发,包括:
79.步骤s1041,根据触发规则获取目标事件的触发信号和对应的触发条件。
80.步骤s1042,根据触发信号的值、触发条件和预设的组合逻辑判断目标事件是否触发。
81.具体地,加载事件的触发规则时,可以设置信号与事件的映射关系,即哪些信号会触发事件,同一个信号可以参与多个事件的触发规则判断,参与触发规则判断的信号即为
触发信号。事件的触发判定可以设计单独的业务逻辑处理流程。该业务逻辑处理流程可从云端加载或者在车端生成并保存,该流程中设定了预设的组合逻辑。流程的入参即为若干触发信号的信号名的集合,流程内部可以依据信号名从缓存中查询信号值,参与事件触发判断的逻辑运算。触发条件可以为一个或多个,单个条件可为单个信号的值判断,例如大于、小于或等于某个设定值时为满足条件,多个条件可以通过与或等逻辑进行组合逻辑判断。
82.通过根据触发信号的值、触发条件和预设的组合逻辑判断目标事件是否触发,能够灵活设置触发规则。
83.本发明实施例还提出一种车端数据接收方法,参见图4,应用于云端,方法包括:
84.步骤s401,根据事件对应的信号清单和采集规则生成事件的proto配置模板。
85.具体地,预先从车厂或车辆管理者处确定车端每个事件对应的信号清单和采集规则,然后将信号清单和采集规则体现在proto配置模板中。
86.步骤s402,基于车端发起的请求下发proto配置模板和事件的触发规则。
87.具体地,车端在进行采集进程初始化时,会进行配置文件的拉取和加载,对云端发起http请求,云端接收到请求后,下发proto配置模板和事件的触发规则。
88.步骤s403,接收车端上传的字符串并将字符串进行反序列化得到事件数据包,字符串为车端根据proto配置模板获取事件的采集规则和信号清单,根据采集规则对信号清单中信号对应的数据进行缓存,根据触发规则判断目标事件是否触发,当目标事件触发时,基于proto配置模板从缓存的数据中获取目标事件对应的目标信号的值,并将目标信号的值封装成事件数据包,将事件数据包进行序列化获得。
89.具体地,在事件触发时,车端根据proto配置模板采集信号并上传信号封装、序列化后得到的字符串,云端对序列化后的字符串进行反序列化得到事件数据包。
90.步骤s404,对事件数据包进行解析获得目标信号的值。
91.云端对事件数据包进行解析获取事件的目标信号的值,即事件的信号数据信息。云端对事件数据包进行解析与封装过程相反,此处不再赘述,但规则需要保持一致性。之后云端可将事件数据包推送至其他业务模块,如推送kafka、手机端等。
92.本发明实施例的一种车端数据接收方法,能够通过proto配置模板动态灵活地管理目标事件及其对应的目标信号,并在目标事件触发时将目标信号的值封装、序列化成字符串后上传至云端,只需要维护proto配置模板就能实现对事件采集规则和封装规则的灵活调整,减小配置文件维护的工作量,并且,用proto序列化方式实现车端数据上云,可以降低上云数据包的大小,达到节省网络开销的目的。
93.在一些可选的实施方式中,步骤s401,根据事件对应的信号清单和采集规则生成事件的proto配置模板,包括:
94.步骤s4011,根据事件对应的采集规则构建massage结构体的名称。
95.步骤s4012,根据事件对应的信号清单中的信号名构建massage结构体的成员字段。
96.步骤s4013,根据构建的massage结构体生成事件的proto配置模板。
97.具体地,proto配置模板主要由若干个massage结构体组成。每一个massage结构体对应一个事件,每个message结构体中包含多个成员字段,每个成员字段都对应了一个具体
的信号。在事件名中体现采集规则,并将事件名加载在massage结构体的名称中,massage结构体的成员字段即为该事件需要采集的信号名。由此,通过解析proto配置模板中的massage结构体的名称和成员字段可以得到采集规则和需要采集的信号的信号名,并根据信号名组成信号清单。
98.本发明实施例还提出一种车端数据上传装置,如图5所示,车端数据上传装置包括:
99.配置获取模块501,用于从云端获取事件的触发规则和事件的proto配置模板,proto配置模板为云端根据事件对应的信号清单和采集规则生成的。具体内容和上述方法实施例相同,在此不再赘述。
100.配置解析模块502,用于根据proto配置模板获取事件的采集规则和信号清单。具体内容和上述方法实施例相同,在此不再赘述。
101.数据缓存模块503,用于根据采集规则对信号清单中信号对应的数据进行缓存。具体内容和上述方法实施例相同,在此不再赘述。
102.触发判断模块504,用于根据触发规则判断目标事件是否触发。具体内容和上述方法实施例相同,在此不再赘述。
103.数据封装模块505,用于当目标事件触发时,基于proto配置模板从缓存的数据中获取目标事件对应的目标信号的值,并将目标信号的值封装成事件数据包。具体内容和上述方法实施例相同,在此不再赘述。
104.数据传输模块506,用于将事件数据包序列化成字符串后上传至云端。具体内容和上述方法实施例相同,在此不再赘述。
105.本发明实施例的一种车端数据上传装置,通过获取云端根据事件对应的信号清单和采集规则生成的proto配置模板,根据proto配置模板获取事件的采集规则和信号清单,根据采集规则对信号清单中信号对应的数据进行缓存,根据触发规则判断目标事件是否触发;当根据触发规则判定目标事件触发时,基于proto配置模板从缓存的数据中获取目标事件对应的目标信号的值,并将目标信号的值封装成事件数据包,将事件数据包序列化成字符串后上传至云端,由此,本发明实施例能够通过proto配置模板动态灵活地管理目标事件及其对应的目标信号,并在目标事件触发时将目标信号的值封装、序列化成字符串后上传至云端,只需要维护proto配置模板就能实现对事件采集规则和封装规则的灵活调整,减小配置文件维护的工作量,并且,用proto序列化方式实现车端数据上云,可以降低上云数据包的大小,达到节省网络开销的目的。
106.本发明实施例还提出一种车端数据接收装置,如图6所示,该车端数据接收装置包括:
107.配置生成模块601,用于根据事件对应的信号清单和采集规则生成事件的proto配置模板。具体内容和上述方法实施例相同,在此不再赘述。
108.配置接收模块602,用于基于车端发起的请求下发proto配置模板和事件的触发规则。具体内容和上述方法实施例相同,在此不再赘述。
109.字符串接收模块603,用于接收车端上传的字符串并将字符串进行反序列化得到事件数据包,字符串为车端根据proto配置模板获取事件的采集规则和信号清单,根据采集规则对信号清单中信号对应的数据进行缓存,根据触发规则判断目标事件是否触发,当目
标事件触发时,基于proto配置模板从缓存的数据中获取目标事件对应的目标信号的值,并将目标信号的值封装成事件数据包,将事件数据包进行序列化获得。具体内容和上述方法实施例相同,在此不再赘述。
110.数据包解析模块604,用于对事件数据包进行解析获得目标信号的值。具体内容和上述方法实施例相同,在此不再赘述。
111.本发明实施例的一种车端数据接收装置,能够通过proto配置模板动态灵活地管理目标事件及其对应的目标信号,并在目标事件触发时将目标信号的值封装、序列化成字符串后上传至云端,只需要维护proto配置模板就能实现对事件采集规则和封装规则的灵活调整,减小配置文件维护的工作量,并且,用proto序列化方式实现车端数据上云,可以降低上云数据包的大小,达到节省网络开销的目的。
112.上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
113.本实施例中的车端数据上传装置是以功能单元的形式来呈现,这里的单元是指asic(application specific integrated circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
114.请参阅图7,图7是本发明可选实施例提供的一种计算机设备的结构示意图,如图7所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器10为例。
115.处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
116.其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
117.存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
118.存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器
的组合。
119.该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
120.本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
121.虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

技术特征:
1.一种车端数据上传方法,其特征在于,应用于车端,所述方法包括:接收云端下发的事件的触发规则和事件的proto配置模板,所述proto配置模板为云端根据事件对应的信号清单和采集规则生成的;根据所述proto配置模板获取事件的采集规则和信号清单;根据所述采集规则对所述信号清单中信号对应的数据进行缓存;根据所述触发规则判断目标事件是否触发;当所述目标事件触发时,基于所述proto配置模板从缓存的数据中获取所述目标事件对应的目标信号的值,并将所述目标信号的值封装成事件数据包;将所述事件数据包序列化成字符串后上传至云端。2.根据权利要求1所述的方法,其特征在于,所述根据所述proto配置模板获取事件的采集规则和信号清单,包括:根据所述proto配置模板获取massage结构体的名称和成员字段;根据massage结构体的名称获取事件的采集规则;根据所述成员字段获取对应的信号名,并根据所述信号名组成信号清单。3.根据权利要求1所述的方法,其特征在于,所述基于所述proto配置模板从缓存的数据中获取所述目标事件对应的目标信号的值,并将所述目标信号的值封装成事件数据包,包括:从所述proto配置模板中加载所述目标事件的massage结构体;将所述目标事件的massage结构体中的成员字段作为所述目标事件对应的目标信号的信号名;根据所述信号名从缓存的数据中查询所述目标信号的值;根据所述目标信号的值为所述目标事件的massage结构体中的成员字段赋值,完成事件数据包的封装。4.根据权利要求3所述的方法,其特征在于,所述根据所述目标信号的值为所述目标事件的massage结构体中的成员字段赋值,包括:判断所述目标信号的值是否为预设类型消息体;当所述目标信号的值为预设类型消息体时,根据所述proto配置模板在所述目标事件的massage结构体中建立子massage结构体;根据所述子massage结构体的子成员字段从所述目标信号对应的消息体中获取子信号的值;根据所述子信号的值为所述子massage结构体的子成员字段赋值。5.根据权利要求1所述的方法,其特征在于,所述根据所述触发规则判断目标事件是否触发,包括:根据所述触发规则获取目标事件的触发信号和对应的触发条件;根据所述触发信号的值、所述触发条件和预设的组合逻辑判断目标事件是否触发。6.一种车端数据接收方法,其特征在于,应用于云端,所述方法包括:根据事件对应的信号清单和采集规则生成事件的proto配置模板;基于车端发起的请求下发所述proto配置模板和事件的触发规则;接收车端上传的字符串并将所述字符串进行反序列化得到事件数据包,所述字符串为
车端根据所述proto配置模板获取事件的采集规则和信号清单,根据所述采集规则对所述信号清单中信号对应的数据进行缓存,根据所述触发规则判断目标事件是否触发,当所述目标事件触发时,基于所述proto配置模板从缓存的数据中获取所述目标事件对应的目标信号的值,并将所述目标信号的值封装成事件数据包,将所述事件数据包进行序列化获得;对所述事件数据包进行解析获得目标信号的值。7.根据权利要求6所述的方法,其特征在于,所述根据事件对应的信号清单和采集规则生成事件的proto配置模板,包括:根据事件对应的采集规则构建massage结构体的名称;根据事件对应的信号清单中的信号名构建massage结构体的成员字段;根据构建的massage结构体生成事件的proto配置模板。8.一种车端数据上传装置,其特征在于,所述装置包括:配置获取模块,用于从云端获取事件的触发规则和事件的proto配置模板,所述proto配置模板为云端根据事件对应的信号清单和采集规则生成的;配置解析模块,用于根据所述proto配置模板获取事件的采集规则和信号清单;数据缓存模块,用于根据所述采集规则对所述信号清单中信号对应的数据进行缓存;触发判断模块,用于根据所述触发规则判断目标事件是否触发;数据封装模块,用于当所述目标事件触发时,基于所述proto配置模板从缓存的数据中获取所述目标事件对应的目标信号的值,并将所述目标信号的值封装成事件数据包;数据传输模块,用于将所述事件数据包序列化成字符串后上传至云端。9.一种车端数据接收装置,其特征在于,所述装置包括:配置生成模块,用于根据事件对应的信号清单和采集规则生成事件的proto配置模板;配置接收模块,用于基于车端发起的请求下发所述proto配置模板和事件的触发规则;字符串接收模块,用于接收车端上传的字符串并将所述字符串进行反序列化得到事件数据包,所述字符串为车端根据所述proto配置模板获取事件的采集规则和信号清单,根据所述采集规则对所述信号清单中信号对应的数据进行缓存,根据所述触发规则判断目标事件是否触发,当所述目标事件触发时,基于所述proto配置模板从缓存的数据中获取所述目标事件对应的目标信号的值,并将所述目标信号的值封装成事件数据包,将所述事件数据包进行序列化获得;数据包解析模块,用于对所述事件数据包进行解析获得目标信号的值。10.一种计算机设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至5中任一项所述的车端数据上传方法或权利要求6或7所述的车端数据接收方法。11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至5中任一项所述的车端数据上传方法或权利要求6或7所述的车端数据接收方法。

技术总结
本发明涉及车辆数据通信技术领域,公开了一种车端数据上传方法、接收方法、装置、设备及介质,该上传方法包括:从云端获取事件的触发规则和事件的proto配置模板;根据proto配置模板获取事件的采集规则和信号清单;对信号清单中信号对应的数据进行缓存;根据触发规则判断目标事件是否触发;当目标事件触发时,从缓存的数据中获取目标事件对应的目标信号的值,并将目标信号的值封装成事件数据包;将事件数据包序列化成字符串后上传至云端。本发明可以减小配置文件维护的工作量,并且,用序列化方式实现车端数据上云,可以降低上云数据包的大小,达到节省网络开销的目的。达到节省网络开销的目的。达到节省网络开销的目的。


技术研发人员:戴金滔 谢磊 黄川
受保护的技术使用者:重庆长安汽车股份有限公司
技术研发日:2023.06.30
技术公布日:2023/9/6
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐