System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及通信,尤其涉及一种基于数据分发服务的通信方式动态选择方法及装置。
技术介绍
1、智能驾驶域控中间件需要满足高并发、低延时、高吞吐的需求,目前数据分发服务(data distribution service,dds)通信中间件常用的通信方式主要为udp/ip、tcp/ip、共享内存等方式。
2、udp、tcp通信会有多次拷贝的开销,并且其通信速率与网络带宽有直接联系,共享内存方式虽然相比与网络传输速率更快,但两个进程间物理资源是独立的,不同进程间通信需要拷贝副本。并且两种通信方式在序列化和反序列过程都存在拷贝。当通信频繁、数据量大时,存在很大的通信延时。
技术实现思路
1、本申请实施例提供一种基于数据分发服务的通信方式动态选择方法及装置,用以解决相关技术中智能驾驶域通信时延大的技术问题。
2、第一方面,本申请实施例提供一种基于数据分发服务的通信方式动态选择方法,包括:
3、从读实体信息中读取用户数据信息;
4、基于所述用户数据信息确定当前存在的读实体的类型;
5、基于当前存在的读实体的类型,确定针对每一类型的读实体的通信方式。
6、在一些实施例中,基于所述用户数据信息确定当前存在的读实体的类型,包括:
7、基于所述用户数据信息确定读实体的所在位置;
8、基于读实体的所在位置确定当前存在的读实体的类型。
9、在一些实施例中,所述用户数据信息包括ip地址和进程标识;
>10、基于所述用户数据信息确定读实体的所在位置,包括:
11、如果ip地址不同,则确定读实体处于不同的控制器;
12、如果ip地址相同,进程标识不同,则确定读实体处于同控制器的不同进程;
13、如果ip地址和进程标识都相同,则确定读实体处于相同进程。
14、在一些实施例中,基于当前存在的读实体的类型,确定针对每一类型的读实体的通信方式,包括以下至少一种:
15、针对同进程的读实体,确定通信方式为调用intradatawriter实体进行消息的传递;
16、针对同控制器不同进程的读实体,确定通信方式为调用datawriter实体并设置共享内存进行消息的传递;
17、针对不同控制器间的读实体,确定通信方式为调用datawriter实体并设置udp进行消息的传递。
18、在一些实施例中,基于当前存在的读实体的类型,确定针对每一类型的读实体的通信方式,包括以下至少一种:
19、如果只存在同进程的读实体,则确定通信方式为调用intradatawriter实体进行消息的传递;
20、如果只存在同控制器不同进程的读实体,则确定通信方式为调用datawriter实体并设置共享内存进行消息的传递;
21、如果只存在不同控制器间的读实体,则确定通信方式为调用datawriter实体并设置udp进行消息的传递;
22、如果存在不同控制器间的读实体和同控制器不同进程的读实体,则确定通信方式为调用intradatawriter实体进行消息的传递和调用datawriter实体并设置udp进行消息的传递;
23、如果存在同控制器不同进程的读实体和同进程的读实体,则确定通信方式为调用intradatawriter实体进行消息的传递和调用datawriter实体并设置共享内存进行消息的传递;
24、如果存在不同控制器间的读实体和同控制器不同进程的读实体,则确定通信方式为调用datawriter实体并设置udp进行消息的传递;
25、如果存在同进程的读实体、同控制器不同进程的读实体和不同控制器间的读实体,则确定通信方式为调用intradatawriter实体进行消息的传递和调用datawriter实体并设置udp进行消息的传递。
26、在一些实施例中,还包括:
27、发布者发布主题时创建一个datawriter实体和一个intradatawriter实体,发布者创建的intradatawriter实体和订阅者创建的intradatareader实体之间采用信号与槽的方式进行通信。
28、在一些实施例中,还包括:
29、在确定调用intradatawriter实体进行消息的传递的情况下,intradatawriter实体触发intradatareader实体添加的槽函数;
30、通过槽函数将消息的智能指针传递给intradatareader实体,所述智能指针用于intradatareader实体利用回调函数调取消息。
31、第二方面,本申请实施例提供一种基于数据分发服务的通信方式动态选择装置,包括:
32、获取模块,用于从读实体信息中读取用户数据信息;
33、第一确定模块,用于基于所述用户数据信息确定当前存在的读实体的类型;
34、第二确定模块,用于基于当前存在的读实体的类型,确定针对每一类型的读实体的通信方式。
35、第三方面,本申请实施例提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述第一方面所述的基于数据分发服务的通信方式动态选择方法。
36、第四方面,本申请实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述第一方面所述的基于数据分发服务的通信方式动态选择方法。
37、本申请提供的基于数据分发服务的通信方式动态选择方法及装置,基于用户数据信息确定当前存在的读实体的类型,并基于当前存在的读实体的类型,确定针对每一类型的读实体的通信方式,有针对性地针对不同类型的读实体选择不同的通信方式,降低了智能驾驶域的通信时延。
本文档来自技高网...【技术保护点】
1.一种基于数据分发服务的通信方式动态选择方法,其特征在于,包括:
2.根据权利要求1所述的基于数据分发服务的通信方式动态选择方法,其特征在于,基于所述用户数据信息确定当前存在的读实体的类型,包括:
3.根据权利要求2所述的基于数据分发服务的通信方式动态选择方法,其特征在于,所述用户数据信息包括IP地址和进程标识;
4.根据权利要求1所述的基于数据分发服务的通信方式动态选择方法,其特征在于,基于当前存在的读实体的类型,确定针对每一类型的读实体的通信方式,包括以下至少一种:
5.根据权利要求1所述的基于数据分发服务的通信方式动态选择方法,其特征在于,基于当前存在的读实体的类型,确定针对每一类型的读实体的通信方式,包括以下至少一种:
6.根据权利要求4或5所述的基于数据分发服务的通信方式动态选择方法,其特征在于,还包括:
7.根据权利要求4或5所述的基于数据分发服务的通信方式动态选择方法,其特征在于,还包括:
8.一种基于数据分发服务的通信方式动态选择装置,其特征在于,包括:
9.一种电子
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述基于数据分发服务的通信方式动态选择方法。
...【技术特征摘要】
1.一种基于数据分发服务的通信方式动态选择方法,其特征在于,包括:
2.根据权利要求1所述的基于数据分发服务的通信方式动态选择方法,其特征在于,基于所述用户数据信息确定当前存在的读实体的类型,包括:
3.根据权利要求2所述的基于数据分发服务的通信方式动态选择方法,其特征在于,所述用户数据信息包括ip地址和进程标识;
4.根据权利要求1所述的基于数据分发服务的通信方式动态选择方法,其特征在于,基于当前存在的读实体的类型,确定针对每一类型的读实体的通信方式,包括以下至少一种:
5.根据权利要求1所述的基于数据分发服务的通信方式动态选择方法,其特征在于,基于当前存在的读实体的类型,确定针对每一类型的读实体的通信方式,包括以下至少一种...
【专利技术属性】
技术研发人员:刘珊珊,范炬,
申请(专利权)人:中信科智联科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。