Claims
- 1. A wireless communication device comprising:
a data storage area comprising instructions executable by the wireless communication device and a plurality of device drivers corresponding to a plurality of hardware components; a modular hardware detector configured to detect a new hardware component connected to the wireless communication device to replace a previous hardware component having a previous device driver of the plurality of device drivers, the modular hardware detector further configured to query the new hardware component to obtain profile information from the new hardware component; a runtime engine configured to receive the profile information for the new hardware component from the modular hardware detector and to compile a request for a new device driver for the new hardware component, the request having a data payload comprising at least a portion of the profile information.
- 2. The system of claim 1, further comprising a server opcode library housed in the data storage area, the server opcode library comprising server operation codes corresponding to instructions executable by a remote server.
- 3. The system of claim 2, further comprising a handset opcode library housed in the data storage area, the handset opcode library comprising device operation codes corresponding to instructions executable by the wireless communication device.
- 4. The system of claim 1, wherein the profile information comprises an identifier that uniquely identifies the new hardware component.
- 5. The system of claim 1, wherein the modular hardware detector is further configured to obtain a size of the previous device driver and to obtain a size of the new device driver for the new hardware component to determine the need to allocate space in the data storage area for the new device driver.
- 6. The system of claim 5, wherein the size of the previous device driver is obtained from at least one of an operating system of the wireless communication device and an update server over a wireless communication network.
- 7. A method for field replacement of a previous hardware component in a wireless communication device, comprising:
detecting a presence of a new hardware component in the wireless communication device, the new hardware component replacing a previous hardware component having a previous device driver; querying the new hardware component to obtain profile information for the new hardware component; sending a request to an update server via a wireless communication network, the request comprising at least a portion of the profile information; and receiving a response from the update server via the wireless communication network, wherein the response comprises an executable device driver for the new hardware component and installation instructions.
- 8. The method of claim 7, further comprising the steps of:
installing the executable device driver; and configuring the new hardware component.
- 9. The method of claim 7, wherein the profile information comprises an identifier that uniquely identifies the new hardware component.
- 10. The method of claim 9, wherein the request sent to the update server comprises the identifier.
- 11. The method of claim 7, wherein the detecting step is initiated by at least one of a power on sequence and a user request.
- 12. The method of claim 7, wherein the sending step further comprises:
compiling a server instruction set having a corresponding data payload; including an identifier for the new hardware component in the data payload; and sending the server instruction set and the data payload to the update server.
- 13. The method of claim 12, wherein the server instruction set comprises non-executable operation codes.
- 14. The method of claim 7, wherein the receiving the response from the update server step further comprises:
receiving a handset instruction set having a sequence of operation codes and a corresponding data payload; extracting the corresponding data payload, wherein the corresponding data payload comprises the executable device driver; translating the sequence of operation codes into a set of executable instructions comprising the installation instructions; and executing the set of executable instructions to install the executable device driver.
- 15. The method of claim 14, wherein the executing the set of executable instructions step is carried out within a runtime engine operating on the wireless communication device.
- 16. The method of claim 7, further comprising:
determining that a size of the previous device driver is greater than the size of the executable device driver; copying the previous device driver from a persistent storage to a volatile storage; deleting the previous device driver from the persistent storage; and storing the executable device driver for the new hardware component in at least a portion of a location in persistent storage previously occupied by the previous device driver.
- 17. The method of claim 16, further comprising the steps of:
testing the executable device driver for the new hardware component to determine its validity; deleting the previous device driver from the volatile storage if the executable device driver is valid; and restoring the previous device driver from the volatile storage to its previous location in the persistent storage if the executable device driver is not valid, wherein the previous device driver is used to communicate with the new hardware module.
- 18. The method of claim 7, further comprising:
determining that a size of the previous device driver is smaller than the size of the executable device driver; allocating a new storage space in a persistent storage, the new storage space sufficient to store the executable device driver for the new hardware component; and storing the executable device driver for the new hardware component in the new storage space.
- 19. The method of claim 18, further comprising the steps of:
validating the executable device driver for the new hardware component; deleting the previous device driver from persistent storage if the executable device driver is valid; and using the previous device driver to communicate with the new hardware component if the executable device driver is not valid.
- 20. A method for interchanging a plurality of hardware components on a wireless communication device, comprising the steps of:
providing a data storage area for storing instructions executable by the wireless communication device and for storing a plurality of device drivers corresponding to a plurality of hardware components; replacing a previous hardware component having a previous device driver of the plurality of device drivers with the new hardware component; detecting the new hardware component utilizing a modular hardware detector; querying the new hardware component utilizing the modular hardware detector to obtain profile information from the new hardware component; providing a runtime engine configured to receive the profile information for the new hardware component from the modular hardware detector and to compile a request to an update server coupled to a wireless communications network for a new device driver for the new hardware component, the request having a data payload comprising at least a portion of the profile information; receiving a response from the update server via the wireless communication network, wherein the response comprises an executable device driver for the new hardware component; and storing the executable device driver in the data storage area.
RELATED APPLICATIONS
[0001] This application is a continuation in part application of U.S. patent application Ser. No. 10/665,962, filed on Sep. 18, 2003, which is a continuation in part of U.S. patent application Ser. No. 09/917,026, filed on Jul. 26, 2001, of U.S. patent application Ser. No. 09/916,900, filed on Jul. 26, 2001, and of U.S. patent application Ser. No. 09/916,460, filed on Jul. 26, 2001, which are hereby incorporated by reference.
[0002] This application is also related to U.S. application Ser. No. ______ unknown entitled “Modular Software Components for Wireless Communication Devices” and to U.S. application Ser. No. ______ unknown entitled “Dynamic Interface Software for Wireless Communication Devices”, which are filed concurrently herewith. Additionally, this application is related to U.S. application Ser. No. 09/927,131, filed on Aug. 10, 2001; to U.S. application Ser. No. 09/969,305, filed on Oct. 2, 2001; to U.S. application Ser. No. 09/970,188, filed on Oct. 3, 2001; to U.S. application Ser. No. 09/972,519, filed on Oct. 5, 2001; to U.S. application Ser. No. 10/206,780, filed on Jul. 25, 2002; to U.S. application Ser. No. 10/206,781, filed on Jul. 25, 2002; and to U.S. application Ser. No. 10/206,516, filed on Jul. 25, 2002, which are hereby incorporated by reference.
Continuation in Parts (4)
|
Number |
Date |
Country |
Parent |
10665962 |
Sep 2003 |
US |
Child |
10848939 |
May 2004 |
US |
Parent |
09917026 |
Jul 2001 |
US |
Child |
10665962 |
Sep 2003 |
US |
Parent |
09916900 |
Jul 2001 |
US |
Child |
10665962 |
Sep 2003 |
US |
Parent |
09916460 |
Jul 2001 |
US |
Child |
10665962 |
Sep 2003 |
US |