1. Technical Field
The present disclosure relates to electronic devices, and particularly to an electronic device and a method of updating software on the electronic device.
2. Description of Related Art
Electronic devices (such as a digital photo frame) often require updated firmware/software from a server, on which a new version of software for the electronic device is available. However, when multiple downloads are active at the same time, server resources can be overworked.
The disclosure is illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and such references mean at least one.
In general, the word “module,” as used herein, refers to logic embodied in hardware or firmware, or to a collection of software instructions, written in a programming language, such as, for example, Java, C, or assembly. One or more software instructions in the modules may be embedded in firmware, such as an EPROM. It will be appreciated that modules may comprised connected logic units, such as gates and flip-flops, and may comprise programmable units, such as programmable gate arrays or processors. The modules described herein may be implemented as either software and/or hardware modules and may be stored in any type of computer-readable medium or other computer storage device.
Referring to
Referring to
The update schedule module 17 stores the update schedule comprising a plurality of update time slots and a unique device number corresponding to each update time slot. The determination module 11 checks for new update schedules on the server 20 according to the update schedule. The acquisition module 12 acquires new update schedules from the server 20 when available. The execution module 13 determines whether there is a new software package according to the update schedule. If so, the download module 14 downloads the new software package from the server 20. The installation module 15 installs the new software package to update the electronic device 10. The computing module 16 computes and outputs the unique device number of the electronic device 10.
The server 20 includes a storage module 21, a transmission module 22 and an update module 23. The update module 23 updates the update schedule automatically or on demand. The storage module 21 stores the new update schedule and the new software package. The transmission module 22 transmits the new update schedule and the new software package to the electronic device 10.
Referring to
The update schedule module includes n update time slots. The unique device identification number is translated into a decimal value and then divided by n to get a remainder being the unique device number. For example, the remainder is 1 when 7 is divided by 3. In
When a day is divided into six periods, the computing module 16 computes the unique device identification number divided by six to get the remainder. For example, in
In the disclosure, the electronic devices 10 are divided into several groups. Each group of electronic devices 10 updates at the different times, reducing peak resource requirement of the server 20.
In block S10, the electronic device 10 pre-installs a first software package.
In block S20, the computing module 16 computes the unique device number of the electronic device 10 and uses the unique device number to schedule the update time.
In block S30, the determination module 11 determines if there is a new update schedule available on the server 20 according to the update schedule. If so, S40 is implemented; if not, S50 is implemented.
In block S40, the acquisition module 12 acquires the new update schedule from the server 20.
In block S50, the execution module 13 determines whether there is a new software package according to the update schedule. If so, S60 is implemented; If not, the procedure terminates.
In block S60, the download module 14 downloads the new software package from the server 20.
In block S70, the installation module 15 installs the new software package to update the electronic device 10 after download is complete.
The server 20 can set update levels, for example, within a day (critical), a month (high), or normal schedule (regular). The update schedule module 17 partitions the update requests to follow systematic schedule to smooth out the requests over time which in turn reduces peak resource requirement.
While the present disclosure has been illustrated by the description of preferred embodiments thereof, and while the preferred embodiments have been described in considerable detail, it is not intended to restrict or in any way limit the scope of the appended claims to such details. Additional advantages and modifications within the spirit and scope of the present disclosure will readily appear to those skilled in the art. Therefore, the present disclosure is not limited to the specific details and illustrative examples shown and described.
Depending on the embodiment, certain of the steps of methods described may be removed, others may be added, and the sequence of steps may be altered. It is also to be understood that the description and the claims drawn to a method may include some indication in reference to certain steps. However, the indication used is only to be viewed for identification purposes and not as a suggestion as to an order for the steps.
Number | Date | Country | Kind |
---|---|---|---|
200910307189.8 | Sep 2009 | CN | national |