System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 优化DDS数据处理速率的方法、系统及介质技术方案_技高网

优化DDS数据处理速率的方法、系统及介质技术方案

技术编号:40608594 阅读:5 留言:0更新日期:2024-03-12 22:15
本发明专利技术涉及一种优化DDS数据处理速率的方法、系统及介质,涉及智能汽车通信技术领域,所述方法包括根据DDS反序列化的方式,设计结构补齐规则,使得补齐后的DDS内存偏移与内存偏移相同;基于所述结构补齐规则,对消息进行填充;动态检查每个数据类型是否符合内存对齐要求,对满足内存对齐的数据类型采用直接复制二进制数据到相应的内存中。本发明专利技术提升了DDS订阅方收到信息后反序列化数据的效率,降低通信时延,兼容DDS标准。

【技术实现步骤摘要】

本专利技术涉及智能汽车通信,尤其是涉及一种优化dds数据处理速率的方法、系统及介质。


技术介绍

1、dds(data distribution service)是一种开放的标准,旨在提供高性能、分布式、实时的数据通信。dds旨在解决不同系统之间的数据通信和集成问题,特别适用于实时和嵌入式系统。

2、现有智能驾驶系统项目上采用的的dds通信中间件,是以数据为中心的发布/订阅模型dcps(data-centric publish-subscribe),是在网络结构的传输层之上以tcp/udp作为基础构建的,dds在传输数据时需要对数据执行序列化和反序列化的过程,以满足不同硬件架构、不同编程语言的应用程序之间的通信需求。

3、标准的序列化、反序列化流程随着数据类型的大小增加、复杂性增加,对cpu的消耗也是随之增加,面对自动驾驶领域大量复制数据类型的通信场景,序列化和反序列化成为一个性能瓶颈。市场上有一些商业的dds实现方案针对序列化和反序列化做了一些优化方案,比如swiftdds提供的flatdata技术,对大数据通信做了特殊优化。但这类方案的原理是使用自定义的序列化规则代替标准的序列化规则,因此它要求通信双方都使用相同的dds实现,而不能与其他dds实现兼容。


技术实现思路

1、鉴于以上所述的现有技术的缺点,本专利技术的目的是提供一种优化dds数据处理速率的方法、系统及介质,提升了dds订阅方收到信息后反序列化数据的效率,降低通信时延,兼容dds标准。

<p>2、为实现上述目的,本专利技术采用如下技术方案。

3、第一方面,本专利技术提供的一种优化dds数据处理速率的方法,采用如下的技术方案:

4、一种优化dds数据处理速率的方法,包括:

5、根据dds反序列化的方式,设计结构补齐规则,使得补齐后的dds内存偏移与内存偏移相同;

6、基于所述结构补齐规则,对消息进行填充;

7、动态检查每个数据类型是否符合内存对齐要求,对满足内存对齐的数据类型采用直接复制二进制数据到相应的内存中。

8、进一步的,上述的一种优化dds数据处理速率的方法中,所述结构补齐规则包括:

9、计算原消息结构体中每个参数在内存中的内存偏移量;

10、计算原消息结构体根据dds反序列化规则的内存偏移量;

11、在自定义数据类型的数据成员前后增加填充数据,使数据成员的偏移地址与内存偏移量相同。

12、进一步的,上述的一种优化dds数据处理速率的方法中,所述在自定义数据类型的数据成员前后增加填充数据,使数据成员的偏移地址与内存偏移量相同,包括:

13、在自定义数据类型的数据成员之前增加填充数据,使数据成员的偏移地址总是按照其最大成员对齐;

14、在自定义数据类型末尾增加填充数据,使自定义数据类型最后没有未使用空间。

15、进一步的,上述的一种优化dds数据处理速率的方法中,所述基于所述结构补齐规则,对消息进行填充,包括:

16、遍历消息文件夹,解析所有消息,并对所有消息进行分类,分为系统内置消息、无引用消息以及有引用消息;

17、对所述系统内置消息进行分类;

18、基于所述结构补齐规则,对未对齐的无引用消息进行对齐;

19、以及基于所述结构补齐规则,对可补齐的有引用消息进行对齐。

20、进一步的,上述的一种优化dds数据处理速率的方法中,所述对所述系统内置消息进行分类,包括:

21、遍历所述系统内置消息,获取所述系统内置消息中最长参数的长度;

22、判断所述系统内置消息的长度是否是最长参数长度的整数倍;

23、若是,则认为该系统内置消息已对齐,否则,认为该系统内置消息未对齐。

24、进一步的,上述的一种优化dds数据处理速率的方法中,所述基于所述结构补齐规则,对未对齐的无引用消息进行对齐,包括:

25、获取所述无引用消息中所有参数中占用内存最长参数的长度;

26、若所述无引用消息的长度为最长参数长度的整数倍,则认为所述无引用消息已对齐;

27、若所述无引用消息的长度不为最长参数长度的整数倍,则将所述无引用消息补齐至所述最长参数长度的最小整数倍。

28、进一步的,上述的一种优化dds数据处理速率的方法中,所述将所述无引用消息补齐至所述最长参数长度的最小整数倍,包括:

29、获取所述无引用消息最后一个参数的长度及偏移量之和,结果记为x;

30、计算x模最长参数的长度,结果记为y;

31、计算最长参数的长度减去y,结果记为m;

32、计算m可用1,2,4组成的最短数组之和,数组记为n;

33、将n从小到大排序后,取最大的值按照预设的填充规则在消息结尾填充参数。

34、进一步的,上述的一种优化dds数据处理速率的方法中,所述填充规则包括:1对应填充一个uint8参数,2对应填充一个uint16参数,4对应填充一个uint32参数。

35、进一步的,上述的一种优化dds数据处理速率的方法中,所述基于所述结构补齐规则,对可补齐的有引用消息进行对齐,包括:

36、有引用系统内置消息或者已经补齐的消息,按照无引用消息的补齐方式进行补齐,补齐后的消息从有引用消息中移除;

37、有引用未补齐消息,跳过补齐。

38、进一步的,上述的一种优化dds数据处理速率的方法中,所述动态检查每个数据类型是否符合内存对齐要求,对满足内存对齐的数据类型采用直接复制二进制数据到相应的内存中,包括:

39、按照预设的内存对齐检测逻辑判断所述数据类型是否满足内存对齐要求;

40、若满足,则直接将二进制数据复制至内存中,若不满足,则对所述二进制数据进行反序列化操作。

41、进一步的,上述的一种优化dds数据处理速率的方法中,所述内存对齐检测逻辑包括:

42、按照dds序列化规则,逐个计算每个数据成员的地址偏移,与该数据对应的结构体的每个成员的地址偏移进行比较;

43、当每个成员的地址偏移量都相同时,认为此数据类型满足内存对齐要求。

44、第二方面,本专利技术提供的一种优化dds数据处理速率的系统,采用如下的技术方案:

45、一种优化dds数据处理速率的系统,包括:

46、规则设计模块,至少用于设计和存储结构补齐规则;

47、消息填充模块,至少用于基于所述结构补齐规则,对消息进行填充;

48、以及消息解析模块,至少用于动态检查每个数据类型是否符合内存对齐要求,对满足内存对齐的数据类型采用直接复制二进制数据到相应的内存中。

49、第三方面,本专利技术提供的一种可读存储介质,采用如下的技术方案:

50、一种可读存储介质,所述可读存储本文档来自技高网...

【技术保护点】

1.一种优化DDS数据处理速率的方法,其特征在于,包括:

2.根据权利要求1所述的一种优化DDS数据处理速率的方法,其特征在于,所述结构补齐规则包括:

3.根据权利要求2所述的一种优化DDS数据处理速率的方法,其特征在于,所述在自定义数据类型的数据成员前后增加填充数据,使数据成员的偏移地址与内存偏移量相同,包括:在自定义数据类型的数据成员之前增加填充数据,使数据成员的偏移地址总是按照其最大成员对齐;

4.根据权利要求1所述的一种优化DDS数据处理速率的方法,其特征在于,所述基于所述结构补齐规则,对消息进行填充,包括:

5.根据权利要求4所述的一种优化DDS数据处理速率的方法,其特征在于,所述对所述系统内置消息进行分类,包括:

6.根据权利要求4所述的一种优化DDS数据处理速率的方法,其特征在于,所述基于所述结构补齐规则,对未对齐的无引用消息进行对齐,包括:

7.根据权利要求6所述的一种优化DDS数据处理速率的方法,其特征在于,所述将所述无引用消息补齐至所述最长参数长度的最小整数倍,包括:

8.根据权利要求7所述的一种优化DDS数据处理速率的方法,其特征在于,所述填充规则包括:1对应填充一个uint8参数,2对应填充一个uint16参数,4对应填充一个uint32参数。

9.根据权利要求4所述的一种优化DDS数据处理速率的方法,其特征在于,所述基于所述结构补齐规则,对可补齐的有引用消息进行对齐,包括:

10.根据权利要求1所述的一种优化DDS数据处理速率的方法,其特征在于,所述动态检查每个数据类型是否符合内存对齐要求,对满足内存对齐的数据类型采用直接复制二进制数据到相应的内存中,包括:

11.根据权利要求10所述的一种优化DDS数据处理速率的方法,其特征在于,所述内存对齐检测逻辑包括:

12.一种优化DDS数据处理速率的系统,其特征在于,所述系统包括:

13.一种可读存储介质,其特征在于,所述可读存储介质存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1-11中任一项所述的一种优化DDS数据处理速率的方法方法。

...

【技术特征摘要】

1.一种优化dds数据处理速率的方法,其特征在于,包括:

2.根据权利要求1所述的一种优化dds数据处理速率的方法,其特征在于,所述结构补齐规则包括:

3.根据权利要求2所述的一种优化dds数据处理速率的方法,其特征在于,所述在自定义数据类型的数据成员前后增加填充数据,使数据成员的偏移地址与内存偏移量相同,包括:在自定义数据类型的数据成员之前增加填充数据,使数据成员的偏移地址总是按照其最大成员对齐;

4.根据权利要求1所述的一种优化dds数据处理速率的方法,其特征在于,所述基于所述结构补齐规则,对消息进行填充,包括:

5.根据权利要求4所述的一种优化dds数据处理速率的方法,其特征在于,所述对所述系统内置消息进行分类,包括:

6.根据权利要求4所述的一种优化dds数据处理速率的方法,其特征在于,所述基于所述结构补齐规则,对未对齐的无引用消息进行对齐,包括:

7.根据权利要求6所述的一种优化dds数据处理速率的方法,其特征在于,所述将所述无引用消息补齐至所述最长参数...

【专利技术属性】
技术研发人员:高仁豪
申请(专利权)人:零束科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1