Systems and methods are disclosed herein that generally relate to activation of different computer functions based on key compression patterns, and in particular to activation of a sticky key function or a “Caps Lock” function based on compression patterns of the SHIFT key.
For telephones and other mobile electronics that cannot accommodate a full keyboard, it has become customary for a single key to serve multiple functions. Traditionally, different functions can be accessed depending on the number of times a key is pressed in a given time frame, or depending on other keys that are pressed in conjunction with a given key during the time frame. For example, on many mobile phone keyboards, pressing the SHIFT key once will cause any letter key pressed while the SHIFT key is still compressed to appear as a capital letter, but pressing the SHIFT key quickly twice in a row activates the “Caps-Lock” function, causing every letter key pressed thereafter to appear as a capital letter until the Caps-Lock function is disabled.
Users become accustomed to using such key compression patterns for particular mobile devices, and expect that the same patterns will produce the same effect on any mobile device. However, as various manufacturers have created different key compression patterns, it is not always possible for a single keyboard to be able to respond appropriately to all of the patterns. Particularly where the patterns become more complex, the logic for determining which pattern a user was trying to create becomes similarly complex. These problems are exacerbated by the ever-increasing demand for more compact devices with fewer keys.
Using the SHIFT key as an example, many WINDOWS operating systems are programmed such that five consecutive presses of the SHIFT key will cause the computer to prompt a user about whether they would like to activate a “sticky keys” function. The sticky keys function is an accessibility requirement for people who have difficulty pressing multiple keys at once. Once activated, it allows keys like SHIFT, CONTROL, and ALT to remain virtually pressed until a subsequent key is pressed. However, this conflicts with the aforementioned convention among mobile device keyboards that two presses of the shift key results in activation of the Caps-Lock function. On a keyboard recognizing both patterns, for example, pressing the SHIFT key twice would automatically activate Caps-Lock, and a user would never be able to get to the sticky keys dialogue.
Therefore, a need exists for improved keyboard control systems and methods that can analyze key compression patterns.
A method is provided that in one embodiment includes retrieving, by at least one computer processor, a key compression pattern and determining, also by the at least one computer processor, whether the key compression pattern includes five consecutive presses of a key. The key compression pattern can include identities of one or more keys that have been pressed by a user and time intervals between each key press and a previous key release. If the at least one computer processor determines that the key compression pattern includes five consecutive presses of the key, the method can further include sending a first signal immediately after the fifth release of the key. If the at least one computer processor determines that the key compression pattern does not include five consecutive presses of the key, the method can further include waiting for a timeout period before determining whether to send a second signal.
In another aspect, a method is provided that can include, for a plurality of keyboard functions, storing one or more criteria in a data store for activating the keyboard function. The one or more criteria can be met by at least two different key compression patterns. The method can further include, after a release of a final key in an input key compression pattern, retrieving the input key compression pattern by at least one computer processor and sequentially determining whether the input key compression pattern meets the one or more criteria for each of the plurality of keyboard functions in turn. Between at least two of the sequential determinations, the method can include waiting for a timeout period.
In yet another aspect, a method is provided that include retrieving, by at least one computer processor, a key compression pattern and determining, also by the at least one computer processor, whether they key compression pattern meets one or more criteria for activating a first keyboard function. The key compression pattern can include identities of one or more keys that have been pressed by a user and time intervals each key press and a previous release. If the at least one computer processor determines that the key compression pattern meets the one or more criteria for activating the first keyboard function, the method can further include prompting the user on a computer display about activating the first keyboard function. If the at least one computer processor determines that the key compression pattern does not meet the one or more criteria for activating the first keyboard function, the method can further include waiting for a timeout period before determining whether the key compression pattern meets one or more criteria for activating a second keyboard function.
In yet another aspect, a computer system is provided that can include a keyboard having a plurality of keys, a memory configured to store one or more criteria for activating each of a plurality of functions of the keyboard, and at least one computer processor configured to sequentially determine whether an input key compression pattern meets the one or more criteria for each of the plurality of keyboard functions in turn and, between at least two of the sequential determinations, to wait for a timeout period. The one or more criteria can be met by at least two different key compression patterns.
In yet another aspect, a non-transitory computer-readable storage medium containing instructions is provided. The instructions can cause one or more computer processors to retrieve a key compression pattern that includes identities of one or more keys that have been pressed by a user and time intervals between each key press and a previous key release. The instructions can further cause the one or more computer processors to determine whether the key compression pattern includes five consecutive presses of a key. If the one or more computer processors determine that the key compression pattern includes five consecutive presses of the key, the instructions cause the one or more computer processors to send a first signal immediately after the fifth release of the key. If the one or more computer processors determine that the key compression pattern does not include five consecutive presses of the key, the instructions cause the one or more computer processors to wait for a timeout period before determining whether to send a second signal.
The invention will be more fully understood from the following detailed description taken in conjunction with the accompanying drawings, in which:
Systems and methods are provided for analyzing key compression patterns on a keyboard using one or more computer servers and storage devices. In general, the systems and methods can include a computer system that keeps track of input from a keyboard over time and analyzes the resulting key compression patterns to determine whether the patterns satisfy predetermined criteria for sending one or more signals to activate a computer function. The criteria can be defined to accommodate user error and/or inability to create a desired key compression pattern. In an exemplary embodiment, the computer system waits for a specified amount of time after receiving the keyboard input before sending certain signals. In this way, where a user accidentally waits too long before pressing a desired key, or where a user is not capable of pressing keys quickly, the computer system can still ascertain a user's intent to create a particular key compression pattern. The systems and methods disclosed herein are particularly useful with key compression patterns that involve multiple compressions of the same key, for example using multiple consecutive presses of the SHIFT key for sending a signal to active the Caps Lock or the sticky keys function.
Certain exemplary embodiments will now be described to provide an overall understanding of the principles of the structure, function, manufacture, and use of the devices and methods disclosed herein. One or more examples of these embodiments are illustrated in the accompanying drawings. Those of ordinary skill in the art will understand that the devices and methods specifically described herein and illustrated in the accompanying drawings are non-limiting exemplary embodiments and that the scope of the present invention is defined solely by the claims. The features illustrated or described in connection with one exemplary embodiment may be combined with the features of other embodiments. Such modifications and variations are intended to be included within the scope of the present invention.
In the present disclosure, like-named components of the embodiments generally have similar features, and thus within a particular embodiment, each feature of each like-named component is not necessarily fully elaborated upon. Sizes and shapes of devices and components of electronic devices discussed herein can depend at least on the electronic devices in which the devices and components will be used and the invention described herein is not limited to any specific size or dimensions.
The systems and methods disclosed herein can be implemented using one or more computer systems, such as the exemplary embodiment of a computer system 100 shown in
The various elements of the computer system 100 can be coupled to a bus system 112. The illustrated bus system 112 is an abstraction that represents any one or more separate physical busses, communication lines/interfaces, and/or multi-drop or point-to-point connections, connected by appropriate bridges, adapters, and/or controllers. The computer system 100 can also include one or more network interface(s) 106, one or more input/output (IO) interface(s) 108, and one or more storage device(s) 110.
The network interface(s) 106 can enable the computer system 100 to communicate with remote devices (e.g., other computer systems) over a network, and can be, for example, remote desktop connection interfaces, Ethernet adapters, and/or other local area network (LAN) adapters. The IO interface(s) 108 can include one or more interface components to connect the computer system 100 with other electronic equipment. For example, the IO interface(s) 108 can include high speed data ports, such as USB ports, 1394 ports, etc. Additionally, the computer system 100 can be accessible to a human user, and thus the IO interface(s) 108 can include displays, speakers, keyboards, pointing devices, and/or various other video, audio, or alphanumeric interfaces. The storage device(s) 110 can include any conventional medium for storing data in a non-volatile and/or non-transient manner. The storage device(s) 110 can thus hold data and/or instructions in a persistent state (i.e., the value is retained despite interruption of power to the computer system 100). The storage device(s) 110 can include one or more hard disk drives, flash drives, USB drives, optical drives, various media cards, and/or any combination thereof and can be directly connected to the computer system 100 or remotely connected thereto, such as over a network.
The elements illustrated in
Although an exemplary computer system is depicted and described herein, it will be appreciated that this is for sake of generality and convenience. In other embodiments, the computer system may differ in architecture and operation from that shown and described here.
An exemplary compression pattern analysis method 200 executed by the computer system 100 is illustrated in
A first step 202 of the exemplary method 200 is to receive input from a keyboard, e.g., the keyboard 114, when a key is pressed. The input can include identification information of the key that was pressed as well as a time between compression of that key and release of the previous key. For example, the input can indicate that the “A” key was pressed 0.5 seconds after the SHIFT key was released. The processor 102 can then store the input information in a memory, for example in the short-term memory 104, as part of a key compression pattern. Exemplary key compression patterns, which will be explained in detail later, are illustrated in
The analysis, explained in detail below, generally includes determining whether a key compression pattern meets criteria for activating one or more computer functions. In some embodiments, the criteria can be set to include both situations where the user actually created the “correct” key compression pattern and situations where the user failed to achieve the correct compression pattern, but likely intended to. Whether the user intended—but failed—to create the “correct” compression pattern can be based on assumptions about the user's intent and ability to create a given key compression pattern. The assumptions, as well as the criteria, can be stored in the storage 110 of the keyboard 114; however, they can be altered at any time, and can vary depending on the particular key compression pattern. If the processor 102 determines that a given key compression pattern does meet the specified criteria, it sends a signal to activate the computer function associated with the criteria. Otherwise, the processor 102 waits for the next keyboard input. In some embodiments, particularly where the computer function is intended to be a permanent or semi-permanent state, the key compression pattern is deleted from the memory 104 once the signal has been sent to activate the function. This is based on the assumption that whatever the user was intending to accomplish has been accomplished.
Various embodiments of the pattern analysis step 208 are explained below. For the sake of illustration, each of the exemplary analyses is related to consecutive compressions of the SHIFT key for activating the Caps-Lock or sticky key functions described above. The analyses are all based on the assumption that two consecutive, fast presses of the SHIFT key are intended to activate the Caps-Lock function, and five consecutive presses of the SHIFT key are intended to activate the sticky keys function. However, it will be appreciated by a person of skill in the art that similar methods can be used for many complex key compression patterns for activating any computer function. Also, although the methods are described below as being performed by an exemplary computer system 100 contained within the keyboard 114, they can be implemented by any one or more computer systems housed in any electronic device.
A first embodiment of a method 208 for analyzing key compression patterns is illustrated in
By following the method of
Three exemplary compression patterns that meet the criteria for activating the Caps-Lock function, according to the method 208, are illustrated in
A second exemplary compression pattern 30 that meets the criteria for triggering the Caps-Lock function, according to the method 208, is illustrated in
A third exemplary compression pattern 40 that meets the criteria for activating the Caps-Lock function, according to the method 208, is illustrated in
Three exemplary compression patterns that meet the criteria for bringing up the sticky keys dialogue, according to the method 208, are illustrated in
A second embodiment of a method 308 for analyzing key compression patterns, also triggered when a user compresses and releases the SHIFT key, is illustrated in
Applying the second embodiment of the method 308 to the key compression patterns of
Although the invention has been described by reference to specific embodiments, a person skilled in the art will understand that numerous changes may be made within the spirit and scope of the inventive concepts described. A person skilled in the art will appreciate further features and advantages of the invention based on the above-described embodiments. Accordingly, the invention is not to be limited by what has been particularly shown and described, except as indicated by the appended claims. All publications and references cited herein are expressly incorporated herein by reference in their entirety.