Method for processing data quantifying force applied to one or more keys of a computer keyboard
First Claim
1. A method of processing data received from a keyboard having a plurality of keys, the plurality of keys including multiple keys having respective characters assigned thereto, the plurality of keys further including one or more force-sensing keys, the method comprising:
- receiving keyboard data sets reporting, for keys of the plurality pressed by a keyboard user, key force data and key identification data;
determining whether key force data in a keyboard data set updates key force data corresponding to a previously-reported key press for a key continuing to be pressed;
generating first type keyboard data messages containing force updates based on updated key force data, key identifiers for the keys associated with the updated key force data, and force update indicators; and
generating second type keyboard data messages identifying initially pressed keys and forces applied to the initially pressed keys.
2 Assignments
0 Petitions
Accused Products
Abstract
A computer receives data from a keyboard having one or more keys which cause generation of keyboard data that quantitatively describe the relative force applied to those keys. The keyboard data are transmitted in an HID report containing identifiers for one or more keys that have been pressed and force data for each key. The force data may be a multi-bit value quantifying the key force, or a null indicator signaling that the key is not force-sensing. Keyboard data messages are then prepared which identify keys pressed, contain force data, and may indicate whether the force data updates previous force data. Force updates are only provided to application programs registering for key force data. In other aspects of the invention, key repeat messages are automatically generated for a key held pressed by a user. The key repeat messages are generated at a rate controlled by the amount of force applied to the key.
90 Citations
44 Claims
-
1. A method of processing data received from a keyboard having a plurality of keys, the plurality of keys including multiple keys having respective characters assigned thereto, the plurality of keys further including one or more force-sensing keys, the method comprising:
-
receiving keyboard data sets reporting, for keys of the plurality pressed by a keyboard user, key force data and key identification data;
determining whether key force data in a keyboard data set updates key force data corresponding to a previously-reported key press for a key continuing to be pressed;
generating first type keyboard data messages containing force updates based on updated key force data, key identifiers for the keys associated with the updated key force data, and force update indicators; and
generating second type keyboard data messages identifying initially pressed keys and forces applied to the initially pressed keys. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method of processing data received from a keyboard having a plurality of keys, the plurality of keys including multiple keys having respective characters assigned thereto, the plurality of keys further including one or more force-sensing keys, the method comprising:
-
receiving a keyboard data set reporting, for multiple keys of the plurality pressed by a keyboard user, key force data and key identification data;
parsing the key identification data into an ordered list of key identifiers;
parsing the key force data into an ordered list of key force values; and
associating key identifiers and force values based on the orders in which the key identification data and the key force data appear in the keyboard data set. - View Dependent Claims (15, 16)
-
-
17. A method for processing data received from a keyboard having a plurality of keys, the plurality of keys including multiple keys having respective characters assigned thereto, the plurality of keys further including one or more force-sensing keys, the method comprising:
-
receiving a registration from a first application program requesting keyboard input data and key force data;
receiving a registration from a second application program requesting keyboard input data;
receiving keyboard data messages identifying keys that have been pressed by a user and containing force values for forces applied to the pressed keys;
generating a first keyboard input message identifying a first pressed key and containing the force value for the first pressed key; and
generating a second keyboard input message identifying a second pressed key and containing the force value for the second pressed key and a force update indicator. - View Dependent Claims (18, 19, 20, 21, 22)
-
-
23. A computer-readable medium having stored thereon data representing sequences of instructions which, when executed by a processor, cause the processor to perform steps comprising:
-
receiving keyboard data sets from a keyboard having a plurality of keys, the plurality of keys including multiple keys having respective characters assigned thereto, the plurality of keys further including one or more force-sensing keys, wherein the keyboard data sets report, for keys of the plurality pressed by a keyboard user, key force data and key identification data;
determining whether key force data in a keyboard data set updates key force data corresponding to a previously-reported key press for a key continuing to be pressed;
generating first type keyboard data messages containing force updates based on updated key force data, key identifiers for the keys associated with the updated key force data, and force update indicators; and
generating second type keyboard data messages identifying initially pressed keys and forces applied to the initially pressed keys. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. A computer-readable medium having stored thereon data representing sequences of instructions which, when executed by a processor, cause the processor to perform steps comprising:
-
receiving a keyboard data set from a keyboard having a plurality of keys, the plurality of keys including multiple keys having respective characters assigned thereto, the plurality of keys further including one or more force-sensing keys, wherein the keyboard data sets report, for multiple keys of the plurality pressed by a keyboard user, key force data and key identification data;
parsing the key identification data into an ordered list of key identifiers;
parsing the key force data into an ordered list of key force values; and
associating key identifiers and force values based on the orders in which the key identification data and the key force data appear in the keyboard data set. - View Dependent Claims (37)
-
-
38. The computer-readable medium of claim 38, wherein a null indicator is a zero value for key force data.
-
39. A computer-readable medium having stored thereon data representing sequences of instructions which, when executed by a processor, cause the processor to perform steps comprising:
-
receiving a registration from a first application program requesting keyboard input data and key force data;
receiving a registration from a second application program requesting keyboard input data;
receiving keyboard data messages identifying keys that have been pressed by a user on a keyboard having a plurality of keys, the plurality of keys including multiple keys having respective characters assigned thereto, the plurality of keys further including one or more force-sensing keys, wherein the keyboard data messages contain force values for forces applied to the pressed keys;
generating a first keyboard input message identifying a first pressed key and containing the force value for the first pressed key; and
generating a second keyboard input message identifying a second pressed key and containing the force value for the second pressed key and a force update indicator. - View Dependent Claims (40, 41, 42, 43, 44)
-
Specification