Dynamic polling mechanism for wireless devices
First Claim
Patent Images
1. In a system including a polling device and one or more devices that are polled by said polling device, a method for dynamically adjusting a polling rate of said one or more polled devices comprising the steps of:
- (a) calculating an activity number for each polled devices by said polling device; and
, (b) increasing or decreasing the polling rate of said one or more polled devices by said polling device based upon the activity number calculated for each polled device.
1 Assignment
0 Petitions
Accused Products
Abstract
In a system in which a polling devices polls one or more devices, a method and apparatus are described that allows the polling device to adjust the polling rate of all polled devices with which it is communicating based upon the activity level of each polled device. This dynamic polling scheme permits a much more efficient allocation of bandwidth than is available with static or fixed polling schemes.
152 Citations
52 Claims
-
1. In a system including a polling device and one or more devices that are polled by said polling device, a method for dynamically adjusting a polling rate of said one or more polled devices comprising the steps of:
-
(a) calculating an activity number for each polled devices by said polling device; and
,(b) increasing or decreasing the polling rate of said one or more polled devices by said polling device based upon the activity number calculated for each polled device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
(a-1) incrementing a counter of said polling device for each poll of a polled device by the polling device;
(a-2) incrementing a counter of said polling device for each poll response sent by a polled device to the polling device; and
,(a-3) calculating a ratio of poll requests for which a polled device returned data to a total number of poll requests sent by the polling device by dividing the number of poll responses by the number of poll requests.
-
-
9. The method of claim 1, wherein step (b) comprises the steps of:
-
(b-1) storing a current polling rate for each polled device;
(b-2) storing a set of threshold values relating an activity number to a polling rate;
(b-3) adjusting the current polling rate of each polled device by;
comparing the activity number of each polled device to said threshold values such that;
if the activity number of a polled device falls below a threshold value for the current polling rate of the polled device, the current polling rate of the polled device is decreased to reflect the activity number of the polled device;
if the activity number of a polled device exceeds a threshold value supporting a higher polling rate and the polled device is capable of being polled at said higher rate, the current polling rate of the peripheral is increased to reflect the activity number of the polled device.
-
-
10. The method of claim 9, wherein the set of threshold values are generated by setting a threshold from one polling rate to another in an increasing direction to a different value from a threshold between said two polling rates in a decreasing direction.
-
11. The method of claim 1, wherein step (a) comprises calculating a number of time intervals a polled devices utilizes to send data to the polling device.
-
12. The method of claim 1 wherein step (b) comprises the step of updating a variable representing the interval of time a polled device will remain in an inactive state such that:
-
if the activity number is below a threshold value, the value of the variable representing the interval of time the polled device will remain in an inactive state is increased;
if the activity number exceeds a threshold value, the value of the variable representing the interval of time the polled device will remain in an inactive state is decreased.
-
-
13. The method of claim 12 wherein said inactive state is a park state.
-
14. The method of claim 12 wherein said inactive state is a hold state.
-
15. A polling device for dynamically adjusting a polling rate of one or more polled devices by said polling device, comprising a computer system in said polling device adapted to:
-
(a) calculate an activity number of each polled device;
(b) increase or decrease a polling rate of a polled device based upon the calculated activity number of the device. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
record a number of device poll requests sent to a polled device;
record a number of device poll responses received from a polled device;
calculate an activity number of a polled device by taking the ratio of device poll responses sent from the polled device to the number of poll requests sent to the polled device.
-
-
17. The device of claim 16, wherein said computer system is further adapted to:
-
store a set of threshold values relating an activity number to a polling rate;
adjust the current polling rate of each polled device by comparing the activity number of each polled device to said threshold values such that;
if the activity number of a polled device falls below a threshold value for the current polling rate of the polled device, the polling rate of the polled device is decreased to reflect the activity number of the polled device;
if the activity number of a polled device exceeds a threshold value supporting a higher polling rate and the polled device is capable of being polled at said higher rate, the polling rate of the peripheral is increased to reflect the activity number of the polled device.
-
-
18. The device according to claim 17, wherein the set of threshold values are generated by setting a threshold from one polling rate to another in an increasing direction to a different value from a threshold between said two polling rates in a decreasing direction.
-
19. The device of claim 15, wherein said computer system is further adapted to calculate a number of time intervals a polled device uses to send data to the polling device during a period of time the polled device is in an active state.
-
20. The device of claim 19, wherein said computer system is further adapted to:
-
store a set of threshold values;
store a variable corresponding to an interval of time a polled device will remain in an inactive state;
adjust a current polling rate of each polled device by comparing the activity number of each polled device to said threshold values such that;
if the activity number of a polled device falls below a threshold value, the variable corresponding to the interval of time the polled device will remain in an inactive state is increased;
if the activity number of a polled device exceeds a threshold value the variable corresponding to the interval of time the polled device will remain in an inactive state is decreased.
-
-
21. The device of claim 15, wherein polling of one or more polled devices by said polling device occurs over a wireless interface.
-
22. The device of claim 21, wherein said wireless interface is an infrared interface.
-
23. The device of claim 21, wherein said wireless interface utilizes the ISM frequency band (2.4 Ghz).
-
24. The device according to claim 15, wherein said polling device is a host device and said polled devices are peripheral devices.
-
25. The device according to claim 15, wherein said polling device and said one or more polled devices are peer devices that operate in a master/slave relationship on a permanent basis.
-
26. The device according to claim 15, wherein said polling device and said one or more polled devices are peer devices that operate in a master/slave relationship-on a transient basis.
-
27. The device of claim 15, wherein computer system further includes:
-
a controller interface;
memory for storing computer instructions and data;
a transceiver coupled to the controller interface for wireless transmission of device poll requests and receipt of device poll responses.
-
-
28. The device according to claim 27, wherein said transceiver is an infrared transceiver.
-
29. The device according to claim 27, wherein said transceiver operates in the ISM frequency band (2.4 Ghz).
-
30. The device of claim 27, wherein said controller interface is adapted to:
-
store a current polling rate value for each polled device;
generate device poll requests to polled devices;
record a number of device poll requests sent to a polled device;
record a number of device poll responses received from a polled device;
calculate an activity number of a polled device;
store a set of threshold values;
adjust a current polling rate of each polled device based upon the activity number of a polled device.
-
-
31. The device according to claim 27, wherein said controller interface includes a plurality of wireless device ports.
-
32. The device according to claim 27, wherein the computer system further includes an encoder/decoder coupled between the controller interface and the transceiver.
-
33. In a system including a polling device and one or more devices that are polled by said polling device, a program storage device, readable by a computer system, comprising:
- instructions stored thereon for causing the computer system to;
(a) calculate an activity number of each polled device;
(b) increase or decrease a polling rate of a polled device based upon the calculated activity number of the device. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46)
(a-1) incrementing a counter implemented as a variable in computer memory for each poll sent from the polling device to a polled device;
(a-2) incrementing a counter implemented as a variable in computer memory for each poll response sent by a polled device to the polling device;
(a-3) calculating the ratio of poll requests for which a polled device returned data to the total number of poll requests sent by the polling device by dividing the number of poll responses by the number of poll requests.
- instructions stored thereon for causing the computer system to;
-
35. The program storage device of claim 33, wherein instructions to increase or decrease the polling rate of a polled device based upon the calculated activity level of the device comprise instructions for:
-
(b-1) storing a current polling rate for each polled device;
(b-2) storing a set of threshold values relating an activity number to a particular polling rate;
(b-3) adjusting the current polling rate of each polled device by comparing the activity number of each polled device to said threshold values such that;
if the activity number of a polled device falls below a threshold value for the current polling rate of the polled device, the current polling rate of the polled device is decreased to reflect the activity number of the polled device;
if the activity number of a polled device exceeds a threshold value supporting a higher polling rate and the polled device is capable of being polled at said higher rate, the current polling rate of the peripheral is increased to reflect the activity number of the polled device.
-
-
36. The program storage device of claim 35, wherein the set of threshold values are generated by setting a threshold from one polling rate to another in an increasing direction to a different value from a threshold between said two polling rates in a decreasing direction.
-
37. The program storage device of claim 33, wherein the instructions to calculate the activity number of a polled device comprise instructions for calculating a number of time intervals the polled devices uses to send data to the polling device.
-
38. The program storage device of claim 33, wherein instructions to increase or decrease the polling rate of a polled device based upon the calculated activity level of the device comprise instructions for:
-
storing a variable corresponding to the interval of time a polled device will remain in an inactive state;
if the activity number is below a threshold value, the value of the variable representing the interval of time said polled device will remain in an inactive state is increased;
if the activity number exceeds a threshold value, the value of the variable representing the interval of time said polled device will remain in an inactive state is decreased.
-
-
39. The program storage device of claim 38 wherein said inactive state is a park state.
-
40. The program storage device of claim 38 wherein said inactive state is a hold state.
-
41. The program storage device of claim 33, wherein said polling device is a host device and said polled devices are peripheral devices.
-
42. The program storage device of claim 33, wherein said polling device and said polled devices are peer devices that operate in a master/slave relationship on a permanent basis.
-
43. The program storage device of claim 33, wherein said polling device and said polled devices are peer devices that operate in a master/slave relationship on a transient basis.
-
44. The program storage device of claim 33, wherein polling of one ore more polled devices by said polling device occurs over a wireless interface.
-
45. The program storage device of claim 44, wherein said wireless interface is an infrared interface.
-
46. The program storage device of claim 44, wherein said wireless interface utilizes the ISM band (2.4 Ghz).
-
47. In a system including a polling device and a plurality of devices that are polled by said polling device, a method for dynamically adjusting a polling rate of each of the polled devices comprising the steps of:
-
(a) calculating an activity number for each polled devices by said polling device; and
,(b) increasing or decreasing the polling rate of said one or more polled devices by said polling device based upon the activity number calculated for each polled device.
-
-
48. A polling device for dynamically adjusting a polling rate of a plurality of polled devices by said polling device, comprising a computer system in said polling device adapted to:
-
(a) calculate an activity number of each polled device;
(b) increase or decrease a polling rate of a polled device based upon the calculated activity number of the device.
-
-
49. In a system including a polling device and a plurality of devices that are polled by said polling device, a program storage device, readable by a computer system, comprising:
- instructions stored thereon for causing the computer system to;
(a) calculate an activity number of each polled device;
(b) increase or decrease a polling rate of a polled device based upon the calculated activity number of the device.
- instructions stored thereon for causing the computer system to;
-
50. In a system including a polling device and one or more devices that are polled by said polling device, a method for dynamically adjusting a polling rate of each of the polled devices comprising the steps of:
-
(a) calculating an activity number for each polled devices by said polling device, wherein the activity number is a ratio of a number of responses received from a polled device to the number of polls sent to the polled device; and
,(b) increasing or decreasing the polling rate of said one or more polled devices by said polling device based upon the activity number calculated for each polled device.
-
-
51. A polling device for dynamically adjusting a polling rate of one or more polled devices by said polling device, comprising a computer system in said polling device adapted to:
-
(a) calculate an activity number of each polled device, wherein the activity number is a ratio of a number of responses received from a polled device to the number of polls sent to the polled device;
(b) increase or decrease a polling rate of a polled device based upon the calculated activity number of the device.
-
-
52. In a system including a polling device and one or more devices that are polled by said polling device, a program storage device, readable by a computer system, comprising:
- instructions stored thereon for causing the computer system to;
(a) calculate an activity number of each polled device wherein the activity number is a ratio of a number of responses received from a polled device to the number of polls sent to the polled device;
(b) increase or decrease a polling rate of a polled device based upon the calculated activity number of the device.
- instructions stored thereon for causing the computer system to;
Specification