无线控水器通信模块的数据处理方法技术

技术编号:23898080 阅读:33 留言:0更新日期:2020-04-22 09:29
一种无线控水器通信模块的数据处理方法。它涉及一种控水器通信模块的数据处理方法。现有技术中对不同数据的处理分散在各自的接收程序里或分散在几个线程中,造成资源浪费。本发明专利技术包括:第一步:通信模块接收来自控水器外部或内部数据;第二步:将第一步接收的数据封装成消息;第三步:将第二步封装好的数据发给到消息队列中等待处理;第四步:根据第二步设置的优先级,进行数据处理。本发明专利技术实现了数据的集中处理,节省资源。本发明专利技术用于无线控水器通信模块的数据处理。

Data processing method of wireless water controller communication module

【技术实现步骤摘要】
无线控水器通信模块的数据处理方法
本专利技术涉及数据处理方法领域,尤其是控水器通信模块的数据处理方法。
技术介绍
无线控水器是在学校、工矿、公共浴室、开水房、出租屋、洗衣房等场所广泛使用的,通过无线通信方式,计算用水量、计算水费的计量设备。无线控水器的通信模块程序需要接收各种数据,并且需要对不同的数据做出正确的处理。具体有以下几种数据:配网请求数据,指WiFi接入点名称、密码;串口数据,指消费数据、命令数据、转账数据等;网络数据,通过WiFI网络传输的数据,包括消费数据、命令数据、转帐数据;参数设置请求数据为服务器的网络地址、端口等信息。其中串口数据中的消费数据和刷卡命令数据每天都有大量发生,总量较大,每个数据包占据的空间较大;而且由于数据的来源各不相同,处理方法也不一致,有的可以立即处理,有的需要等待接收完成后才能处理。比如:配网请求由外部中断触发,事件发生后可以立即处理;串口数据来自于串口,数据为多字节的数据流,需要等待全部接收完成后才能处理;网络数据来自于WiFi的MQTT协议接收回调函数,数据为多字节的数据流,事件发生后可以立即处理;参数设置请求来自于WiFi的UDP组播数据监听程序,数据为JSON格式的数据流,可以立即处理。现有技术中对不同数据的处理往往分散在各自的接收程序里或分散在几个线程中,处理中往往会用到各种公共资源,例如串行存储器、串口、网络口等资源,传输过程中会产生资源竞争,造成资源浪费,且传输效率较低为解决上述问题,本专利技术采用如下技术方案:一种无线控水器通信模块的数据处理方法,包括以下步骤:第一步:通信模块接收来自控水器外部或内部的配网请求数据、串口数据、网络数据、参数设置请求数据,其中串口数据包括刷卡命令数据、消费数据、转账数据;第二步:将第一步接收的数据封装成消息,其中,刷卡命令数据和消费数据以指针形式进行封装,所述的指针形式为:根据收到的串口数据长度申请内存,作为消息数据存储;复制串口数据到消息数据中,将消息数据的存储地址作为指针放入消息中;第一步骤中的其他数据封装成完整的数据链;数据封装包括设置优先级;通过以下程序和算法可以实现:消息定义消息有三个属性,type、prio和data。type指明消息的发送者。prio指明消息的优先级,取值范围为0~255,0为最高优先级。data为消息体,是一个无类型指针。data中存储的数据有3种情况:当消息仅表示有事件发生,不需要传送数据时,data设置为空指针,不需要处理;当需要传送4字节以下的数据时,可直接将数据存在data中;当传送的数据长度大于4字节时,可以传递数据块指针,数据块可从内存中申请,将数据块的指针存在data中,数据块的内容可以根据需要灵活定义,接收处理完成后由处理程序释放数据块占用的内存。第三步:将第二步封装好的数据发给到消息队列中等待处理;第四步:根据第二步设置的优先级,进行数据处理。优选的方案:第二步中的所述的指针形式为:根据收到的串口数据长度申请内存,做为消息数据存储。复制串口数据到消息数据中,将消息数据的存储地址作为指针放入消息中。优选的方案:第二步中所述的设置优先级的方法为:当同时存在多个数据时,先处理优先级最高的数据;优先级设置范围为0-255,其中0表示优先级最高,255表示优先级最低。优选的方案:第三步所述数据传输通道采用队列形式传输数据;消息队列是一个满足系统最大传输负荷下的数组,数组元素为消息,发送消息就是将消息插入到队列的尾部,接收消息时从队列头部取出消息。优选的方案:在第二步中,将处理消费数据设为第0优先级;将处理刷卡命令数据设为第1优先级。本专利技术的技术效果:提出一种集中传输处理数据的方法,本专利技术的技术方案中有多个数据来源和一个数据处理节点。节点完整接收数据后,节点将接收的数据打包成消息,然后通过消息队列传递数据。这种方法主要具有以下优点:1、无线控水器接收处理外部或内部数据过程中,数据接收与处理分离,异步处理接收到的数据,当接收完事件后,不用等待处理完成就可以立即开始再次接收数据;实现了数据集中处理,便于维护。2、无线控水器硬件资源缺乏,而数据处理程序经常要用到硬件资源,本专利技术因为只在一个线程处理数据,避免了资源浪费。3、本专利技术为数据处理设置优先级,可以优先处理紧急的消费信息、刷卡命令信息等,实现了紧急事件的快速处理,提高了处理的效率。附图说明图1为工作示意图具体实施例具体实施例一:一种无线控水器通信模块的数据处理方法,包括以下步骤:第一步:通信模块接收来自控水器外部或内部的配网请求数据、串口数据、网络数据、参数设置请求数据,其中串口数据包括刷卡命令数据、消费数据、转账数据;第二步:将第一步接收的数据封装成消息,其中,刷卡命令数据和消费数据以指针形式进行封装,所述的指针形式为:根据收到的串口数据长度申请内存,作为消息数据存储;复制串口数据到消息数据中,将消息数据的存储地址作为指针放入消息中;第一步骤中的其他数据封装成完整的数据链;数据封装包括设置优先级;第三步:将第二步封装好的数据发给到消息队列中等待处理;第四步:根据第二步设置的优先级,进行数据处理。具体实施例二:具体实施例二是对具体实施例一的进一步限定,第三步所述数据传输通道采用队列形式传输数据。具体实施例三:具体实施例三是对具体实施例一后具体实施方式二的进一步限定,第二步中所述的设置优先级的方法为:当同时存在多个数据时,先处理优先级最高的数据;优先级设置范围为0-255,其中0表示优先级最高,255表示优先级最低。具体实施例四,具体实施方式四是对具体实施方式三的进一步限定,在第二步中,将处理消费数据设为第0优先级;将处理刷卡命令数据设为第1优先级。工作流程如下:接收程序负责数据的接收,当接收耗时的数据时,要全部接收完成后再进行下一步处理;接收程序接收完成时,将定义一个消息,消息内容包括消息来源、消息优先级、要传送的数据;如果传递的是小块数据就直接复制到消息内,如果传递的是大块数据就传递数据块的指针;接收程序将消息放入消息队列;处理程序等待消息队列非空,一旦消息队列非空时,立即开始处理;处理程序从消息队列中取出最高优先级的消息并处理;处理完成时,如果消息内存在数据块指针,首先释放数据块指针所指向的内存,最后释放消息所占的内存。以上显示和描述了本专利技术的基本原理和主要特征和本专利技术的优点。本行业的技术人员应该了解,本专利技术不受上述实施例的限制,上述实施例和说明书中描述的只是说明本专利技术的原理,在不脱离本专利技术精神和范围的前提下,本专利技术还会有各种变化和改进,这些变化和改进都落入要求保护的本专利技术范围内。本专利技术要求保护范围由所附的权利要求书及其等效物、等效方法界定。本文档来自技高网...

【技术保护点】
1.一种无线控水器通信模块的数据处理方法,其特征在于:包括以下步骤:/n第一步:通信模块接收来自控水器外部或内部的配网请求数据、串口数据、网络数据、参数设置请求数据,其中串口数据包括刷卡命令数据、消费数据、转账数据;/n第二步:将第一步接收的数据封装成消息,其中,刷卡命令数据和消费数据以指针形式进行封装,所述的指针形式为:根据收到的串口数据长度申请内存,作为消息数据存储;复制串口数据到消息数据中,将消息数据的存储地址作为指针放入消息中;第一步骤中的其他数据封装成完整的数据链;数据封装包括设置优先级;/n第三步:将第二步封装好的数据发给到消息队列中等待处理;/n第四步:根据第二步设置的优先级,进行数据处理。/n

【技术特征摘要】
1.一种无线控水器通信模块的数据处理方法,其特征在于:包括以下步骤:
第一步:通信模块接收来自控水器外部或内部的配网请求数据、串口数据、网络数据、参数设置请求数据,其中串口数据包括刷卡命令数据、消费数据、转账数据;
第二步:将第一步接收的数据封装成消息,其中,刷卡命令数据和消费数据以指针形式进行封装,所述的指针形式为:根据收到的串口数据长度申请内存,作为消息数据存储;复制串口数据到消息数据中,将消息数据的存储地址作为指针放入消息中;第一步骤中的其他数据封装成完整的数据链;数据封装包括设置优先级;
第三步:将第...

【专利技术属性】
技术研发人员:刘刚
申请(专利权)人:哈尔滨新中新电子股份有限公司
类型:发明
国别省市:黑龙;23

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

1