The present invention relates to communications, and more particularly, to a method and system for upgrading nodes in a mesh network.
Mesh network is a network where data and control instructions are communicated by dynamic routing or broadcasting among network nodes, wherein the network nodes can be intelligent lighting bulbs or lamps, intelligent home nodes, intelligent city nodes, sensor network nodes, or other internet of things equipment. For example, in case of Bluetooth Low Energy Mesh), one of the most important applications is the intelligent home or intelligent building lighting system, wherein the data transmission of the network is realized by broadcasting, and there may be hundreds or thousands of nodes in a network, including smart bulbs, smart switches, sensors, and so on. In the prior art, in order to upgrade nodes in a mesh network, it is necessary to connect a control device (such as, a smart phone, and etc.) with the nodes in the mesh network, and then update those nodes one by one.
The inventors of the present invention have found that there are at least the following problems in the prior art: due to the fact that each node in the mesh network can only be upgraded one by one, the time required for upgrading a network increases linearly as the number of network nodes increases. In a network which includes hundreds or thousands of nodes, the upgrading efficiency thereof will be very low, and thereby the size of the mesh network will be limited.
An embodiment of the present invention provides a node upgrading method in a mesh network, which is applied to a first node in the mesh network, the first node is any node in the mesh network, and the mesh network includes N nodes, where N is a natural number greater than 1. The node upgrading method in the mesh network comprises: the first node performing wireless firmware OTA (Over-the-Air) upgrade according to terminal instruction; the first node using a broadcast channel to simultaneously perform OTA upgrade on at least part of the second nodes in the mesh network after completion of the OTA; wherein the second node is a node other than the first node in the mesh network. Take the BLE Mesh lighting network as an example, the first node can be any bulb in the network, mobile phones or other control devices can be directly connected to the node and perform wireless firmware OTA upgrade for this first node, or transmit firmware of other nodes wirelessly to the first node. The first node upgrades all the other devices in the network at the same time by broadcasting. In some embodiments, the control device and the first node may both reside in a physical device (e.g., a gateway node), either as a control device or as a network node. For network upgrades, it is also possible to upgrade only some of the nodes, such as a lighting system, only to upgrade the Bluetooth low-power bulbs, or only to upgrade all the photosensitive sensor nodes.
Embodiments of the present invention also provide a node upgrading method in a mesh network, which is applied to a second node in a mesh network, the second node being a node other than the first node in the mesh network, the first node is any node in the mesh network, and the mesh network comprises N nodes, wherein N is a natural number greater than 1; the node upgrading method in the mesh network comprises: the second node performs an OTA by receiving an OTA upgrade command sent by the first node using a broadcast channel; when the second node fails in the OTA, it re-performs the OTA by re-receiving the OTA upgrade command.
Embodiments of the present invention also provide a node upgrading system in a mesh network, comprising: a terminal, a first node and a second node, the first node being any one of N nodes included in the mesh network, and the second node is a node other than the first node in the mesh network, wherein N is a natural number greater than 1; the terminal being operable to communicate with the first node by sending an OTA upgrade instruction to the first node; the first node being configured to perform an OTA according to a terminal instruction; the first node being further configured to simultaneously perform OTA upgrade on at least part of the second nodes in the mesh network using a broadcast channel after completion of the OTA; and the second node being configured to perform OTA after receiving the OTA upgrade instruction sent by the first node using the broadcast channel.
With respect to the prior art, in the embodiments of the present invention, the first node in the mesh network may perform OTA according to the terminal instructions, and the first node, after completing the OTA, can use the broadcast channel to simultaneously control at least part of the second nodes in the mesh network for the OTA. In this way, after a node in the mesh network is successfully upgraded, it can use the broadcast channel to control the remaining nodes to upgrade the firmware at the same time, which can shorten the upgrade time of the node and improve the efficiency of the node. Meanwhile, the upgrade time of the network node is greatly shortened, so that the number of nodes in the network can also be up to a scale of thousands of nodes, and thus greatly broadening the application scope.
Furthermore, the node upgrading method in the mesh network further comprises: after the first node uses the broadcast channel to simultaneously perform OTA upgrade on at least part of the second nodes in the mesh network, the first node or the terminal determines whether the OTA upgrade is successful for all the second nodes by reading the feedback information or the version information of the second node. If there is one or more second nodes that the OTA upgrade has not been successfully performed, then the first node uses the broadcast channel to simultaneously perform the OTA upgrade on the one or more second node in the mesh network, again.
In the embodiments of the present invention, after the OTA upgrade is carried out at the second node, the terminal can determine whether all the second nodes have been successfully OTA upgraded. In case there is one or more second nodes that are not successfully OTA upgraded, the first node may re-perform the OTA on the one or more second nodes, and thus, it is ensured that all second nodes in the mesh network can be successfully OTA upgraded. Furthermore, the use of a broadcast channel to simultaneously perform OTA upgrade on at least part of the second nodes in the mesh network may comprise: after the first node receives a mesh network OTA start command sent by the terminal, it sends an OTA start command to at least part of the second nodes in the mesh network, the start command carries information and device type information of a firmware to be upgraded, wherein the information of the firmware to be upgraded includes the version number information of the firmware and the index number information of the firmware packet; the first node sends the firmware packet to at least part of the second nodes in the mesh network, and there are a plurality of the firmware packets; the first node sends an OTA end command to at least part of the second nodes in the mesh network, the end command carries the firmware length information, the number of firmware packets, and the check value information of the firmware. In the embodiments of the present invention, the first node sends an OTA start command, a firmware packet, and an OTA end command to at least part of the second nodes in the mesh network to perform the OTA upgrade on the second node so that it is more convenient and feasible for all the above nodes in the mesh network to perform OTA.
Furthermore, after the first node sends an OTA end command to at least part of the second nodes in the mesh network, it further comprises: the first node sends an OTA read end command to at least part of the second nodes in the mesh network; the first node resends the OTA end command and the OTA read end command to the second node according to the read end feedback information sent by the second node; the first node sends an OTA read identification command to at least part of the second nodes in the mesh network; the first node resends the firmware packets unsuccessfully received by the second node and the OTA read identification command to the second node according to the read identification feedback information sent by the second node; the first node sends an OTA read check result command to at least part of the second nodes in the mesh network and receives the check result feedback information sent by the second node. The embodiments of the present invention ensure that at least part of the second nodes in the mesh network can succeed in OTA.
Furthermore, the first node resending the firmware packets unsuccessfully received by the second node and the OTA read identification command to the second node when it receives the read identification feedback information sent by the second node may comprise steps as follows. The first node receives read identification feedback information sent by the second node, the read identification feedback information carrying the receiving information of the second node on the firmware packets, wherein the receiving information identifies whether the second node has received one or more firmware packets or not in an encoded format. When the first node receives the read identification feedback information sent by the second node, it summarizes the receiving information, and resends the firmware packets unsuccessfully received by the second node and the OTA read identification command to the second node according to the summary result. In the embodiments of the present invention, the read identification feedback information sent by the second node includes receiving information that one or several packets are not successfully received in the entire firmware transmission sequence. The first node combines the packets that are not successfully received by the second node by summarizes the identification information, and resends those firmware packets that are not successfully received by the second node and OTA read identification command to the second node by broadcasting. In this way, when resending a firmware packet that has not been successfully received by the second node, the first node can determine which part of the packet is not received successfully based on the feedback information, and thus, the first node can send only those packets that are not successfully received without having to re-send the entire packet required for the upgrade.
To clarify the purpose, technical solutions and advantages of the present invention, the embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, it will be understood by those of ordinary skill in the art that many technical details have been provided for better understanding of the present application. However, even without these technical details and variations and modifications based on the following embodiments, the technical solutions of the present application can also be implemented.
The first embodiment of the present invention relates to a node upgrading method in a mesh network applied to a first node 102 in a mesh network as shown in
Taking the BLE Mesh lighting system as an example, as shown in
The node upgrading method in the mesh network according to the present embodiment, as shown in
Step 201: the first node performs a wireless firmware OTA upgrade according to the terminal instruction.
Specifically, the terminal may send an OTA upgrade instruction to the first node, in a one-to-one way, and the first node upgrades to the new firmware according to the received terminal instruction to complete the OTA upgrade. After the first node completes the OTA upgrade, the terminal may also reconnect to the first node and confirm whether the first node is successful in the OTA upgrade by reading the firmware version number after upgrading the first node. If it is confirmed that the first node has not be successfully OTA upgraded, the terminal may re-send the OTA upgrade instruction to the first node until the first node succeeds in OTA.
For example, in a BLE Mesh network, the terminal may send a command to read the BLE attribute table (ATT table) to the first node, from the ATT table, the firmware version number after the first node upgrades can be obtained. Alternatively, the firmware version number after the first node upgrades can also be obtained by a specific mesh command, such as, an OTA version read command (CMD-OTA_ReadVer).
Step 202: The first node, after completing the OTA, uses the broadcast channel to simultaneously perform OTA upgrade on at least part of the second nodes in the mesh network.
In particular, after the first node succeeds in the OTA upgrade, the OTA upgrade command may be sent to at least part of the second nodes in the mesh network using the broadcast channel. After some of the nodes in the second node receive the OTA upgrade command sent by the first node, by multiple times of forwarding, all the second nodes can receive the OTA upgrade command and complete the OTA upgrade after receiving the OTA upgrade command. The first node may also receive the feedback information of all the second nodes to confirm the OTA upgrade status.
Step 203: The first node or the terminal determines whether all the second nodes are successful in the OTA upgrade by reading the feedback information or the version information of the second node.
Specifically, after the OTA upgrade is completed at the second node, the terminal can determine whether all the second nodes are successful in the OTA upgrade by reading the version information of all the second nodes in the mesh network, or by reading the OTA upgrade status of all the second nodes through the first node. If the result of the judgment is that there is one or more second nodes that fail in OTA upgrade, the process returns to step 202 where the first node may re-send the OTA upgrade command to the second node using the broadcast channel, wherein the second node which has been successful in OTA upgrade will ignore the OTA upgrade command, and the second node which has failed in the OTA upgrade will re-perform the OTA upgrade upon receiving the OTA upgrade command. Depending on the actual implementation, the number of times of repeated upgrades can be configured. If the result of the judgment is that all the second nodes are successful in OTA upgrade, that is, it is indicated that all nodes in the mesh network have succeeded in OTA, and then, the whole process can be ended.
With respect to the prior art, in the embodiments of the present invention, the first node in the mesh network may perform OTA according to the terminal instructions, and the first node, after completing the OTA, can use the broadcast channel to simultaneously control at least part of the second nodes in the mesh network to perform OTA. In this way, after a node in the mesh network is successfully upgraded, it can use the broadcast channel to control the remaining nodes to upgrade the firmware at the same time, which can shorten the upgrade time of the node and improve the efficiency of the node. Meanwhile, the upgrade time of the network node is greatly shortened, and the number of nodes in the network can also be up to a scale of thousands of nodes, and thereby the application scope of the OTA upgrading method is broadened greatly.
The second embodiment of the present invention relates to a node upgrading method in a mesh network. The present embodiment makes further refinement on the basis of the first embodiment, and proposes a specific implementation method in which the first node uses a broadcast channel to simultaneously perform OTA upgrade on at least part of the second nodes in the mesh network, as shown in
Step 301: the first node performs a wireless firmware OTA upgrade according to the terminal instruction.
Specifically, in a one-to-one way, the terminal may send an OTA upgrade instruction to the first node, and the first node upgrades to the new firmware according to the received terminal instruction to complete the OTA upgrade. After the OTA upgrade is completed at the first node, the terminal can also reconnect with the first node and confirm whether the first node is successful in the OTA upgrade by reading the firmware version number after upgrading the first node. If it is confirmed that the first node has not succeeded in the OTA upgrade, then the terminal may re-send the OTA upgrade instruction to the first node until the first node OTA succeeds in the OTA upgrade.
Step 302: after the first node receives the mesh network OTA start command sent by the terminal, the first node sends the OTA start command to at least part of the second nodes in the mesh network, wherein OTA start command carries the information of the firmware to be upgraded and the device type information. The information of the firmware to be upgraded includes the version number information of the firmware and the index number information of the firmware packet.
In particular, after the first node receives the mesh network OTA start command sent by the terminal, it can use the broadcast channel to send the OTA start command to at least part of the second nodes. After all the above-mentioned second nodes in the mesh network receive the OTA start command, they may determine whether the version number information of the firmware to be upgraded and the device type information carried in the start command are consistent with what they carried with their own, wherein the second nodes which carry consistent information can enter the OTA state and receive the subsequent data sent by the first node, while the second nodes which do not carry consistent information do not enter the OTA state, and do not receive the subsequent data sent by the first node.
Step 303: the first node sends the firmware packets to at least part of the second nodes in the mesh network, wherein there are a plurality of the firmware packets.
In particular, the first node may send a firmware packet to at least part of the second nodes in the mesh network using a broadcast channel, wherein each firmware packet is identified by a corresponding index number. The first node can record the index number of the firmware packet at each time a firmware packet is successfully sent until all the firmware packets have been sent. Depending on the recorded index number of the firmware packet, it is possible to ensure that all firmware packets are sent successfully. For example, the firmware is divided into 1000 packets, the index number can be numbered from 0 to 999.
After all the second nodes in the mesh network receive the firmware packets sent by the first node, according to the index number of the firmware packet, the received firmware packet is stored in a preset position. Meanwhile, the reception status of the firmware packet may be identified in the form of identification information in the identification area of the OTA area. For example, the bits in the identification area may be used to identify the reception status of the firmware packet, when a firmware packet is successfully received, and the corresponding bit of the packet in the identification area can be converted from the original 0 to 1. When all the bits of the index number corresponding to all the firmware packets in the identification area are changed from 0 to 1, all the firmware packets sent by the first node are received by the second node successfully.
It should be noted that, according to the reception status that the second node receives the firmware packet, the first node can feedback the current OTA progress information to the terminal, and each time when the OTA progress increases for a preset percentage, the first node can send the current OTA progress information to the terminal. For example, Bluetooth low power lamp needs to broadcast 1 thousand firmware packets to other nodes. Each time when 10 packets are sent, a progress of 1% is reported back to the control mobile phone, so that the mobile phone can display progress information to the user
Step 304: the first node sends an OTA end command to at least part of the second nodes in the mesh network, wherein OTA end command carries the firmware length information, the number of firmware packets, and the check value information of the firmware.
In particular, the first node sends an OTA end command to at least part of the second nodes in the mesh network, and the first node may send the current OTA progress information to the terminal according to the reception status of the second node to the OTA end command. For example, the first node can send the current OTA progress of 96% to the terminal. It should be noted that the progress is not set 100% because at this time it cannot be confirmed that all nodes are successful in OTA at that time.
Step 305: the first node sends an OTA read end command to at least part of the second nodes in the mesh network.
In particular, the first node may use the broadcast channel to send an OTA read end command to at least part of the second nodes in the mesh network, when the second node receives the OTA read end command, it sends the read end feedback information to the first node, and the first node resends the OTA end command and the OTA read end command to the second node according to the read end feedback information sent by the second node. In practical applications, in order to avoid a large amount of feedback information, the second node may send the read end feedback information to the first node without receiving the corresponding OTA end command. When the first node receives the read end feedback information sent by the second node, the first node can resend the OTA end command and the OTA read end command.
For example, after the first node sends the OTA read end command to all the second nodes in the mesh network, a node of the second nodes learns that it has not successfully received the OTA end command sent by the first node according to OTA read end command, and the node may feedback the information that it has not received the OTA end command to the first node. After receiving the feedback information of the node, the first node can resend the OTA end command and the OTA read end command to the node so as to ensure that all the second nodes have successfully received the OTA end command. When the first node has not received the feedback information of any node in the second nodes for 1.5 seconds, it is assumed that all the second nodes have successfully received the OTA end command, and then exits the OTA read end command and proceeds to the next step.
It should be noted that in this step, the first node may send the current OTA progress information to the terminal. For example, the first node can send the current OTA progress of 97% to the terminal.
Step 306: The first node sends an OTA read identification command to at least part of the second nodes in the mesh network.
In particular, the first node may send the OTA read identification command to at least part of the second nodes in the mesh network using the broadcast channel, the first node may also receive the read identification feedback information sent by the second node, and may re-send the firmware packet and the OTA read identification command which are not successfully received by the second node to the second node according to the read identification information sent by the second node. In practical applications, the second node may send read identification feedback information to the first node in case that the firmware data has not been received completely. The read identification feedback information carries the reception information of the second node to the firmware packet, wherein the reception information identifies, by coding, whether the second node has received some or a few firmware packets. The first node summarizes the reception information when receiving the read identification feedback information sent by the second node, and re-sends the firmware packet and the OTA read identification command which is not successfully received by the second node to the second node according to the summary result.
More specifically, the second node in the mesh network may determine whether the firmware packet has been successfully received by itself or not according to the number of the firmware data carried in OTA end command and the identification information in the identification area acquired in step 303. If it is determined that a certain packet or a certain number of packets is lost, the second node may send the index number information of the lost packet to the first node in the form of an encoded packet. For example, if the firmware length has a total of 10 packets, and a second node does not receive the second and eighth data packet, then the BitMap fed back is 1011111011.
When the first node receives the index information fed back by the above node, the first node merges the duplicate index numbers. For example, the feedback received by the first node from the second node A is 1011111011, the feedback from the second node B is 0111101111, then the summarized information is 0011101011, wherein the location of the 0 identifies an unsuccessful packet sent in the network. The first node re-sends the unsuccessful firmware packet and the OTA read identification command to all the second nodes through the broadcast channel until there is no any feedback for a continuous default time after the OTA read identification command is sent, and then it can be assumed that all second nodes have successfully received all the firmware packets.
For example, when the first node receives a feedback information that more than 32 packets should be re-sent, or the first node has received no feedback for 1.5 seconds, then the first node will stop receiving the feedback information of the second node and exit the present command of reading the feedback information, and re-send the firmware packet and the OTA read identification command to all the second nodes through the broadcast channel, until there is no any feedback for 1.5 seconds after the OTA read identification command is sent, and then it can be assumed that all second nodes have successfully received all the firmware packets.
It should be noted that in the above step, the first node may send the current OTA progress information to the terminal. For example, the first node can send the current OTA progress of 98% to the terminal.
Step 307: the first node sends an OTA read check result command to at least part of the second nodes in the mesh network.
Specifically, the first node may send the OTA read check result command to at least part of the second nodes in the mesh network using the broadcast channel and may receive the check result feedback information sent by the second node. In practical applications, the second node may send the check result feedback information to the first node in the case the check fails.
More specifically, after the first node sends an OTA read check result command to at least part of the second nodes in the mesh network, the aforesaid second node may calculate the local check value according to the firmware length information carried in OTA end command and the received firmware packet, and compares the calculated local check value with the check value of the firmware carried in OTA end command. When the comparison result is the same, it means that the check is successful. If the comparison result is different, the check fails. The second node may send the check result feedback information to the first node in the case the check fails.
It should be noted that in this step, the first node may send the current OTA progress information to the terminal. For example, the first node can send the current OTA progress of 99% to the terminal.
In the embodiments of the present invention, if the second node in the mesh network is successful in the check, a certain state may be displayed, for example, a Bluetooth low power lamp may slowly flashes for a certain amount of time. If the second node fails in the check, another status can be displayed, for example, quick flashing for a certain amount of time. Regardless of whether the second node is successful in the check, after the check, the second node will be started for OTA, and then the node which succeeds in the check will run the new firmware, and the node which fails will still run the old firmware.
In the embodiments of the present invention, if the first node did not receive the check information feedback for continuous preset time, then it is assumed that all the second nodes have completed the feedback, and meanwhile the first node exits the process of reading the result of the check value, and continues to wait for the OTA instruction and the restart time. At this time, the first node may send the current OTA progress of 100% to the terminal to 100%.
Step 308: the first node or the terminal determines whether all the second nodes are successful in OTA by reading the feedback information or the version information of the second node.
Specifically, after the second node completes the OTA upgrade, the terminal may determine whether all the second nodes are successful in OTA by reading the version information of all the second nodes in the mesh network or reading the OTA upgrade status of all the second nodes through the first node. If the determination result indicates that there is a second node fails in OTA, then the process returns to step 302, and the first node may re-send the OTA upgrade command to the second node using the broadcast channel. The second node which has been successful in OTA will ignore the OTA upgrade command, while the second node which has failed in OTA re-performs the OTA after receiving the OTA upgrade command. Depending on the actual implementation, the number of times of repeated upgrades can be configured. If the result of the determination indicates that all the second nodes are successful in OTA, it actually indicates that all nodes in the mesh network have succeeded in OTA, and then the whole process can be ended.
In the present embodiment, the first node performs an OTA on all the second nodes by sending an OTA start command, a firmware packet, and an OTA end command to at least part of the second nodes in the mesh network, and it is more convenient and feasible for all nodes in the mesh network to perform OTA. After the OTA upgrade is carried out on all the second nodes, the terminal can determine whether all the second nodes have succeeded in OTA, In the case there is one or more second nodes failed in OTA, the first node may re-perform the OTA on the second node, and this ensures that all the second nodes in the mesh network succeed in OTA. The third embodiment of the present invention relates to a node upgrading method in a mesh network. The upgrading method is applied to the second node in the mesh network, wherein the second node is a node other than the first node in the mesh network. The first node may be any node in the mesh network, and the mesh network includes N nodes, where N is a natural number greater than one. The specific flow of the node upgrading method in the mesh network is shown in
Step 401: after the second node receives the OTA start command sent by the first node, the second node enters OTA state when it is determined that the version number information of the firmware to be upgraded and the device type information coincide with what it carries with its own, wherein OTA start command carries the information of the firmware to be upgraded and device type information. The information of the firmware to be upgraded includes the version number information of the firmware and the index number information of the firmware packet. Specifically, after all the second nodes in the mesh network receive the OTA start command, they may determine whether the version number information of the firmware to be upgraded and the device type information carried in the start command are consistent with what they carried with their own, wherein the second nodes which carry consistent information can enter the OTA state and receive the subsequent data sent by the first node, while the second nodes which do not carry consistent information do not enter the OTA state, and do not receive the subsequent data sent by the first node.
Step 402: after the second node receives the firmware packet sent by the first node, the firmware packet is stored in a preset position according to the index number information of the firmware packet carried in OTA start command and the receipt status of the firmware packet is recorded in the form of identification information.
For example, the bits in the identification area may be used to identify the reception status of the firmware packet, when a firmware packet is successfully received, the corresponding bit of the packet in the identification area may be converted from the original 0 to 1. When all the bits of the index number corresponding to all the firmware packets in the identification area are changed from 0 to 1, all the firmware packets sent by the first node are received by the second node successfully.
Step 403: the second node receives the OTA end command sent by the first node, and identifies the firmware length information, the number of firmware packets, and the check value information of the firmware carried in OTA end command.
Step 404: after the second node receives the OTA read end command sent by the first node, the second node sends the read end feedback information to the first node in the mesh network. Specifically, after receiving the OTA read end command sent by the first node, the second node sends the read end command feedback information to the first node. In a practical application, in order to avoid a large amount of feedback information, the second node may send the read end feedback information to the first node only, without receiving the corresponding OTA end command. When the first node receives the read end feedback information sent by the second node, the first node can resend the OTA end command and the OTA read end command.
Step 405: after receiving the OTA read identification command sent by the first node, the second node sends the read identification feedback information to the first node based on the firmware packet number information and the identification information.
Specifically, after the second node receives the OTA read identification command sent by the first node, it may send the read identification feedback information to the first node according to the number of firmware packets and the identification information carried in OTA end command. In a practical application, the second node may send read identification feedback information to the first node only in the case that the firmware data is not received intact. More specifically, the second node may determine whether or not to successfully receive the firmware packet according to the number of the firmware data carried in OTA end command and the identification information in the identification area acquired in step 402. If the result of the determination is that a certain packet or a certain number of packets is lost, the aforesaid node may send the index number information of the lost packet to the first node in the form of an encoded packet. For example, if the firmware length has a total of 10 packets, a node does not receive the second and eighth data packet, the feedback BitMap is 1011111011.
Step 406: the second node, after receiving the OTA read check result command sent by the first node, sends the check result feedback information to the first node based on the firmware length information and the check value information of the firmware.
Specifically, after receiving the OTA read check result command sent by the first node, the second node may calculate the local check value according to the firmware length information and firmware checksum information carried in OTA end command, and compares the calculated local check value with the check value of the firmware carried in OTA end command. When the comparison result shows they are the same, it means that the check is successful. If the comparison result shows they are different, then the check fails. In practical applications, the second node may send the check result feedback information to the first node only in case that the check fails.
In the embodiments of the present invention, if the check for the second node in the mesh network is successful, a certain state may be displayed, for example, a Bluetooth low power lamp slow flashes for a certain amount of time. If the second node fails in the check, another status can be displayed, for example, quick flashing for a certain amount of time. Regardless of whether the second node is successful in the check, after the check, the second node will perform an OTA restart operation. The nodes which succeed in the check will run the new firmware, and the nodes which fail in the check will still run the old firmware.
Step 407: the second node re-performs the OTA by re-receiving the OTA upgrade command when it fails in the OTA.
Specifically, after the second node completes the OTA upgrade, the terminal may determine whether all the second nodes are successful in the OTA by reading the version information of all the second nodes in the mesh network or reading the OTA upgrade status of all the second nodes through the first node. If the result of the determination is that there is a second node fails in the OTA, all the second nodes may receive the OTA upgrade command sent by the first node again, wherein the second nodes which have been successful in OTA will ignore the OTA upgrade command, and the second nodes which have failed in OTA re-perform the OTA after receiving the OTA upgrade command again.
In the present embodiment, all the second nodes in the mesh network perform OTA by receiving the OTA start command, the firmware packet, and the OTA end command sent by the first node. Also, when one of the second nodes has lost a packet, the OTA can be re-performed, making it easier for all nodes in the mesh network to perform OTA. After the OTA is performed on all the second nodes, the second nodes that failed the OTA can re-perform the OTA by receiving the OTA upgrade command again. This ensures that all second node OTAs in the mesh network succeed in the OTA.
The division of the steps of the above methods is only for the sake of clarity. It should be understood that, when carried out, multiple steps can be combined into one step or broken down into multiple steps, as long as the logical relationship remains the same, all should fall within the scope of this application. An insignificant modification added or an insignificant design introduced to the algorithm or process without changing the main principle of the algorithm and process is within the scope of the present application.
It is not difficult to find that the present embodiment is an embodiment of a node upgrading method in a mesh network applied to a second node corresponding to the second embodiment, and the present embodiment can be implemented in cooperation with the second embodiment. The related technical details mentioned in the second embodiment are still valid in the present embodiment, and the repetition thereof is not repeated here. Accordingly, the related technical details mentioned in the present embodiment can also be applied in the second embodiment. The fourth embodiment of the present invention relates to a node upgrading system in a mesh network, as shown in
The terminal 501 is used to communicate with the first node 502 by sending an OTA upgrade instruction to the first node 502. Specifically, in a one-to-one way, the terminal 501 may send an OTA upgrade instruction to the first node 502, and the first node 502 upgrades to the new firmware according to the received terminal instruction, so as to complete the OTA upgrade. After the OTA upgrade is completed at the first node 502, the terminal 501 can also reconnect the first node 502 and confirm whether the first node 502 is successful in the OTA by reading the firmware version number after upgrading the first node 502. If it is confirmed that the first node 502 has not succeeded in the OTA, the terminal may re-send the OTA upgrade instruction to the first node 502 until the first node 502 succeeds in the OTA.
The first node 502 is used to perform OTA according to the instructions of the terminal 501, and the first node 502 is also used to simultaneously perform OTA upgrade on at least part of the second nodes 503 in the mesh network using the broadcast channel after the completion of OTA. The second node 503 performs the OTA after receiving the OTA upgrade command sent by the first node 502 via the broadcast channel.
In the embodiment of the present invention, the terminal 501 may include an instruction sending module 5011 and a judgment module 5012.
The instruction sending module 5011 is configured to send the OTA upgrade instruction to the first node 502.
The judgment module 5012 is configured to determine whether all the second nodes 503 succeed in the OTA by reading the version information of the second node 503 after the first node 502 uses the broadcast channel to simultaneously perform the OTA upgrade on at least part of the second nodes 503 in the mesh network. If there is a second node 503 that has not succeeded in OTA, the instruction sending module 5012 may be further configured to re-send the OTA instruction to the first node 502.
In the embodiments of the present invention, the first node 502 may include a first upgrade module 5021, a first sending module 5022, and a first reception module 5023.
The first upgrade module 5021 is configured to perform OTA according to the instruction from the terminal 501. Specifically, the first upgrade module 5021 of the first node may upgrade to the new firmware according to the terminal command received by the first receiving module 5023 to complete the OTA upgrade.
The first sending module 5022 is configured to simultaneously send an OTA upgrade instruction to at least part of the second nodes 503 in the mesh network using the broadcast channel, after completion of the OTA.
The first receiving module 5023 is configured to receive the OTA upgrade instruction sent by the terminal 501 and further configured to receive the feedback information sent by the second node 503 after receiving the OTA instruction.
In the embodiments of the present invention, the second node 503 may include a second upgrade module 5031, a second reception module 5032, and a second sending module 5033.
The second upgrade module 5031 is configured to perform the OTA upon receiving the OTA upgrade instruction sent by the first node 502.
The second receiving module 5032 is configured to receive an OTA upgrade instruction sent by the first node 502.
The second sending module 5033 is configured to send the feedback information to the first node 502 upon receiving the OTA upgrade instruction sent by the first node 502.
When compared with the prior art, in the embodiments of the present invention, the first node in the mesh network may perform OTA according to the terminal instructions, and the first node, after completing the OTA of itself, can use the broadcast channel to simultaneously control at least part of the second nodes in the mesh network to perform the OTA. In this way, after a node in the mesh network is successfully upgraded, it can use the broadcast channel to control the remaining nodes to upgrade the firmware at the same time, which can shorten the upgrade time of the nodes and improve the efficiency of the nodes. Meanwhile, the upgrade time of the network node is greatly shortened, so that the number of nodes in the network can also be up to a scale of thousands of nodes, and thereby the application scope is broadened greatly.
It is not difficult to find that the present embodiment is a system embodiment corresponding to the first embodiment, and the present embodiment can be implemented in cooperation with the first embodiment. The related technical details mentioned in the first embodiment are still valid in the present embodiment, and the repetition thereof is not repeated here. Accordingly, the related technical details mentioned in the present embodiment can be applied to the first embodiment.
It will be understood by those of ordinary skill in the art that the above-described embodiments are intended to embody the embodiments of the invention and that, in practical applications, various changes may be made in form and details, without departing from the spirit and scope of the invention range.
Number | Date | Country | Kind |
---|---|---|---|
201710028083.9 | Jan 2017 | CN | national |
This application is based on International Application No. PCT/CN2017/118878, filed on Dec. 27, 2017, which claims priority to Chinese Patent Application No. 201710028083.9, filed on Jan. 12, 2017, the entire contents thereof are incorporated herein by reference.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CN2017/118878 | 12/27/2017 | WO | 00 |