一种基于总线的无人车数据传输方法及终端与流程

文档序号:32905084发布日期:2023-01-13 02:33阅读:24来源:国知局
一种基于总线的无人车数据传输方法及终端与流程

1.本发明涉及无人车数据传输技术领域,特别涉及一种基于总线的无人车数据传输方法及终端。


背景技术:

2.无人车指控平台是基于web平台、采用reactjs框架开发的。以指控平台为例,指控平台中以地图监控为父组件,地图监控页中的各个功能模块为子组件,嵌套在地图监控页面父组件中运行。指控平台在地图监控组件向后台实时数据服务器订阅无人车实时数据,在接收到无人车实时数据后,向其下各子组件单向发送无人车实时数据,各子组件接收到数据后又向子组件下的孙组件继续传递。而基于reactjs的渲染规则,当组件接收到父组件传递过来的参数后,会将组件内的ui进行重新渲染。这就导致当顶级父组件接收到数据后,在向最终需要使用的n级子组件传递过程中,中间多级组件因为该渲染机制也要重新渲染一遍,而这种情况下的渲染是不必要的。
3.在普通的简单web系统中,这些额外的渲染导致的副作用并不严重;但是在无人车指控平台中,因为无人车实时数据发送频率高,在多车场景下乘积累加,造成的额外渲染指数级增多,最终造成平台严重卡断,无法使用。


技术实现要素:

4.本发明所要解决的技术问题是:提供一种基于总线的无人车数据传输方法及终端,能够减少数据传递过程中的组件渲染开销和渲染压力。
5.为了解决上述技术问题,本发明采用的技术方案为:
6.一种基于总线的无人车数据传输方法,包括步骤:
7.建立与无人车指控平台的监控父组件连接的数据总线;
8.接收需要监控的无人车对象,在所述数据总线中更新所述无人车对象,根据需要监控的无人车对象发送的订阅数据,更新所述数据总线中所述无人车对象对应的数据列表;
9.若无人车指控平台的监控子组件需要订阅所述无人车对象的订阅数据,则通过所述数据总线的回调函数获取所述订阅数据,并进行所述子组件的渲染。
10.为了解决上述技术问题,本发明采用的另一种技术方案为:
11.一种基于总线的无人车数据传输终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
12.建立与无人车指控平台的监控父组件连接的数据总线;
13.接收需要监控的无人车对象,在所述数据总线中更新所述无人车对象,根据需要监控的无人车对象发送的订阅数据,更新所述数据总线中所述无人车对象对应的数据列表;
14.若无人车指控平台的监控子组件需要订阅所述无人车对象的订阅数据,则通过所述数据总线的回调函数获取所述订阅数据,并进行所述子组件的渲染。
15.本发明的有益效果在于:建立与无人车指控平台的监控父组件连接的数据总线;在父组件接收到无人车的实时数据后,向数据总线发布数据,而其它子组件在需要获取数据时,可向数据总线订阅数据,当数据总线中有新数据时便可以调用子组件的回调函数,单独对子组件进行渲染。相较于现有技术中父组件在向下传递数据到子组件的方法,本发明能够避免向下传递数据造成额外的渲染,避免造成不必要的渲染开销,大大减少指控平台的渲染压力。
附图说明
16.图1为本发明实施例的一种基于总线的无人车数据传输方法的流程图;
17.图2为本发明实施例的一种基于总线的无人车数据传输终端的示意图;
18.图3为现有技术中的数据传输渲染示意图;
19.图4为本发明实施例的一种基于总线的无人车数据传输方法的数据传输渲染示意图;
20.标号说明:
21.1、一种基于总线的无人车数据传输终端;2、存储器;3、处理器。
具体实施方式
22.为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
23.请参照图1,本发明实施例提供了一种基于总线的无人车数据传输方法,包括步骤:
24.建立与无人车指控平台的监控父组件连接的数据总线;
25.接收需要监控的无人车对象,在所述数据总线中更新所述无人车对象,根据需要监控的无人车对象发送的订阅数据,更新所述数据总线中所述无人车对象对应的数据列表;
26.若无人车指控平台的监控子组件需要订阅所述无人车对象的订阅数据,则通过所述数据总线的回调函数获取所述订阅数据,并进行所述子组件的渲染。
27.从上述描述可知,本发明的有益效果在于:建立与无人车指控平台的监控父组件连接的数据总线;在父组件接收到无人车的实时数据后,向数据总线发布数据,而其它子组件在需要获取数据时,可向数据总线订阅数据,当数据总线中有新数据时便可以调用子组件的回调函数,单独对子组件进行渲染。相较于现有技术中父组件在向下传递数据到子组件的方法,本发明能够避免向下传递数据造成额外的渲染,避免造成不必要的渲染开销,大大减少指控平台的渲染压力。
28.进一步地,所述接收需要监控的无人车对象,在所述数据总线中更新所述无人车对象包括:
29.接收所述无人车指控平台传输的需要监控的无人车对象,通过所述数据总线中的无人车监控对象更新函数,更新所述无人车对象。
30.由上述描述可知,将无人车指控平台中选择的无人车对象更新到数据总线中,便于后续通过数据总线向各组件进行数据分发。
31.进一步地,所述根据需要监控的无人车对象发送的订阅数据,更新所述数据总线中所述无人车对象对应的数据列表包括:
32.所述订阅数据包括实时数据和上下线数据;
33.若接收到需要监控的无人车对象发送的实时数据,则通过所述数据总线中的实时数据更新函数,更新无人车实时数据键值对象和无人车监听对象数据列表,并基于无人车实时数据键值对象生成无人车数据列表;
34.若接收到需要监控的无人车对象发送的上下线数据,则通过所述数据总线中的上下线状态更新函数,更新无人车上下线状态键值对象和无人车监听对象数据列表。
35.由上述描述可知,将无人车中发送的实时数据和上下线数据更新到数据总线中,便于后续通过数据总线向各组件进行数据分发。
36.进一步地,通过所述数据总线的回调函数获取所述订阅数据包括:
37.通过所述数据总线的回调函数注册回调信息,所述回调信息包括子组件对象、需要订阅的数据类型、订阅频率和订阅数据所触发的回调函数,并将所述回调信息更新至订阅组件键值对象中。
38.由上述描述可知,通过子组件注册回调信息,能够通过数据总线直接订阅父组件接收到的订阅数据,在数据传输时不需要再经过多个组件,提高传输效率。
39.进一步地,进行所述子组件的渲染包括:
40.当所述数据总线接收到所述父组件传输的数据时,在所述数据总线中进行数据更新,并遍历所述数据总线中的订阅组件键值对象,判断是否存在订阅传输数据的子组件,若存在,则对所述子组件进行渲染。
41.由上述描述可知,单独对子组件进行渲染,能够节省组件渲染开销,并且减少渲染压力。
42.请参照图2,本发明另一实施例提供了一种基于总线的无人车数据传输终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
43.建立与无人车指控平台的监控父组件连接的数据总线;
44.接收需要监控的无人车对象,在所述数据总线中更新所述无人车对象,根据需要监控的无人车对象发送的订阅数据,更新所述数据总线中所述无人车对象对应的数据列表;
45.若无人车指控平台的监控子组件需要订阅所述无人车对象的订阅数据,则通过所述数据总线的回调函数获取所述订阅数据,并进行所述子组件的渲染。
46.从上述描述可知,本发明的有益效果在于:建立与无人车指控平台的监控父组件连接的数据总线;在父组件接收到无人车的实时数据后,向数据总线发布数据,而其它子组件在需要获取数据时,可向数据总线订阅数据,当数据总线中有新数据时便可以调用子组件的回调函数,单独对子组件进行渲染。相较于现有技术中父组件在向下传递数据到子组件的方法,本发明能够避免向下传递数据造成额外的渲染,避免造成不必要的渲染开销,大大减少指控平台的渲染压力。
47.进一步地,所述接收需要监控的无人车对象,在所述数据总线中更新所述无人车对象包括:
48.接收所述无人车指控平台传输的需要监控的无人车对象,通过所述数据总线中的无人车监控对象更新函数,更新所述无人车对象。
49.由上述描述可知,将无人车指控平台中选择的无人车对象更新到数据总线中,便于后续通过数据总线向各组件进行数据分发。
50.进一步地,所述根据需要监控的无人车对象发送的订阅数据,更新所述数据总线中所述无人车对象对应的数据列表包括:
51.所述订阅数据包括实时数据和上下线数据;
52.若接收到需要监控的无人车对象发送的实时数据,则通过所述数据总线中的实时数据更新函数,更新无人车实时数据键值对象和无人车监听对象数据列表,并基于无人车实时数据键值对象生成无人车数据列表;
53.若接收到需要监控的无人车对象发送的上下线数据,则通过所述数据总线中的上下线状态更新函数,更新无人车上下线状态键值对象和无人车监听对象数据列表。
54.由上述描述可知,将无人车中发送的实时数据和上下线数据更新到数据总线中,便于后续通过数据总线向各组件进行数据分发。
55.进一步地,通过所述数据总线的回调函数获取所述订阅数据包括:
56.通过所述数据总线的回调函数注册回调信息,所述回调信息包括子组件对象、需要订阅的数据类型、订阅频率和订阅数据所触发的回调函数,并将所述回调信息更新至订阅组件键值对象中。
57.由上述描述可知,通过子组件注册回调信息,能够通过数据总线直接订阅父组件接收到的订阅数据,在数据传输时不需要再经过多个组件,提高传输效率。
58.进一步地,进行所述子组件的渲染包括:
59.当所述数据总线接收到所述父组件传输的数据时,在所述数据总线中进行数据更新,并遍历所述数据总线中的订阅组件键值对象,判断是否存在订阅传输数据的子组件,若存在,则对所述子组件进行渲染。
60.由上述描述可知,单独对子组件进行渲染,能够节省组件渲染开销,并且减少渲染压力。
61.本发明上述的一种基于总线的无人车数据传输方法及终端,适用于无人车指控平台中监控组件的数据传输与渲染,能够避免造成不必要的渲染开销,大大减少指控平台的渲染压力,以下通过具体的实施方式进行说明:
62.实施例一
63.请参照图1,一种基于总线的无人车数据传输方法,包括步骤:
64.s1、建立与无人车指控平台的监控父组件连接的数据总线。
65.具体的,在无人车指控平台的监控父组件渲染完成之后,生成数据总线单例对象,其中,数据总线中包括需要监听的无人车对象(checknode)及更新函数(updatechecknode)、无人车实时数据键值对象(carinfos)及更新函数(updatecarinfos)、无人车数据列表(carlist)、无人车监听对象数据列表(checknodecarinfo)、无人车上下线状态键值对象(carstatu)及更新函数(updatecarstatu)、订阅组件键值对象(subcom)、组
件订阅函数(subdata)、组件订阅销毁函数(destorysub)。
66.s2、接收需要监控的无人车对象,在所述数据总线中更新所述无人车对象,根据需要监控的无人车对象发送的订阅数据,更新所述数据总线中所述无人车对象对应的数据列表。在本实施例中,订阅数据包括实时数据和上下线数据。
67.s21、接收所述无人车指控平台传输的需要监控的无人车对象,通过所述数据总线中的无人车监控对象更新函数,更新所述无人车对象。
68.具体的,操作用户在指控平台上勾选车辆时,调用数据总线中的无人车监控对象更新函数(updatechecknode),更新需要监听的无人车对象(checknode)。
69.s22、若接收到需要监控的无人车对象发送的实时数据,则通过所述数据总线中的实时数据更新函数,更新无人车实时数据键值对象和无人车监听对象数据列表,并基于无人车实时数据键值对象生成无人车数据列表。
70.具体的,当实时数据服务器返回实时数据,便调用数据总线中的无人车实时数据更新函数(updatecarinfos),更新无人车实时数据键值对象(carinfos),并将carinfos转换成列表形式的无人车数据列表(carlist);同时对无人车对象(checknode)进行遍历,更新无人车监听对象数据列表(checknodecarinfo)中对应的数据,如果返回的无人车数据不属于监控对象,则不更新checknodecarinfo。
71.s23、若接收到需要监控的无人车对象发送的上下线数据,则通过所述数据总线中的上下线状态更新函数,更新无人车上下线状态键值对象和无人车监听对象数据列表。
72.具体的,当实时数据服务器返回上下线数据,便调用数据总线中的无人车上下线状态更新函数(updatecarstatu),更新无人车上下线状态键值对象(carstatu),并将carlist和checknodecarinfo中对应数据的上下线状态进行更新。
73.s3、若无人车指控平台的监控子组件需要订阅所述无人车对象的订阅数据,则通过所述数据总线的回调函数获取所述订阅数据,并进行所述子组件的渲染。
74.s31、通过所述数据总线的回调函数注册回调信息,所述回调信息包括子组件对象、需要订阅的数据类型、订阅频率和订阅数据所触发的回调函数,并将所述回调信息更新至订阅组件键值对象中。
75.具体的,当子组件需要订阅无人车的实时数据或上下线数据时,便调用数据总线中的subdata函数,向数据总线注册子组件对象、需要订阅的数据类型、订阅频率、订阅数据触发的回调函数,将注册内容更新到订阅组件键值对象(subcom)。
76.s32、当所述数据总线接收到所述父组件传输的数据时,在所述数据总线中进行数据更新,并遍历所述数据总线中的订阅组件键值对象,判断是否存在订阅传输数据的子组件,若存在,则对所述子组件进行渲染。
77.具体的,当数据总线接收到父组件传过来的数据时,在更新完对应的数据后,遍历订阅组件键值对象(subcom),查找数据是否有对应的订阅者。
78.如果有,则查看组件的订阅频率是否满足要求,如组件要求500毫秒传一次数据,而数据以100毫秒的频率上传,则需比对上次向组件发送数据的时间,如果满足500毫秒的间隔,则向组件发送数据并记录本次发送数据的时间;如果不满足,则跳过。
79.当数据总线通过调用回调函数的方式向组件发送数据后,变从组件对象中调用react自带的forceupdate函数,以此触发组件的渲染机制。
80.当组件关闭时,需要在组件的销毁生命周期函数中,主动调用对数据总线的组件订阅销毁函数(destorysub),避免数据总线中残存有未销毁的订阅组件,造成组件渲染触发时异常。
81.综上所述,请参照图3和图4,现有技术中在监控组件中进行数据传输时,父组件在向下传递数据到组件a的过程中,会连带渲染其它虚线框的子组件;而本实施例中通过建立数据总线,在父组件接收到无人车的实时数据后,向数据总线发布数据;而其它子组件在需要时,可向数据总线订阅数据,当有新数据时,便调用子组件的回调函数,单独对子组件进行渲染,避免参数传递的方式向下传递数据造成额外的渲染副作用,造成不必要的渲染开销,大大减少web平台的渲染压力。
82.实施例二
83.请参照图2,一种基于总线的无人车数据传输终端1,包括存储器2、处理器3以及存储在所述存储器2上并可在处理器3上运行的计算机程序,所述处理器3执行所述计算机程序时实现实施例一的一种基于总线的无人车数据传输方法的各个步骤。
84.综上所述,本发明提供的一种基于总线的无人车数据传输方法及终端,建立与无人车指控平台的监控父组件连接的数据总线;在父组件接收到无人车的实时数据后,向数据总线发布数据,而其它子组件在需要获取数据时,可向数据总线订阅数据,当数据总线中有新数据时便可以调用子组件的回调函数,单独对子组件进行渲染。相较于现有技术中父组件在向下传递数据到子组件的方法,本发明能够避免向下传递数据造成额外的渲染,避免造成不必要的渲染开销,大大减少指控平台的渲染压力。
85.以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1