本申请涉及物联电能表,特别是涉及一种用于物联电能表多线程处理多通道通讯的方法和装置。
背景技术:
1、智能物联电能表软件基于管理模组硬件平台运行,根据基本功能、运行环境及运行权限不同,软件整体架构分为系统层和应用层。应用层分为系统管理app、安全服务app、基础应用app和其他扩展应用。
2、系统管理app根据逻辑地址和通信端口号进行消息路由转发处理;根据安全规范,所有物理通道发给业务app(包括基础app与扩展app)的报文经安全app安全判断后,再转给业务app,所有从业务app发送到外部物理通道的报文经安全app安全判断后,再发送到外部物理通道。系统管理app和业务app及安全app通过进程间的通道channel进行通讯。
3、由于各app之间会存在多通道并发通讯的情况,在多通道同时进行通讯的时候,就容易出现因处理不及时引起丢包的问题。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够解决多通道并发通讯时引起丢包问题的方法和装置。
2、第一方面,本申请提供了一种用于物联电能表多线程处理多通道通讯的方法。该物联电能表包括管理模组,管理模组包括系统管理app和基础应用app,方法包括:
3、s1,利用基础应用app注册发送通道和接收通道,并创建第一线程和第二线程;
4、s2,第一线程通过接收通道接收系统管理app发送的消息;
5、s3,第一线程将接收到的消息进行缓存排序后转发给第二线程,第二线程接收并处理第一线程转发的消息;
6、s4,第二线程通过发送通道将处理后的消息发送给系统管理app。
7、其进一步的技术方案为,缓存排序采用消息队列或邮箱实现。
8、其进一步的技术方案为,当缓存排序采用消息队列实现时,步骤s3具体包括:
9、初始化消息队列;
10、当第一线程接收到系统管理app发送的消息时,将消息放入消息队列中,若没有消息就等待;
11、第二线程判断消息队列中是否有消息,有消息就处理,没有就等待。
12、其进一步的技术方案为,当缓存排序方法采用邮箱实现时,步骤s3具体包括:
13、初始化邮箱;
14、当第一线程接收到系统管理app发送的消息时,邮箱申请消息大小的动态内存,并将消息对应的地址放入邮箱中,若没有消息就等待;
15、第二线程判断邮箱中是否有消息,有消息就处理,没有就等待。
16、其进一步的技术方案为,消息队列的初始化内存不小于12kb。
17、其进一步的技术方案为,邮箱的初始化内存不小于24b。
18、其进一步的技术方案为,在第二线程通过发送通道将处理后的消息发送给系统管理app之后,邮箱释放掉申请的动态内存。
19、其进一步的技术方案为,方法还包括:根据第一线程接收到的消息数量动态扩充缓存区的大小。
20、其进一步的技术方案为,方法还包括:监控第二线程的消息处理时间,当时间超过预设值时,基础应用app发出警报或重启。
21、第二方面,本申请还提供了一种用于物联电能表多线程处理多通道通讯的装置,该装置实现上述任一项方法的步骤。装置包括:
22、通道注册模块,用于注册发送通道和接收通道;
23、线程创建模块,用于创建第一线程和第二线程;
24、消息接收模块,用于第一线程通过接收通道接收系统管理app发送的消息;
25、缓存排序模块,用于第一线程将接收到的消息进行缓存排序后转发给第二线程,第二线程接收并处理第一线程转发的消息;
26、消息发送模块,用于第二线程通过发送通道将处理后的消息发送给系统管理app。
27、本发明的有益技术效果是:
28、本申请将系统管理app发送来的消息通过第一线程进行处理后再发给第二线程,再由第二线程处理后发送回系统管理app,多了一次转换,而转换方式也提供了两种方案,一种使用线程间通讯(消息队列)的方式,另一种使用申请动态内存和线程间通讯(邮箱集合)的方式,均可解决多通道同时通讯时处理不及时引起丢包的问题。
1.一种用于物联电能表多线程处理多通道通讯的方法,所述电能表包括管理模组,所述管理模组包括系统管理app和基础应用app,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述缓存排序采用消息队列或邮箱实现。
3.根据权利要求2所述的方法,其特征在于,当所述缓存排序采用消息队列实现时,所述步骤s3具体包括:
4.根据权利要求2所述的方法,其特征在于,当所述缓存排序方法采用邮箱实现时,所述步骤s3具体包括:
5.根据权利要求3所述的方法,其特征在于,所述消息队列的初始化内存不小于12kb。
6.根据权利要求4所述的方法,其特征在于,所述邮箱的初始化内存不小于24b。
7.根据权利要求4或6所述的方法,其特征在于,在第二线程通过发送通道将处理后的消息发送给系统管理app之后,所述邮箱释放掉申请的动态内存。
8.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:根据所述第一线程接收到的消息数量动态扩充缓存区的大小。
9.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:监控所述第二线程的消息处理时间,当所述时间超过预设值时,所述基础应用app发出警报或重启。
10.一种用于物联电能表多线程处理多通道通讯的装置,其特征在于,所述装置实现权利要求1至9中任一项所述方法的步骤,所述装置包括:
