一种基于mqtt协议的物联网文件传输方法与流程

文档序号:23392032发布日期:2020-12-22 13:58阅读:563来源:国知局
一种基于mqtt协议的物联网文件传输方法与流程

本发明涉及物联网数据传输技术领域,特别是涉及一种基于mqtt协议的物联网文件传输方法,实现基于物联网通讯的云端及单片机之间的文件传输。



背景技术:

随着物联网技术的发展,远程设备与云端的通讯水平得到了显著的提高,mqtt等基于tcp协议的产品支持逐渐走向视野,它们对信息传输之间的准确性和稳定性提供了更加有力的保障。

然而对于文件性质传输工作来说,目前仍未存在通用的流程方法,对于部署在设备上的大部分轻量级通讯组件,如单片机,对信息包的定量传输、处理时间、并行机制、信息校验、编码转换,都存在着一定量的技术限制,具体包括以下缺陷:

1、文件包直接通过mqtt协议一次性全量发送,对于单片机这种轻量级处理机存在文件信息缓存导致内存不足问题;

2、文件包下发之后,需要整包解析完成后,才能响应信息准确性与可行性,响应机制不够灵敏;

3、当多次下发并行处理时,单片机对于当前执行动作的判断将受到影响,各个进程之间产生混乱的可能性提高;

4、文件整包的下发,不能快速的定位下发信息的准确性。



技术实现要素:

本发明主要解决的技术问题是提供一种基于mqtt协议的物联网文件传输方法,能够为轻量级设备组件的远程版本升级等功能提供了实现上的流程建议,为单片机等设备处理机处理文件接收及缓存工作等提供了有效的解决方案,一定程度上避免了因处理机缓存区过小导致无法成功接收的问题,具有通信流程可控、传输安全、运行稳定等特点。

为解决上述技术问题,本发明采用的一个技术方案是:提供一种基于mqtt协议的物联网文件传输方法,包括以下步骤:

s1、云端将文件转化为字节数组形式,并按照指定分包大小拆分数组;

s2、云端创建第一个信息包的下发表单;

s3、创建好信息下发表单后,从s1中得到的字节数组中取出第一个数组,将该信息放于表单生成的json字符串之后,生成最后的字符串

s4、将这段信息通过mqtt协议发送至设备端topic,并对该发送方法添加设备级别的逻辑锁;

s5、云端将s1中得到的字节数组存储起来;

s6、设备端订阅相同topic,接收信息并校验;

s7、验证信息准确性后,反馈响应信息至云端;

s8、云端接收到响应信息后,验证通过,则取出保存的文件字节形式数组,根据当前文件顺序,取出下一个文件分包字节数组,并组合下一个信息表单,下发至设备;

s9、如此至设备完全接收信息包后,信息反馈无误,则单片机端即可组合下发字节信息数组并处理;

s10、云端接收到最后一个信息反馈包后,如验证无误,则判定文件传输成功,对该发送方法取消设备级别的逻辑锁;

s11、进程结束。

进一步,所述s2中表单包含以下元素:代表当次传输的唯一标识id;代表文件的具体类型,以便接收方区分不同文件;该文件包在全部文件中的顺序;对每个分包的字节数组做异或校验后得到的结果值。

进一步,所述文件包在全部文件中的顺序以a/b格式表示,a代表第几包,b代表共有几包每一分包的字节数量或分包大小。

进一步,所述s7中响应信息包含以下元素:当次传输的唯一标识id;当次传输的文件顺序;当次传输设备端是否验证通过。

本发明的有益效果是:1、本发明可以控制传输的具体处理流程,支持分包传输;

2、可以控制分包大小,并提供字段以便单片机识别分包先后逻辑顺序;

3、从云端对传输过程加锁,控制文件传输单进程执行;

4、云端在分包中提供信息校验字段,以便单片机核对信息准确性;

5、mqtt通讯协议保障了信息的安全性;

6、云端传输字节信息时,不与其他字段放在同一表单中,字节分段信息直接放在传输信息后面,保障不被转码,以便单片机识别。

附图说明

图1是本发明一种基于mqtt协议的物联网文件传输方法一较佳实施例的架构图;

图2是本发明另一实施例的流程图。

具体实施方式

下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。

请参阅图1,本发明实施例包括:

一种基于mqtt协议的物联网文件传输方法,包括以下步骤:

s1、云端将文件转化为字节数组形式,并按照指定分包大小拆分数组;

s2、云端创建第一个信息包的下发表单,表单包含以下元素:代表当次传输的唯一标识id;代表文件的具体类型,以便接收方区分不同文件;该文件包在全部文件中的顺序,文件包在全部文件中的顺序以a/b格式表示,a代表第几包,b代表共有几包每一分包的字节数量或分包大小;对每个分包的字节数组做异或校验后得到的结果值;

s3、创建好信息下发表单后,从s1中得到的字节数组中取出第一个数组,将该信息放于表单生成的json字符串之后,生成最后的字符串

s4、将这段信息通过mqtt协议发送至设备端topic,并对该发送方法添加设备级别的逻辑锁;

s5、云端将s1中得到的字节数组存储起来;

s6、设备端订阅相同topic,接收信息并校验;

s7、验证信息准确性后,反馈响应信息至云端,响应信息包含以下元素:当次传输的唯一标识id;当次传输的文件顺序;当次传输设备端是否验证通过;

s8、云端接收到响应信息后,验证通过,则取出保存的文件字节形式数组,根据当前文件顺序,取出下一个文件分包字节数组,并组合下一个信息表单,下发至设备;

s9、如此至设备完全接收信息包后,信息反馈无误,则单片机端即可组合下发字节信息数组并处理;

s10、云端接收到最后一个信息反馈包后,如验证无误,则判定文件传输成功,对该发送方法取消设备级别的逻辑锁;

s11、进程结束。

另一实施例,见图2,某云平台通过与实现mqtt协议的物联网平台与设备通讯,本次实施以某10k大小的硬件控制板文件升级为例。

c1:云平台将该硬件控制板文件按照每包1024字节分组,生成byte[10][]。

c2:组合下发表单form,文件顺序为1/10,文件类型为约定值。

c3:将form经过json转化生成字符串,在末尾添加byte[0]

c4:将字符串发送至设备订阅的topic,并对该设备添加分布式锁。

c5:云平台本地保存byte[10][]

c6:设备端接收传输过来的字符串并对末尾的byte[]进行异或运算,与表单中的校验值比对,相同则校验正确。

c7:设备端发送响应信息至云平台,信息表单中包含文件顺序为1/10,验证结果为通过。

c8:云平台取出byte[1],组合表单并下发至设备。

c9:设备接收到全部byte[]后,组合并对该硬件控制板进行升级。

c10:云平台接收到最后一条响应信息后,判定传输成功,解除分布式锁。

c11:结束。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1