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

一种通信板实现中间件处理的方法、设备及介质

文献发布时间:2023-06-19 19:20:08


一种通信板实现中间件处理的方法、设备及介质

技术领域

本发明涉及列车信号控制系统,尤其是涉及一种通信板实现中间件处理的方法、设备及介质。

背景技术

目前,铁路信号领域广泛采用一种二乘二取二架构的安全通信平台,具体的业务逻辑在此安全平台的基础上开发具体的应用。安全通信平台一般分为逻辑板和通信板,逻辑板实现数据的安全比较功能,通信板实现基础的网络、串口或者CAN总线等通信方式的数据收发功能,逻辑板和通信板之间通过内部网络或总线等方式进行连接。

由于一般业务逻辑都涉及安全功能,因此安全平台通常都只在逻辑板上开放了接口给应用开发具体的功能。但是对于通信板上的数据处理,有时候应用也有一些特殊的需求,比如需要实现的一些功能不涉及安全,可以不放在逻辑板上进行处理,减少通信板和逻辑板之间来回传输数据的时间消耗;或者是对通信的数据在进行安全处理之前或者发送给外设之前要进行一些特殊处理。此时,平台要么只能内部将应用的特殊需求定制化进行专门处理,要么只能将这些功能也放到逻辑板上,但是这样的实现不够灵活,也不利于平台的维护。

发明内容

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种通信板实现中间件处理的方法、设备及介质。

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

根据本发明的第一方面,提供了一种通信板实现中间件处理的方法,该方法包括以下步骤:

步骤S1、初始化通信板中间件;

步骤S2、通信板从外设收到消息时,判断对于该消息应用是否注册了相应的处理函数,如果注册了相应的处理函数,则传入中间件中进行特殊处理,否则直接发送给逻辑板;

步骤S3、从逻辑板收到要发给的外设的消息时,判断对于该消息应用是否注册了相应的处理函数,如果注册了相应的处理函数,则传入中间件中进行特殊处理,否则直接发给外设。

作为优选的技术方案,所述的步骤S1具体为:

步骤S11、调用应用提供的接口,获取应用在通信板的特殊处理是否需要相关配置文件;

步骤S12、如果需要配置文件,向逻辑板请求相关的配置文件,通过接口提供给应用;

步骤S13、调用应用提供的初始化接口,进行应用的相关初始化;

步骤S14、如果应用对某种消息类型需要创建任务进行特殊处理,则创建相关任务。

作为优选的技术方案,所述的步骤S11中的配置文件统一在逻辑板管理。

作为优选的技术方案,所述的步骤S13中初始化,包括注册需要在中间件进行特殊处理的消息类型,提供特殊处理时需要的相关参数和处理函数。

作为优选的技术方案,所述的相关参数包括是否需要创建任务或线程、是否是周期性任务、任务的唤醒周期、优先级、堆栈大小。

作为优选的技术方案,所述的处理函数包括对从外设接收的消息的处理函数、对从逻辑板接收的需要发送给外设的消息的处理函数、以及逻辑主处理函数。

作为优选的技术方案,所述的步骤S2具体如下:

步骤S21,判断从外设收到的消息类型是否是应用注册的需要在中间件进行特殊处理的类型;

步骤S22,如果是需要中间件进行特殊处理的消息类型,调用应用提供的接口,将消息传给应用,否则直接发给逻辑板;

步骤S23,如果对该消息类型应用需要在任务中进行特殊处理,且该任务不是周期性任务,则直接释放信号量唤醒任务,让应用处理该消息;在任务中,调用应用注册的逻辑主处理函数。

作为优选的技术方案,所述的步骤S23中,对于周期性任务,则在定时中断中周期性地释放信号量唤醒任务。

作为优选的技术方案,所述的步骤S23中,在逻辑主处理函数中,应用对平台传入的消息进行处理后,按照需要继续调用平台的接口发送给逻辑板,或者直接返回相应的消息给外设,或者其他任何的特殊处理。

作为优选的技术方案,所述的步骤S3具体如下:

步骤S31,判断从逻辑板收到的且需要发给外设的消息类型是否是应用注册的需要在中间件进行特殊处理的类型;

步骤S32,如果是需要中间件进行特殊处理的消息类型,调用应用提供的接口,将消息传给应用,否则直接发给外设;

步骤S33,如果对该消息类型应用需要在任务中进行特殊处理,且该任务不是周期性任务,则直接释放信号量唤醒任务,让应用处理该消息;在任务中,调用应用注册的逻辑主处理函数,在逻辑主处理函数中,应用对平台传入的消息进行处理后,调用平台的接口发送外设。

作为优选的技术方案,所述的步骤S33中,对于周期性任务,则在定时中断中周期性地释放信号量唤醒任务。

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

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

与现有技术相比,本发明具有以下优点:

1、本发明设计了通信板进行中间件处理的方法,应用在通信板上对相关消息类型的特殊处理都可以通过对该类型注册相应的处理函数来实现,具体的处理逻辑可以由应用自己定义;对于复杂的处理逻辑还可以创建相应的任务,可以是周期性执行的任务,也可以是非周期性的任务;进行处理时可以提供配置文件,也可以不需要配置文件,具有很大灵活性;

2、本发明把平台通信板的基本通信功能和应用的特殊需求剥离开来,保持了平台功能的通用性;

3、如果平台自身有需要在通信板进行特殊处理的消息类型,也可以像应用一样注册相应的处理函数,不需要迭代开发新的版本,有利于平台的维护。

附图说明

图1为通信板中间件的初始化过程的流程图;

图2为接收从外设收到的消息时的中间件处理过程的流程图;

图3为接收从逻辑板收到的需要送给外设的消息时的中间件处理过程的流程图;

图4为本发明方法的具体流程图。

具体实施方式

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

如图1所示,一种通信板实现中间件处理的方法,包括:

步骤S1、初始化通信板中间件;

步骤S2、从外设收到消息时,判断对于该消息应用是否注册了相应的处理函数,如果注册了相应的处理函数,则传入中间件中进行特殊处理,否则直接发送给逻辑板;

步骤S3、从逻辑板收到要发给的外设的消息时,判断对于该消息应用是否注册了相应的处理函数,如果注册了相应的处理函数,则传入中间件中进行特殊处理,否则直接发给外设。

所述的步骤S1具体为:

步骤S11、调用应用提供的接口,获取应用在通信板的特殊处理是否需要相关配置文件(配置文件统一在平台逻辑板管理,减少数据存放的分散性,方便配置文件的更换);

步骤S12、如果需要配置文件,向逻辑板请求相关的配置文件,通过接口提供给应用;

步骤S13、调用应用提供的初始化接口,进行应用的相关初始化,包括注册需要在中间件进行特殊处理的消息类型,提供特殊处理时需要的相关参数和处理函数,相关参数包括是否需要创建任务(线程)、是否是周期性任务、任务的唤醒周期、优先级、堆栈大小等参数,处理函数包括对从外设接收的消息的处理函数、对从逻辑板接收的需要发送给外设的消息的处理函数、以及逻辑主处理函数。

步骤S14、如果应用对某种消息类型需要创建任务进行特殊处理,则创建相关任务。

所述的步骤S2具体如下:

步骤S21,判断从外设收到的消息类型是否是应用注册的需要在中间件进行特殊处理的类型;

步骤S22,如果是需要中间件进行特殊处理的消息类型,调用应用提供的接口,将消息传给应用,否则直接发给逻辑板;

步骤S23,如果对该消息类型应用需要在任务中进行特殊处理,且该任务不是周期性任务,则直接释放信号量唤醒任务,让应用处理该消息;对于周期性任务,则在定时中断中周期性地释放信号量唤醒任务。在任务中,调用应用注册的逻辑主处理函数。在逻辑主处理函数中,应用对平台传入的消息进行处理后,按照需要可以继续调用平台的接口发送给逻辑板,或者直接返回相应的消息给外设(不经过逻辑板),或者其他任何的特殊处理,具有很大的灵活性。

所述的步骤S3具体如下:

步骤S31,判断从逻辑板收到的、需要发给外设的消息类型是否是应用注册的需要在中间件进行特殊处理的类型;

步骤S32,如果是需要中间件进行特殊处理的消息类型,调用应用提供的接口,将消息传给应用,否则直接发给外设;

步骤S33,如果对该消息类型应用需要在任务中进行特殊处理,且该任务不是周期性任务,则直接释放信号量唤醒任务,让应用处理该消息;对于周期性任务,则在定时中断中周期性地释放信号量唤醒任务。在任务中,调用应用注册的逻辑主处理函数。在逻辑主处理函数中,应用对平台传入的消息进行处理后,调用平台的接口发送外设。

参考图2-4,说明本发明的技术方案,首先,参考图2,说明通信板中间件的初始化过程,在此基础上,参考图3,介绍接收消息时通信板中间件的处理过程。对于图4,由于发送消息时通信板中间件的处理过程和接收消息时非常类似,因此文中不再赘述。

首先参考图2,介绍本发明的通信板中间件处理方法的初始化过程,包括以下步骤:

步骤100,调用应用提供的接口获取应用在处理通信板特殊类型的消息时是否需要相关配置文件;

步骤101,如果需要配置文件,向逻辑板请求相应的配置文件,并提供给应用;

步骤102,调用应用提供的初始化接口,在此接口中应用可以读取配置文件进行相关的初始化工作、注册需要通信板中间件特殊处理的消息类型,对每个消息类型需要注册消息的接收处理函数、发送处理函数和逻辑主处理函数,如果消息的处理需要创建任务,还需要提供任务的相关参数,包括任务的优先级、堆栈大小、是否需要周期执行、周期值等。应用注册的接收处理函数用于通信板从外设收到相应类型的消息时调用该函数将消息传给应用,注册的发送处理函数用于通信板从逻辑板收到相应类型的要发给的外设的消息时调用该函数将消息传给应用;逻辑主处理函数在创建的处理任务中被执行。在逻辑主处理函数中,应用可以获取平台传进来的需要处理的消息,执行相应的处理操作,并调用平台的接口将处理完的消息发送给平台,包括发送给逻辑板或者发送给外设;

步骤103,对于需要创建处理任务的消息类型,平台根据应用提供的参数创建相应的任务。

首先参考图3,介绍本发明的通信板中间件处理方法的消息接收过程,由于发送和接收过程的处理十分类似,因此只介绍消息接收过程中的处理,发送过程以此类推,具体步骤如下:

步骤104,通信板从外设接收消息;

步骤105,判断该类型的消息是否需要通信板中间件特殊处理;

步骤106,如果不需要通信板中间件特殊处理,则直接发送给逻辑板,否则进入下一步;

步骤107,调用应用注册的该类型的接收处理函数,将消息传给应用;

步骤108,如果对该消息类型创建了处理任务,且该任务不是周期性任务,则释放信号量唤醒该任务;如果是周期性任务,则此处不释放信号量,释放信号量在定时中断中按该任务的周期长度定期执行;

步骤109,应用处理该消息,至少有以下两种处理方式:如果对该消息类型未创建处理任务,则可以直接在接收处理函数中进行处理;如果创建了任务,则可以在任务的逻辑主处理函数中进行处理。具体的处理过程及处理结果应用可以自行定义,对于需要将处理结果发送给逻辑板或者外设的,平台均提供了接口供应用调用。

以上是关于方法实施例的介绍,以下通过电子设备及储存介质实施例,对本发明所述方案进行进一步说明。

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

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

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

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

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

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

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

技术分类

06120115871315