面向工程监测物联网采集终端数据传输自适应方法和装置与流程

文档序号:25875148发布日期:2021-07-16 17:33阅读:103来源:国知局
面向工程监测物联网采集终端数据传输自适应方法和装置与流程

1.本发明涉及工程监测技术领域,尤其涉及一种面向工程监测物联网采集终端的数据传输自适应方法和装置。


背景技术:

2.工程监测领域数据采集具有采集终端数量多、传感器种类丰富、监测频次低、设备休眠时间长、上下行传输数据量少的特点,采用窄带物联网进行工程监测上下行数据传输尤为适合。物联网通信模组耗能少,适用于工程现场的长期监测,但存在着单次传输的数据量小的局限,在工程初期终端进行配置初始化的数据远多于日常监测数据,该情况下通信模组传输能力略显不足,在每次通信的报文多于一定限值时常出现终端收到的报文中部分数据丢失的现象。同时工程监测采集终端硬件条件参差不齐,众多终端配置十分有限,仍旧存在部分无操作系统的单片机应用于工程中,这一类采集终端不仅数据处理能力弱,连续收到通讯报文时待处理数据堆积造成采集终端无响应。面对这些情形,势必要求业务系统进行适应性数据传输,保证业务系统与采集端之间的有效通信;同时当前业务的要求已不满足于单一数据传输方式,需要一种差异化的传输机制,支持特定数据的优先传输以便满足灵活多样的业务需要。
3.现有方法中存在通过分包传输来解决物联网通信数据量限制的方法,但未考虑不同终端数据量限制有所不同的问题,以及连续通信对物联网终端带来干扰和数据传输优先级的机制,综合考虑上述三类问题,目前尚未提出有效的解决方案。


技术实现要素:

4.本发明的目的是提供一种面向工程监测物联网采集终端的数据传输自适应方法和装置,解决了工程监测中由于采集终端硬件资源的限制导致不能自适应传输数据的问题。
5.本发明的技术方案:一种面向工程监测物联网采集终端的数据传输自适应方法,包括:
6.响应于终端在线以及存在需要下发给终端的消息,根据终端类型将消息分解成一组预设格式的报文,根据终端的通信能力和数据处理能力的限制依次延时向终端发送报文;通过预设时长判断报文是否发送完成,若发送完成继续发送下一条消息,直到消息发送完成;
7.接收来自终端上送的报文,对收到的报文进行解析判断是否为完整的消息,若是,则将报文中包体的内容解析成消息上送;
8.若否,则缓存报文,若缓存中不存在相同消息编号的报文,则设置倒计时,否则针对相同消息编号的报文,判断当前接收报文的时刻是否小于倒计时时刻,若小于则重置倒计时,继续接收报文并判断,直至倒计时结束;
9.在倒计时结束后,取出缓存中与当前消息编号相同的全部报文进行对齐检查并组
包形成报文组,将报文组中的报文包体的内容解析成消息上送。
10.进一步的,预设格式的报文的包头包括:消息编号、消息类型、消息体数据类型、消息总字符长度、是否需要回应、所回应消息编号、报文总包数、当前报文编号、报文发送时间和报文内容;
11.所述报文的包体可接受的最大数据量阈值根据终端的通信能力和数据处理能力的限制来设置。
12.进一步的,向终端发送报文的延时时长设置为报文包头中报文编号数值乘以终端相应的报文发送间隔周期;
13.终端相应的报文发送间隔周期根据终端的通信能力和数据处理能力的限制设置。
14.进一步的,通过消息中间件实现报文延时发送。
15.进一步的,所述预设时长为(totalpackagenum+1)*终端的报文接收间隔周期,totalpackagenum为报文总包数。
16.进一步的,倒计时时长=设定系数*预设的上送报文的间隔周期。
17.进一步的,取出缓存中与当前消息编号相同的全部报文进行对齐检查并组包形成报文组,方法包括:
18.将超过设定期限的报文从缓存中删除;
19.取出缓存中与该消息编号相同的全部报文,根据报文编号进行排序,验证报文是否可以组成一条完整消息,对可组成完整消息的报文形成报文组。
20.一种面向工程监测物联网采集终端的数据传输自适应装置,包括:
21.下发模块,用于响应于终端在线以及存在需要下发给终端的消息,根据终端类型将消息分解成一组预设格式的报文,根据终端的通信能力和数据处理能力的限制依次延时向终端发送报文;通过预设时长判断报文是否发送完成,若发送完成继续发送下一条消息,直到消息发送完成;
22.上送模块,用于接收来自终端上送的报文,对收到的报文进行解析判断是否为完整的消息,若是,则将报文中包体的内容解析成消息上送;
23.若否,则缓存报文,若缓存中不存在相同消息编号的报文,则设置倒计时,否则针对相同消息编号的报文,判断当前接收报文的时刻是否小于倒计时时刻,若小于则重置倒计时,继续接收报文并判断,直至倒计时结束;
24.在倒计时结束后,取出缓存中与当前消息编号相同的全部报文进行对齐检查并组包形成报文组,将报文组中的报文包体的内容解析成消息上送。
25.进一步的,预设格式的报文的包头包括:消息编号、消息类型、消息体数据类型、消息总字符长度、是否需要回应、所回应消息编号、报文总包数、当前报文编号、报文发送时间和报文内容;
26.所述报文的包体可接受的最大数据量阈值根据终端的通信能力和数据处理能力的限制来设置;
27.向终端发送报文的延时时长设置为报文包头中报文编号数值乘以终端相应的报文发送间隔周期;
28.终端相应的报文发送间隔周期根据终端的通信能力和数据处理能力的限制设置;
29.所述预设时长为(totalpackagenum+1)*终端的报文接收间隔周期,
totalpackagenum为报文总包数;
30.倒计时时长=设定系数*预设的上送报文的间隔周期。
31.进一步的,取出缓存中与当前消息编号相同的全部报文进行对齐检查并组包形成报文组,方法包括:
32.将超过设定期限的报文从缓存中删除;
33.取出缓存中与该消息编号相同的全部报文,根据报文编号进行排序,验证报文是否可以组成一条完整消息,对可组成完整消息的报文形成报文组。
34.本发明的有益效果:
35.本发明根据终端类型将消息分解成一组预设格式的报文,根据终端的通信能力和数据处理能力的限制依次延时向终端发送报文;通过预设时长判断报文是否发送完成,若发送完成继续发送下一条消息,直到消息发送完成;能够针对不同采集终端数据传输自适应,通过数据下发时的分包机制和数据上送时的组包机制,兼容不同物联网采集终端差异化的通信能力,提供通用的消息收发方式;
36.本发明通过接收来自采集终端上送的报文,缓存报文,若缓存中不存在相同消息编号的报文,则设置倒计时,否则针对相同消息编号的报文,判断当前接收报文的时刻是否小于倒计时时刻,若小于则重置倒计时,继续接收报文并判断,直至倒计时结束;在倒计时结束后,对缓存中的报文进行对齐检查并组包形成报文组,将报文组中的报文包体的内容解析成消息上送,同时保证在接收到报文出现乱序的情况下依旧不影响对报文的组包,提高了本方法和装置的鲁棒性。
附图说明
37.图1为本发明实施例的数据传输自适应方法流程示意图。
具体实施方式
38.下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
39.实施例1:
40.如图1所示,一种面向工程监测物联网采集终端的数据传输自适应方法,包括:
41.一、将消息下发给物联网采集终端的步骤,包括:
42.响应于终端在线以及存在需要下发的消息,根据终端类型将消息分解成一组设定格式的报文,根据终端的通信能力和数据处理能力的限制依次延时向终端发送报文;通过预设时长判断报文是否发送完成,若发送完成继续发送下一条消息,直到消息发送完成;
43.需要下发的消息,一般是业务系统发送给物联网采集终端的消息;
44.预先根据消息类型设置对应的传输优先级;支持按照消息类型对消息优先级进行划分,在处理消息时优先处理优先级高的消息,能保证特定消息的优先传送,在通信拥堵的情况依旧能给业务系统带来良好的体验。
45.终端类型包括:单通道采集终端和多通道采集终端;
46.根据终端的通信能力和数据处理能力的限制来设置终端报文接收的间隔周期、传输报文的包体可接受的最大数据量阈值,后续对其下发报文时根据该阈值来将下发的消息
切分成多包报文,并间歇性下发;
47.设计支持分包机制的报文包头,保证与终端交互的每一包报文都具有上下文含义,报文包头包括:消息编号、消息类型、消息体数据类型、消息总字符长度、是否需要回应、所回应消息编号、报文总包数、当前报文编号、报文发送时间、报文内容;
48.例如:
49.{"messageid":"100001","messagetype":"requestmessage","messagecontenttype":"string","messagetotalsize":502140,"ack":false,"replymessageid":"","totalpackagenum":21,"curpackageindex":1,"packagesendtime":1606134224457,"packagecontent":"*"},
50.其中,messageid为消息编号,messagetype为消息类型,requestmessage为请求消息,messagecontenttype为消息体数据类型,messagetotalsize为消息总字符长度,ack为是否需要回应,replymessageid为所回应消息的编号(当前消息的类型为请求消息时,该编号不为空),totalpackagenum为消息分解成报文的总包数,curpackageindex为当前报文的编号,packagesendtime为报文发送时间,packagecontent为报文内容;
51.消息类型包括:设备运维消息、业务消息、事件消息和其他消息。
52.所述需要下发的消息按照优先级保存到消息队列中的合适位置,检查消息队列中是否存在待发下发的消息,如果存在,取出队列中第一条消息,根据报文设定格式对消息进行处理,生成消息相对应的一组报文,并将报文加入到消息中间件中;由于单通道采集终端通信模组的限制,在对消息进行处理时将每条报文中包体的长度限制为1k;将报文组中每条报文添加到消息中间件中(这里采用的rocketmq消息中间件,消息类型为延时消息),每一条报文延时时长time为报文包头中currentpackageindex(当前报文编号)数值乘以终端相应的报文发送间隔周期,报文的间歇性下发是通过消息中间件中延时消息的方式触发来实现的;
53.依次从报文组中取出报文,采用物联网传输协议逐步下发报文,这里采用mqtt协议,直到报文组中所有的报文全部下发完成,完成时触发下一条消息的发送;
54.对报文全部下发完成的判断同样通过消息中间件的延时消息来出触发,延时时长time2根据接收报文包头totalpackagenum参数计算,time2=(totalpackagenum+1)*终端的报文接收间隔周期,在收到该延时消息时启动下一次的消息下发流程。也就是在达到延时时长time2时认为一条消息下发完成,后续进行下一条消息的下发。
55.通过该步骤将下发的消息按照终端的接收能力切分成多条报文,解决了单次传输报文较大时终端接收数据丢失的问题;同时在逐条报文下发时根据终端的数据处理能力进行相应间隔时长的间歇性下发,兼容部分终端在数据处理与数据接收不能同时进行的问题,避免出现报文堆积终端无响应的现象;在某水利工程现场监测设备部署的过程中,采用该方法下将所有单通道和多通道采集装置所需初始化配置数据完整下发至终端侧,部分配置数据量达到数70k,解决了单片机在工程应用中的数据传输问题。
56.二、将物联网采集终端的报文组包成消息上送的步骤,包括:
57.1)接收来自终端上送的报文,对收到的报文进行解析判断是否为完整的消息,若是,则将报文中包体的内容解析成消息上送;
58.若否,则缓存报文,若缓存中不存在相同消息编号的报文,则设置倒计时,否则针
对相同消息编号的报文,判断当前接收报文的时刻是否小于倒计时时刻,若小于则重置倒计时,继续接收报文并判断,直至倒计时结束;
59.2)在倒计时结束后,取出缓存中与当前消息编号相同的全部报文进行对齐检查并组包形成报文组,将报文组中的报文包体的内容解析成消息上送给业务系统。
60.对收到的报文进行解析判断是否为完整的消息,方法为:
61.根据报文中的包头totalpackagenum(报文总包数)参数来判断包体内容是否为一个完整的消息,totalpackagenum=1时报文为一个完整的消息,否则只是消息的一部分内容;
62.根据预设的终端上送报文的间隔周期进行倒计时处理,倒计时时长time=设定系数(例如1.3)*上送报文的间隔周期,每次收到用来传输相同消息编号报文的报文时都将倒计时进行重置;
63.根据终端的类型设置其上送报文的间隔周期;
64.倒计时结束后取出缓存中与该messageid(消息编号)相同的全部报文,根据currentpackageindex(当前报文编号)进行排序,验证这些报文是否可以组成一条完整消息,对可组成完整消息的报文形成报文组;对其余报文不做处理;
65.所述将物联网采集终端的报文组包成消息上送的步骤包括:
66.例如:上送报文的间隔周期为1s,倒计时时长为1.3s,每隔一秒接收到一个报文,同时将倒计时剩余时长重置,当某一个时刻如第7s未接收到报文,等到到倒计时结束即7.3s(在第6秒时接收到报文重置了倒计时为1.3s,即7.3s时刻倒计时结束)时,对缓存中的报文进行对齐检查。
67.取出缓存中与该messageid(消息编号)相同的全部报文,根据currentpackageindex(当前报文编号)进行排序,验证这些报文是否可以组成一条完整消息,对可组成完整消息的报文形成报文组;
68.对缓存中所有报文进行对齐检查的同时验证报文是否过期,将过期报文从缓存中删除,根据实际工程监测业务中数据采集周期为每天1次,因此将过期时长设置为1天;
69.通过该步骤支持终端将上送消息时进行分包传输,兼容终端有限的传输能力;同时屏蔽终端的差异,提供统一的数据接收机制,以便上层业务系统聚焦业务本身;
70.实施例2:
71.一种面向工程监测物联网采集终端的数据传输自适应装置,包括:
72.下发模块,用于将消息下发给物联网采集终端,包括:
73.响应于终端在线以及存在需要下发给终端的消息,根据终端类型将消息分解成一组预设格式的报文,根据终端的通信能力和数据处理能力的限制依次延时向终端发送报文;通过预设时长判断报文是否发送完成,若发送完成继续发送下一条消息,直到消息发送完成;
74.上送模块,用于将物联网采集终端的报文组包成消息上送,包括:
75.1)接收来自终端上送的报文,对收到的报文进行解析判断是否为完整的消息,若是,则将报文中包体的内容解析成消息上送;
76.否则缓存报文,若缓存中不存在相同消息编号的报文,则设置倒计时,否则针对相同消息编号的报文,判断当前接收报文的时刻是否小于倒计时时刻,若小于则重置倒计时,
继续接收报文并判断,直至倒计时结束;
77.2)在倒计时结束后,取出缓存中与当前消息编号相同的全部报文进行对齐检查并组包形成报文组,将报文组中的报文包体的内容解析成消息上送给业务系统。
78.进一步的,预设格式的报文的包头包括:消息编号、消息类型、消息体数据类型、消息总字符长度、是否需要回应、所回应消息编号、报文总包数、当前报文编号、报文发送时间、报文内容;
79.所述报文的包体可接受的最大数据量阈值根据终端的通信能力和数据处理能力的限制来设置;
80.向终端发送报文的延时时长设置为报文包头中报文编号数值乘以终端相应的报文发送间隔周期;
81.所述报文发送间隔周期根据终端的通信能力和数据处理能力的限制设置;
82.所述预设时长为(totalpackagenum+1)*终端的报文接收间隔周期,totalpackagenum为报文总包数;
83.倒计时时长=设定系数*上送报文的间隔周期。
84.进一步的,对缓存中的报文进行对齐检查并组包形成报文组,包括:
85.将超过设定期限的报文从缓存中删除;
86.取出缓存中与该messageid(消息编号)相同的全部报文,根据currentpackageindex(当前报文编号)进行排序,验证报文是否可以组成一条完整消息,对可组成完整消息的报文形成报文组。
87.本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
88.本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
89.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
90.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
91.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人
员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1