掌桥专利:专业的专利平台
掌桥专利
首页

一种轨交车载基于优先级的数据处理方法、设备及介质

文献发布时间:2024-04-18 20:02:18


一种轨交车载基于优先级的数据处理方法、设备及介质

技术领域

本发明涉及轨道交通车载数据处理技术领域,尤其是涉及一种轨交车载基于优先级的数据处理方法、设备及介质。

背景技术

目前,轨道交通车载项目中,为了保证数据的完整性,真实性,连续性,时效性,需要使用各种安全协议来完成数据的交互,包括RSSP1,RSSP2&037等安全协议。这些安全协议都存在着时效性的校验,当重要通信数据滞后,时效性校验启动,可能会产生通信中断的风险。在各种协议的数据大量交互的场景下,虽然已使用UDP格式数据进行通信以此加快通信速度,但还是存在着重要数据滞后的问题。各种数据对于时延的敏感度不同,重要数据对时延要求高,如果时延超过设置阈值,就会导致防御程序启动,从而中断通信的风险。

因此,为轨道交通车载项目设计一个基于UDP数据格式,分类数据的优先级,提升重要数据的通信速度的方法显得尤为重要。

经过检索,中国发明专利公开号CN114698008A公开了一种确定排队优先级的方法、通信设备、装置及存储介质,该专利主要根据QoS信息和传输状态信息对传输数据包进行排队优先级的确定,提高传输性能。该现有专利存在没有使用多线程处理不同优先级队列,以及没有对接收过程使用优先级的问题。

如何实现轨交车载基于优先级处理数据,成为需要解决的技术问题。

发明内容

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种轨交车载基于优先级的数据处理方法、设备及介质。

本发明的目的可以通过以下技术方案来实现:

根据本发明的一个方面,提供了一种轨交车载基于优先级的数据处理方法,该方法基于协议栈模型及增加优先级分类来实现,所述方法包括以下步骤:

步骤S101,调用初始化模块,完成优先级和相关资源的初始化配置;

步骤S102,调用应用层模块,创建service socket线程;

步骤S103,应用创建网络链路层线程,用于处理优先级索引号为0的数据;

步骤S104,应用创建实体层线程,用于优先级分类以及电信号数据的接收发送准备;

步骤S105,基于优先级的数据接收过程和基于优先级的数据发送过程。

优选地,所述的协议栈模型包括实体层、数据链路层、网络层和传输层,并依次通信连接,其中实体层用于电信号数据与以太网数据包之间的转换,以及优先级处理;网络层用于消息的路由转发,以及网络层的组包解包;数据链路层用于消息包的筛选,以及数据链路层的组包解包;传输层用于UDP数据的优先级分类,以及UDP的组包解包。

优选地,所述的优先级分类具体为:根据应用设定优先级,优先级等级为0~N,其中0为普通数据的优先级,1~N为对外开放的优先级,数字越大,优先级越高。

优选地,所述的优先级分类通过X消息组和Y消息组来实现,其中X消息组用于设置优先级;Y消息组用于释放优先级;当对端需要高优先级传输数据时,先使用这两组消息通知本端进行设置,再进行数据传输。

更加优选地,所述的X消息组包括设置包x1和回复包x2,其中x1为对端发送给本端的消息,消息中包含了对端期望设置的通信数据的收发线程优先级信息;x2为本端给对端的回复,用于告知优先级设置是否完成;所述的Y消息组包括释放包y1和回复包y2,其中y1为对端给本端的消息,该消息用于对端通知本端,希望释放原先的优先级设置;y2为本端给对端的回复,用于告知优先级释放是否完成。

优选地,所述的步骤S101中,相关资源的初始化配置包括线程资源的初始化配置和队列存储资源的初始化配置,具体包括:

初始化优先级对应表T1,其中,优先级对应表T1用于记录应用提供的优先级与实际收发线程优先级的对应关系;

初始化优先级表T2,其中,优先级表T2用于标记优先级是否被创建;

以及初始化SOCKET表T3,其中,SOCKET表T3用于记录对端socket和优先级的对应关系。

优选地,所述的service socket线程,用于处理发送给service socket的x1设置包和y1释放包,并回复对应的x2和y2消息。

优选地,所述的基于优先级的数据接收过程包括以下步骤:

步骤S201,实体层线程将收到电信号数据转换成以太网数据包,解析消息中的IPPORT,在T3表中查询该IP PORT对应的接收优先级i,若查询成功,则将数据放入队列ETHRXi中;否则,将数据放入队列ETHRX0中,其中队列ETHRXi为优先级为i的以太网队列,队列ETHRX0为普通数据的以太网队列;

步骤S202,网络链路层线程遍历读取队列ETHRXi,进行链路层和网络层的数据解包,并将解包完成的UDP数据根据IP PORT送至对应的socket队列中;

步骤S203,socket处理相应的socket队列,并对数据进行相应的处理。

更加优选地,所述的步骤S203中,对数据进行相应的处理包括对x1消息的处理和对y1消息的处理,其中,

所述对x1消息的处理具体为:service socket解析IP PORT,查询T3表中是否存在该socket对应的IP PORT,若存在,则发送创建不成功的x2消息;否则,解析消息中的收发优先级;查询T2表中该收发优先级是否已经被使用,若未被使用,则根据T1表创建相应的网络链路层线程,发送创建成功的x2消息,并在T2和T3表中完善相应的信息;

所述对y1消息的处理具体为:service socket解析IP PORT,查询T3表中是否存在该socket对应的IP PORT,若不存在,则发送释放不成功的y2消息;否则,记录该socket对应的收发线程优先级,然后将该IP PORT对应的那行记录从T3表中删除,随后根据该收发线程优先级查看T3表中是否存在其他socket使用该优先级,若无,则在T2表中将优先级标记为未创建,释放该优先级对应的网络链路层线程,并发送释放成功的y2消息。

优选地,所述的基于优先级的数据发送过程包括以下步骤:

步骤S301,应用调用socket发送接口时,在T3表中根据该socket的IP PORT查询对应的发送优先级等级i,若查询成功,则将该数据进行UDP帧头组包,并放入队列IPTXi中;否则,则将该数据进行UDP帧头组包,并放入队列IPTX0中,其中队列IPTXi为优先级等级为i的IP发送列队,队列IPTX0为普通数据的IP发送列队;

步骤S302,网络链路层线程遍历读取队列IPTXi中的数据,进行网络层和链路层的数据组包,并将组包完成的数据和对应的优先级等级i传送给实体层;

步骤S303,实体层将从网络链路层收到的数据,按照相应的发送优先级等级i,对数据的位置进行排序,使得优先级大的数据优先发送;

步骤S304,实体层线程遍历发送队列,并将数据发送给对端。

根据本发明的第二方面,提供了一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现所述的方法。

根据本发明的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现所述的方法。

与现有技术相比,本发明具有以下有益效果:

1.将应用按照优先级划分,接收和发送都使用优先级,保证重要数据优先传输,避免防御程序启动和中断通信的风险,提高系统可用性;

2.优先级的创建和释放灵活,资源充分适用,不造成浪费,提高了项目资源利用率;

3.优先级线程的总数设置灵活,分类级别不固定,可由应用按场景自行决定优先级等级总数,使用灵活;

4.优先级的设置由消息组XY决定,由IP PORT维护,模型不受限任何固定信息,可以通用于其他场景,适用性强。

附图说明

图1为本发明中基于优先级的数据处理示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

本实施例涉及一种轨交车载基于优先级的数据处理方法,该方法基于协议栈模型及增加优先级分类来实现,所述方法包括以下步骤:

步骤S101,调用初始化模块,完成优先级和相关资源的初始化配置。

根据应用设定优先级,优先级等级为0~N,其中0为普通数据的优先级,1~N为对外开放的优先级,数字越大,优先级越高,其中N不固定。

如图1所示,协议栈模型包括实体层、网络层、数据链路层和传输层,并依次通信连接,传输层还与上层安全协议通信连接。

根据应用提供的所有优先级与实际的收发线程优先级的对应关系,完成优先级对应表T1的初始化。

初始化优先级表T2,该表主要标记该优先级是否被创建。

初始化SOCKET表T3,该表主要用于记录某一套接字(socket)和优先级的对应关系。

对端R要和本端L通信,需要对端R的套接字(SOCKET)先发x1消息给本端L的service socket,用于通知本端L为后续通信设定的收发优先级。本端L的应用套接字(service socket)把对端R的请求添加在T3表里面,即把IP PORT收发优先级记在T3表里,

后面R端的socket给L端发送通信数据,就可以在T3表里找到对应的优先级,并根据优先级发送到对应的队列中。

优先级分类通过X消息组和Y消息组来实现,其中X消息组用于设置优先级;Y消息组用于释放优先级;当对端R需要高优先级传输数据时,先使用这两组消息通知本端L进行设置,再进行数据传输。

X消息组包括设置包x1和回复包x2,其中x1为对端R发送给本端L的消息,消息中包含了对端R期望设置的通信数据的收发线程优先级;x2为本端L给对端R的回复,用于告知优先级设置是否完成;所述的Y消息组包括释放包y1和回复包y2,其中y1为对端R给本端L的消息,该消息用于对端R通知本端L,希望释放原先的优先级设置;y2为本端L给对端R的回复,用于告知优先级释放是否完成。

步骤S102,调用应用层模块,创建应用套接字(service socket)线程,用于处理发送给service socket的x1设置包和y1释放包,并回复对应的x2和y2消息。

步骤S103,应用创建网络链路层线程,用于处理优先级索引号为0的数据;

步骤S104,应用创建实体层线程,用于优先级分类以及电信号数据的接收发送准备;

步骤S105,基于优先级的数据接收过程和基于优先级的数据发送过程。

基于优先级的数据接收过程包括以下步骤:

步骤S201,实体层线程将收到电信号数据转换成以太网数据包,如图1所示,解析消息中的IP PORT,在T3表中查询该IP PORT对应的接收优先级i,若查询成功,则将数据放入队列ETHRXi中;否则,将数据放入队列ETHRX0中,其中队列ETHRXi为优先级为i的以太网队列,队列ETHRX0为普通数据的以太网队列;

例如:对于x1消息,如果某个IP/PORT不存在T3表中,因此存入队列ETHRX0中。

例如:对于y1消息,由于优先级已创建,某个IP/PORT则存在于T3表中,因此会存入相应的队列ETHRXi中。

步骤S202,网络链路层线程遍历读取队列ETHRXi,进行链路层和网络层的数据解包,并将解包完成的UDP数据根据IP PORT送至对应的socket队列中;

例如:对于x1消息,则会送到service socket的队列中。

例如:对于y1消息,则会送到service socket的队列中。

步骤S203,socket处理相应的socket队列,并对数据进行相应的处理。

如图1所示,对于x1消息,service socket解析IP PORT,查询T3表中是否存在该socket对应的IP PORT,若存在,则发送创建不成功的x2消息;否则,解析消息中的收发优先级;查询T2表中该收发优先级是否已经被使用,若未被使用,则根据T1表创建相应的网络链路层线程,发送创建成功的x2消息,并在T2和T3表中完善相应的信息;

对于y1消息,service socket解析IP PORT,查询T3表中是否存在该socket对应的IP PORT,若不存在,则发送释放不成功的y2消息;否则,记录该socket对应的收发线程优先级,然后将该IP PORT对应的那行记录从T3表中删除,随后根据该收发线程优先级查看T3表中是否存在其他socket使用该优先级,若无,则在T2表中将优先级标记为未创建,释放该优先级对应的网络链路层线程,并发送释放成功的y2消息。

基于优先级的数据发送过程包括以下步骤:

步骤S301,应用调用socket发送接口时,在T3表中根据该socket的IP PORT查询对应的发送优先级等级i,若查询成功,则将该数据进行UDP帧头组包,并放入队列IPTXi中;否则,则将该数据进行UDP帧头组包,并放入队列IPTX0中,其中队列IPTXi为优先级等级为i的IP发送列队,队列IPTX0为普通数据的IP发送列队;

步骤S302,网络链路层线程遍历读取队列IPTXi中的数据,进行网络层和链路层的数据组包,并将组包完成的数据和对应的优先级等级i传送给实体层;

步骤S303,实体层将从网络链路层收到的数据,按照相应的发送优先级等级i,对数据的位置进行排序,使得优先级大的数据优先发送;

步骤S304,实体层线程遍历发送队列,并将数据发送给对端。

本发明电子设备包括中央处理单元(CPU),其可以根据存储在只读存储器(ROM)中的计算机程序指令或者从存储单元加载到随机访问存储器(RAM)中的计算机程序指令,来执行各种适当的动作和处理。在RAM中,还可以存储设备操作所需的各种程序和数据。CPU、ROM以及RAM通过总线彼此相连。输入/输出(I/O)接口也连接至总线。

设备中的多个部件连接至I/O接口,包括:输入单元,例如键盘、鼠标等;输出单元,例如各种类型的显示器、扬声器等;存储单元,例如磁盘、光盘等;以及通信单元,例如网卡、调制解调器、无线通信收发机等。通信单元允许设备通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

处理单元执行上文所描述的各个方法和处理,例如方法S101~S105,S201~S203,和S301~S304。例如,在一些实施例中,方法方法S101~S105,S201~S203,和S301~S304可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元。在一些实施例中,计算机程序的部分或者全部可以经由ROM和/或通信单元而被载入和/或安装到设备上。当计算机程序加载到RAM并由CPU执行时,可以执行上文描述的方法方法S101~S105,S201~S203,和S301~S304的一个或多个步骤。备选地,在其他实施例中,CPU可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法方法S101~S105,S201~S203,和S301~S304。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。

用于实施本发明的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本发明的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种基于FPGA的数据处理方法、装置、设备及介质
  • 一种数据处理方法及装置、一种计算设备及存储介质
  • 一种数据处理方法、数据处理装置、计算机设备及可读存储介质
  • 基于大数据平台的数据处理方法、装置、设备及介质
  • 一种数据处理方法、装置、设备及存储介质
  • 一种轨交列车车载高压设备健康状态评估及寿命预测方法
  • 车载设备及基于车载设备的自动救援处理方法、存储介质
技术分类

06120116585825