This application relates to electronic computing, and more particularly keyboard and mouse usage and configuration in computer systems.
The configuration and placement of a keyboard and mouse within one's workspace has been a continuing problem. Current configurations provide for either a keyboard and mouse which are both wired to a computer, or a keyboard and mouse which are both wireless. The wired solution does not provide the flexibility needed to provide for a pleasant workspace, and the wireless solution relies on batteries with a short lifespan. Additionally, wireless rechargeable mice that are currently available require a separate docking station which takes up an additional port in the computer.
Described herein are exemplary systems and methods for implementing a keyboard with docking station and mouse system with an electronic such as, e.g., a computing system. Some of the methods described herein may be embodied as logic instructions on a computer-readable medium. When executed on a processor, the logic instructions cause a general purpose computing device to be programmed as a special-purpose machine that implements the described methods. The processor, when configured by the logic instructions to execute the methods recited herein, constitutes structure for performing the described methods.
The computing system 100 includes a computer 108 and one or more accompanying input/output devices 106 including a display 102 having a screen 104, a keyboard 110 with a docking station 116, and other I/O device(s) 112, and a mouse 114. The other device(s) 112 can include a touch screen, a voice-activated input device, a track ball, and any other device that allows the system 100 to receive input from a developer and/or a user. Additionally, the mouse 114 and other I/O devices 112 may dock with the keyboard 110 for purposes, such as but not limited to, recharging or providing additional functionality to the keyboard 110. The computer 108 includes system hardware 120 including at least processing unit 126, a basic input/output system (BIOS) 122, and random access memory and/or read-only memory 130. A file store 180 is communicatively connected to computer 108. File store 180 may be internal such as, e.g., one or more hard drives, or external such as, e.g., one or more external hard drives, network attached storage, or a separate storage network.
Memory 130 includes an operating system 140 for managing operations of computer 108. In one embodiment, operating system 140 includes a hardware interface module 154 that provides an interface to system hardware 120. In addition, operating system 140 includes a kernel 144, one or more file systems 146 that manage files used in the operation of computer 108 and a process control subsystem 148 that manages processes executing on computer 108. Operating system 140 further includes one or more device drivers 150 and a system call interface module 142 that provides an interface between the operating system 140 and one or more application modules 168 and/or libraries 164. The various device drivers 150 interface with and generally control the hardware installed in the computing system 100.
In operation, one or more application modules 162 and/or libraries 164 executing on computer 108 make calls to the system call interface module 142 to execute one or more commands on the computer's processor. The system call interface module 142 invokes the services of the file systems 146 to manage the files required by the command(s) and the process control subsystem 148 to manage the process required by the command(s). The file system(s) 146 and the process control subsystem 148, in turn, invoke the services of the hardware interface module 154 to interface with the system hardware 120. The operating system kernel 144 can be generally considered as one or more software modules that are responsible for performing many operating system functions.
The particular embodiment of operating system 140 is not critical to the subject matter described herein. Operating system 140 may be embodied as a UNIX operating system or any derivative thereof (e.g., Linux, Solaris, etc.) or as a Windows® brand operating system.
In some embodiments, computer system 100 comprises a keyboard control module 166, which may be embodied as logic instructions recorded in a computer readable medium. Additional details about the keyboard 110 with docking station 116 and the keyboard control module 166 are discussed below with reference to
The keyboard system 200 is communicatively connected to the computer system 100 through an interface, such as but not limited to, a universal serial bus (USB) cable 207. In one embodiment, the connection 207 with the computer system provides for both a power supply and data transfer between the computer system and the keyboard system 200.
In some embodiments, the mouse 203 is communicatively connected to the keyboard 201. By way of example, and not limitation, communication methods between the keyboard 201 and mouse 203 includes wired media such as a wired network, fiber optic networks, or direct-wired connection and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of communication between the keyboard 201 and mouse 203. As used in this description, a “mouse” may describe input options such as, but not limited to; a trackball, a touch pad, a touch screen, a joystick, a remote control unit, or the like. In some embodiments, the mouse maintains functionality, or may have additional or alternative functionality, when placed in the docking station 205.
In some embodiments, the docking station 205 is communicatively connected to the keyboard. By way of example, and not limitation, communication between the keyboard and docking station may include a signal from to the docking station 205 to the keyboard 201 to determine if a device is docked and in need of recharging, or a signal from to the docking station 205 to the keyboard 201 to determine if a device is docked and may provide additional functionality to the keyboard 201. The docking station 205 may be coupled with a mouse 203 or variety of other devices 209, such as but not limited to; a trackball, a touchpad, a joystick, a graphics tablet, a game pad, a driving simulator device, a flight simulator device, a remote control unit, or the like. In one embodiment, other devices 209 may retain their functionality while in the docking station or may have additional or alternative functionality, when placed in the docking station 205.
In some embodiments, the keyboard system 200 may be implemented as a computer system such as the computer system 100 depicted in
By contrast, if at operation 310 the charge is above a threshold charge, then the keyboard control module detects whether the mouse or other device is in the docking station (operation 315). If, at operation 315, the mouse or other device is not in the docking station, then the keyboard control module prompts the computer system, such as depicted in
In some embodiments the keyboard control module 166 may include logic that switches the computer system's operating mode in response to a change in status of the keyboard system. For example, the keyboard control module 166 may monitor the operating status of the keyboard system 200. If the system remains active, then the computer system may continue normal operations. By contrast, if the keyboard system 200 becomes inactive, for example if the system is removed or otherwise inactivated, then the keyboard control module 166 may cause the computer system to enter a sleep mode. For example, the keyboard control module 166 may generate an interrupt, which may be passed to the BIOS, which in turn may place the computer system into a sleep mode.
Generally, various different general purpose or special purpose computing system configurations can be used. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
The functionality of the computers is embodied in many cases by computer-executable instructions, such as program modules, that are executed by the computers. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Tasks might also be performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media.
The instructions and/or program modules are stored at different times in the various computer-readable media that are either part of the computer or that can be read by the computer. Programs are typically distributed, for example, on floppy disks, CD-ROMs, DVD, or some form of communication media such as a modulated signal. From there, they are installed or loaded into the secondary memory of a computer. At execution, they are loaded at least partially into the computer's primary electronic memory. The invention described herein includes these and other various types of computer-readable media when such media contain instructions, programs, and/or modules for implementing the steps described below in conjunction with a microprocessor or other data processors. The invention also includes the computer itself when programmed according to the methods and techniques described below.
For purposes of illustration, programs and other executable program components such as the operating system are illustrated herein as discrete blocks, although it is recognized that such programs and components reside at various times in different storage components of the computer, and are executed by the data processor(s) of the computer.
With reference to
Computer 400 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by computer 400 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. “Computer storage media” includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 400. Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes 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 includes wired media such as a wired network, fiber optic networks, or direct-wired connection and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
The system memory 406 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 410 and random access memory (RAM) 412. A basic input/output system 414 (BIOS), containing the basic routines that help to transfer information between elements within computer 400, such as during start-up, is typically stored in ROM 410. RAM 412 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 404. By way of example, and not limitation,
The computer 400 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only, the computer system of
The drives and their associated computer storage media discussed above and illustrated in
The computer may operate in a networked environment using logical connections to one or more remote computers, such as a remote computing device 450. The remote computing device 450 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to computer 400. The logical connections depicted in
When used in a LAN networking environment, the computer 400 is connected to the LAN 452 through a network interface or adapter 456. When used in a WAN networking environment, the computer 400 typically includes a modem 458 or other means for establishing communications over the Internet 454. The modem 458, which may be internal or external, may be connected to the system bus 406 via the I/O interface 442, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 400, or portions thereof, may be stored in the remote computing device 450. By way of example, and not limitation,
Moreover, some embodiments may be provided as computer program products, which may include a machine-readable or computer-readable medium having stored thereon instructions used to program a computer (or other electronic devices) to perform a process discussed herein. The machine-readable medium may include, but is not limited to, floppy diskettes, hard disk, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, erasable programmable ROMs (EPROMs), electrically EPROMs (EEPROMs), magnetic or optical cards, flash memory, or other suitable types of media or computer-readable media suitable for storing electronic instructions and/or data. Moreover, data discussed herein may be stored in a single database, multiple databases, or otherwise in select forms (such as in a table).
Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least an implementation. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.