WO2013006690A2 - Mesh network fragmented upgrade method - Google Patents
Mesh network fragmented upgrade method Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 44
- 238000012545 processing Methods 0.000 claims description 12
- 230000005055 memory storage Effects 0.000 claims description 3
- 239000012634 fragment Substances 0.000 claims description 2
- 238000004590 computer program Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates 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
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.
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)
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 |
-
2012
- 2012-07-05 WO PCT/US2012/045532 patent/WO2013006690A2/en active Application Filing
Patent Citations (4)
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 |