[go: up one dir, main page]

WO2013006690A2 - Mesh network fragmented upgrade method - Google Patents

Mesh network fragmented upgrade method Download PDF

Info

Publication number
WO2013006690A2
WO2013006690A2 PCT/US2012/045532 US2012045532W WO2013006690A2 WO 2013006690 A2 WO2013006690 A2 WO 2013006690A2 US 2012045532 W US2012045532 W US 2012045532W WO 2013006690 A2 WO2013006690 A2 WO 2013006690A2
Authority
WO
WIPO (PCT)
Prior art keywords
end point
blocks
packets
upload
point systems
Prior art date
Application number
PCT/US2012/045532
Other languages
French (fr)
Other versions
WO2013006690A3 (en
Inventor
Ghaith Haddad
Original Assignee
Petra Solar, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Petra Solar, Inc. filed Critical Petra Solar, Inc.
Publication of WO2013006690A2 publication Critical patent/WO2013006690A2/en
Publication of WO2013006690A3 publication Critical patent/WO2013006690A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories

Definitions

  • a computer network often simply referred to as a network, is a collection of computers and other hardware components interconnected by communication channels that allow sharing of resources and information. Where at least one process in one device is able to send/receive data to/from at least one process residing in a remote device, then the two devices are said to be in a network. Simply, more than one computer interconnected through a communication medium for information interchange is called a computer network.
  • Upgrading may be provided. First, an application binary file may be fragmented into a plurality of blocks. Each of the plurality of blocks may have a respective plurality of packets. Next, a first plurality of packets corresponding to a first one of the plurality of blocks may be uploaded to a plurality of end point systems within a time period for which the plurality of end point systems are powered by daylight.
  • FIG. 1 shows an upgrading system
  • FIG. 2 shows an access point
  • FIG. 3 is a state diagram setting forth the general stages involved in a method for providing uploads.
  • FIG. 4 is a state diagram setting forth the general stages involved in a method for providing transfer error recovery.
  • the AP may have a facility to upload any new firmware for the modules in order to transmit them over the ZigBee pipe to either individual modules or an entire network.
  • the new firmware may split the firmware data into chunks (e.g. blocks) and then into packets before transmitting them, for example, over the air to the modules.
  • the modules may then save the firmware packets into local memory meant for the new firmware.
  • a firmware upload may be initiated in the following two modes: i) normal mode; and ii) fragmented mode.
  • the normal firmware upload mode may refer to an upload supported by the AP in which a user may not have any control over the upload. Once this upload is initiated, the AP may finish uploading the entire firmware to the modules. The AP may keep uploading the firmware packets until the last byte of the firmware data has been sent to the modules.
  • Disadvantage of normal node may comprise: i) lesser control over the upload once initiated; ii) the AP cannot keep track of whether the node(s) under upgrade are actually receiving the packets or not; and iii) uploading a large binary of a typical size (e.g. > 100 KB) may take more than 8 hrs. leading to OTA upgrade failures on nodes that cannot be powered continuously for 8 hrs. If the firmware binary is small, the normal upload mode may work well. Uploading a binary in a noisy or intermittent environment may cause the same problem mentioned in iii) above.
  • the modules i.e. end point systems
  • the fragmented mode may be used for large firmware size because the binary may be so large that the upload may take more than the duration in which the modules are powered during daylight time or for a predefined duration.
  • the fragmented upload mode may eliminate the disadvantages of the normal mode and may provide flexibility in performing the upload.
  • FIG. 1 shows an upgrading system 100.
  • an access point 105 may communicate with one or more end point systems 1 10 over a network 1 15.
  • Network 1 15 may comprise any wired or wireless network capable of providing communications between access point 105 and end point systems 1 10.
  • FIG. 2 shows access point 105 of FIG. 1 in more detail. As shown in
  • access point 105 may include a processing unit 225 and a memory 230.
  • Memory 230 may include a software module 235 and a database 240. While executing on processing unit 225, software module 235 may perform processes for providing upgrades, including, for example, one or more of method 300 stages' as described below with respect to FIG. 3.
  • End point systems 1 10 may each have a structure similar to access point 105.
  • Access point 105 or endpoint systems 1 10 may be implemented using a personal computer, network computer, mainframe, or other similar microcomputer-based workstation.
  • the processor may though comprise any type of computer operating environment, such as hand-held devices, multiprocessor systems, microprocessor-based or programmable sender electronic devices, minicomputers, mainframe computers, and the like.
  • the processor may also be practiced in distributed computing environments where tasks are performed by remote processing devices.
  • the processor may comprise a mobile terminal, such as a smart phone, a cellular telephone, a cellular telephone utilizing wireless application protocol (WAP), personal digital assistant (PDA), intelligent pager, portable computer, a hand held computer, or a conventional telephone.
  • WAP wireless application protocol
  • PDA personal digital assistant
  • intelligent pager portable computer
  • portable computer a hand held computer, or a conventional telephone.
  • the aforementioned systems and devices are examples and the processor may comprise other systems or devices.
  • FIG. 3 is a state diagram setting forth the general stages involved in a method 300 consistent with an embodiment of the invention for providing uploads.
  • Method 300 may be implemented using access point 105 and/or one or more end point systems 1 10 as described in more detail above with respect to FIG. 1 and FIG. 2. Ways to implement the stages of method 300 will be described in greater detail below.
  • Method 300 may begin with an application binary file (e.g. binary or firmware) being uploaded to access point 105.
  • a "fragmented F/W upload start time", a time at which access point 105 should initiate a fragmented upload and a “fragmented F/W upload end time", a time at which access point 105 should conclude the fragmented upload for that day may be specified to access point 105.
  • an inter packet delay e.g. the delay between two consecutive firmware packets
  • a "fragmented F/W upload proceed threshold” e.g. percentage comprising a minimum percentage of end point systems 1 10 that should get uploaded successfully so that access point 105 can proceed with the next block
  • access point 105 may fragment the application binary file into m blocks of n packets that it intends to send block-by-block. Each packet may have x bytes of firmware data.
  • Access point 105 may send a start fragmented upload packet (state 305) to end point system 1 10 with the version information, total number of firmware packets, number of bytes of firmware data in a packet and number of blocks.
  • End point system 1 10 upon reception of this packet, may store the version information, total number of packets to be received, total number of blocks and number of bytes firmware data in a packet and may wait for a start block firmware upload packet.
  • Access point 105 may then send the start block firmware upload packet (state 310) with the block number, version information, total number of packets that will be send in that block, and the sequence number of the first packet in that block.
  • End point systems 1 10 upon reception of this packet, may note the block number, the number of packets to be received in that block, and may wait for the firmware packets.
  • End point system 1 10 may calculate the memory location to save the binary based on the sequence number of the first packet in the block, and the packet size.
  • Access point 105 may transmit the firmware packets in sequence to end point system 1 10. (States 325, 320, and 325.) End point systems 1 10 may save the firmware in to the allocated memory.
  • end point systems 1 10 may update their block upgrade bit map to have the current block information and may send a block upload report to access point 105 (state 330) with the firmware version and the block upgrade bit map that has the information of all the blocks that got uploaded successfully.
  • Access point 105 may display the block upload information on its firmware upgrade page. Access point 105 may then calculate the percentage of end point systems 1 10 that received the current block successfully. If this percentage value is greater than or equal to "fragmented F/W upload proceed threshold%" specified and if access point 105 can complete the next block transmission before the specified "end time", access point 105 may proceed with the next block by repeating the aforementioned process. If access point 105 has not completed the upload of all the blocks before the "end time”, the next day at the specified "start time”, access point 105 may proceed with the next block transmission and repeat the aforementioned process.
  • access point 105 may send an install firmware packet to the end point systems 1 10.
  • the end point systems 1 10 may each initiate a boot loading of the application binary file into each end point systems 1 10.
  • FIG. 4 is a state diagram setting forth the general stages involved in a method consistent with an embodiment of the invention for providing transfer error recovery.
  • the method of FIG. 4 may be implemented using access point 105 and/or one or more end point systems 1 10 as described in more detail above with respect to FIG. 1 and FIG. 2. Ways to implement the stages of FIG. 4's method will be described in greater detail below.
  • Ones of the end point systems 1 10 maintain a sequence of the received packets.
  • Ones of the end point systems 1 10 may receive, for example, firmware packet with sequence number incremented by one. If one or more packets are missed by one of end point systems 1 10 during the upload process of FIG. 3, then the one of end point systems 1 10 receives a packet that is out of order, and with a sequence number that is greater than the expected sequence number.
  • the one of end point systems 1 10 may detect a firmware transfer error and may enter into a firmware transfer error recovery mode. Consistent with embodiments of the invention, with the firmware transfer error recovery mode, the one of end point systems 1 10 may report the sequence number of the packet from which it has missed the firmware packets to access point 105. In response, access point 105 may restart sending the missed packets. Other ones of end point systems 1 10 that have already received these missed packets may ignore access point 105 resending the missed packets. However, the one of end point systems 1 10 that has not received the resent packet may store the resent packet in its own memory.
  • program modules may include routines, programs, components, data structures, and other types of structures that may perform particular tasks or that may implement particular abstract data types.
  • embodiments of the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like.
  • Embodiments of the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
  • program modules may be located in both local and remote memory storage devices.
  • embodiments of the invention may be practiced in an electrical circuit comprising discrete electronic elements, packaged or integrated electronic chips containing logic gates, a circuit utilizing a microprocessor, or on a single chip containing electronic elements or microprocessors.
  • Embodiments of the invention may also be practiced using other technologies capable of performing logical operations such as, for example, AND, OR, and NOT, including but not limited to mechanical, optical, fluidic, and quantum technologies.
  • embodiments of the invention may be practiced within a general purpose computer or in any other circuits or systems.
  • Embodiments of the invention may be implemented as a computer process (method), a computing system, or as an article of manufacture, such as a computer program product or computer readable media.
  • the computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process.
  • the computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process.
  • the present invention may be embodied in hardware and/or in software (including firmware, resident software, micro-code, etc.).
  • embodiments of the present invention may take the form of a computer program product on a computer-usable or computer-readable storage medium having computer-usable or computer-readable program code embodied in the medium for use by or in connection with an instruction execution system.
  • a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
  • the computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific computer-readable medium examples (a non-exhaustive list), the computer- readable medium may include the following: an electrical connection having one or more wires, a portable computer diskette, a random access memory (RAM), a readonly memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, and a portable compact disc read-only memory (CD-ROM).
  • RAM random access memory
  • ROM readonly memory
  • EPROM or Flash memory erasable programmable read-only memory
  • CD-ROM portable compact disc read-only memory
  • the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Upgrading may be provided. First, an application binary file may be fragmented into a plurality of blocks. Each of the plurality of blocks may have a respective plurality of packets. Next, a first plurality of packets corresponding to a first one of the plurality of blocks may be uploaded to a plurality of end point systems within a time period for which the plurality of end point systems are powered by daylight.

Description

TITLE
MESH NETWORK FRAGMENTED UPGRADE METHOD
RELATED APPLICATION
[001 ] This application is being filed on 05 July 2012, as a PCT
International Patent application in the name of Petra Solar, Inc., a U.S. national corporation, applicant for the designation of all countries except the U.S., and, Ghaith Haddad, a citizen of Jordan, applicant for the designation of the U.S. only, and claims priority to U.S. Patent Application Serial No. 61/504,792 filed on 06 July 201 1, the disclosure of which is incorporated herein by reference in its entirety.
BACKGROUND
[002] A computer network, often simply referred to as a network, is a collection of computers and other hardware components interconnected by communication channels that allow sharing of resources and information. Where at least one process in one device is able to send/receive data to/from at least one process residing in a remote device, then the two devices are said to be in a network. Simply, more than one computer interconnected through a communication medium for information interchange is called a computer network. SUMMARY
[003] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter. Nor is this Summary intended to be used to limit the claimed subject matter's scope.
[004] Upgrading may be provided. First, an application binary file may be fragmented into a plurality of blocks. Each of the plurality of blocks may have a respective plurality of packets. Next, a first plurality of packets corresponding to a first one of the plurality of blocks may be uploaded to a plurality of end point systems within a time period for which the plurality of end point systems are powered by daylight.
[005] Both the foregoing general description and the following detailed description provide examples and are explanatory only. Accordingly, the foregoing general description and the following detailed description should not be considered to be restrictive. Further, features or variations may be provided in addition to those set forth herein. For example, embodiments may be directed to various feature combinations and sub-combinations described in the detailed description.
BRIEF DESCRIPTION OF THE DRAWINGS
[006] The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate various embodiments of the present invention. In the drawings:
[007] FIG. 1 shows an upgrading system;
[008] FIG. 2 shows an access point;
[009] FIG. 3 is a state diagram setting forth the general stages involved in a method for providing uploads; and
[010] FIG. 4 is a state diagram setting forth the general stages involved in a method for providing transfer error recovery.
DETAILED DESCRIPTION [01 1] The following detailed description refers to the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the following description to refer to the same or similar elements. While embodiments of the invention may be described, modifications, adaptations, and other implementations are possible. For example, substitutions, additions, or modifications may be made to the elements illustrated in the drawings, and the methods described herein may be modified by substituting, reordering, or adding stages to the disclosed methods. Accordingly, the following detailed description does not limit the invention.
[012] In a wireless ZigBee mesh network comprising an access point (AP) and a large number of modules (e.g. end point systems (EPS)), the AP may have a facility to upload any new firmware for the modules in order to transmit them over the ZigBee pipe to either individual modules or an entire network. Once the new firmware is uploaded into the AP, it may split the firmware data into chunks (e.g. blocks) and then into packets before transmitting them, for example, over the air to the modules. The modules may then save the firmware packets into local memory meant for the new firmware.
[013] A firmware upload may be initiated in the following two modes: i) normal mode; and ii) fragmented mode. The normal firmware upload mode may refer to an upload supported by the AP in which a user may not have any control over the upload. Once this upload is initiated, the AP may finish uploading the entire firmware to the modules. The AP may keep uploading the firmware packets until the last byte of the firmware data has been sent to the modules.
[014] Disadvantage of normal node may comprise: i) lesser control over the upload once initiated; ii) the AP cannot keep track of whether the node(s) under upgrade are actually receiving the packets or not; and iii) uploading a large binary of a typical size (e.g. > 100 KB) may take more than 8 hrs. leading to OTA upgrade failures on nodes that cannot be powered continuously for 8 hrs. If the firmware binary is small, the normal upload mode may work well. Uploading a binary in a noisy or intermittent environment may cause the same problem mentioned in iii) above.
[015] The modules (i.e. end point systems) may be solar powered, thus they may only be powered during daylight time or for a predefined duration. The fragmented mode may be used for large firmware size because the binary may be so large that the upload may take more than the duration in which the modules are powered during daylight time or for a predefined duration. The fragmented upload mode may eliminate the disadvantages of the normal mode and may provide flexibility in performing the upload.
[016] FIG. 1 shows an upgrading system 100. As shown in system 100, an access point 105 may communicate with one or more end point systems 1 10 over a network 1 15. Network 1 15 may comprise any wired or wireless network capable of providing communications between access point 105 and end point systems 1 10.
[017] FIG. 2 shows access point 105 of FIG. 1 in more detail. As shown in
FIG. 2, access point 105 may include a processing unit 225 and a memory 230. Memory 230 may include a software module 235 and a database 240. While executing on processing unit 225, software module 235 may perform processes for providing upgrades, including, for example, one or more of method 300 stages' as described below with respect to FIG. 3. End point systems 1 10 may each have a structure similar to access point 105.
[018] Access point 105 or endpoint systems 1 10 ("the processor") may be implemented using a personal computer, network computer, mainframe, or other similar microcomputer-based workstation. The processor may though comprise any type of computer operating environment, such as hand-held devices, multiprocessor systems, microprocessor-based or programmable sender electronic devices, minicomputers, mainframe computers, and the like. The processor may also be practiced in distributed computing environments where tasks are performed by remote processing devices. Furthermore, the processor may comprise a mobile terminal, such as a smart phone, a cellular telephone, a cellular telephone utilizing wireless application protocol (WAP), personal digital assistant (PDA), intelligent pager, portable computer, a hand held computer, or a conventional telephone. The aforementioned systems and devices are examples and the processor may comprise other systems or devices.
[019] FIG. 3 is a state diagram setting forth the general stages involved in a method 300 consistent with an embodiment of the invention for providing uploads. Method 300 may be implemented using access point 105 and/or one or more end point systems 1 10 as described in more detail above with respect to FIG. 1 and FIG. 2. Ways to implement the stages of method 300 will be described in greater detail below.
[020] Method 300 may begin with an application binary file (e.g. binary or firmware) being uploaded to access point 105. A "fragmented F/W upload start time", a time at which access point 105 should initiate a fragmented upload and a "fragmented F/W upload end time", a time at which access point 105 should conclude the fragmented upload for that day may be specified to access point 105. In addition, an inter packet delay (e.g. the delay between two consecutive firmware packets) may be specified to access point 105. Moreover, a "fragmented F/W upload proceed threshold" (e.g. percentage comprising a minimum percentage of end point systems 1 10 that should get uploaded successfully so that access point 105 can proceed with the next block) may be specified. Then access point 105 may fragment the application binary file into m blocks of n packets that it intends to send block-by-block. Each packet may have x bytes of firmware data. [021] Access point 105 may send a start fragmented upload packet (state 305) to end point system 1 10 with the version information, total number of firmware packets, number of bytes of firmware data in a packet and number of blocks. End point system 1 10, upon reception of this packet, may store the version information, total number of packets to be received, total number of blocks and number of bytes firmware data in a packet and may wait for a start block firmware upload packet.
[022] Access point 105 may then send the start block firmware upload packet (state 310) with the block number, version information, total number of packets that will be send in that block, and the sequence number of the first packet in that block. End point systems 1 10, upon reception of this packet, may note the block number, the number of packets to be received in that block, and may wait for the firmware packets. End point system 1 10 may calculate the memory location to save the binary based on the sequence number of the first packet in the block, and the packet size. Access point 105 may transmit the firmware packets in sequence to end point system 1 10. (States 325, 320, and 325.) End point systems 1 10 may save the firmware in to the allocated memory.
[023] Once end point systems 1 10 receive the last firmware packet in that block, end point systems 1 10 may update their block upgrade bit map to have the current block information and may send a block upload report to access point 105 (state 330) with the firmware version and the block upgrade bit map that has the information of all the blocks that got uploaded successfully.
[024] Access point 105 may display the block upload information on its firmware upgrade page. Access point 105 may then calculate the percentage of end point systems 1 10 that received the current block successfully. If this percentage value is greater than or equal to "fragmented F/W upload proceed threshold%" specified and if access point 105 can complete the next block transmission before the specified "end time", access point 105 may proceed with the next block by repeating the aforementioned process. If access point 105 has not completed the upload of all the blocks before the "end time", the next day at the specified "start time", access point 105 may proceed with the next block transmission and repeat the aforementioned process. (States 330, 335, 340, 345, 350, 355, 360, 365, and 370.) Once all the packets are transmitted, access point 105 may send an install firmware packet to the end point systems 1 10. Upon reception of the install packet, the end point systems 1 10 may each initiate a boot loading of the application binary file into each end point systems 1 10.
[025] FIG. 4 is a state diagram setting forth the general stages involved in a method consistent with an embodiment of the invention for providing transfer error recovery. The method of FIG. 4 may be implemented using access point 105 and/or one or more end point systems 1 10 as described in more detail above with respect to FIG. 1 and FIG. 2. Ways to implement the stages of FIG. 4's method will be described in greater detail below.
[026] Ones of the end point systems 1 10 maintain a sequence of the received packets. Ones of the end point systems 1 10 may receive, for example, firmware packet with sequence number incremented by one. If one or more packets are missed by one of end point systems 1 10 during the upload process of FIG. 3, then the one of end point systems 1 10 receives a packet that is out of order, and with a sequence number that is greater than the expected sequence number.
Consequently, the one of end point systems 1 10 may detect a firmware transfer error and may enter into a firmware transfer error recovery mode. Consistent with embodiments of the invention, with the firmware transfer error recovery mode, the one of end point systems 1 10 may report the sequence number of the packet from which it has missed the firmware packets to access point 105. In response, access point 105 may restart sending the missed packets. Other ones of end point systems 1 10 that have already received these missed packets may ignore access point 105 resending the missed packets. However, the one of end point systems 1 10 that has not received the resent packet may store the resent packet in its own memory.
[027] Generally, consistent with embodiments of the invention, program modules may include routines, programs, components, data structures, and other types of structures that may perform particular tasks or that may implement particular abstract data types. Moreover, embodiments of the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. Embodiments of the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices. [028] Furthermore, embodiments of the invention may be practiced in an electrical circuit comprising discrete electronic elements, packaged or integrated electronic chips containing logic gates, a circuit utilizing a microprocessor, or on a single chip containing electronic elements or microprocessors. Embodiments of the invention may also be practiced using other technologies capable of performing logical operations such as, for example, AND, OR, and NOT, including but not limited to mechanical, optical, fluidic, and quantum technologies. In addition, embodiments of the invention may be practiced within a general purpose computer or in any other circuits or systems.
[029] Embodiments of the invention, for example, may be implemented as a computer process (method), a computing system, or as an article of manufacture, such as a computer program product or computer readable media. The computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process. Accordingly, the present invention may be embodied in hardware and/or in software (including firmware, resident software, micro-code, etc.). In other words, embodiments of the present invention may take the form of a computer program product on a computer-usable or computer-readable storage medium having computer-usable or computer-readable program code embodied in the medium for use by or in connection with an instruction execution system. A computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
[030] The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific computer-readable medium examples (a non-exhaustive list), the computer- readable medium may include the following: an electrical connection having one or more wires, a portable computer diskette, a random access memory (RAM), a readonly memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, and a portable compact disc read-only memory (CD-ROM). Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory.
[031] Embodiments of the present invention, for example, are described above with reference to block diagrams and/or operational illustrations of methods, systems, and computer program products according to embodiments of the invention. The functions/acts noted in the blocks may occur out of the order as show in any flowchart. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved.
[032] While certain embodiments of the invention have been described, other embodiments may exist. Furthermore, although embodiments of the present invention have been described as being associated with data stored in memory and other storage mediums, data can also be stored on or read from other types of computer-readable media, such as secondary storage devices, like hard disks, floppy disks, or a CD-ROM, a carrier wave from the Internet, or other forms of RAM or ROM. Further, the disclosed methods' stages may be modified in any manner, including by reordering stages and/or inserting or deleting stages, without departing from the invention.
[033] While certain embodiments of the invention have been described, other embodiments may exist. Further, the disclosed methods' stages may be modified in any manner, including by reordering stages and/or inserting or deleting stages, without departing from the invention.
[034] While the specification includes examples, the invention's scope is indicated by the following claims. Furthermore, while the specification has been described in language specific to structural features and/or methodological acts, the claims are not limited to the features or acts described above. Rather, the specific features and acts described above are disclosed as example for embodiments of the invention.

Claims

WHAT IS CLAIMED IS:
1. A method for providing an upload, the method comprising:
fragmenting an application binary file into a plurality of blocks, each of the plurality of blocks having a respective plurality of packets; and
uploading a first plurality of packets corresponding to a first one of the plurality of blocks to a plurality of end point systems within a time period for which the plurality of end point systems are powered for a predefined duration.
2. The method of claim 1 , wherein uploading the first plurality of packets comprises:
sending a start fragmented upload packet to the plurality of end point systems;
sending a start block firmware upload packet to the plurality of end point systems; and
transmitting the first plurality of packets corresponding to the first one of the plurality of blocks to the plurality of end point systems.
3. The method of claim 2, wherein sending the start fragmented upload packet comprises sending the start fragmented upload packet comprising at least one of the following: version information, total number of packets, number of bytes of data in a packet, and number of the plurality of blocks.
4. The method of claim 2, wherein sending the start block firmware upload packet comprises sending the start block firmware upload packet comprising a block number for the first one of the plurality of blocks, version information, total number of packets that will be send in the first one of the plurality of blocks, and the sequence number of a first packet in the first one of the plurality of blocks.
5. The method of claim 1 , further comprising receiving a plurality of block upload reports respectively from the plurality of end point systems.
6. The method of claim 5, wherein receiving the plurality of block upload reports comprises receiving the plurality of block upload reports wherein a one of the plurality of block upload reports comprises information of all the blocks that got uploaded successfully at a one of the plurality of end point systems.
7. The method of claim 1 , further comprising uploading a second plurality of packets corresponding to a second one of the plurality of blocks to the plurality of end point systems when it is determined that second plurality of packets can be uploaded before a predetermined end time.
8. The method of claim 1 , further comprising uploading a second plurality of packets corresponding to a second one of the plurality of blocks to the plurality of end point systems when it is determined that second plurality of packets can be uploaded before a predetermined end time comprising a time when the plurality of end point systems are no longer powered by daylight.
9. The method of claim 1 , further comprising uploading a second plurality of packets corresponding to a second one of the plurality of blocks to the plurality of end point systems when it is determined that the first plurality of packets were successfully received by a percentage of the plurality of end point systems greater than a predetermined threshold percentage.
10. The method of claim 1 , further comprising:
determining, by a one of the plurality of end point systems, that at least one of the first plurality of packets has been missed;
reporting a sequence number of the missed at least one of the first plurality of packets to an access point; and
resending, by the access point, the missed at least one of the first plurality of packets to the one of the plurality of end point systems.
1 1. The method of claim 1, further comprising receiving the application binary file at an access point.
12. The method of claim 1 , wherein fragmenting the application binary file comprises fragmenting the application binary file at an access point.
13. The method of claim 1, further comprising receiving a start time defining a beginning of the time period.
14. The method of claim 1 , further comprising receiving a stop time defining an ending of the time period.
15. A system for providing an upload, the system comprising:
a memory storage; and
a processing unit coupled to the memory storage, wherein the processing unit is operative to:
receive an application binary file;
fragment the application binary file into a plurality of blocks, each of the plurality of blocks having a respective plurality of packets; and
upload a first plurality of packets corresponding to a first one of the plurality of blocks to a plurality of end point systems within a time period for which the plurality of end point systems are powered by daylight wherein uploading the first plurality of packets comprises.
16. The system of claim 15, wherein the processing unit being operative to upload the first plurality of packets comprises the processing unit being operative to:
send a start fragmented upload packet to the plurality of end point systems; send a start block firmware upload packet to the plurality of end point systems; and
transmit the first plurality of packets corresponding to the first one of the plurality of blocks to the plurality of end point systems.
17. The system of claim 15, further comprising the processing unit being operative to receive a plurality of block upload reports respectively from the plurality of end point systems.
18. The system of claim 17, wherein the processing unit being operative to receive the plurality of block upload reports comprises the processing unit being operative to receive the plurality of block upload reports wherein a one of the plurality of block upload reports comprises information of all the blocks that got uploaded successfully at a one of the plurality of end point systems.
19. The system of claim 15, further comprising the processing unit being operative to upload a second plurality of packets corresponding to a second one of the plurality of blocks to the plurality of end point systems when it is determined that second plurality of packets can be uploaded before a predetermined end time comprising a time when the plurality of end point systems are no longer powered by daylight.
20. A computer-readable medium that stores a set of instructions which when executed perform a method for providing an upload, the method executed by the set of instructions comprising:
receiving an application binary file;
fragmenting the application binary file into a plurality of blocks, each of the plurality of blocks having a respective plurality of packets; and
uploading a first plurality of packets corresponding to a first one of the plurality of blocks to a plurality of end point systems within a time period for which the plurality of end point systems are powered by daylight wherein uploading the first plurality of packets comprises;
sending a start fragmented upload packet to the plurality of end point systems,
sending a start block firmware upload packet to the plurality of end point systems, and
transmitting the first plurality of packets corresponding to the first one of the plurality of blocks to the plurality of end point systems.
PCT/US2012/045532 2011-07-06 2012-07-05 Mesh network fragmented upgrade method WO2013006690A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161504792P 2011-07-06 2011-07-06
US61/504,792 2011-07-06

Publications (2)

Publication Number Publication Date
WO2013006690A2 true WO2013006690A2 (en) 2013-01-10
WO2013006690A3 WO2013006690A3 (en) 2014-05-08

Family

ID=47437685

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2012/045532 WO2013006690A2 (en) 2011-07-06 2012-07-05 Mesh network fragmented upgrade method

Country Status (1)

Country Link
WO (1) WO2013006690A2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050186952A1 (en) * 2004-02-20 2005-08-25 Nec Corporation Wireless communication system and a firmware update method of a wireless communication terminal station in the same
US7301477B2 (en) * 2003-10-31 2007-11-27 Nec Corporation Power saving wireless telemetering system
US20100232338A1 (en) * 2009-03-13 2010-09-16 Qualcomm Incorporated Apparatus and method for providing venuecast services on a next generation forward link only (flo) network
US7843846B1 (en) * 2006-09-18 2010-11-30 Qlogic, Corporation Method and system for processing network information

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7301477B2 (en) * 2003-10-31 2007-11-27 Nec Corporation Power saving wireless telemetering system
US20050186952A1 (en) * 2004-02-20 2005-08-25 Nec Corporation Wireless communication system and a firmware update method of a wireless communication terminal station in the same
US7843846B1 (en) * 2006-09-18 2010-11-30 Qlogic, Corporation Method and system for processing network information
US20100232338A1 (en) * 2009-03-13 2010-09-16 Qualcomm Incorporated Apparatus and method for providing venuecast services on a next generation forward link only (flo) network

Also Published As

Publication number Publication date
WO2013006690A3 (en) 2014-05-08

Similar Documents

Publication Publication Date Title
CN102160315B (en) Iterative decoding of blocks with cyclic redundancy checks
EP3079287B1 (en) Polar code processing method and system
JP5568048B2 (en) Parallel computer system and program
JP7113079B6 (en) HARQ ID determination method, network device, terminal and computer storage medium
CN102082649B (en) System and method for data communications using a sliding window protocol with selective retransmission
CN103248711A (en) File uploading method and server
CN102915249A (en) Method and device for remotely realizing firmware updating
CN103885426A (en) Control method of equipment, client side, server, intermediate equipment and controlled equipment
CN102571820A (en) Method used for transmitting data, compression server and terminal
JP2020520575A (en) Method for transmitting signal, network device and terminal device
CN115150383A (en) File transmission method, device and computer readable storage medium
US20250080297A1 (en) Method and apparatus for determining position occupied by resource, user equipment, and storage medium
WO2018166455A1 (en) Encoding method, encoding device and communication device
CN110635867B (en) Communication method, network equipment and terminal
CN101977358A (en) Method, device and equipment for transmitting data short messages
CN104079623A (en) Method and system for controlling multilevel cloud storage synchrony
CN105357305A (en) File sending method and device, file receiving method and device and terminal equipment
CN106788916B (en) Data transmission method and data transmission device for bus
KR102487367B1 (en) Synchronization method and apparatus
CN110913431A (en) Data wireless transmission method and device, computer equipment and storage medium
CN103746843A (en) Method and equipment for processing RPC (Remote Procedure Call Protocol) command
WO2013006690A2 (en) Mesh network fragmented upgrade method
CN104333856A (en) Method for switching network of Java SIM card, SIM card, server and system
CN117676550A (en) Terminal capability reporting and processing methods, terminal equipment, network equipment and media
KR20140130907A (en) Method for upgrading of nodes in remote meter reading system and apparatus thereof

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12807952

Country of ref document: EP

Kind code of ref document: A2

122 Ep: pct application non-entry in european phase

Ref document number: 12807952

Country of ref document: EP

Kind code of ref document: A2