Over time, the ways in which users can interact with computers have expanded. Where users were once limited to using keyboards to interact with computers, users can now interact with computers using different input mechanisms such as touch screens, track pads, and so forth. While these different input mechanisms are helpful to users, they are not without their problems. Once such problem is that some input mechanisms are adversely affected by interference in different situations. This interference can result in the location sensed using the input mechanism being different than the location intended to be input by the user, which can lead to a frustrating user experience.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
In accordance with one or more aspects, a system includes a coarse correction table and a partial fine correction table. The coarse correction table stores mappings of sensed locations of an input panel to intermediate corrected locations that compensate for interference introduced into the input panel. The partial fine correction table stores mappings of particular intermediate corrected locations to corrected locations, the particular intermediate corrected locations being a subset of the intermediate corrected locations that have an accuracy that fails to satisfy a threshold coordinate accuracy. The system also includes a compensation control module that is configured to apply, to a sensed location of the input panel, the mappings of the coarse correction table and the mappings of the partial fine correction table to generate a corrected location that compensates for interference introduced to the input panel.
In accordance with one or more aspects, a current environment of an input panel is identified and a regional correction table corresponding to the current environment of the input panel is obtained. The regional correction table identifies changes to make to one or more baseline tables. The one or more baseline tables store mappings to generate, based on a sensed location of the input panel, a corrected location that compensates for interference introduced into the input panel. The one or more baseline tables are updated in accordance with the changes identified in the regional correction table.
The same numbers are used throughout the drawings to reference like features.
Input location correction tables for input panels are discussed herein. Input panels can detect user inputs in different manners, such as by detecting the touch or position of a user's finger, by sensing the location of a stylus, and so forth. Interference can be introduced into an input panel by various different devices attached to the input panel (or attached to a computing device including the input panel) and/or various different devices in close proximity to the input panel. One or more input location correction tables are used to compensate for this interference and generate a corrected location based on a sensed location of the input panel. The one or more input location correction tables can include coarse and partial fine correction tables, the partial fine correction table storing mappings of intermediate locations mapped to by the coarse correction table that have an accuracy that fails to satisfy a threshold coordinate accuracy. Different environments (e.g., the presence or absence of a magnetically attached keyboard) in which the input panel can be situated can result in different interference being introduced, and the one or more input location correction tables can be updated based on a current environment to compensate for the interference introduced in the current environment.
Computing device 100 is illustrated as including an input/output module 102 that includes a coordinate compensation system 104. Input/output module 102 is representative of functionality relating to processing of inputs and rendering outputs of computing device 100. A variety of different inputs may be processed by input/output module 102, such as inputs relating to functions that correspond to keys of an input device coupled to computing device 100 or keys of a virtual keyboard displayed by a display device 110 included as part of computing device 100, inputs that are gestures recognized through touchscreen functionality of display device 110 and that cause operations to be performed that correspond to the gestures, and so forth.
Display device 110 includes an input panel that senses user inputs. This input panel can take various forms, such as a touchscreen implemented using various different technologies as discussed in more detail below. Display device 110 is thus also referred to as an interactive display device due to the ability of the display device to receive user inputs. Interference can be introduced into the input panel by various different devices attached to computing device 100 and/or in close proximity to computing device 100. Coordinate compensation system 104 leverages the various techniques discussed herein to compensate for this interference, resulting in the locations of user inputs (e.g., touches or gestures along particular locations of the input panel) being accurately identified despite this interference.
Computing device 200 is illustrated as including an input/output module 206 that includes a coordinate compensation system 208, and also a display device 210. Display device 210 is an interactive display device, analogous to display device 110 of
In the illustrated example, input device 202 is configured as a keyboard having a QWERTY arrangement of keys although other arrangements of keys are also contemplated. Further, other non-conventional configurations are also contemplated, such as a game controller, configuration to mimic a musical instrument, and so forth. Thus, input device 202 and keys included as part of input device 202 can assume a variety of different configurations to support a variety of different functionality. Each of these different configurations can introduce different interference into the input panel included in display device 210, and thus can each be viewed as a different environment for the input panel as discussed in more detail below.
Input device 202 is physically and communicatively coupled to computing device 200 in this example through use of a flexible hinge 204. Flexible hinge 204 is flexible in that rotational movement supported by the hinge is achieved through flexing (e.g., bending) of the material forming the hinge as opposed to mechanical rotation as supported by a pin, although that embodiment is also contemplated. Further, this flexible rotation may be configured to support movement in one direction (e.g., vertically in the figure) yet restrict movement in other directions, such as lateral movement of input device 202 in relation to computing device 200. This may be used to support consistent alignment of input device 202 in relation to computing device 200, such as to align sensors used to change power states, application states, and so on.
Flexible hinge 204 can be configured in a variety of ways, such as being formed using one or more layers of fabric and including conductors formed as flexible traces to communicatively couple input device 202 to computing device 200 and vice versa. This communication, for instance, can be used to communicate a result of a key press to computing device 200, receive power from computing device 200, perform authentication, provide supplemental power to computing device 200, and so on.
Flexible hinge 204 can be configured to support movement of input device 202 in relation to computing device 200 that is similar to a hinge of a book. For example, rotational movement can be supported by flexible hinge 204 such that input device 200 can be placed against display device 210 of computing device 200 and thereby act as a cover. Input device 202 can also be rotated so as to be disposed against a back of computing device 200, e.g., against a rear housing of computing device 200 that is disposed opposite display device 210 on computing device 200.
Computing device 200 can be coupled to input device 202 in various different manners. In one or more embodiments, input device 202 includes one or more magnetic coupling devices configured to magnetically couple to complementary magnetic coupling devices of computing device 200 through use of one or more magnets. In this way, input device 202 can be physically secured to computing device 200 through use of magnetic attraction. Mechanical coupling protrusions can be configured on input device 202 to extend away from a surface of input device 202, and to be received within complimentary cavities of computing device 200 to promote a mechanical biding between the devices 200 and 202.
It should be noted that although input panels are discussed with reference to
Coordinate compensation system 300 compensates or corrects for interference introduced into input panel 310 by various different devices. The interference introduced into input panel 310 can cause a location of a user input sensed by input panel 310 to be different than the location actually desired to be input by a user. For example, assume input panel 310 senses inputs in a 2-dimensional grid and identifies locations of inputs using an x,y coordinate system. Situations can arise in which the user touches input panel 310 at a location that the user intends to be at 2,3 in the coordinate system, but that is sensed as 5,7 in the coordinate system due to interference. The compensation or correction provided by coordinate compensation system 300 refers to modifying the location sensed by input panel 310 so that the location desired to be input by the user is reported rather than the sensed location (e.g., in the previous location the location 2,3 is reported rather than 5,7).
Input panel 310 can take various forms. Input panel 310 can be, for example, part of interactive display device 110 of
Interference can be introduced into input panel 310 by various different devices attached to (e.g., physically connected to) input panel 310, by various different devices attached to (e.g., physically connected to) a device that includes input panel 310 (e.g., various different devices or components attached to display device 110 of
Various different devices can be attached to the input panel 310 or a device that includes input panel 310, introducing interference into input panel 310. For example, a device (e.g., a keyboard or other controller) can be magnetically attached to the device including input panel 310. By way of another example, devices can be attached to the device including input panel 310 using a universal serial bus (USB) connection, IEEE 1394 connection, and so forth.
Various different devices can also be in close proximity to input panel 310 or a device that includes input panel 310, introducing interference into input panel 310. For example, an additional display device (e.g., television, interactive display device of another computing device, etc.) can be in close proximity to (e.g., within a threshold distance, such as 2 centimeters (cm) of) the input panel 310. By way of another example, a communication device, an output device, an input device, and so forth can be in close proximity to (e.g., within a threshold distance, such as 5 cm of) input panel 310.
Returning to
Environment detection module 306 detects the current environment of input panel 310 and provides an indication of the current environment to compensation control module 302. Compensation control module 302 can optionally select one or more regional correction tables from regional correction table store 308 based on the current environment of input panel 310 and include the selected one or more regional correction tables in correction table memory 304, as discussed in more detail below.
Environment detection module 306 can detect the current environment of the input panel in various different manners. In one or more embodiments, environment detection module 306 registers with an event or other monitoring system of the computing device including input panel 310, and the event system notifies module 306 each time a device is attached to or removed from that computing device, each time a device moves to within or outside of a threshold distance of that computing device, each time such a device is enabled or disabled (or powered on or off), and so forth. Alternatively, environment detection module 306 can detect the current environment of input panel 310 in other manners. For example, environment detection module 306 can poll an operating system registry or other registration store, database, or record to identify when a device is attached to or removed from a computing device including input panel 310, each time a device moves to within or outside of a threshold distance of a computing device including input panel 310, each time such a device is enabled or disabled (or powered on or off), and so forth.
Correction table memory 304 stores one or more sets of input panel location mappings. Each set of input panel location mappings maps each of multiple locations of input panel 310 to another location. Each set of input panel location mappings is discussed herein with reference to a table mapping particular input panel locations to other input panel locations. Alternatively, one or more sets of input panel location mappings can be implemented in other manners, such as using various rules or formulas that are applied to map particular input panel locations to other input panel locations.
In one or more embodiments, correction table memory 304 stores a coarse correction table and a fine correction table. The coarse correction table includes mappings that correct for particular types of interference (e.g., magnetic and metal interference) across all or substantially all of the input panel. The fine correction table corrects for coordinate shift introduced by interference or other discrepancies (e.g., manufacturing or design discrepancies or differences). The coarse correction table is typically (but need not be) a coarser granularity than the fine correction table, providing mappings for broader areas of input panel 310 than the fine correction table.
The coarse and fine correction tables can be generated using any of a variety of different public and/or proprietary techniques. In one or more embodiments, one or more processes are used to analyze input panel 310 and identify the interference and/or coordinate shift experienced at each of multiple locations of input panel 310 for a particular environment. This analysis is typically performed under controlled conditions, such as in a lab or test facility, allowing the interference and/or coordinate shift for the particular environment to be readily identified.
Compensation control module 302 applies the one or more sets of input panel location mappings in correction table memory 304 to sensed input locations of input panel 310 to generate corrected input locations. These corrected input locations compensate or correct for interference introduced into input panel 310. The one or more sets of input panel location mappings in correction table memory 304 can optionally vary over time, being changed by compensation control module 302 based on the environment in which the device including system 300 is situated at any given time, as discussed in more detail below.
Coordinate compensation system 500 obtains a sensed location 510, which is a location of a user input sensed by input panel 520. System 500 can obtain sensed location 510 in various manners, such as by another component or module passing sensed location 510 to system 500, by another component or module invoking an interface of system 500 to provide sensed location 510, by accessing a known memory location where sensed location 510 is stored, and so forth.
Compensation control module 502 applies the mappings of coarse correction table 504 to generate an intermediate corrected location for sensed location 510. Coarse correction table 504 includes mappings that correct for particular types of interference (e.g., magnetic and metal interference) across all or substantially all of the input panel 520 as discussed above.
The mappings of coarse correction table 504 result in intermediate corrected locations having a particular accuracy. The accuracy of an intermediate corrected location refers to how closely the intermediate corrected location that a sensed location is mapped to is to the location actually desired to be input. Each mapping of a sensed location to an intermediate corrected location in table 504 can have a different accuracy because interference introduced to input panel 520 can affect different portions of input panel 520 differently. The accuracy of each intermediate corrected location can be determined using any of a variety of different public and/or proprietary techniques, and is typically determined as part of the process of analyzing input panel 520 and identifying the interference and/or coordinate shift experienced at each of multiple locations of input panel 520 for a particular environment as discussed above.
Areas of input panel 520 for which the mappings of coarse correction table 504 result in intermediate corrected locations having an accuracy that fails to satisfy a threshold coordinate accuracy (e.g., having an accuracy that is greater than a threshold coordinate accuracy or having an accuracy that is greater than or equal to a threshold coordinate accuracy) have additional mappings included in partial fine correction table 506. Areas of input panel 520 for which the mappings of coarse correction table 504 result in intermediate corrected locations having an accuracy that satisfies the threshold coordinate accuracy (e.g., having an accuracy that is less than a threshold coordinate accuracy or having an accuracy that is less than or equal to a threshold coordinate accuracy) need not, and typically do not, have additional mappings included in partial fine correction table 506. This threshold coordinate accuracy can have different values based on the type of input panel and desired accuracy for the input panel. For example, the threshold coordinate accuracy can be 0.5 millimeters, 1.0 millimeters, and so forth. Thus, partial fine correction table 506 stores mappings for a subset of the intermediate corrected locations resulting from applying coarse correction table 504.
The areas of the input panel for which mappings are included in partial fine correction table 506 can be identified during generation of table 504 and/or table 506. For ease of generation and use of partial fine correction table 506, some mappings can be included in table 506 for intermediate corrected locations having an accuracy that satisfies the threshold coordinate accuracy.
Returning to
If a mapping for an intermediate location is included in partial fine correction table 506, then compensation control module 502 applies the mapping of table 506 to generate corrected location 512 for sensed location 510. However, if a mapping for an intermediate location is not included in partial fine correction table 506, then compensation control module 502 uses the intermediate location obtained from coarse correction table 504 as the corrected location 512 for sensed location 510.
Compensation control module 502 can determine the intermediate locations for which partial fine correction table 506 includes mappings in various manners. In one or more embodiments, module 502 performs a lookup or other access for the intermediate location in table 506. If the intermediate location is included in table 506 then there is a corrected location mapped to for the intermediate location that is retrieved by module 502 and used as corrected location 512. However, if the intermediate location is not included in table 506 then there is no corrected location mapped to for the intermediate location, and the intermediate location is used by module 502 as corrected location 512.
Alternatively, compensation control module 502 can identify in other manners whether a mapping for an intermediate location is included in partial fine correction table 506. For example, module 502 can be pre-configured with an indication of which areas or groups of intermediate locations are included in table 506, module 502 can access another module or device to determine which areas or groups of intermediate locations are included in table 506, and so forth. In such situations, module 502 can readily know if a mapping for an intermediate location is included in table 506. If a mapping for an intermediate location is included in table 506 then table 506 is accessed to obtain the mapped to location that is corrected location 512. If a mapping for an intermediate location is not included in table 506 then table 506 need not be accessed and the intermediate location is used as corrected location 512.
In the illustrated example of
Coordinate compensation system 500 is discussed with reference to compensation control module 502 applying the mapping of table 506 for an intermediate location if a mapping for the intermediate location is stored in partial fine correction table 506. Alternatively, coarse correction table 504 and partial fine correction table 506 can be combined into a single correction table, with the mappings of partial fine correction table 506 replacing the intermediate locations in coarse correction table 504 as appropriate (e.g., if a mapping for an intermediate location is stored in partial fine correction table 506, that mapping replaces the intermediate location).
Fine correction table 706 can be a partial fine correction table, such as a partial fine correction table 506 of
Coordinate compensation system 700 also includes an environment detection module 708 and one or more regional correction tables 710. Environment detection module 708 can be, for example, an environment detection module 306 of
Input panel 730 can be situated in various different environments, and the current environment at any given time can be identified by environment detection module 708 as discussed above. Different environments have different corresponding correction tables that are maintained as regional correction tables 710. Each different environment can correspond to a different regional correction table 710, or multiple environments can correspond to the same regional correction table 710.
The coarse and fine correction tables 704, 706 corresponding to a particular environment are identified as a baseline or baseline tables. This particular environment can be any environment in which input panel 730 can be situated, such as an environment in which input panel 730 is included in an interactive display device of a computing device with no devices attached to and/or in close proximity to the computing device. Each regional correction table 710 identifies changes to make to the baseline tables in order to account for differences in interference introduced in the environment corresponding to the table 710. For example, the regional correction table 710 for an environment in which a keyboard is attached to the computing device including the interactive display device and input panel 730 can identify different mappings, relative to the baseline, to use for particular areas of input panel 730 due to the interference introduced to input panel 730 by the keyboard.
A regional correction table 710 can identify changes to make to the baseline in a variety of different manners. For example, a regional correction table 710 can identify one or more mappings that are to replace the mappings included in a baseline table. By way of another example, a regional correction table 710 can identify changes to make to a mapping included in a baseline table (e.g., an amount to increase or decrease an x dimension of an x,y coordinate, an amount to increase or decrease a y dimension of an x,y coordinate, etc.).
Regional correction tables 710 can be generated by generating coarse and fine correction tables for different environments using any of a variety of different public and/or proprietary techniques, analogous to the coarse and fine correction tables discussed above. For example, one or more processes are used to analyze the input and identify the interference and/or coordinate shift experienced at each of multiple locations of input panel 730 for each of multiple different environments (e.g., identify the interference and/or coordinate shift experienced at each of multiple locations of input panel 730 for an interactive display device alone, identify the interference and/or coordinate shift experienced at each of multiple locations of input panel 730 for an interactive display device with a keyboard attached, identify the interference and/or coordinate shift experienced at each of multiple locations of input panel 730 for an interactive display device with a USB flash drive or power supply unit inserted, etc.).
Given the coarse and fine correction tables for a particular environment, a regional correction table corresponding to that particular environment can readily be determined based on the baseline tables as well as the coarse and fine correction tables for the particular environment. In one or more embodiments, for each location of input panel 730 mapped in a baseline table, a check is made as to whether that location maps to the same location in both the baseline tables and the tables for the particular environment. If both the baseline tables and the tables for the particular environment map to the same location, then the mapping need not be included in the regional correction table; however, if the baseline tables and the tables for the particular environment map to different locations then the mapping included in the tables for the particular environment (e.g., the mappings in both the coarse and fine correction tables for the particular environment) is included in the regional correction table.
Alternatively, the regional correction table can be generated in other manners. In one or more embodiments, the accuracy of the baseline in a different environment is determined. For example, the baseline can correspond to an environment in which no devices are attached to and/or in close proximity to the device including an interactive display device, and the accuracy of the baseline can be determined for a new environment in which a keyboard is attached to the device including the interactive display device. For areas of each table in the baseline having an accuracy that fails to satisfy a threshold coordinate accuracy (e.g., having an accuracy that is greater than a threshold coordinate accuracy or having an accuracy that is greater than or equal to a threshold coordinate accuracy) for the new environment, new mappings for the locations in those areas are identified and included in a regional correction table corresponding to the new environment. These new mappings can be generated by generating coarse and fine correction tables for the new environment using any of a variety of different public and/or proprietary techniques, analogous to generating the coarse and fine correction tables discussed above.
Returning to
Thus, for each different environment in which the device including input panel 730 is situated (other than the environment corresponding to the baseline), the set of mappings in the regional correction table 710 corresponding to the environment are combined with the set of mappings in the coarse and/or fine correction tables. The regional correction table 710 can thus be viewed as being stitched together with the coarse and/or fine correction tables.
Coordinate compensation system 700 obtains a sensed location 720, which is a location of a user input sensed by input panel 730. System 700 can obtain sensed location 720 in various manners, such as by another component or module passing sensed location 720 to system 700, by another component or module invoking an interface of system 700 to provide sensed location 720, by accessing a known memory location where sensed location 720 is stored, and so forth.
After updating coarse correction table 704 and/or fine correction table 706 for a particular environment based on the regional correction table 710 corresponding to that particular environment, compensation control module 702 applies the mappings of coarse correction table 704 to generate an intermediate corrected location for sensed location 720. Coarse correction table 704 includes mappings that correct for particular types of interference (e.g., magnetic and metal interference) across all or substantially all of input panel 730 as discussed above.
Compensation control module 702 applies the mappings of fine correction table 706 to the intermediate corrected location to obtain the corrected location 722 for the sensed location 720. The fine correction table corrects for coordinate shift introduced by interference or other discrepancies (e.g., manufacturing or design discrepancies or differences) as discussed above. Alternatively, if fine correction table 706 is a partial fine correction table, then module 702 does not apply the mappings of table 706 to the intermediate if a mapping for the intermediate location is not included in table 706.
It should be noted that regional correction tables 710 are maintained in a regional correction table store, such as store 308 of
In the illustrated example of
In process 900, a current environment of an input panel is identified (act 902). The input panel can be situated in various different environments as discussed above. The current environment of the input panel can also be referred to as the current environment of a display device and/or computing device including the input panel.
A regional correction table corresponding to the current environment is obtained (act 904). The regional correction table identifies changes to make to one or more baseline tables in order to account for differences in interference introduced into the input panel in the corresponding environment, as discussed above.
The one or more baseline tables are updated in accordance with the changes in the regional correction table (act 906). The one or more baseline tables can be updated in different manners as discussed above, such as replacing mappings in the one or more baseline tables with mappings in the regional correction table, modifying mappings in the one or more baseline tables based on indications in the regional correction table, and so forth.
The updated one or more baseline tables are used to compensate for interference introduced into the input panel (act 908). The updated one or more baseline tables are applied to a sensed location to generate a corrected location, as discussed above.
In process 1000, a sensed location for an input panel is obtained (act 1002). The sensed location can be obtained in different manners, as discussed above.
An intermediate panel location is generated by applying a coarse correction table to the sensed location to compensate for interference introduced to the input panel (act 1004). Interference can be introduced into the input panel by a variety of different devices, as discussed above.
Process 1000 then proceeds based on whether the accuracy of the intermediate location generated in act 1004 satisfies a threshold coordinate accuracy (act 1006). If the intermediate location satisfies the threshold coordinate accuracy, then the intermediate location is used as a corrected location for the sensed location (act 1008), and is output or otherwise provided as the user input location based on the sensed location.
However, if the intermediate location does not satisfy the threshold coordinate accuracy, then a corrected location is generated by applying a fine correction table to the intermediate location (act 1010). The corrected location is output or otherwise provided as the user input location based on the sensed location.
Various actions performed by various modules are discussed herein. A particular module discussed herein as performing an action includes that particular module itself performing the action, or alternatively that particular module invoking or otherwise accessing another component or module that performs the action (or performs the action in conjunction with that particular module). Thus, a particular module performing an action includes that particular module itself performing the action and/or another module invoked or otherwise accessed by that particular module performing the action.
The example computing device 1102 as illustrated includes a processing system 1104, one or more computer-readable media 1106, and one or more I/O interfaces 1108 that are communicatively coupled, one to another. Although not shown, the computing device 1102 may further include a system bus or other data and command transfer system that couples the various components, one to another. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures. A variety of other examples are also contemplated, such as control and data lines.
The processing system 1104 is representative of functionality to perform one or more operations using hardware. Accordingly, the processing system 1104 is illustrated as including hardware elements 1110 that may be configured as processors, functional blocks, and so forth. This may include implementation in hardware as an application specific integrated circuit or other logic device formed using one or more semiconductors. The hardware elements 1110 are not limited by the materials from which they are formed or the processing mechanisms employed therein. For example, processors may be comprised of semiconductor(s) and/or transistors (e.g., electronic integrated circuits (ICs)). In such a context, processor-executable instructions may be electronically-executable instructions.
The computer-readable storage media 1106 is illustrated as including memory/storage 1112. The memory/storage 1112 represents memory/storage capacity associated with one or more computer-readable media. The memory/storage component 1112 may include volatile media (such as random access memory (RAM)) and/or nonvolatile media (such as read only memory (ROM), Flash memory, optical disks, magnetic disks, and so forth). The memory/storage component 1112 may include fixed media (e.g., RAM, ROM, a fixed hard drive, and so on) as well as removable media (e.g., Flash memory, a removable hard drive, an optical disc, and so forth). The computer-readable media 1106 may be configured in a variety of other ways as further described below.
Input/output interface(s) 1108 are representative of functionality to allow a user to enter commands and information to computing device 1102, and also allow information to be presented to the user and/or other components or devices using various input/output devices. Examples of input devices include a keyboard, a cursor control device (e.g., a mouse), a microphone to receive voice or other audible inputs, a scanner, touch functionality (e.g., capacitive or other sensors that are configured to detect physical touch), a camera (e.g., which may employ visible or non-visible wavelengths such as infrared frequencies to recognize movement as gestures that do not involve touch), and so forth. Examples of output devices include a display device (e.g., a monitor or projector), speakers, a printer, a network card, tactile-response device, and so forth. Thus, the computing device 1102 may be configured in a variety of ways to support user interaction.
Coordinate compensation system 1114 is representative of a coordinate compensation system that leverages the various techniques discussed herein to compensate for interference introduced into an input panel of computing device 1102 by various different devices attached to computing device 1102 and/or in close proximity to computing device 1102. Coordinate compensation system 104 can be, for example, a coordinate compensation system 104 of
Various techniques may be described herein in the general context of software, hardware elements, or program modules. Generally, such modules include routines, programs, objects, elements, components, data structures, and so forth that perform particular tasks or implement particular abstract data types. The terms “module,” “functionality,” and “component” as used herein generally represent software, firmware, hardware, or a combination thereof. The features of the techniques described herein are platform-independent, meaning that the techniques may be implemented on a variety of computing platforms having a variety of processors.
An implementation of the described modules and techniques may be stored on or transmitted across some form of computer-readable media. The computer-readable media may include a variety of media that may be accessed by the computing device 1102. By way of example, and not limitation, computer-readable media may include “computer-readable storage media” and “computer-readable signal media.”
“Computer-readable storage media” may refer to media and/or devices that enable persistent and/or storage of information that is tangible in contrast to mere signal transmission, carrier waves, or signals per se. Thus, computer-readable storage media refers to non-signal bearing media. The computer-readable storage media includes hardware such as volatile and non-volatile, removable and non-removable media and/or storage devices implemented in a method or technology suitable for storage of information such as computer readable instructions, data structures, program modules, logic elements/circuits, or other data. Examples of computer-readable storage media may include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, hard disks, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or other storage device, tangible media, or article of manufacture suitable to store the desired information and which may be accessed by a computer.
“Computer-readable signal media” may refer to a signal-bearing medium that is configured to transmit instructions to the hardware of the computing device 1102, such as via a network. Signal media typically may embody computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as carrier waves, data signals, or other transport mechanism. Signal media also include any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media.
As previously described, hardware elements 1110 and computer-readable media 1106 are representative of modules, programmable device logic and/or fixed device logic implemented in a hardware form that may be employed in some embodiments to implement at least some aspects of the techniques described herein, such as to perform one or more instructions. Hardware may include components of an integrated circuit or on-chip system, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a complex programmable logic device (CPLD), and other implementations in silicon or other hardware. In this context, hardware may operate as a processing device that performs program tasks defined by instructions and/or logic embodied by the hardware as well as a hardware utilized to store instructions for execution, e.g., the computer-readable storage media described previously.
Combinations of the foregoing may also be employed to implement various techniques described herein. Accordingly, software, hardware, or executable modules may be implemented as one or more instructions and/or logic embodied on some form of computer-readable storage media and/or by one or more hardware elements 1110. The computing device 1102 may be configured to implement particular instructions and/or functions corresponding to the software and/or hardware modules. Accordingly, implementation of a module that is executable by the computing device 1102 as software may be achieved at least partially in hardware, e.g., through use of computer-readable storage media and/or hardware elements 1110 of the processing system 1104. The instructions and/or functions may be executable/operable by one or more articles of manufacture (for example, one or more computing devices 1102 and/or processing systems 1104) to implement techniques, modules, and examples described herein.
Furthermore, although illustrated as a single computing device, computing device 1102 can be coupled to one or more additional computing devices via the Internet or other data communication network. These additional computing devices can be, for example, a cloud of one or more server computers. Various aspects of the coordinate compensation system 1114 and/or other modules of computing device 1102 can be provided by and/or processing performed on one or more servers or other computing devices that are remote from computing device 1102.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
Number | Name | Date | Kind |
---|---|---|---|
4046975 | Seeger, Jr. | Sep 1977 | A |
4065649 | Carter et al. | Dec 1977 | A |
4086451 | Boulanger | Apr 1978 | A |
4243861 | Strandwitz | Jan 1981 | A |
4302648 | Sado et al. | Nov 1981 | A |
4317013 | Larson | Feb 1982 | A |
4365130 | Christensen | Dec 1982 | A |
4492829 | Rodrique | Jan 1985 | A |
4527021 | Morikawa et al. | Jul 1985 | A |
4559426 | Van Zeeland et al. | Dec 1985 | A |
4588187 | Dell | May 1986 | A |
4607147 | Ono et al. | Aug 1986 | A |
4651133 | Ganesan et al. | Mar 1987 | A |
5008497 | Asher | Apr 1991 | A |
5220521 | Kikinis | Jun 1993 | A |
5283559 | Kalendra et al. | Feb 1994 | A |
5331443 | Stanisci | Jul 1994 | A |
5548477 | Kumar et al. | Aug 1996 | A |
5558577 | Kato | Sep 1996 | A |
5618232 | Martin | Apr 1997 | A |
5666112 | Crowley et al. | Sep 1997 | A |
5681220 | Bertram et al. | Oct 1997 | A |
5745376 | Barker et al. | Apr 1998 | A |
5748114 | Koehn | May 1998 | A |
5781406 | Hunte | Jul 1998 | A |
5807175 | Davis et al. | Sep 1998 | A |
5818361 | Acevedo | Oct 1998 | A |
5828770 | Leis et al. | Oct 1998 | A |
5874697 | Selker et al. | Feb 1999 | A |
5924555 | Sadamori et al. | Jul 1999 | A |
5926170 | Oba | Jul 1999 | A |
5971635 | Wise | Oct 1999 | A |
6002389 | Kasser | Dec 1999 | A |
6005209 | Burleson et al. | Dec 1999 | A |
6012714 | Worley et al. | Jan 2000 | A |
6040823 | Seffernick et al. | Mar 2000 | A |
6044717 | Biegelsen et al. | Apr 2000 | A |
6061644 | Leis | May 2000 | A |
6112797 | Colson et al. | Sep 2000 | A |
6178443 | Lin | Jan 2001 | B1 |
6254105 | Rinde et al. | Jul 2001 | B1 |
6279060 | Luke et al. | Aug 2001 | B1 |
6329617 | Burgess | Dec 2001 | B1 |
6344791 | Armstrong | Feb 2002 | B1 |
6380497 | Hashimoto et al. | Apr 2002 | B1 |
6437682 | Vance | Aug 2002 | B1 |
6506983 | Babb et al. | Jan 2003 | B1 |
6511378 | Bhatt et al. | Jan 2003 | B1 |
6532147 | Christ, Jr. | Mar 2003 | B1 |
6543949 | Ritchey et al. | Apr 2003 | B1 |
6565439 | Shinohara et al. | May 2003 | B2 |
6600121 | Olodort et al. | Jul 2003 | B1 |
6603408 | Gaba | Aug 2003 | B1 |
6603461 | Smith, Jr. et al. | Aug 2003 | B2 |
6617536 | Kawaguchi | Sep 2003 | B2 |
6684166 | Bellwood et al. | Jan 2004 | B2 |
6685369 | Lien | Feb 2004 | B2 |
6704864 | Philyaw | Mar 2004 | B1 |
6721019 | Kono et al. | Apr 2004 | B2 |
6725318 | Sherman et al. | Apr 2004 | B1 |
6774888 | Genduso | Aug 2004 | B1 |
6776546 | Kraus et al. | Aug 2004 | B2 |
6784869 | Clark et al. | Aug 2004 | B1 |
6798887 | Andre | Sep 2004 | B1 |
6813143 | Makela | Nov 2004 | B2 |
6819316 | Schulz et al. | Nov 2004 | B2 |
6856506 | Doherty et al. | Feb 2005 | B2 |
6861961 | Sandbach et al. | Mar 2005 | B2 |
6898315 | Guha | May 2005 | B2 |
6909354 | Baker et al. | Jun 2005 | B2 |
6914197 | Doherty et al. | Jul 2005 | B2 |
6950950 | Sawyers et al. | Sep 2005 | B2 |
6970957 | Oshins et al. | Nov 2005 | B1 |
6976799 | Kim et al. | Dec 2005 | B2 |
7051149 | Wang et al. | May 2006 | B2 |
7083295 | Hanna | Aug 2006 | B1 |
7091436 | Serban | Aug 2006 | B2 |
7106222 | Ward et al. | Sep 2006 | B2 |
7123292 | Seeger et al. | Oct 2006 | B1 |
7194662 | Do et al. | Mar 2007 | B2 |
7213991 | Chapman et al. | May 2007 | B2 |
7277087 | Hill et al. | Oct 2007 | B2 |
7447934 | Dasari et al. | Nov 2008 | B2 |
7469386 | Bear et al. | Dec 2008 | B2 |
7499037 | Lube | Mar 2009 | B2 |
7502803 | Culter et al. | Mar 2009 | B2 |
7542052 | Solomon et al. | Jun 2009 | B2 |
7558594 | Wilson | Jul 2009 | B2 |
7559834 | York | Jul 2009 | B1 |
7620244 | Collier | Nov 2009 | B1 |
7636921 | Louie | Dec 2009 | B2 |
7639876 | Clary et al. | Dec 2009 | B2 |
7656392 | Bolender | Feb 2010 | B2 |
7733326 | Adiseshan | Jun 2010 | B1 |
7773076 | Pittel et al. | Aug 2010 | B2 |
7777972 | Chen et al. | Aug 2010 | B1 |
7782342 | Koh | Aug 2010 | B2 |
7813715 | McKillop et al. | Oct 2010 | B2 |
7884807 | Hovden et al. | Feb 2011 | B2 |
D636397 | Green | Apr 2011 | S |
7928964 | Kolmykov-Zotov et al. | Apr 2011 | B2 |
7945717 | Rivalsi | May 2011 | B2 |
7973771 | Geaghan | Jul 2011 | B2 |
7978281 | Vergith et al. | Jul 2011 | B2 |
8026904 | Westerman | Sep 2011 | B2 |
8053688 | Conzola et al. | Nov 2011 | B2 |
8065624 | Morin et al. | Nov 2011 | B2 |
8069356 | Rathi et al. | Nov 2011 | B2 |
8077160 | Land et al. | Dec 2011 | B2 |
8130203 | Westerman | Mar 2012 | B2 |
8154524 | Wilson et al. | Apr 2012 | B2 |
D659139 | Gengler | May 2012 | S |
8169421 | Wright et al. | May 2012 | B2 |
8229509 | Paek et al. | Jul 2012 | B2 |
8229522 | Kim et al. | Jul 2012 | B2 |
8346206 | Andrus et al. | Jan 2013 | B1 |
8674941 | Casparian et al. | Mar 2014 | B2 |
8791382 | Whitt, III et al. | Jul 2014 | B2 |
8825187 | Hamrick et al. | Sep 2014 | B1 |
20020005108 | Ludwig | Jan 2002 | A1 |
20020134828 | Sandbach et al. | Sep 2002 | A1 |
20020135457 | Sandbach et al. | Sep 2002 | A1 |
20030007648 | Currell | Jan 2003 | A1 |
20030051983 | Lahr | Mar 2003 | A1 |
20030067450 | Thursfield et al. | Apr 2003 | A1 |
20030197687 | Shetter | Oct 2003 | A1 |
20040095333 | Morag et al. | May 2004 | A1 |
20040113956 | Bellwood et al. | Jun 2004 | A1 |
20040258924 | Berger et al. | Dec 2004 | A1 |
20040268000 | Barker et al. | Dec 2004 | A1 |
20050057515 | Bathiche | Mar 2005 | A1 |
20050059489 | Kim | Mar 2005 | A1 |
20050146512 | Hill et al. | Jul 2005 | A1 |
20050264653 | Starkweather et al. | Dec 2005 | A1 |
20050264988 | Nicolosi | Dec 2005 | A1 |
20050283731 | Saint-Hilaire et al. | Dec 2005 | A1 |
20050285703 | Wheeler et al. | Dec 2005 | A1 |
20060049920 | Sadler et al. | Mar 2006 | A1 |
20060085658 | Allen et al. | Apr 2006 | A1 |
20060092139 | Sharma | May 2006 | A1 |
20060096392 | Inkster et al. | May 2006 | A1 |
20060125799 | Hillis et al. | Jun 2006 | A1 |
20060152499 | Roberts | Jul 2006 | A1 |
20060154725 | Glaser et al. | Jul 2006 | A1 |
20060156415 | Rubinstein et al. | Jul 2006 | A1 |
20060181514 | Newman | Aug 2006 | A1 |
20060192763 | Ziemkowski | Aug 2006 | A1 |
20060195522 | Miyazaki | Aug 2006 | A1 |
20060267931 | Vainio et al. | Nov 2006 | A1 |
20060272429 | Ganapathi et al. | Dec 2006 | A1 |
20070062089 | Homer et al. | Mar 2007 | A1 |
20070072474 | Beasley et al. | Mar 2007 | A1 |
20070121956 | Bai et al. | May 2007 | A1 |
20070178891 | Louch et al. | Aug 2007 | A1 |
20070182663 | Biech | Aug 2007 | A1 |
20070185590 | Reindel et al. | Aug 2007 | A1 |
20070234420 | Novotney et al. | Oct 2007 | A1 |
20070236408 | Yamaguchi et al. | Oct 2007 | A1 |
20070247432 | Oakley | Oct 2007 | A1 |
20070260892 | Paul et al. | Nov 2007 | A1 |
20070283179 | Burnett et al. | Dec 2007 | A1 |
20070296709 | Guanghai | Dec 2007 | A1 |
20070297625 | Hjort et al. | Dec 2007 | A1 |
20080005423 | Jacobs et al. | Jan 2008 | A1 |
20080053222 | Ehrensvard et al. | Mar 2008 | A1 |
20080104437 | Lee | May 2008 | A1 |
20080129520 | Lee | Jun 2008 | A1 |
20080151478 | Chern | Jun 2008 | A1 |
20080158185 | Westerman | Jul 2008 | A1 |
20080167832 | Soss | Jul 2008 | A1 |
20080238884 | Harish | Oct 2008 | A1 |
20080253822 | Matias | Oct 2008 | A1 |
20080309636 | Feng et al. | Dec 2008 | A1 |
20080316002 | Brunet et al. | Dec 2008 | A1 |
20080320190 | Lydon et al. | Dec 2008 | A1 |
20090009476 | Daley, III | Jan 2009 | A1 |
20090073957 | Newland et al. | Mar 2009 | A1 |
20090127005 | Zachut et al. | May 2009 | A1 |
20090140985 | Liu | Jun 2009 | A1 |
20090251008 | Sugaya | Oct 2009 | A1 |
20090262492 | Whitchurch et al. | Oct 2009 | A1 |
20090303204 | Nasiri et al. | Dec 2009 | A1 |
20090320244 | Lin | Dec 2009 | A1 |
20090321490 | Groene et al. | Dec 2009 | A1 |
20100001963 | Doray et al. | Jan 2010 | A1 |
20100023869 | Saint-Hilaire et al. | Jan 2010 | A1 |
20100026656 | Hotelling et al. | Feb 2010 | A1 |
20100038821 | Jenkins et al. | Feb 2010 | A1 |
20100045609 | Do et al. | Feb 2010 | A1 |
20100045633 | Gettemy | Feb 2010 | A1 |
20100051356 | Stern et al. | Mar 2010 | A1 |
20100051432 | Lin et al. | Mar 2010 | A1 |
20100053534 | Hsieh et al. | Mar 2010 | A1 |
20100054435 | Louch et al. | Mar 2010 | A1 |
20100056130 | Louch et al. | Mar 2010 | A1 |
20100073329 | Raman et al. | Mar 2010 | A1 |
20100077237 | Sawyers | Mar 2010 | A1 |
20100079379 | Demuynck et al. | Apr 2010 | A1 |
20100081377 | Chatterjee et al. | Apr 2010 | A1 |
20100085321 | Pundsack | Apr 2010 | A1 |
20100103112 | Yoo et al. | Apr 2010 | A1 |
20100148999 | Casparian et al. | Jun 2010 | A1 |
20100149104 | Sim et al. | Jun 2010 | A1 |
20100149111 | Olien | Jun 2010 | A1 |
20100149134 | Westerman et al. | Jun 2010 | A1 |
20100156798 | Archer | Jun 2010 | A1 |
20100161522 | Tirpak et al. | Jun 2010 | A1 |
20100164857 | Liu et al. | Jul 2010 | A1 |
20100171891 | Kaji et al. | Jul 2010 | A1 |
20100174421 | Tsai et al. | Jul 2010 | A1 |
20100180063 | Ananny et al. | Jul 2010 | A1 |
20100188299 | Rinehart et al. | Jul 2010 | A1 |
20100206614 | Park et al. | Aug 2010 | A1 |
20100206644 | Yeh | Aug 2010 | A1 |
20100214257 | Wussler et al. | Aug 2010 | A1 |
20100222110 | Kim et al. | Sep 2010 | A1 |
20100231556 | Mines et al. | Sep 2010 | A1 |
20100250988 | Okuda et al. | Sep 2010 | A1 |
20100265182 | Ball et al. | Oct 2010 | A1 |
20100274932 | Kose | Oct 2010 | A1 |
20100279768 | Huang et al. | Nov 2010 | A1 |
20100289457 | Onnerud et al. | Nov 2010 | A1 |
20100295812 | Burns et al. | Nov 2010 | A1 |
20100302378 | Marks et al. | Dec 2010 | A1 |
20100304793 | Kim | Dec 2010 | A1 |
20100306538 | Thomas et al. | Dec 2010 | A1 |
20100308778 | Yamazaki et al. | Dec 2010 | A1 |
20100308844 | Day et al. | Dec 2010 | A1 |
20100313680 | Joung et al. | Dec 2010 | A1 |
20100315348 | Jellicoe et al. | Dec 2010 | A1 |
20100315373 | Steinhauser et al. | Dec 2010 | A1 |
20100324457 | Bean et al. | Dec 2010 | A1 |
20100325155 | Skinner et al. | Dec 2010 | A1 |
20100331059 | Apgar et al. | Dec 2010 | A1 |
20110012873 | Prest et al. | Jan 2011 | A1 |
20110019123 | Prest et al. | Jan 2011 | A1 |
20110031287 | Le Gette et al. | Feb 2011 | A1 |
20110032127 | Roush | Feb 2011 | A1 |
20110037721 | Cranfill et al. | Feb 2011 | A1 |
20110043990 | Mickey et al. | Feb 2011 | A1 |
20110050576 | Forutanpour et al. | Mar 2011 | A1 |
20110060926 | Brooks et al. | Mar 2011 | A1 |
20110069148 | Jones et al. | Mar 2011 | A1 |
20110074688 | Hull et al. | Mar 2011 | A1 |
20110102326 | Casparian et al. | May 2011 | A1 |
20110102356 | Kemppinen et al. | May 2011 | A1 |
20110107958 | Pance et al. | May 2011 | A1 |
20110113368 | Carvajal et al. | May 2011 | A1 |
20110115738 | Suzuki et al. | May 2011 | A1 |
20110134032 | Chiu et al. | Jun 2011 | A1 |
20110163955 | Nasiri et al. | Jul 2011 | A1 |
20110164370 | McClure et al. | Jul 2011 | A1 |
20110167181 | Minoo et al. | Jul 2011 | A1 |
20110167287 | Walsh et al. | Jul 2011 | A1 |
20110167391 | Momeyer et al. | Jul 2011 | A1 |
20110167992 | Eventoff et al. | Jul 2011 | A1 |
20110179864 | Raasch et al. | Jul 2011 | A1 |
20110184646 | Wong et al. | Jul 2011 | A1 |
20110193787 | Morishige et al. | Aug 2011 | A1 |
20110205372 | Miramontes | Aug 2011 | A1 |
20110221678 | Davydov | Sep 2011 | A1 |
20110227913 | Hyndman | Sep 2011 | A1 |
20110242138 | Tribble | Oct 2011 | A1 |
20110248920 | Larsen | Oct 2011 | A1 |
20110248941 | Abdo et al. | Oct 2011 | A1 |
20110267272 | Meyer et al. | Nov 2011 | A1 |
20110290686 | Huang | Dec 2011 | A1 |
20110297566 | Gallagher et al. | Dec 2011 | A1 |
20110304577 | Brown | Dec 2011 | A1 |
20110310038 | Park et al. | Dec 2011 | A1 |
20110316807 | Corrion | Dec 2011 | A1 |
20110320204 | Locker et al. | Dec 2011 | A1 |
20120002820 | Leichter | Jan 2012 | A1 |
20120007821 | Zaliva | Jan 2012 | A1 |
20120011462 | Westerman et al. | Jan 2012 | A1 |
20120020490 | Leichter | Jan 2012 | A1 |
20120023401 | Arscott et al. | Jan 2012 | A1 |
20120023459 | Westerman | Jan 2012 | A1 |
20120024682 | Huang et al. | Feb 2012 | A1 |
20120044179 | Hudson | Feb 2012 | A1 |
20120047368 | Chinn et al. | Feb 2012 | A1 |
20120050975 | Garelli et al. | Mar 2012 | A1 |
20120075249 | Hoch | Mar 2012 | A1 |
20120081316 | Sirpal et al. | Apr 2012 | A1 |
20120092279 | Martin | Apr 2012 | A1 |
20120094257 | Pillischer et al. | Apr 2012 | A1 |
20120099749 | Rubin et al. | Apr 2012 | A1 |
20120117409 | Lee et al. | May 2012 | A1 |
20120127118 | Nolting et al. | May 2012 | A1 |
20120139727 | Houvener et al. | Jun 2012 | A1 |
20120140396 | Zeliff et al. | Jun 2012 | A1 |
20120145525 | Ishikawa | Jun 2012 | A1 |
20120162693 | Ito | Jun 2012 | A1 |
20120182242 | Lindahl et al. | Jul 2012 | A1 |
20120182249 | Endo et al. | Jul 2012 | A1 |
20120194448 | Rothkopf | Aug 2012 | A1 |
20120218194 | Silverman | Aug 2012 | A1 |
20120224073 | Miyahara | Sep 2012 | A1 |
20120242584 | Tuli | Sep 2012 | A1 |
20120246377 | Bhesania et al. | Sep 2012 | A1 |
20120250873 | Bakalos et al. | Oct 2012 | A1 |
20120256959 | Ye et al. | Oct 2012 | A1 |
20120260177 | Sehrer | Oct 2012 | A1 |
20120274811 | Bakin | Nov 2012 | A1 |
20120299872 | Nishikawa et al. | Nov 2012 | A1 |
20120300275 | Vilardell et al. | Nov 2012 | A1 |
20130044074 | Park et al. | Feb 2013 | A1 |
20130063873 | Wodrich et al. | Mar 2013 | A1 |
20130067126 | Casparian et al. | Mar 2013 | A1 |
20130069916 | Esteve | Mar 2013 | A1 |
20130082824 | Colley | Apr 2013 | A1 |
20130082950 | Lim et al. | Apr 2013 | A1 |
20130135214 | Li et al. | May 2013 | A1 |
20130191741 | Dickinson et al. | Jul 2013 | A1 |
20130217451 | Komiyama et al. | Aug 2013 | A1 |
20130228023 | Drasnin | Sep 2013 | A1 |
20130228433 | Shaw | Sep 2013 | A1 |
20130228439 | Whitt, III | Sep 2013 | A1 |
20130229347 | Lutz, III | Sep 2013 | A1 |
20130229350 | Shaw | Sep 2013 | A1 |
20130229758 | Belesiu | Sep 2013 | A1 |
20130230346 | Shaw | Sep 2013 | A1 |
20130300590 | Dietz | Nov 2013 | A1 |
Number | Date | Country |
---|---|---|
2026178 | Feb 2009 | EP |
2353978 | Aug 2011 | EP |
2123213 | Jan 1984 | GB |
56108127 | Aug 1981 | JP |
10326124 | Dec 1998 | JP |
2010244514 | Oct 2010 | JP |
20090029411 | Mar 2009 | KR |
20100067366 | Jun 2010 | KR |
20110120002 | Nov 2011 | KR |
WO-2014084880 | Jun 2014 | WO |
Entry |
---|
“Accessing Device Sensors”, retrieved from <https://developer.palm.com/content/api/dev-guide/pdk/accessing-device-sensors.html> on May 25, 2012, 4 pages. |
“ACPI Docking for Windows Operating Systems”, Retrieved from: <http://www.scritube.com/limba/engleza/software/ACPI-Docking-for-Windows-Opera331824193.php> on Jul. 6, 2012,10 pages. |
“Cholesteric Liquid Crystal”, Retrieved from: <http://en.wikipedia.org/wiki/Cholesteric—liquid—crystal> on Aug. 6, 2012,(Jun. 10, 2012), 2 pages. |
“Cirago Slim Case®—Protective case with built-in kickstand for your iPhone 5®”, Retrieved from <http://cirago.com/wordpress/wp-content/uploads/2012/10/ipc1500brochure1.pdf> on Jan. 29, 2013, 1 page. |
“DR2PA”, retrieved from <http://www.architainment.co.uk/wp-content/uploads/2012/08/DR2PA-AU-US-size-Data-Sheet-Rev-H—Logo.pdf> on Sep. 17, 2012, 4 pages. |
“First One Handed Fabric Keyboard with Bluetooth Wireless Technology”, Retrieved from: <http://press.xtvworld.com/article3817.html> on May 8, 2012,(Jan. 6, 2005), 2 pages. |
“Force and Position Sensing Resistors: An Emerging Technology”, Interlink Electronics, Available at <http://staff.science.uva.nl/˜vlaander/docu/FSR/An—Exploring—Technology.pdf>,(Feb. 1990), pp. 1-6. |
“Frogpad Introduces Weareable Fabric Keyboard with Bluetooth Technology”, Retrieved from: <http://www.geekzone.co.nz/content.asp?contentid=3898> on May 7, 2012,(Jan. 7, 2005), 3 pages. |
“How to Use the iPad's Onscreen Keyboard”, Retrieved from <http://www.dummies.com/how-to/content/how-to-use-the-ipads-onscreen-keyboard.html> on Aug. 28, 2012, 3 pages. |
“i-Interactor electronic pen”, Retrieved from: <http://www.alibaba.com/product-gs/331004878/i—Interactor—electronic—pen.html> on Jun. 19, 2012,5 pages. |
“Incipio LG G-Slate Premium Kickstand Case—Black Nylon”, Retrieved from: <http://www.amazon.com/Incipio-G-Slate-Premium-Kickstand-Case/dp/B004ZKP916> on May 8, 2012, 4 pages. |
“Membrane Keyboards & Membrane Keypads”, Retrieved from: <http://www.pannam.com/> on May 9, 2012,(Mar. 4, 2009), 2 pages. |
“Motion Sensors”, Android Developers, retrieved from <http://developer.android.com/guide/topics/sensors/sensors—motion.html> on May 25, 2012,7 pages. |
“MPC Fly Music Production Controller”, AKAI Professional, Retrieved from: <http://www.akaiprompc.com/mpc-fly> on Jul. 9, 2012, 4 pages. |
“NI Releases New Maschine & Maschine Mikro”, Retrieved from <http://www.djbooth.net/index/dj-equipment/entry/ni-releases-new-maschine-mikro/> on Sep. 17, 2012, 19 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/471,001, (Feb. 19, 2013),15 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/471,139, (Mar. 21, 2013),12 pages. |
“Non-Final Office Action”,U.S. Appl. No. 13/471,202, (Feb. 11, 2013),10 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/471,336, (Jan. 18, 2013),14 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/651,195, (Jan. 2, 2013),14 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/651,232, (Jan. 17, 2013),15 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/651,272, (Feb. 12, 2013),10 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/651,287, (Jan. 29, 2013),13 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/651,304, (Mar. 22, 2013), 9 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/651,327, (Mar. 22, 2013), 6 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/651,871, (Mar. 18, 2013),14 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/651,976, (Feb. 22, 2013),16 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/653,321, (Feb. 1, 2013),13 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/653,682, (Feb. 7, 2013),11 pages. |
“Notice of Allowance”, U.S. Appl. No. 13/470,633, (Mar. 22, 2013), 7 pages. |
“On-Screen Keyboard for Windows 7, Vista, XP with Touchscreen”, Retrieved from <www.comfort-software.com/on-screen-keyboard.html> on Aug. 28, 2012, (Feb. 2, 2011), 3 pages. |
“Position Sensors”, Android Developers, retrieved from <http://developer.android.com/guide/topics/sensors/sensors—position.html> on May 25, 2012, 5 pages. |
“Reflex LCD Writing Tablets”, retrieved from <http://www.kentdisplays.com/products/lcdwritingtablets.html> on Jun. 27, 2012, 3 pages. |
“Restriction Requirement”, U.S. Appl. No. 13/471,139, (Jan. 17, 2013), 7 pages. |
“Restriction Requirement”, U.S. Appl. No. 13/651,304, (Jan. 18, 2013), 7 pages. |
“Restriction Requirement”, U.S. Appl. No. 13/651,726, (Feb. 22, 2013), 6 pages. |
“Restriction Requirement”, U.S. Appl. No. 13/651,871, (Feb. 7, 2013), 6 pages. |
“Smart Board™ Interactive Display Frame Pencil Pack”, Available at <http://downloads01.smarttech.com/media/sitecore/en/support/product/sbfpd/400series(interactivedisplayframes)/guides/smartboardinteractivedisplayframepencilpackv12mar09.pdf>,(2009), 2 pages. |
“SolRx™ E-Series Multidirectional Phototherapy Expandable™ 2-Bulb Full Body Panel System”, Retrieved from: <http://www.solarcsystems.com/us—multidirectional—uv—light—therapy—1—intro.html > on Jul. 25, 2012,(2011), 4 pages. |
“The Microsoft Surface Tablets Comes With Impressive Design and Specs”, Retrieved from <http://microsofttabletreview.com/the-microsoft-surface-tablets-comes-with-impressive-design-and-specs> on Jan. 30, 2013, (Jun. 2012), 2 pages. |
“Tilt Shift Lenses: Perspective Control”, retrieved from http://www.cambridgeincolour.com/tutorials/tilt-shift-lenses1.htm, (Mar. 28, 2008), 11 pages. |
“Virtualization Getting Started Guide”, Red Hat Enterprise Linux 6, Edition 0.2, retrieved from <http://docs.redhat.com/docs/en-US/Red—Hat—Enterprise—Linux/6/html-single/Virtualization—Getting—Started—Guide/index.html> on Jun. 13, 2012, 24 pages. |
“What is Active Alignment?”, http://www.kasalis.com/active—alignment.html, retrieved on Nov. 22, 2012, 2 Pages. |
Block, Steve et al., “DeviceOrientation Event Specification”, W3C, Editor's Draft, retrieved from <https://developer.palm.com/content/api/dev-guide/pdk/accessing-device-sensors.html> on May 25, 2012,(Jul. 12, 2011),14 pages. |
Brown, Rich “Microsoft Shows Off Pressure-Sensitive Keyboard”, retrieved from <http://news.cnet.com/8301-17938—105-10304792-1.html> on May 7, 2012, (Aug. 6, 2009), 2 pages. |
Butler, Alex et al., “SideSight: Multi-”touch“ Interaction around Small Devices”, In the proceedings of the 21st annual ACM symposium on User interface software and technology., retrieved from <http://research.microsoft.com/pubs/132534/sidesight—crv3.pdf> on May 29, 2013,(Oct. 19, 2008), 4 pages. |
Crider, Michael “Sony Slate Concept Tablet ”Grows“ a Kickstand”, Retrieved from: <http://androidcommunity.com/sony-slate-concept-tablet-grows-a-kickstand-20120116/> on May 4, 2012,(Jan. 16, 2012), 9 pages. |
Das, Apurba et al., “Study of Heat Transfer through Multilayer Clothing Assemblies: A Theoretical Prediction”, Retrieved from <http://www.autexrj.com/cms/zalaczone —pliki/5—013—11.pdf>, (Jun. 2011), 7 pages. |
Dietz, Paul H., et al., “A Practical Pressure Sensitive Computer Keyboard”, In Proceedings of UIST 2009,(Oct. 2009), 4 pages. |
Glatt, Jeff “Channel and Key Pressure (Aftertouch).”, Retrieved from: <http://home.roadrunner.com/˜jgglatt/tutr/touch.htm> on Jun. 11, 2012, 2 pages. |
Hanlon, Mike “ElekTex Smart Fabric Keyboard Goes Wireless”, Retrieved from: <http://www.gizmag.com/go/5048/ > on May 7, 2012,(Jan. 15, 2006), 5 pages. |
Iwase, Eiji “Multistep Sequential Batch Assembly of Three-Dimensional Ferromagnetic Microstructures with Elastic Hinges”, Retrieved at <<http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1549861>> Proceedings: Journal of Microelectromechanical Systems, (Dec. 2005), 7 pages. |
Kaur, Sukhmani “Vincent Liew's redesigned laptop satisfies ergonomic needs”, Retrieved from: <http://www.designbuzz.com/entry/vincent-liew-s-redesigned-laptop-satisfies-ergonomic-needs/> on Jul. 27, 2012,(Jun. 21, 2010), 4 pages. |
Khuntontong, Puttachat et al., “Fabrication of Molded Interconnection Devices by Ultrasonic Hot Embossing on Thin Polymer Films”, IEEE Transactions on Electronics Packaging Manufacturing, vol. 32, No. 3,(Jul. 2009), pp. 152-156. |
Linderholm, Owen “Logitech Shows Cloth Keyboard for PDAs”, Retrieved from: <http://www.pcworld.com/article/89084/logitech—shows—cloth—keyboard—for—pdas.html> on May 7, 2012,(Mar. 15, 2002), 5 pages. |
McLellan, Charles “Eleksen Wireless Fabric Keyboard: a first look”, Retrieved from: <http://www.zdnetasia.com/eleksen-wireless-fabric-keyboard-a-first-look-40278954.htm> on May 7, 2012,(Jul. 17, 2006), 9 pages. |
Piltch, Avram “ASUS Eee Pad Slider SL101 Review”, Retrieved from <http://www.laptopmag.com/review/tablets/asus-eee-pad-slider-sl101.aspx>, (Sep. 22, 2011), 5 pages. |
Post, E.R. et al., “E-Broidery: Design and Fabrication of Textile-Based Computing”, IBM Systems Journal, vol. 39, Issue 3 & 4,(Jul. 2000), pp. 840-860. |
Purcher, Jack “Apple is Paving the Way for a New 3D GUI for IOS Devices”, Retrieved from: <http://www.patentlyapple.com/patently-apple/2012/01/apple-is-paving-the-way-for-a-new-3d-gui-for-ios-devices.html> on Jun. 4, 2012,(Jan. 12, 2012),15 pages. |
Qin, Yongqiang et al., “pPen: Enabling Authenticated Pen and Touch Interaction on Tabletop Surfaces”, In Proceedings of ITS 2010, Available at <http://www.dfki.de/its2010/papers/pdf/po172.pdf>,(Nov. 2010), pp. 283-284. |
Sumimoto, Mark “Touch & Write: Surface Computing With Touch and Pen Input”, Retrieved from: <http://www.gottabemobile.com/2009/08/07/touch-write-surface-computing-with-touch-and-pen-input/> on Jun. 19, 2012,(Aug. 7, 2009), 4 pages. |
Takamatsu, Seiichi et al., “Flexible Fabric Keyboard with Conductive Polymer-Coated Fibers”, In Proceedings of Sensors 2011,(Oct. 28, 2011), 4 pages. |
Valliath, G T., “Design of Hologram for Brightness Enhancement in Color LCDs”, Retrieved from <http://www.loreti.it/Download/PDF/LCD/44—05.pdf> on Sep. 17, 2012, 5 pages. |
Williams, Jim “A Fourth Generation of LCD Backlight Technology”, Retrieved from <http://cds.linear.com/docs/Application%20Note/an65f.pdf>, (Nov. 1995), 124 pages. |
Zhang, et al., “Model-Based Development of Dynamically Adaptive Software”, In Proceedings of ICSE 2006, Available at <http://www.irisa.fr/lande/lande/icse-proceedings/icse/p371.pdf>, (May 20, 2006), pp. 371-380. |
“International Search Report and Written Opinion”, Application No. PCT/US2013/067905, Apr. 15, 2014, 9 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/471,186, Feb. 27, 2014, 8 pages. |
“Notice of Allowance”, U.S. Appl. No. 13/471,139, Mar. 17, 2014, 4 pages. |
“Notice of Allowance”, U.S. Appl. No. 13/651,232, Apr. 25, 2014, 9 pages. |
“Final Office Action”, U.S. Appl. No. 13/651,232, (May 21, 2013), 21 pages. |
“Final Office Action”, U.S. Appl. No. 13/471,139, (Sep. 16, 2013),13 pages. |
“Notice to Grant”, CN Application No. 201320097089.9, (Sep. 29, 2013), 2 Pages. |
“Notice to Grant”, CN Application No. 201320097124.7, (Oct. 8, 2013), 2 pages. |
“FingerWorks Installation and Operation Guide for the TouchStream ST and TouchStream LP”, FingerWorks, Inc. Retrieved from <http://ec1.images-amazon.com/media/i3d/01/A/man-migrate/MANUAL000049862.pdf>, 2002, 14 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/651,232, filed Dec. 5, 2013, 15 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/468,918, filed Dec. 26, 2013, 18 pages. |
“Restriction Requirement”, U.S. Appl. No. 13/468,918, Nov. 29, 2013, 6 pages. |
“Corrected Notice of Allowance”, U.S. Appl. No. 13/651,232, Jul. 31, 2014, 2 pages. |
“International Search Report and Written Opinion”, Application No. PCT/US2013/028771, Jun. 19, 2014, 10 pages. |
“International Search Report and Written Opinion”, Application No. PCT/US2013/028767, Jun. 24, 2014, 11 pages. |
“International Search Report and Written Opinion”, Application No. PCT/US2013/028766, Jun. 26, 2014, 11 pages. |
“International Search Report and Written Opinion”, Application No. PCT/US2013/028487, May 27, 2014, 9 pages. |
“International Search Report and Written Opinion”, Application No. PCT/US2013/028770, Jun. 26, 2014, 9 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/468,882, Jul. 9, 2014, 9 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/468,949, Jun. 20, 2014, 10 pages. |
“Notice of Allowance”, U.S. Appl. No. 13/468,918, Jun. 17, 2014, 5 pages. |
“Notice of Allowance”, U.S. Appl. No. 13/471,186, Jul. 3, 2014, 7 pages. |
“Final Office Action”, U.S. Appl. No. 13/468,949, Oct. 6, 2014, 11 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/471,393, Oct. 20, 2014, 12 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/525,614, Nov. 24, 2014, 19 pages. |
Harrison,“UIST 2009 Student Innovation Contest-Demo Video”, Retrieved From: <https://www.youtube.com/watch?v=PDI8eYIASf0> Sep. 16, 2014, Jul. 23, 2009, 1 page. |
Number | Date | Country | |
---|---|---|---|
20140118241 A1 | May 2014 | US |