本发明属于通信,尤其涉及一种基于lora的断点续传控制方法及系统。
背景技术:
1、本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成已经成为本领域一般技术人员所公知的现有技术。
2、lora技术大约在十年前由法国和瑞士开发,到现今,lora技术已经是物联网发展应用中不可缺少的一部分。越来越多的网关和终端设备被应用到物联网的各个场景中,随着系统功能的丰富,每个场景中网关和终端的数量也在不断增多。
3、目前,lora终端产品程序升级大多采用本地连接的方式,在程序升级过程中,容易出现传输断点,甚至长时间无法连接的情况,而当网络恢复时,如果按照网关已发送的数据块继续发送的话,可能会造成数据块的丢失,导致升级失败。
技术实现思路
1、为了解决上述问题,本发明提供一种基于lora的断点续传控制方法及系统,通过对程序文件进行编号,并在续传时按照终端已收到的数据帧数进行续传,能够保证程序文件的完整性,从而提高升级的成功率。
2、为了实现上述目的,本发明主要包括以下几个方面:
3、第一方面,本发明实施例提供一种基于lora的断点续传控制方法,用于自组网系统,所述自组网系统包括网关和终端,所述网关和所述终端相互通信连接,包括:
4、获取程序文件,按照所述程序文件的第一帧数进行顺序编号;
5、接收所述终端发送的等待程序升级报文,按照编号发送所述程序文件,并接收所述终端反馈的第二帧数;
6、检测所述网关和所述终端之间的网络状态,在所述第一帧数与第二帧数不相等且网络状态异常的情况下,向所述终端发送升级查询报文;
7、根据所述终端反馈的数据帧数,确定断点位置;
8、根据所述断点位置确定断点后的程序文件,并将断点后的程序文件发送给所述终端。
9、在一种可能的实施方式中,所述自组网的建立方法包括:
10、建立所述网关和所述终端之间的通信信道;
11、所述网关每隔预设时间广播入网的查询报文;
12、接收所述终端发送的入网请求报文,将所述终端加入自组网,并给所述终端分配新的通信信道;其中,所述终端在接收到所述查询报文之后,反馈入网请求报文。
13、在一种可能的实施方式中,所述自组网的建立方法包括:
14、建立所述网关和所述终端之间的通信信道;
15、所述终端在程序初始化完成之后,若在预设时间段内没有接收到所述网关广播的查询报文,则主动向网关发送入网请求报文;
16、所述网关在组网信道接收到入网请求报文,判断所述终端是否符合入网条件,若符合入网条件,则向所述终端发送入网成功的报文,并为所述终端分配通信信道。
17、在一种可能的实施方式中,若所述终端入网失败,则再次发送入网请求报文;请求失败次数大于预设次数阈值时,进入休眠状态,休眠状态结束后继续发送入网请求报文。
18、在一种可能的实施方式中,在按照程序文件的第一帧数进行顺序编号之后,接收终端发送的等待程序升级报文之前,还包括:发送升级查询报文,所述升级报文包括终端的身份标识和所述程序文件的升级程序版本号;
19、接收所述终端反馈的终端程序版本号,若判定所述终端程序版本号和升级程序版本号不同,则向所述终端发送程序升级的配置报文,并接收所述终端反馈的等待程序升级报文。
20、在一种可能的实施方式中,还包括:在所述第一帧数与第二帧数不相等且网络状态正常的情况下,接收所述终端发送的重传请求,按照编号重新发送所述程序文件。
21、在一种可能的实施方式中,还包括:若所述第一帧数和第二帧数相等,则向所述终端发送升级结束报文,所述升级结束报文用于指示所述终端结束升级状态并跳转至升级后的程序运行。
22、第二方面,本发明实施例还提供一种基于lora的断点续传控制系统,用于自组网系统,所述自组网系统包括网关和终端,所述网关和所述终端相互通信连接,包括:
23、获取模块,用于获取程序文件,按照所述程序文件的第一帧数进行顺序编号;
24、收发模块,用于接收所述终端发送的等待程序升级报文,按照编号发送所述程序文件,并接收所述终端反馈的第二帧数;
25、检测模块,用于检测所述网关和所述终端之间的网络状态,在所述第一帧数与第二帧数不相等且网络状态异常的情况下,向所述终端发送升级查询报文;
26、确定模块,用于根据所述终端反馈的数据帧数,确定断点位置;
27、续传模块,用于根据所述断点位置确定断点后的程序文件,并将断点后的程序文件发送给所述终端。
28、在一种可能的实施方式中,所述检测模块还用于在所述第一帧数与第二帧数不相等且网络状态正常的情况下,接收所述终端发送的重传请求,按照编号重新发送所述程序文件。
29、在一种可能的实施方式中,所述检测模块还用于若所述第一帧数和第二帧数相等,则向所述终端发送升级结束报文,所述升级结束报文用于指示所述终端结束升级状态并跳转至升级后的程序运行。
30、以上一个或多个技术方案存在以下有益效果:
31、本发明提供了一种基于lora的断点续传控制方法,通过对程序文件进行顺序编号,并按照编号将程序文件发送给终端,在发送的第一帧数与终端接收的第二帧数不相等且网络状态异常的情况下,查询终端反馈的数据帧数并确定断点位置,根据断点位置向终端发送断点后的程序文件。这样,在出现传输断点时,按照终端已接收到的数据确定断点位置并开始续传,能够保证升级过程中程序文件的完整性,从而提高升级的成功率。
1.一种基于lora的断点续传控制方法,用于自组网系统,所述自组网系统包括网关和终端,所述网关和所述终端相互通信连接,其特征在于,包括:
2.如权利要求1所述的基于lora的断点续传控制方法,其特征在于,所述自组网的建立方法包括:
3.如权利要求1所述的基于lora的断点续传控制方法,其特征在于,所述自组网的建立方法包括:
4.如权利要求3所述的基于lora的断点续传控制方法,其特征在于,若所述终端入网失败,则再次发送入网请求报文;请求失败次数大于预设次数阈值时,进入休眠状态,休眠状态结束后继续发送入网请求报文。
5.如权利要求1所述的基于lora的断点续传控制方法,其特征在于,在按照程序文件的第一帧数进行顺序编号之后,接收终端发送的等待程序升级报文之前,还包括:发送升级查询报文,所述升级报文包括终端的身份标识和所述程序文件的升级程序版本号;
6.如权利要求1所述的基于lora的断点续传控制方法,其特征在于,还包括:在所述第一帧数与第二帧数不相等且网络状态正常的情况下,接收所述终端发送的重传请求,按照编号重新发送所述程序文件。
7.如权利要求1所述的基于lora的断点续传控制方法,其特征在于,还包括:若所述第一帧数和第二帧数相等,则向所述终端发送升级结束报文,所述升级结束报文用于指示所述终端结束升级状态并跳转至升级后的程序运行。
8.一种基于lora的断点续传控制系统,用于自组网系统,所述自组网系统包括网关和终端,所述网关和所述终端相互通信连接,其特征在于,包括:
9.如权利要求8所述的基于lora的断点续传控制系统,其特征在于,所述检测模块还用于在所述第一帧数与第二帧数不相等且网络状态正常的情况下,接收所述终端发送的重传请求,按照编号重新发送所述程序文件。
10.如权利要求8所述的基于lora的断点续传控制系统,其特征在于,所述检测模块还用于若所述第一帧数和第二帧数相等,则向所述终端发送升级结束报文,所述升级结束报文用于指示所述终端结束升级状态并跳转至升级后的程序运行。