一种配网方法和装置
技术领域
本发明涉及信息技术领域,尤其涉及一种配网方法和装置。
背景技术
目前,物联网(IoT)技术与产品被广泛的应用在生产生活的诸多领域,如智能家居,线下零售,工业管理等,IoT设备的生产制造迅猛发展。一般来说,IoT设备需要进行配置才能进行Wi-Fi或蓝牙的网络连接,这个过程称为配网。
配网过程是一个单向通信的过程,信息发送端不可获知哪些数据块没有被正确接收。传统的方案把配置信息进行线形拆分,分为若干个(例如,N个)数据块,继而从1至N的轮播数据,IoT设备端进行接收,直至把N个数据全部接收,才可以完成配网过程。实际环境中,因为传输错误,某些数据块可能不会被正确接收,显而易见地,为了让IoT设备接收到少量的没有正确接收的数据,信息发送端不得不持续轮播所有数据,造成了时间与资源的大量浪费。
发明内容
本发明的一个目的是提供一种配网方法和装置,以解决现有的信息发送端在IoT设备未正确接收数据时持续轮播所有数据,造成时间与资源的大量浪费的问题。
根据本发明的第一方面,提供一种配网方法,包括:
将完成配网所需的数据进行分包,在分包后的数据中选取多个包,获取所述多个包中数据的总长度;
对所述多个包的索引进行组播广播地址调制,得到组播目标地址;
根据所述多个包中数据的总长度以及组播目标地址解析所述多个包中的数据,重复以上步骤,直到解析完配网所需的数据。
进一步,本发明所述的方法,所述将完成配网所需的数据进行分包,包括:
通过无码率抹除码的方式,将完成配网所需的数据进行分包。
进一步,本发明所述的方法,所述在分包后的数据中选取多个包,获取所述多个包中数据的总长度,包括:
依据预设概率分布的方法在分包后的数据中选取多个包;
相应的,获取所述多个包中数据的总长度,包括:
将所述多个包中的数据进行异或运算,获取所述多个包中数据的总长度。
进一步,本发明所述的方法,所述对所述多个包的索引进行组播广播地址调制,得到组播目标地址,包括:
遍历所述多个包的索引;
对每一索引进行位移操作后与前一索引的结果进行累加,得到所述多个包的索引的结果;
将所述多个包的索引的结果作为组播目标地址。
进一步,本发明所述的方法,所述方法还包括:
根据所述组播目标地址和所述多个包中数据的总长度,生成组播包。
进一步,本发明所述的方法,根据所述多个包中数据的总长度以及组播目标地址解析所述多个包中的数据,重复以上步骤,直到解析完配网所需的数据,包括:
还原每一组播包中的多个包的索引以及多个包中数据的总长度;
比较每一组播包中的多个包的索引,以及将每一组播包中的多个包中数据的总长度进行异或操作;
当异或操作结果为1时,解析所述多个包中的数据;
重复以上步骤,直到解析完配网所需的数据。
根据本发明的第二方面,提供了一种配网装置,包括:
分包模块,用于将完成配网所需的数据进行分包,在分包后的数据中选取多个包,获取所述多个包中数据的总长度;
组播地址调制模块,用于对所述多个包的索引进行组播广播地址调制,得到组播目标地址;
数据解码模块,用于根据所述多个包中数据的总长度以及组播目标地址解析所述多个包中的数据,重复以上步骤,直到解析完配网所需的数据。
进一步,本发明所述的装置,所述分包模块,用于:
通过无码率抹除码的方式,将完成配网所需的数据进行分包。
进一步,本发明所述的装置,所述分包模块,还用于:
依据预设概率分布的方法在分包后的数据中选取多个包;
将所述多个包中的数据进行异或运算,获取所述多个包中数据的总长度。
进一步,本发明所述的装置,所述组播地址调制模块,用于:
遍历所述多个包的索引;
对每一索引进行位移操作后与前一索引的结果进行累加,得到所述多个包的索引的结果;
将所述多个包的索引的结果作为组播目标地址。
进一步,本发明所述的装置,所述装置还包括:
封包长度调制模块,用于根据所述组播目标地址和所述多个包中数据的总长度,生成组播包。
进一步,本发明所述的装置,所述数据解码模块,用于:
还原每一组播包中的多个包的索引以及多个包中数据的总长度;
比较每一组播包中的多个包的索引,以及将每一组播包中的多个包中数据的总长度进行异或操作;
当异或操作结果为1时,解析所述多个包中的数据;
重复以上步骤,直到解析完配网所需的数据。
根据本发明的第三方面,提供一种存储介质,所述存储介质存储计算机程序指令,所述计算机程序指令根据本发明所述的方法进行执行。
根据本发明的第四方面,提供一种计算设备,包括:用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述计算设备执行本发明所述的方法。
本发明提供的配网方法和装置,将完成配网所需的数据进行分包,在分包后的数据中选取多个包,获取所述多个包中数据的总长度,通过无码率抹除码的编码方案实现了数据分包;对所述多个包的索引进行组播广播地址调制,得到组播目标地址;根据所述多个包中数据的总长度以及组播目标地址解析所述多个包中的数据,重复以上步骤,直到解析完配网所需的数据。本发明将无码率抹除码的编码方案与组播地址调制和包长度调制进行整合,避免了在IoT设备端未正确接收数据时持续轮播所有数据,造成时间与资源的大量浪费的问题,优化了物联网设备在配网过程中的性能,避免冗余信息的发送,提高配网成功率,优化配网时间。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明一实施例提供的配网方法的流程示意图;
图2为本发明另一实施例提供的配网方法的流程示意图;
图3为本发明另一实施例提供的配网方法的流程示意图;
图4为本发明一实施例提供的配网装置的结构示意图;
图5为本发明另一实施例提供的配网装置的结构示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
在介绍本发明实施例的方法之前,首先对本发明实施例中将要提到的术语进行详细解释。
Wi-Fi即为一个创建于IEEE 802.11标准的无线局域网络;物联网(Internet ofThings,缩写IoT)是互联网、传统电信网等信息承载体,让所有能行使独立功能的普通物体实现互联互通的网络;IoT设备配网:指对物联网设备进行配置,使其可以连接至某一Wi-Fi网络的过程;抹除码:是将一个讯息由n个区块重新分解成超过m个区块,m大于n,原本的讯息可以由新的讯息的区块子集合所重建的一种编码;喷泉码:是一类抹除码。
图1为本发明一实施例的配网方法的流程示意图,如图1所示,本发明实施例一提供的配网方法,包括:
101、将完成配网所需的数据进行分包,在分包后的数据中选取多个包,获取所述多个包中数据的总长度;
配网信息发送端准备完成配网所需的数据,其中对数据进行分包可以包括多种分包方式,本实施例中不同于现有技术的是,本实施例中的分包模式并不是线性的分割成若干块,固定码率的传输;而是依照某一特定概率分布,本方案不明确指定使用哪一种概率分布,应依据使用情况进行选择,如高斯分布,均匀分布等。
另外本发明实施例中将完成配网所需的数据进行分包,包括:通过无码率抹除码的方式,将完成配网所需的数据进行分包。无码率抹除码有多种实现,本方案不明确指定使用哪一种实现,如卢比变换码,Raptors码等。
在分包后的数据中选取多个包,获取所述多个包中数据的总长度,包括:
依据预设概率分布的方法在分包后的数据中选取多个包,如高斯分布,均匀分布等;
相应的,在步骤101中获取所述多个包中数据的总长度,包括:
将所述多个包中的数据进行异或运算,获取所述多个包中数据的总长度。
102、对所述多个包的索引进行组播广播地址调制,得到组播目标地址;
在对多个包的索引进行组播广播地址调制之前,本发明实施例中首先建立并记录多个包的索引,例如,随机选取d个包,如[d(i),d(j),….d(k)],同时记录随机选取的这d个包的索引,记为A,有A=[i,j,….k],其中(i,j,k)把选取的d个包的索引A=[i,j,…k],传入组播广播地址调制模块。
上述步骤102中,对所述多个包的索引进行组播广播地址调制,得到组播目标地址,包括以下子步骤:
1021、遍历所述多个包的索引;
1022、对每一索引进行位移操作后与前一索引的结果进行累加,得到所述多个包的索引的结果;
1023、将所述多个包的索引的结果作为组播目标地址。
103、根据所述多个包中数据的总长度以及组播目标地址解析所述多个包中的数据,重复以上步骤,直到解析完配网所需的数据。
由于多个包中数据的总长度已知,且组播目标地址已知,可以直接根据数据的长度以及组播目标地址得到多个包中的数据。由于多个包中的数据并不是全部配网所需的数据,因此在以上步骤中重复操作,直到解析完配网所需的数据。
上述步骤103在执行过程红可以包括如下子步骤:
1031、还原每一组播包中的多个包的索引以及多个包中数据的总长度;
1032、比较每一组播包中的多个包的索引,以及将每一组播包中的多个包中数据的总长度进行异或操作;
1033、当异或操作结果为1时,解析所述多个包中的数据;
1034、重复以上步骤,直到解析完配网所需的数据。
本发明提供的配网方法,将完成配网所需的数据进行分包,在分包后的数据中选取多个包,获取所述多个包中数据的总长度,通过无码率抹除码的编码方案实现了数据分包;对所述多个包的索引进行组播广播地址调制,得到组播目标地址;根据所述多个包中数据的总长度以及组播目标地址解析所述多个包中的数据,重复以上步骤,直到解析完配网所需的数据。本发明将无码率抹除码的编码方案与组播地址调制和包长度调制进行整合,避免了在IoT设备端未正确接收数据时持续轮播所有数据,造成时间与资源的大量浪费的问题,优化了物联网设备在配网过程中的性能,避免冗余信息的发送,提高配网成功率,优化配网时间。
图2为本发明一实施例的配网方法的流程示意图,如图2所示,本发明实施例一提供的配网方法,包括:
201、将完成配网所需的数据进行分包,在分包后的数据中选取多个包,获取所述多个包中数据的总长度。
例如,如图3所示,配网信息的发送端,准备IoT设备端完成配网所需的数据M,并线性地把完成配网所需的数据M分为N(大于等于1的正整数)个包,N的值可以预先设定,本实施例中定义是根据编码空间的上限,实际中可选取小于等于28的自然数,包的索引即1~N。
依照某一特定的概率分布,随机生成正整数d,d应小于等于N。依照均匀概率分布在N个包中,随机选取d个包,如[d(i),d(j),….d(k)],对这d个包进行异或运算,得到S,即S=d(i)xor d(j)xor…d(k),同时记录随机选取的这d个包的索引,记为A,有A=[i,j,….k],其中(i,j,k)属于1~N。例如图3中所示d个包的d1,d2,d3……dn,以及异或运算后的S中的s1,s2,s3,s4……sk,其中s1为d2和d3异或运算的结果,s2为d1和d3异或运算的结果,由于本实施例中采用喷泉码编码的方式,将配网信息发送端的数据进行随机得到N个包,为了方便理解,举例说明如下,d1中包括数据abc,d2中包括数据a,d3中包括数据d,那么s1为d2和d3异或运算的结果ad,s2为d1和d3异或运算的结果abcd,如果S中只包括s1和s2,那么S为s1和s2异或运算的结果abcd,数据长度为4。
无码率抹除码有多种实现,本方案不明确指定使用哪一种实现,如卢比变换码,Raptors码等,也可以如图3中所示的喷泉码编码的方式实现。
选取d个包时,依照某一特定概率分布,本方案不明确指定使用哪一种概率分布,应依据使用情况进行选择,如高斯分布,均匀分布等。
可理解的是,上述字母n、k、i、j等均为大于等于1的自然数,为了举例方便的示例说明,并不对其大小进行限定。
202、对所述多个包的索引进行组播广播地址调制,得到组播目标地址;
如图3中的组播地址调制,把选取的d个包的索引A=[i,j,…k],传入组播广播地址调制模块。遍历A,对于d个包中每一个包的索引a,进行位移操作(1<<a)后累加得到Q,有如下为代码来表示:
Q=0
for a in A:
Q=Q+(1<<a)
因为在A中的任意一个数a,都小于等于28且无重复,所以Q是一个(0x00~0x f ffff ff)中的一个数,将Q表示为0x f:ff:ff:ff的形式,转换为十进制即为
Q的范围为(0:0:0:0~16:255:255:255)
最后对左第一位累加偏移224,故Q的范围是(224:0:0:0–255:255:255:255),使用Q作为组播目标地址。
203、根据所述组播目标地址和所述多个包中数据的总长度,生成组播包。
如图3中的封包长度调制,生成组播包,使用包的长度来调制信息(因为在解码端,无法解包,无法获取包内的内容,所以使用包的长度来调制信息),包的长度等于S。发送这个组播包,目标地址为Q,包内容的长度为S。其中,多个包中数据的总长度携带有信息S。
204、根据组播包解析所述多个包中的数据,重复以上步骤,直到解析完配网所需的数据。
在图3中的数据解码器端,收到组播包,从组播的地址中,还原A,从组播包的长度中,还原S。数据解码器端不断的收到组播包,将收到各个组播包中的A进行比较,将收到各个组播包中的S进行异或xor操作,当异或操作的结果为d=1时,即成功解析出一个数据分片d(i)。
发送端重复201,202,203步骤,生成并发送新的组播包。持续收取组播包,重复上述操作,直到解析出所有数据。
本方案采用无码率抹除码编码方案,并与组播地址调制与包长度调制进行整合,可极大的优化物联网设备在配网过程中的性能,避免冗余信息的发送,提高配网成功率,优化配网时间。
本发明提供的配网方法,将完成配网所需的数据进行分包,在分包后的数据中选取多个包,获取所述多个包中数据的总长度,通过无码率抹除码的编码方案实现了数据分包;对所述多个包的索引进行组播广播地址调制,得到组播目标地址;根据所述多个包中数据的总长度以及组播目标地址解析所述多个包中的数据,重复以上步骤,直到解析完配网所需的数据。本发明将无码率抹除码的编码方案与组播地址调制和包长度调制进行整合,避免了在IoT设备端未正确接收数据时持续轮播所有数据,造成时间与资源的大量浪费的问题,优化了物联网设备在配网过程中的性能,避免冗余信息的发送,提高配网成功率,优化配网时间。
图4为本发明一实施例的配网装置的结构示意图,如图4所示,本发明实施例一提供的配网装置,包括:
分包模块41,用于将完成配网所需的数据进行分包,在分包后的数据中选取多个包,获取所述多个包中数据的总长度;
配网信息发送端准备完成配网所需的数据,其中对数据进行分包可以包括多种分包方式,本实施例中不同于现有技术的是,本实施例中的分包模式并不是线性的分割成若干块,固定码率的传输;而是依照某一特定概率分布,本方案不明确指定使用哪一种概率分布,应依据使用情况进行选择,如高斯分布,均匀分布等。
另外本发明实施例中将完成配网所需的数据进行分包,包括:通过无码率抹除码的方式,将完成配网所需的数据进行分包。无码率抹除码有多种实现,本方案不明确指定使用哪一种实现,如卢比变换码,Raptors码等。
组播地址调制模块42,用于对所述多个包的索引进行组播广播地址调制,得到组播目标地址;
在对多个包的索引进行组播广播地址调制之前,本发明实施例中首先建立并记录多个包的索引,例如,随机选取d个包,如[d(i),d(j),….d(k)],同时记录随机选取的这d个包的索引,记为A,有A=[i,j,….k],其中(i,j,k)把选取的d个包的索引A=[i,j,…k],传入组播广播地址调制模块。
数据解码模块43,用于根据所述多个包中数据的总长度以及组播目标地址解析所述多个包中的数据,重复以上步骤,直到解析完配网所需的数据。
由于多个包中数据的总长度已知,且组播目标地址已知,可以直接根据数据的长度以及组播目标地址得到多个包中的数据。由于多个包中的数据并不是全部配网所需的数据,因此重复以上模块的操作,直到解析完配网所需的数据。
本发明提供的配网装置,将完成配网所需的数据进行分包,在分包后的数据中选取多个包,获取所述多个包中数据的总长度,通过无码率抹除码的编码方案实现了数据分包;对所述多个包的索引进行组播广播地址调制,得到组播目标地址;根据所述多个包中数据的总长度以及组播目标地址解析所述多个包中的数据,重复以上步骤,直到解析完配网所需的数据。本发明将无码率抹除码的编码方案与组播地址调制和包长度调制进行整合,避免了在IoT设备端未正确接收数据时持续轮播所有数据,造成时间与资源的大量浪费的问题,优化了物联网设备在配网过程中的性能,避免冗余信息的发送,提高配网成功率,优化配网时间。
图5为本发明一实施例的配网装置的结构示意图,如图5所示,本发明实施例一提供的配网装置,包括:
分包模块51,用于将完成配网所需的数据进行分包,在分包后的数据中选取多个包,获取所述多个包中数据的总长度;
组播地址调制模块52,用于对所述多个包的索引进行组播广播地址调制,得到组播目标地址;
封包长度调制模块53,用于根据所述组播目标地址和所述多个包中数据的总长度,生成组播包。
数据解码模块54,用于根据所述多个包中数据的总长度以及组播目标地址解析所述多个包中的数据,重复以上步骤,直到解析完配网所需的数据。
在本发明实施例的一个优选的实施方式中,所述分包模块,用于:
通过无码率抹除码的方式,将完成配网所需的数据进行分包。
在本发明实施例的一个优选的实施方式中,所述分包模块,还用于:
依据预设概率分布的方法在分包后的数据中选取多个包;
将所述多个包中的数据进行异或运算,获取所述多个包中数据的总长度。
在本发明实施例的一个优选的实施方式中,所述组播地址调制模块,用于:
遍历所述多个包的索引;
对每一索引进行位移操作后与前一索引的结果进行累加,得到所述多个包的索引的结果;
将所述多个包的索引的结果作为组播目标地址。
在本发明实施例的一个优选的实施方式中,所述数据解码模块,用于:
还原每一组播包中的多个包的索引以及多个包中数据的总长度;
比较每一组播包中的多个包的索引,以及将每一组播包中的多个包中数据的总长度进行异或操作;
当异或操作结果为1时,解析所述多个包中的数据;
重复以上步骤,直到解析完配网所需的数据。
本发明实施例图3和4所示装置为本发明实施例图1和图2所示方法的实现装置,其具体原理与本发明实施例图1和图2所示方法相同,此处不再赘述。
在本发明一个实施例中,还提供一种存储介质,所述存储介质存储计算机程序指令,所述计算机程序指令根据本发明实施例的方法进行执行。
在本发明一个典型的配置中,计算设备均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
在本发明一个实施例中,还提供一种计算设备,包括:用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述计算设备执行本发明实施例的方法。
计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的装置或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一些实施例中,本发明的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。