System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种车载安全计算机的网络通信方法、设备及介质技术_技高网

一种车载安全计算机的网络通信方法、设备及介质技术

技术编号:41318218 阅读:5 留言:0更新日期:2024-05-13 14:58
本发明专利技术涉及一种车载安全计算机的网络通信方法、设备及介质,该方法基于Reactor模型来实现,所述方法包括以下步骤:应用层模块初始化Reactor控制器模块,为后续应用层模块注册事件提供准备工作;应用层模块初始化事件处理模块,创建关心的事件并绑定事件回调函数;应用层模块调用Reactor控制器模块提供的事件注册接口,注册已创建的事件;应用层模块调用Reactor控制器模块的主循环接口;Reactor控制器模块借助多路复用管理器模块监听已注册事件是否激活,若为是,Reactor控制器通知事件处理模块指定事件已激活,事件处理模块接收到Reactor控制器的通知后,处理已激活事件。与现有技术相比,本发明专利技术具有基于优先级处理、实时性高、并发处理能力强等优点。

【技术实现步骤摘要】

本专利技术涉及轨道交通车载安全,尤其是涉及一种车载安全计算机的网络通信方法、设备及介质


技术介绍

1、列车车载安全计算机是列车运行指挥的中枢,它承担着监控列车各个部件、处理列车运行数据、控制列车运行等重要功能,是确保列车安全运行的关键系统之一。列车车载安全计算机网络通信系统承担与列车控制中心和其他列车系统的通信功能,起到车载安全计算机与其他系统通信的桥梁作用,包括接收行车许可命令、传输列车状态数据、接收调度信息等。基于此列车车载安全计算机网络通信系统应满足数据传输的高实时性要求,能够快速响应网络数据。

2、传统的网络通信系统基于阻塞式网络编程,程序流程通常阻塞在读取数据过程上。tcp、udp是个全双工的协议,支持同时读写操作操作,当一个线程/进程阻塞在读取数据上,给这个连接发送数据就必须等待读取数据完成,这就导致了程序效率低下。为解决上述问题,io多路复用技术应运而生,通过select/poll/epoll等操作系统提供的多路选择器,让一个线程可以处理多个连接,从而提高数据收发效率。同时,通过反应堆(reactor)的思想,将网络部分的通用代码提取为公用的框架或库,用户只需要编写业务逻辑代码,并通过事件回调注册到框架中,就可以实现完整的网络服务。

3、如何实现实时性高、并发处理能力强的车载安全计算机网络通信,成为需要解决的技术问题。


技术实现思路

1、本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种车载安全计算机的网络通信方法、设备及介质。p>

2、本专利技术的目的可以通过以下技术方案来实现:

3、根据本专利技术的一个方面,提供了一种车载安全计算机的网络通信方法,该方法基于reactor模型来实现,所述的reactor模型包括事件源模块、reactor控制器模块、多路复用管理器模块、事件处理模块和应用层模块,所述方法包括以下步骤:

4、步骤s1,应用层模块初始化reactor控制器模块,为后续应用层模块注册事件提供准备工作;

5、步骤s2,应用层模块初始化事件处理模块,创建关心的事件并绑定事件回调函数;

6、步骤s3,应用层模块调用reactor控制器模块提供的事件注册接口,注册已创建的事件;

7、步骤s4,应用层模块调用reactor控制器模块的主循环接口,进入步骤s5;

8、步骤s5,判断是否有注册事件,若为是,则进入步骤s6;否则,结束;

9、步骤s6,判断是否设置循环结束标志,若为否,则进入步骤s7;否则,结束;

10、步骤s7,reactor控制器模块借助多路复用管理器模块监听已注册事件是否激活,若为是,则进入步骤s8,否则,进入步骤s5;

11、步骤s8,reactor控制器模块通知事件处理模块指定事件已激活,事件处理模块接收到通知消息后处理已激活事件,进入步骤s5。

12、优选地,所述多路复用管理器模块分别与reactor控制器模块和事件源模块通信连接,所述reactor控制器模块分别与事件处理模块和应用层模块通信连接,所述应用层模块分别与事件源模块、reactor控制器模块和事件处理模块通信连接。

13、更加优选地,所述的事件源模块包括系统的文件描述符、套接字、定时器和信号源;

14、所述的多路复用管理器模块为reactor控制器模块与事件源模块之间的桥梁,多路复用管理器模块负责监听事件源中的事件是否被激活,若监听到激活事件,则通知reactor控制器模块;

15、所述的reactor控制器模块借助多路复用管理器模块监听事件源是否被激活;当监听到事件源被激活后,借助事件处理模块调用事件源关联的回调函数处理事件;

16、所述的事件处理模块包括监控线程和线程池,通过监控线程处理reactor控制器模块指定的已激活事件;

17、所述应用层模块用于创建关心的事件源,并绑定事件源的回调函数,调用reactor控制器模块提供的事件注册接口并将关心的事件注册进reactor模型中。

18、优选地,所述的reactor控制器模块采用一维数组的存储事件,存储的事件带有优先级,一维数组的索引作为事件优先级,数组元素为双向链表结构,用于存储同一优先级的多个事件。

19、优选地,所述的注册已创建的事件包括以下步骤:

20、步骤s101,应用层模块调用reactor控制器模块提供的事件注册接口,将关心的事件注册进reactor控制器模块;

21、步骤s102,reactor控制器模块从事件处理模块获取注册的具体事件;

22、步骤s103,reactor控制器模块将事件注册进多路复用控制器模块;

23、步骤s104,多路复用控制器模块负责返回注册事件结果。

24、优选地,所述的事件包括i/o事件、定时器事件和信号事件,对这三种事件进行融合统一的过程包括i/o事件和定时器事件的融合统一过程以及i/o事件和信号事件的融合统一过程。

25、更加优选地,所述的i/o事件和定时器事件的融合统一过程具体为:使用小根堆数据结构存放已注册进多路复用管理器模块的定时器事件,定时器事件的定时时长作为小根堆数据结构的关键值;在reactor控制器模块的事件循环中,每次循环获取小根堆数据结构中定时时长最小的关键值作为i/o多路复用select或poll接口的最大超时时长;当系统i/o多路复用返回时,激活所有就绪的定时器事件。

26、更加优选地,所述的i/o事件和信号事件的融合统一过程具体为:利用消息通知机制,创建一个套接字对,当信号事件发生时,在写套接字上发起消息通知,在reactor控制器的事件循环中调用多路复用模块监听读套接字上的可读i/o事件来侦听到信号事件的发生,其中套接字对包含一个读套接字和一个写套接字。

27、优选地,所述的reactor控制器模块借助多路复用管理器模块监听已注册事件是否激活,以及reactor控制器模块通知事件处理模块指定事件已激活与所述的事件处理模块接收到通知消息后处理已激活事件为异步执行关系。

28、优选地,所述的处理已激活事件通过事件处理模块执行已激活事件的回调函数和线程池容量动态扩容机制来实现。

29、更加优选地,所述的处理已激活事件的过程包括以下步骤:

30、步骤s201,事件处理模块的监控线程等待已激活事件并带有超时机制;

31、步骤s202,判断是否有已激活事件,若为否,则进入步骤s201;否则,进入步骤s203;

32、步骤s203,判断线程池中是否有空闲的工作线程,若为是,则分配线程池中的一个空闲工作线程,来处理已激活事件,进入步骤s201;否则,进入步骤s204;

33、步骤s204,判断当前线程池中的工作线程数量是否大于线程池容量最大值,若为否,则新建一个工作线程加入线程池中,并执行已激活事件的回调本文档来自技高网...

【技术保护点】

1.一种车载安全计算机的网络通信方法,其特征在于,该方法基于Reactor模型来实现,所述的Reactor模型包括事件源模块、Reactor控制器模块、多路复用管理器模块、事件处理模块和应用层模块,所述方法包括以下步骤:

2.根据权利要求1所述的一种车载安全计算机的网络通信方法,其特征在于,所述多路复用管理器模块分别与Reactor控制器模块和事件源模块通信连接,所述Reactor控制器模块分别与事件处理模块和应用层模块通信连接,所述应用层模块分别与事件源模块、Reactor控制器模块和事件处理模块通信连接。

3.根据权利要求2所述的一种车载安全计算机的网络通信方法,其特征在于,所述的事件源模块包括系统的文件描述符、套接字、定时器和信号源;

4.根据权利要求1所述的一种车载安全计算机的网络通信方法,其特征在于,所述的Reactor控制器模块采用一维数组的存储事件,存储的事件带有优先级,一维数组的索引作为事件优先级,数组元素为双向链表结构,用于存储同一优先级的多个事件。

5.根据权利要求1所述的一种车载安全计算机的网络通信方法,其特征在于,所述的注册已创建的事件包括以下步骤:

6.根据权利要求1所述的一种车载安全计算机的网络通信方法,其特征在于,所述的事件包括I/O事件、定时器事件和信号事件,对这三种事件进行融合统一的过程包括I/O事件和定时器事件的融合统一过程以及I/O事件和信号事件的融合统一过程。

7.根据权利要求6所述的一种车载安全计算机的网络通信方法,其特征在于,所述的I/O事件和定时器事件的融合统一过程具体为:使用小根堆数据结构存放已注册进多路复用管理器模块的定时器事件,定时器事件的定时时长作为小根堆数据结构的关键值;在Reactor控制器模块的事件循环中,每次循环获取小根堆数据结构中定时时长最小的关键值作为I/O多路复用select或poll接口的最大超时时长;当系统I/O多路复用返回时,激活所有就绪的定时器事件。

8.根据权利要求6所述的一种车载安全计算机的网络通信方法,其特征在于,所述的I/O事件和信号事件的融合统一过程具体为:利用消息通知机制,创建一个套接字对,当信号事件发生时,在写套接字上发起消息通知,在Reactor控制器的事件循环中调用多路复用模块监听读套接字上的可读I/O事件来侦听到信号事件的发生,其中套接字对包含一个读套接字和一个写套接字。

9.根据权利要求1所述的一种车载安全计算机的网络通信方法,其特征在于,所述的Reactor控制器模块借助多路复用管理器模块监听已注册事件是否激活,以及Reactor控制器模块通知事件处理模块指定事件已激活与所述的事件处理模块接收到通知消息后处理已激活事件为异步执行关系。

10.根据权利要求1所述的一种车载安全计算机的网络通信方法,其特征在于,所述的处理已激活事件通过事件处理模块执行已激活事件的回调函数和线程池容量动态扩容机制来实现。

11.根据权利要求10所述的一种车载安全计算机的网络通信方法,其特征在于,所述的处理已激活事件的过程包括以下步骤:

12.根据权利要求11所述的一种车载安全计算机的网络通信方法,其特征在于,所述的监控线程基于已激活事件的优先级调度线程池中的工作线程,高优先级的事件被优先调度处理。

13.根据权利要求10所述的一种车载安全计算机的网络通信方法,其特征在于,所述的事件处理模块还包括线程池容量动态减少机制,该线程池容量动态减少机制包括以下步骤:

14.一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~13中任一项所述的方法。

15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1~13中任一项所述的方法。

...

【技术特征摘要】

1.一种车载安全计算机的网络通信方法,其特征在于,该方法基于reactor模型来实现,所述的reactor模型包括事件源模块、reactor控制器模块、多路复用管理器模块、事件处理模块和应用层模块,所述方法包括以下步骤:

2.根据权利要求1所述的一种车载安全计算机的网络通信方法,其特征在于,所述多路复用管理器模块分别与reactor控制器模块和事件源模块通信连接,所述reactor控制器模块分别与事件处理模块和应用层模块通信连接,所述应用层模块分别与事件源模块、reactor控制器模块和事件处理模块通信连接。

3.根据权利要求2所述的一种车载安全计算机的网络通信方法,其特征在于,所述的事件源模块包括系统的文件描述符、套接字、定时器和信号源;

4.根据权利要求1所述的一种车载安全计算机的网络通信方法,其特征在于,所述的reactor控制器模块采用一维数组的存储事件,存储的事件带有优先级,一维数组的索引作为事件优先级,数组元素为双向链表结构,用于存储同一优先级的多个事件。

5.根据权利要求1所述的一种车载安全计算机的网络通信方法,其特征在于,所述的注册已创建的事件包括以下步骤:

6.根据权利要求1所述的一种车载安全计算机的网络通信方法,其特征在于,所述的事件包括i/o事件、定时器事件和信号事件,对这三种事件进行融合统一的过程包括i/o事件和定时器事件的融合统一过程以及i/o事件和信号事件的融合统一过程。

7.根据权利要求6所述的一种车载安全计算机的网络通信方法,其特征在于,所述的i/o事件和定时器事件的融合统一过程具体为:使用小根堆数据结构存放已注册进多路复用管理器模块的定时器事件,定时器事件的定时时长作为小根堆数据结构的关键值;在reactor控制器模块的事件循环中,每次循环获取小根堆数据结构中定时时长最小的关键值作为i/o多路复用select或poll接口的最大超时时...

【专利技术属性】
技术研发人员:魏洋彭宇飞陈宜航李长远周宇恒郑娟华晴
申请(专利权)人:卡斯柯信号有限公司
类型:发明
国别省市:

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

1