Claims
- 1. A method for interfacing a computer with a consumer device by way of a transceiver, comprising:
receiving a first signal from a remote control at the transceiver; encoding the first signal and transmitting the encoded first signal from the transceiver to the computer by way of a communications link, the computer processing the encoded first signal; receiving an encoded second signal at the transceiver from the computer by way of the communications link; and decoding the encoded second signal and transmitting the decoded second signal to the consumer device.
- 2. The method of claim 1, wherein the first and second signal is an infrared signal.
- 3. The method of claim 1, wherein the communications link is a USB connection.
- 4. The method of claim 1, wherein the transceiver transmits a plurality of second signals to a plurality of consumer devices.
- 5. The method of claim 1, further comprising the computer processing the encoded first signal, comprising:
recognizing a code associated with the encoded first signal; locating the code in a code database, wherein the code in the code database has at least one associated encoded signal; and generating the encoded second signal according to the at least one associated encoded signal.
- 6. The method of claim 1, further comprising the computer processing the encoded first signal, comprising:
recording an aspect of the encoded first signal; comparing the aspect of the encoded first signal with entries in a code database, wherein the entries in the code database have aspects of a plurality of signals; finding a match between the aspect of the encoded first signal and an aspect of one of the plurality of signals contained in one or more entries in the code database; and generating the encoded second signal according to the aspect of one of the plurality of signals contained in one or more entries in the code database.
- 7. The method of claim 1, further comprising the computer processing the encoded first signal, comprising:
analyzing the encoded first signal to determine a predetermined function; and generating at least one encoded signal adapted to perform the predetermined function.
- 8. The method of claim 1, further comprising the computer processing the encoded first signal, comprising receiving user input by way of a user interface and generating the encoded second signal according to the user input.
- 9. The method of claim 1, further comprising:
operating an infrared emitter based on a reference voltage; monitoring a voltage difference across a connector to which the infrared emitter is connected; determining whether the voltage difference across the connector is approximately the reference voltage and, if so, performing a first predetermined action; and determining whether the voltage difference across the connector is approximately zero volts and, if so, performing a second predetermined action.
- 10. The method of claim 1, wherein said encoding step comprises:
counting pulses contained in at least one burst of a received signal using a counter, wherein the pulses of the received signal have a constant carrier frequency; sampling the counter at a slower rate than a rate at which the counter is counting, to determine whether the pulse count is zero; recording a total number of pulses, a total number of non-zero pulses and a total number of bursts; and determining whether the received signal has ended and, if so, determining an approximate value of the carrier frequency by way of the sampling rate, total pulse count, total number of non-zero pulses and the total number of bursts.
- 11. The method of claim 1, further comprising waking the computer from a sleep state; setting a predetermined period of time; determining whether a standby signal has been received by the computer during the predetermined period of time and, if so, performing a predetermined function other than placing the computer in a sleep state.
- 12. The method of claim 1, further comprising:
initializing a transceiver driver on the computer, the transceiver driver including a copy of firmware for the transceiver with a first version indicator; requesting a firmware version with a second version indicator from the transceiver as part of the initialization; comparing the first and second firmware version indicators; and determining from the comparison of the first and second version indicators whether the firmware version from the transceiver is older than the firmware of the transceiver driver and, if so, updating the firmware from the transceiver with the firmware of the transceiver driver.
- 13. The method of claim 1, for updating the firmware of the transceiver, the method comprising:
writing a flash protection code to a memory location of the firmware immediately following the boot-loader initialization in the transceiver, wherein the flash protection code has instructions to branch to the transceiver boot-loader initialization; writing the update of the firmware to the transceiver; determining whether an interruption of the firmware update has occurred and, if so:
running the transceiver boot-loader initialization; re-running the transceiver boot-loader initialization according to the flash protection code until a command to update the firmware is received and, upon receiving the command, restarting the update of the firmware version of the transceiver; completing the update of the firmware version of the transceiver; and overwriting the flash protection code.
- 14. The method of claim 13, further comprising receiving a firmware update from the computer by way of the communications link.
- 15. A method of detecting an infrared emitter, comprising:
operating an infrared emitter based on a reference voltage; monitoring a voltage difference across a connector to which the infrared emitter is connected with an analog to digital converter; determining whether the monitored voltage difference across the connector is approximately the reference voltage and, if so, performing a first predetermined action; and determining whether the monitored voltage difference across the connector is approximately zero volts and, if so, performing a second predetermined action.
- 16. The method of claim 15, wherein the first and second predetermined actions are the same action.
- 17. The method of claim 15, wherein the first predetermined action is generating a notification corresponding to an open circuit condition.
- 18. The method of claim 15, wherein the second predetermined action is generating a notification corresponding to a short circuit condition
- 19. The method of claim 15, wherein the infrared emitter is a light-emitting diode.
- 20. The method of claim 15, wherein the method is performed by an infrared transceiver.
- 21. The method of claim 15, wherein the method is performed by a remote control.
- 22. A method of estimating a carrier frequency of a signal, the method comprising:
counting pulses contained in at least one burst of a received signal using a counter, wherein the pulses of the received signal have a constant carrier frequency; sampling the counter at a slower rate than a rate at which the counter is counting, to determine whether the pulse count is zero; recording a total number of pulses, a total number of non-zero pulses and a total number of bursts; and determining whether the received signal has ended and, if so, calculating an approximate value of the carrier frequency by way of the sampling rate, total pulse count, total number of non-zero pulses and the total number of bursts.
- 23. The method of claim 22, wherein said calculating step takes place according to the equation: carrier frequency=(sampling rate)*(total pulse count)/((total number of non-zero pulses)−(total number of bursts/2)).
- 24. The method of claim 22, wherein said transmitting step further comprises transmitting the determined approximate carrier frequency to the computer by way of the communications link.
- 25. A method of preventing an unintended placement of a computer into a sleep state, comprising:
waking a computer from a sleep state; setting a predetermined period of time during which the computer will not be placed into a sleep state in response to a standby signal; and determining whether a standby signal has been received by the computer during the predetermined period of time and, if so, performing a predetermined function other than placing the computer in a sleep state.
- 26. The method of claim 25, wherein the predetermined function is sending a user present signal to an operating system of the computer.
- 27. The method of claim 25, wherein the predetermined function is ignoring the standby signal.
- 28. The method of claim 25, further comprising determining whether the standby signal has been received by the computer outside the predetermined period of time and, if so, sending the standby signal to an operating system of the computer.
- 29. A method of updating peripheral device firmware using a device driver, the method comprising:
initializing a peripheral device driver on a computer, the peripheral device driver including a copy of firmware for the peripheral device with a first version indicator; requesting a firmware version with a second version indicator from the peripheral device as part of the initialization; comparing the first and second version indicators; and determining from the comparison of the first and second version indicators whether the firmware version from the peripheral device is older than the firmware of the peripheral device driver and, if so, updating the firmware version from the peripheral device with the firmware of the peripheral device driver.
- 30. A method for safely updating firmware of a peripheral device, the method comprising:
writing a flash protection code to a memory location of the firmware immediately following the boot-loader initialization in the peripheral device, wherein the flash protection code has instructions to branch to the peripheral device boot-loader initialization; writing the update of the firmware to the peripheral device; determining whether an interruption of the firmware update has occurred and, if so:
running the peripheral device boot-loader initialization; re-running the peripheral device boot-loader initialization according to the flash protection code until a command to update the firmware is received and, upon receiving the command, restarting the update of the firmware version of the peripheral device; completing the update of the firmware version of the peripheral device; and overwriting the flash protection code.
- 31. The method of claim 30, wherein the command to update the firmware is sent by a computer.
- 32. The method of claim 31, further comprising receiving the firmware update from the computer by way of a communications link.
RELATED APPLICATIONS
[0001] This patent application relates to commonly assigned copending U.S. Patent Application No. AA/BBB,CCC, filed Apr. 16, 2003 under attorney docket number MSFT-1517 and entitled “Efficient Infrared Decoding Algorithm for Low-Power Applications.”