一种网状网络中的节点升级方法与系统与流程

文档序号:12067890阅读:260来源:国知局
一种网状网络中的节点升级方法与系统与流程

本发明涉及通信领域,特别涉及一种网状网络中的节点升级方法与系统。



背景技术:

网状网络(mesh网络)是一种在网络节点间透过动态路由或者广播方式来进行数据与控制指令的传送,其中,网络节点可以是智能照明灯泡或者灯具、智能家居节点、智慧城市节点、传感器网络节点,还可以是其他物联网设备。以蓝牙低功耗网状网(Bluetooth Low Energy Mesh)为例,其中一个重要的应用是智能家庭或者智能楼宇的照明系统,网络的数据传输通过广播方式实现,一个网络中会有几百个或者上千个节点,包括智能灯泡,智能开关,传感器等等。现有技术中,在网状网络中进行升级,需要控制设备(如智能手机等)逐次对网络中的节点进行连接,然后各节点逐个进行升级。

在实现本发明的过程中,发明人发现现有技术中至少存在以下问题:现有技术中,网状网络中的各节点只能逐个进行升级,这导致网络需要升级的时间会随着节点数目线性增加,在几百个或者上千个节点的网络里,效率很低,从而对网状网络的规模造成了限制。



技术实现要素:

本发明实施方式的目的在于提供一种网状网络中的节点升级方法与系统,使得可以缩短网状网络中节点的升级时间,并且提高节点的升级效率,同时,网络的节点数目也可以做到数千节点的规模,大大增加了应用的范围。

为解决上述技术问题,本发明的实施方式提供了一种网状网络中的节点升级方法,应用于网状网络中的第一节点,第一节点为网状网络中任一节点,网状网络中包括N个节点,其中,N为大于1的自然数;网状网络中的节点升级方法,包括:第一节点根据终端指令,进行无线固件升级OTA;第一节点在完成OTA后,利用广播信道同时对网状网络中的至少部分第二节点进行OTA;其中,第二节点为网状网络中的除第一节点外的其他节点。以BLEMesh照明网络为例,第一节点可以是网络中的任何一个灯泡,手机或者其他控制设备可以直接连接到这个节点,对其进行无线固件升级OTA或者把给其他节点的固件无线传输到这个节点。第一节点再通过广播的方式对网络里面的其他所有设备同时进行升级。在某些实现中控制设备和第一节点有可能是在一个物理设备中(例如网关节点),本身既可以作为控制设备,也可以认为是网络节点之一。对于网络的升级也有可能是只对部分节点进行升级,例如一个照明系统里,只对蓝牙低功耗灯泡进行升级,或者只对所有的感光Sensor节点进行升级。

本发明的实施方式还提供了一种网状网络中的节点升级方法,应用于网状网络中的第二节点,第二节点为网状网络中的除第一节点以外的其他节点,第一节点为网状网络中任一节点,网状网络中包括N个节点,其中,N为大于1的自然数;网状网络中的节点升级方法,包括:第二节点通过接收第一节点利用广播信道发送的OTA升级命令,进行OTA;第二节点在OTA失败时,通过再次接收OTA升级命令,重新进行OTA。

本发明的实施方式还提供了一种网状网络中的节点升级系统,包括:终端、第一节点与第二节点,第一节点为网状网络所包括的N个节点中的任一节点,第二节点为网状网络中除第一节点之外的其他节点,其中,N为大于1的自然数;终端用于通过向第一节点发送OTA升级指令,与第一节点进行信息交互;第一节点用于根据终端指令,进行OTA;第一节点还用于在完成OTA后,利用广播信道同时对网状网络中的至少部分第二节点进行OTA;第二节点用于在接收第一节点利用广播信道发送的OTA升级命令后,进行OTA。

本发明实施方式相对于现有技术而言,网状网络中的第一节点可以根据终端指令,进行OTA,且第一节点在完成OTA后,可以利用广播信道同时控制网状网络中的至少部分第二节点进行OTA,这样,网状网络中一个节点升级成功后,可利用广播信道控制剩余的节点同时进行固件升级,有利于缩短节点的升级时间,提高节点的升级效率。同时,网络节点的升级时间大幅缩短,使得网络的节点数目也可以做到数千节点的规模,大大增加了应用的范围。

另外,网状网络中的节点升级方法,还包括:在第一节点利用广播信道同时对网状网络中的至少部分第二节点进行OTA后,第一节点或者终端通过读取第二节点的反馈信息或者版本信息,判断是否所有上述第二节点OTA成功;若有未OTA成功的第二节点,则第一节点重新利用广播信道同时对网状网络中的上述第二节点进行OTA。

本发明实施方式中,在第二节点进行OTA后,终端可以判断是否所有的第二节点均OTA成功,在有未OTA成功的第二节点时,第一节点可对第二节点重新进行OTA,这样,可确保网状网络中所有的第二节点OTA成功。

另外,利用广播信道同时对网状网络中的至少部分第二节点进行OTA,包括:第一节点接收到终端发送的网状网络OTA启动命令后,向网状网络中的至少部分第二节点发送OTA启动命令,启动命令中携带待升级固件的信息与设备类型信息,其中,待升级固件的信息包括固件的版本号信息与固件数据包的索引号信息;第一节点向网状网络中的至少部分第二节点发送固件数据包,固件数据包有多个;第一节点向网状网络中的至少部分第二节点发送OTA结束命令,结束命令中携带的固件长度信息、固件数据包的个数信息以及固件的校验值信息。本发明实施方式中,第一节点通过向网状网络中的至少部分第二节点发送OTA启动命令、固件数据包以及OTA结束命令,对上述第二节点进行OTA,使网状网络中所有上述节点进行OTA更方便可行。

另外,第一节点向网状网络中的至少部分第二节点发送OTA结束命令后,还包括:第一节点向网状网络中的至少部分第二节点发送OTA读取结束命令;第一节点在接收到第二节点发送的读取结束反馈信息时,向第二节点中未接收到OTA结束命令的节点重新发送OTA结束命令与OTA读取结束命令;第一节点向网状网络中的至少部分第二节点发送OTA读取标识命令;第一节点在接收到第二节点发送的读取标识反馈信息时,重新向所述第二节点发送所述第二节点未接收成功的固件数据包与所述OTA读取标识命令;第一节点向网状网络中的至少部分第二节点发送OTA读取校验结果命令,并接收第二节点发送的校验结果反馈信息。本发明实施方式可以确保网状网络中至少部分第二节点均可以OTA成功。

另外,第一节点在接收到第二节点发送的读取标识反馈信息时,重新向第二节点发送第二节点未接收成功的固件数据包与OTA读取标识命令,包括:第一节点接收第二节点发送的读取标识反馈信息;读取标识反馈信息携带有第二节点对固件数据包的接收信息;其中,接收信息通过编码的形式标识第二节点是否接收到某个或者某几个固件数据包;第一节点在接收到第二节点发送的读取标识反馈信息时,对接收信息进行汇总,并根据汇总结果重新向第二节点发送第二节点未接收成功的固件数据包与OTA读取标识命令。本发明实施方式中,第二节点发送的读取标识反馈信息,包括整个固件传输序列中某个或者某几个数据包未接收成功的接收信息,第一节点通过对标识信息进行汇总,将第二节点未接收成功的数据包组合起来,重新向第二节点广播发送第二节点未接收成功的固件数据包与OTA读取标识命令。这样,在重新发送第二节点未接收成功的固件数据包时,第一节点可以根据反馈信息判断哪部分数据包未接收成功,从而,可以只发送未接收成功的数据包,而不必重新发送升级所需的整个数据包。

附图说明

图1是根据本发明第一实施方式中的网状网络中的节点升级系统的结构图;

图2是根据本发明第一实施方式的网状网络中的节点升级方法的流程图;

图3是根据本发明第二实施方式的网状网络中的节点升级方法的流程图;

图4是根据本发明第三实施方式的网状网络中的节点升级方法的流程图;

图5是根据本发明第四实施方式的网状网络中的节点升级系统的结构图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

本发明的第一实施方式涉及一种网状网络中的节点升级方法,应用于如图1所示的网状网络(mesh网络)内的第一节点102。具体地说,网状网络包括控制终端101、第一节点102与第二节点103,其中,第一节点101为网状网络所包括的N个节点中的任一节点,第二节点为网状网络中除第一节点以外的其余的节点,N为大于1的自然数。

以BLE Mesh照明系统为例,如图1所示,终端101可以为智能手机,或者平板电脑等终端设备,第一节点102可以为灯泡或者其他任一终端设备,第二节点103可以为网状网络的各种终端设备中除第一节点102之外的其他终端设备,如图1所示,第二节点103可以包括灯泡、开关等终端设备。某些情况下终端101和第一节点102也许属于同一个物理设备,例如照明网络网关。

本实施方式的网状网络中的节点升级方法,如图2所示,包括:

步骤201:第一节点根据终端指令,进行无线固件升级OTA。

具体地说,通过一对一的方式,终端可以向第一节点发送OTA升级指令,第一节点根据接收到的终端指令,升级到新的固件,完成OTA升级。在第一节点完成OTA升级后,终端还可以重新连接第一节点,并通过读取第一节点升级后的固件版本号确认第一节点是否OTA成功,若确认第一节点未OTA成功,则终端可以重新向第一节点发送OTA升级指令,直至第一节点OTA成功。

举例来说,在BLE Mesh网络中,终端可以通过BLE属性表(ATT表),向第一节点发送读取ATT表的命令来获取第一节点升级后的固件版本号,也可以通过特定的网状网络命令,例如OTA版本读取命令(CMD-OTA_ReadVer),来获取第一节点升级后的固件版本号。

步骤202:第一节点在完成OTA后,利用广播信道同时对网状网络中的至少部分第二节点进行OTA。

具体地说,第一节点在OTA成功后,可以利用广播信道向网状网络中的至少部分第二节点发送OTA升级命令,上述第二节点中的部分节点接收到第一节点发送的OTA升级命令后,经过多次转发,所有上述第二节点均可以接收到OTA升级命令,并且在接收到OTA升级命令后,完成OTA升级。第一节点还可以接收所有上述第二节点的反馈信息确认OTA升级状态。

步骤203:第一节点或者终端通过读取第二节点的反馈信息或者版本信息,判断是否所有第二节点OTA成功。

具体地说,在第二节点完成OTA升级后,终端可以通过读取网状网络中所有第二节点的版本信息或者通过第一节点读取所有第二节点的OTA升级状态,判断是否所有第二节点均OTA成功,若判断结果为有未OTA成功的第二节点,则返回步骤202,第一节点可以利用广播信道重新向上述第二节点发送OTA升级命令,其中,第二节点中已OTA成功的节点会忽略上述OTA升级命令,第二节点中未OTA成功的节点接收到上述OTA升级命令后,重新进行OTA。根据实际实现方式,重复升级的次数可以配置。若判断结果为所有第二节点均OTA成功,则表明网状网络中所有节点均OTA成功,从而,可以结束整个流程。

本发明实施方式相对于现有技术而言,网状网络中的第一节点可以根据终端指令,进行OTA,且第一节点在完成OTA后,可以利用广播信道同时控制网状网络中的至少部分第二节点进行OTA,这样,网状网络中一个节点升级成功后,可利用广播信道控制剩余的节点同时进行固件升级,有利于缩短节点的升级时间,提高节点的升级效率。同时,网络节点的升级时间大幅缩短,使得网络的节点数目也可以做到数千节点的规模,大大增加了应用的范围。

本发明的第二实施方式涉及一种网状网络中的节点升级方法。本实施方式在第一实施方式的基础上做了进一步细化,提出了一种第一节点利用广播信道同时对网状网络中至少部分第二节点进行OTA的具体实现方法,如图3所示,包括:

步骤301:第一节点根据终端指令,进行无线固件升级OTA。

具体地说,通过一对一的方式,终端可以向第一节点发送OTA升级指令,第一节点根据接收到的终端指令,升级到新的固件,完成OTA升级。在第一节点完成OTA升级后,终端还可以重新连接第一节点,并通过读取第一节点升级后的固件版本号确认第一节点是否OTA成功,若确认第一节点未OTA成功,则终端可以重新向第一节点发送OTA升级指令,直至第一节点OTA成功。

步骤302:第一节点接收到终端发送的网状网络OTA启动命令后,向网状网络中至少部分第二节点发送OTA启动命令。其中,OTA启动命令中携带待升级固件的信息与设备类型信息,上述待升级固件的信息包括固件的版本号信息与固件数据包的索引号信息。

具体地说,第一节点接收到终端发送的网状网络OTA启动命令后,可以利用广播信道向至少部分第二节点发送OTA启动命令,网状网络中的所有上述第二节点接收到OTA启动命令后,可以判断启动命令中携带的待升级固件的版本号信息、设备类型信息是否与自身所携带的一致,其中,第二节点中上述信息一致的节点可以进入OTA状态,接收后续第一节点所发送的数据包,第二节点中上述信息不一致的节点不进入OTA状态,同时,不会接收后续第一节点所发送的数据包。

步骤303:第一节点向网状网络中的至少部分第二节点发送固件数据包。其中,固件数据包有多个。

具体地说,第一节点可以利用广播信道向网状网络中的至少部分第二节点发送固件数据包,其中,各份固件数据包均用相应的索引号标识,第一节点每发送成功一份固件数据包,可以记录该固件数据包的索引号,直至发送完所有的固件数据包。根据记录的固件数据包的索引号,可以确保所有的固件数据包均发送成功。例如固件被切分为1000个包,索引号可以从0到999进行编号。

网状网络中的所有上述第二节点接收到第一节点发送的固件数据包后,根据固件数据包的索引号,将接收到的固件数据包存储到预设位置,同时,可以在OTA区域的标识区内以标识信息的形式标识固件数据包的接收状态。例如,标识区内的比特可以用来标识固件数据包的接收状态,当一份固件数据包接收成功后,该数据包在标识区内对应的比特可以由原先的0转换为1,当标识区内的对应所有固件数据包的索引号的比特均由0转换为1时,则表示第一节点发送的所有固件数据包均被第二节点接收成功。

需要说明的是,根据第二节点对固件数据包的接收状态,第一节点可以将当前的OTA进度信息反馈给终端,且OTA进度每增加预设百分比,第一节点均可以向终端发送当前的OTA进度信息。例如,蓝牙低功耗灯需要广播1千个固件数据包给其他节点,每发送10个包,就向控制手机回报进度1%,这样手机可以向用户显示反映进度的信息。

步骤304:第一节点向网状网络中的至少部分第二节点发送OTA结束命令。其中,OTA结束命令中携带固件长度信息、固件数据包的个数信息以及固件的校验值信息。

具体地说,第一节点向网状网络中的至少部分第二节点发送OTA结束命令,根据第二节点对OTA结束命令的接收状态,第一节点可以向终端发送当前的OTA进度信息。例如,第一节点可以向终端发送当前的OTA进度为96%。需要说明的是,进度没有设定100%是因为此时还不能确认所有节点都OTA成功。

步骤305:第一节点向网状网络中的至少部分第二节点发送OTA读取结束命令。

具体地说,第一节点可以利用广播信道向网状网络中的至少部分第二节点发送OTA读取结束命令,第二节点接收到OTA读取结束命令后,会向第一节点发送读取结束反馈信息,第一节点根据第二节点发送的读取结束反馈信息,向第二节点重新发送OTA结束命令与OTA读取结束命令。在实际应用中,为了避免大量的反馈信息,上述第二节点可以在未接收到相对应的OTA结束命令的情况下,向第一节点发送读取结束反馈信息。第一节点在接收到第二节点发送的读取结束反馈信息时,可以重新发送OTA结束命令与OTA读取结束命令。

例如,第一节点向网状网络中的所有第二节点发送OTA读取结束命令后,第二节点中的某个节点根据OTA读取结束命令,获知自身未成功接收第一节点发送的OTA结束命令,则该节点可以将未接收到OTA结束命令的信息反馈给第一节点,第一节点在接收到该节点的反馈信息后,可以向该节点重新发送OTA结束命令与OTA读取结束命令,确保所有的第二节点均成功接收到OTA结束命令。当第一节点连续1.5秒没有收到第二节点中任一节点的反馈信息时,则认为所有第二节点均成功接收到OTA结束命令,并退出OTA读取结束命令,继续执行下一步骤。

需要说明的是,在本步骤中,第一节点可以向终端发送当前的OTA进度信息。例如,第一节点可以向终端发送当前的OTA进度为97%。

步骤306:第一节点向网状网络中的至少部分第二节点发送OTA读取标识命令。

具体地说,第一节点可以利用广播信道向网状网络中的至少部分第二节点发送OTA读取标识命令,第一节点还可以接收第二节点发送的读取标识反馈信息,并且可以根据第二节点发送的读取标识反馈信息,重新向第二节点发送第二节点未接收成功的固件数据包与OTA读取标识命令。在实际应用中,上述第二节点可以在固件数据没有接收完整的情况下,向第一节点发送读取标识反馈信息。上述读取标识反馈信息携带有第二节点对固件数据包的接收信息,其中,接收信息通过编码的形式标识第二节点是否接收到某个或者某几个固件数据包。第一节点在接收到第二节点发送的读取标识反馈信息时,对接收信息进行汇总,并根据汇总结果重新向第二节点发送第二节点未接收成功的固件数据包与OTA读取标识命令。

更具体地说,网状网络中的第二节点可以根据OTA结束命令中携带的固件数据包的个数信息以及步骤303中获取的标识区内的标识信息,可以判断是否自己成功接收到固件数据包,若判断结果为丢失了某个数据包,或者某几个数据包,则上述节点可以将所丢失数据包的索引号信息以编码的形式发送给第一节点。例如,如果固件长度一共有10个数据包,某个节点没有收到第二个和第八个数据包,则反馈的BitMap是1011111011。

当第一节点接收到上述节点反馈的索引号信息时,进行汇总,把重复的索引号合并。例如,第一节点从第二节点A收到的反馈是1011111011,从第二节点B收到的反馈是0111101111,则汇总后的信息为0011101011,其中0的位置标识网络中发送不成功的数据包。第一节点通过广播信道重新向所有第二节点发送未发送成功的固件数据包与OTA读取标识命令,直至发出OTA读取标识命令后,连续预设时间没有收到任何反馈信息,则认为所有第二节点均成功收到所有固件数据包。

例如,当第一节点接收到的反馈信息为需要重发的数据包的个数超过32个,或者第一节点连续1.5秒没有收到反馈信息时,第一节点将停止接收第二节点的反馈信息,退出当前读取反馈信息的命令,并通过广播信道重新向所有第二节点发送固件数据包与OTA读取标识命令,直至发出OTA读取标识命令后,连续1.5秒没有收到任何反馈信息,则认为所有第二节点均成功收到所有固件数据包。

需要说明的是,在本步骤中,第一节点可以向终端发送当前的OTA进度信息。例如,第一节点可以向终端发送当前的OTA进度为98%。

步骤307:第一节点向网状网络中的至少部分第二节点发送OTA读取校验结果命令。

具体地说,第一节点可以利用广播信道向网状网络中的至少部分第二节点发送OTA读取校验结果命令,并可以接收第二节点发送的校验结果反馈信息。在实际应用中,第二节点可以在校验失败的情况下,向第一节点发送校验结果反馈信息。

更具体地说,第一节点向网状网络中的至少部分第二节点发送OTA读取校验结果命令后,上述第二节点可以根据OTA结束命令中携带的固件长度信息以及接收到的固件数据包,计算出本地校验值,并且将上述计算出的本地校验值与OTA结束命令中携带的固件的校验值进行比较,当比较结果为二者相同时,则表明校验成功,相应的,若比较结果为二者不同,则表明校验失败。同时,第二节点可以在校验失败的情况下,向第一节点发送校验结果反馈信息。

需要说明的是,在本步骤中,第一节点可以向终端发送当前的OTA进度信息。例如,第一节点可以向终端发送当前的OTA进度为99%。

本发明实施方式中,网状网络中的第二节点若校验成功,则可以显示某种状态,例如,蓝牙低功耗灯慢闪一定的时间,第二节点若校验失败,则可以显示另一种状态,例如,快闪一定的时间。无论第二节点是否校验成功,在校验后,第二节点均进行OTA重启,此时校验成功的节点会运行新的固件,而校验不成功的节点仍然会运行旧的固件。

本发明实施方式中,若第一节点连续预设时间没有收到校验信息反馈,则认为所有第二节点已经全部反馈完成,同时,退出读取校验值结果的过程,继续等待OTA指示以及重启时间,此时第一节点可以向终端发送当前的OTA进度为100%。

步骤308:第一节点或者终端通过读取第二节点的反馈信息或者版本信息,判断是否所有第二节点OTA成功。

具体地说,在第二节点完成OTA升级后,终端可以通过读取网状网络中所有第二节点的版本信息或者通过第一节点读取所有第二节点的OTA升级状态,判断是否所有第二节点均OTA成功,若判断结果为有未OTA成功的第二节点,则返回步骤302,第一节点可以利用广播信道重新向上述第二节点发送OTA升级命令,其中,第二节点中已OTA成功的节点会忽略上述OTA升级命令,第二节点中未OTA成功的节点接收到上述OTA升级命令后,重新进行OTA。根据实际实现方式,重复升级的次数可以配置。若判断结果为所有第二节点均OTA成功,则表明网状网络中所有节点均OTA成功,从而,可以结束整个流程。

本实施方式中,第一节点通过向网状网络中的至少部分第二节点发送OTA启动命令、固件数据包以及OTA结束命令,对所有上述第二节点进行OTA,使网状网络中所有节点进行OTA更方便可行。在所有第二节点进行OTA后,终端可以判断是否所有的第二节点均OTA成功,在有未OTA成功的第二节点时,第一节点可对第二节点重新进行OTA,这样,可确保网状网络中所有的第二节点OTA成功。

本发明的第三实施方式涉及一种网状网络中的节点升级方法。该升级方法应用于网状网络中的第二节点,其中,第二节点为网状网络中的除第一节点以外的其他节点,第一节点为网状网络中任一节点,网状网络中包括N个节点,其中,N为大于1的自然数。该网状网络中的节点升级方法的具体流程如图4所示,包括:

步骤401:第二节点接收到第一节点发送的OTA启动命令后,在判定待升级固件的版本号信息、设备类型信息与自身所携带的一致时,进入OTA状态。其中,OTA启动命令中携带待升级固件的信息与设备类型信息,上述待升级固件的信息包括固件的版本号信息与固件数据包的索引号信息。

具体地说,网状网络中的所有第二节点接收到OTA启动命令后,可以判断启动命令中携带的待升级固件的版本号信息、设备类型信息是否与自身所携带的一致,其中,第二节点中上述信息一致的节点可以进入OTA状态,接收后续第一节点所发送的数据包,第二节点中上述信息不一致的节点不进入OTA状态,同时,不会接收后续第一节点所发送的数据包。

步骤402:第二节点接收到第一节点发送的固件数据包后,根据OTA启动命令中携带的固件数据包的索引号信息,将固件数据包存储到预设位置,并以标识信息的形式记录固件数据包的接受状态。

例如,标识区内的比特可以用来标识固件数据包的接收状态,当一份固件数据包接收成功后,该数据包在标识区内对应的比特可以由原先的0转换为1,当标识区内的对应所有固件数据包的索引号的比特均由0转换为1时,则表示第一节点发送的所有固件数据包均被第二节点接收成功。

步骤403:第二节点接收第一节点发送的OTA结束命令,并识别OTA结束命令中携带的固件长度信息、固件数据包的个数信息以及固件的校验值信息。

步骤404:第二节点接收到第一节点发送的OTA读取结束命令后,向网状网络中的第一节点发送读取结束反馈信息。

具体地说,第二节点接收到第一节点发送的OTA读取结束命令后,会向第一节点发送读取结束命令反馈信息。在实际应用中,为了避免大量的反馈信息,上述第二节点可以只在未接收到相对应的OTA结束命令的情况下,向第一节点发送读取结束反馈信息。第一节点在接收到第二节点发送的读取结束反馈信息后,可以重新发送OTA结束命令与OTA读取结束命令。

步骤405:第二节点接收到第一节点发送的OTA读取标识命令后,根据固件数据包个数信息与标识信息,向第一节点发送读取标识反馈信息。

具体地说,第二节点接收到第一节点发送的OTA读取标识命令后,可以根据OTA结束命令中携带的固件数据包个数信息与标识信息,向第一节点发送读取标识反馈信息。在实际应用中,上述第二节点可以仅在固件数据没有接收完整的情况下,向第一节点发送读取标识反馈信息。

更具体地说,第二节点根据OTA结束命令中携带的固件数据包的个数信息以及步骤402中获取的标识区内的标识信息,可以判断是否自己成功接收到固件数据包,若判断结果为丢失了某个数据包,或者某几个数据包,则上述节点可以将所丢失数据包的索引号信息以编码的形式发送给第一节点。例如,如果固件长度一共有10个数据包,某个节点没有收到第二个和第八个数据包,则反馈的BitMap是1011111011。

步骤406:第二节点接收到第一节点发送的OTA读取校验结果命令后,根据固件长度信息与固件的校验值信息,向第一节点发送校验结果反馈信息。

具体地说,第二节点接收到第一节点发送的OTA读取校验结果命令后,可以根据OTA结束命令中携带的固件长度信息与固件的校验值信息,计算出本地校验值,并且将上述计算出的本地校验值与OTA结束命令中携带的固件的校验值进行比较,当比较结果为二者相同时,则表明校验成功,相应的,若比较结果为二者不同,则表明校验失败。在实际应用中,第二节点可以仅在校验失败的情况下,向第一节点发送校验结果反馈信息。

本发明实施方式中,网状网络中的第二节点若校验成功,则可以显示某种状态,例如,蓝牙低功耗灯慢闪一定的时间,第二节点若校验失败,则可以显示另一种状态,例如,快闪一定的时间。无论第二节点是否校验成功,在校验后,第二节点均进行OTA重启,此时校验成功的节点会运行新的固件,而校验不成功的节点仍然会运行旧的固件。

步骤407:第二节点在OTA失败时,通过再次接收OTA升级命令,重新进行OTA。

具体地说,在第二节点完成OTA升级后,终端可以通过读取网状网络中所有第二节点的版本信息或者通过第一节点读取所有第二节点的OTA升级状态,判断是否所有第二节点均OTA成功,若第二节点中有节点OTA失败,则所有第二节点可以再次接收第一节点发送的OTA升级命令,其中已OTA成功的第二节点可以忽略再次接收的OTA升级命令,OTA失败的第二节点在再次接收到OTA升级命令后,可以重新进行OTA。

本实施方式中,网状网络中的所有第二节点通过接收第一节点发送的OTA启动命令、固件数据包以及OTA结束命令,进行OTA,并且,在第二节点中有节点丢失数据包时,可重新进行OTA,使得网状网络中所有节点进行OTA更方便可行。在所有第二节点进行OTA后,OTA失败的第二节点可以通过再次接收OTA升级命令,重新进行OTA。这样,可确保网状网络中所有的第二节点OTA成功。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

不难发现,本实施方式为与第二实施方式相对应的应用于第二节点的网状网络中的节点升级方法的实施例,本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。

本发明的第四实施方式涉及一种网状网络中的节点升级系统,如图5所示,该网状网络中的节点升级系统500包括:终端501、第一节点502与第二节点503,第一节点502为网状网络所包括的N个节点中的任一节点,第二节点503为网状网络中除第一节点之外的其他节点,其中,N为大于1的自然数。

终端501用于通过向第一节点502发送OTA升级指令,与第一节点502进行信息交互。具体地说,通过一对一的方式,终端501可以向第一节点502发送OTA升级指令,第一节点502根据接收到的OTA升级指令,升级到新的固件,完成OTA升级。在第一节点502完成OTA升级后,终端501还可以重新连接第一节点502,并通过读取第一节点502升级后的固件版本号确认第一节点502是否OTA成功,若确认第一节点502未OTA成功,则终端501可以重新向第一节点502发送OTA升级指令,直至第一节点502均OTA成功。

第一节点502用于根据终端501的指令,进行OTA,第一节点502还用于在完成OTA后,利用广播信道同时对网状网络中的至少部分第二节点503进行OTA。

第二节点503用于在接收第一节点502利用广播信道发送的OTA升级命令后,进行OTA。

本发明实施方式中,终端501可以包括指令发送模块5011与判断模块5012。

指令发送模块5011用于向第一节点502发送OTA升级指令。

判断模块5012用于在第一节点502利用广播信道同时对网状网络中的至少部分第二节点503进行OTA后,通过读取第二节点503的版本信息,判断是否所有第二节点503均OTA成功,若有未OTA成功的第二节点503,指令发送模块5012还用于重新向第一节点502发送OTA指令。

本发明实施方式中,第一节点502可以包括第一升级模块5021、第一发送模块5022与第一接收模块5023。

第一升级模块5021用于根据终端501的指令,进行OTA。具体地说,第一节点的第一升级模块5021可以根据第一接收模块5023接收到的终端指令,升级到新的固件,完成OTA升级。

第一发送模块5022用于在完成OTA后,利用广播信道同时对网状网络中的至少部分第二节点503发送OTA升级指令。

第一接收模块5023用于接收终端501发送的OTA升级指令,还用于接收第二节点503在接收到OTA指令后发送的反馈信息。

本发明实施方式中,第二节点503可以包括第二升级模块5031、第二接收模块5032与第二发送模块5033。

第二升级模块5031用于在接收到第一节点502发送的OTA升级指令时,进行OTA。

第二接收模块5032用于接收第一节点502发送的OTA升级指令。

第二发送模块5033用于在接收到第一节点502发送的OTA升级指令时,向第一节点502发送反馈信息。

本发明实施方式相对于现有技术而言,网状网络中的第一节点可以根据终端指令,进行OTA,且第一节点在完成OTA后,可以利用广播信道同时控制网状网络中的至少部分第二节点进行OTA,这样,网状网络中一个节点升级成功后,可利用广播信道控制剩余的节点同时进行固件升级,有利于缩短节点的升级时间,提高节点的升级效率。同时,网络节点的升级时间大幅缩短,使得网络的节点数目也可以做到数千节点的规模,大大增加了应用的范围。

不难发现,本实施方式为与第一实施方式相对应的系统实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

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