Method and system of data input for an electronic device equipped with a touch screen
First Claim
1. A method for filtering touch event input, the method comprising:
- receiving at least one touch event,each touch event of the at least one touch event comprising a type, an identifier, and a timestamp;
selecting a subset of touch events from the at least one touch event;
adding a data node selected from each touch event of the subset of touch events to a queue of data nodes, each data node comprising a type, an identifier, and a timestamp;
receiving a stream of sensor events from a stylus, each sensor event comprising a sensor level;
comparing the sensor level of the each sensor event to a threshold level;
generating a contact event from the stream of sensor events, the contact event comprising a type and a timestamp, the contact event being generated by;
when the sensor level exceeds a threshold level and a contact flag is false, then;
setting the contact flag to true,setting the timestamp of the contact event, andsetting the type of the contact event to be a contact start, andcalling a contact event handler; and
when the sensor level does not exceed the threshold level and the contact flag is true, then;
setting the contact flag to false,setting the timestamp of the contact event, andsetting the type of the contact event to be a contact end, andcalling a contact event handler;
when the type of the contact event is a contact start event, then;
selecting a set of data nodes from the queue of data nodes,wherein the type of each data node in the set of data nodes is a touch start type, andthe timestamp of each data node in the set of data nodes is within a predetermined duration of the timestamp of the contact event; and
when the set of data nodes is not null, then;
selecting a data node from the set of data nodes, andstoring the identifier of the data node in an associated touch identifier.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are disclosed for differentiating between stylus touches and non-stylus touches on a touchscreen device. A stylus emits a signal, received by the touchscreen device, and software selects a touch, the touch start event for which occurred near the time of the signal, and the size and location of which best fit filters, as being the touch made by the stylus. The software associates that touch with the stylus until the touch ends, or until the stylus emits a signal indicating that contact has ended. The signal may be mechanically generated audio, such as from the stylus contacting the screen, or electronic (audio, RF, IR), generated by the stylus upon detecting pressure or capacitive flux. The methods and systems allow software to perform palm rejection filtering, to track one stylus or multiple styluses, and to ignore touches triggered by dirt, rain, and other environmental causes.
131 Citations
20 Claims
-
1. A method for filtering touch event input, the method comprising:
-
receiving at least one touch event, each touch event of the at least one touch event comprising a type, an identifier, and a timestamp; selecting a subset of touch events from the at least one touch event; adding a data node selected from each touch event of the subset of touch events to a queue of data nodes, each data node comprising a type, an identifier, and a timestamp; receiving a stream of sensor events from a stylus, each sensor event comprising a sensor level; comparing the sensor level of the each sensor event to a threshold level; generating a contact event from the stream of sensor events, the contact event comprising a type and a timestamp, the contact event being generated by; when the sensor level exceeds a threshold level and a contact flag is false, then; setting the contact flag to true, setting the timestamp of the contact event, and setting the type of the contact event to be a contact start, and calling a contact event handler; and when the sensor level does not exceed the threshold level and the contact flag is true, then; setting the contact flag to false, setting the timestamp of the contact event, and setting the type of the contact event to be a contact end, and calling a contact event handler; when the type of the contact event is a contact start event, then; selecting a set of data nodes from the queue of data nodes, wherein the type of each data node in the set of data nodes is a touch start type, and the timestamp of each data node in the set of data nodes is within a predetermined duration of the timestamp of the contact event; and when the set of data nodes is not null, then; selecting a data node from the set of data nodes, and storing the identifier of the data node in an associated touch identifier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer system comprising:
-
one or more processors; a communications receptor; a touchscreen operatively coupled to the one or more processors; a computer readable medium operatively coupled to the one or more processors; and logic stored in the computer readable medium that, when executed from the computer readable medium by the one or more processors, causes the computer to filter touchscreen input by at least; receiving at least one touch event, each touch event of the at least one touch event comprising a type, an identifier, and a timestamp; selecting a subset of touch events from the at least one touch event; adding a data node selected from each touch event of the subset of touch events to a queue of data nodes, each data node comprising a type, an identifier, and a timestamp; receiving a stream of sensor events from a stylus, each sensor event comprising a sensor level; comparing the sensor level of the each sensor event to a threshold level; generating a contact event from the stream of sensor events, the contact event comprising a type and a timestamp, the contact event being generated by; when the sensor level exceeds a threshold level and a contact flag is false, then; setting the contact flag to true, setting the timestamp of the contact event, and setting the type of the contact event to be a contact start, and calling a contact event handler; and when the sensor level does not exceed the threshold level and the contact flag is true, then; setting the contact flag to false, setting the timestamp of the contact event, and setting the type of the contact event to be a contact end, and calling a contact event handler; when the type of the contact event is a contact start event, then; selecting a set of data nodes from the queue of data nodes, wherein the type of each data node in the set of data nodes is a touch start type, and the timestamp of each data node in the set of data nodes is within a predetermined duration of the timestamp of the contact event; and when the set of data nodes is not null, then; selecting a data node from the set of data nodes, and storing the identifier of the data node in an associated touch identifier. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification