User Input/Output Hardware Considerations for a Thin Client (Windows Embedded CE 6.0)

1/5/2010

This topic discusses considerations for user I/O hardware, such as buttons, a keyboard, and a pointing device.

For information about how to develop device drivers for a specific type of device, see Windows Embedded CE Drivers.

Keyboard Hardware Requirements

The hardware that performs keyboard scans for keystrokes can be simple and can require CPU control from the low-level part of the driver that is hardware dependent.

Ee480702.collapse(en-US,WinEmbedded.60).gifKeyboard Subsystem

The keyboard subsystem must support all functionality that is required in a Windows-based operating system environment. The following list shows the minimal support required for keyboard functionality in a Windows-based operating system environment:

  • Support for delivery of scan codes. The keyboard driver must support MapVirtualKey because Remote Desktop Protocol (RDP) on Windows Embedded CE does not support sending virtual key codes directly to the server. Instead, the client reads the virtual key codes from the message queue and converts these virtual key codes to scan codes by using MapVirtualKey.
  • Support for rollover effects.
  • Support for separate LEFT SHIFT, RIGHT SHIFT, ALT, CTRL, and WINDOWS LOGO keys.
  • Support for function keys from F1 to F12.

Ee480702.collapse(en-US,WinEmbedded.60).gifKeyboard Hardware

The keyboard hardware must also meet the minimum Windows Embedded CE and thin client requirements. The following list shows the minimum hardware requirements:

  • Interrupt on key press.
  • Interrupt on key release.
  • Keyboard rollover support
  • Repeated keystroke support. This prevents a computer receiving a single key press two or more times by the computer.
  • Keyboard buffer.

For more information about specific keyboard drivers, see Keyboard Drivers.

Pointing Device Requirements

Typically, the pointing device for a thin client is a mouse or a touch screen. The following table shows the requirements for a pointing device.

Category Requirement

Mouse movement and button events

The pointing device must correctly emulate mouse-movement events. Mouse-movement events must be separate and independent of button events.

Minimum coordinate resolution

The pointing device must provide coordinates to a minimum of pixel resolution.

Minimum sampling rates

The pointing device must provide a minimum rate of 100 samples per second at set intervals.

Minimum bits per sample

The pointing device must provide resolution with enough bits per sample to resolve coordinates accurately.

Per-sample interrupts

The pointing device must provide per-sample interrupts.

Pointing-device filtering and calibration for devices that require these capabilities

Touch screens and glide pads require filtering to remove incorrect samples that are caused by noise. Touch screens require a method to calibrate them correctly to their screens. This calibration can be done with either hardware or software.

Front-Panel Control Buttons

The front panel on a Windows Embedded CE powered thin client must have a power button and a standby button. You can use the same button for power and for standby. You can use general-purpose I/O (GPIO) pins, or a button controller, to manage these buttons.

Pressing the power button causes the device to enter full power mode if the device is currently in standby. If the device is currently in full power mode, pressing the power button causes the device to enter standby.

Power and Standby LED or LCD Indicators

A power LED indicator or LCD indicator and standby LED indicator or LCD indicator are both required on a thin client. These indicators must show whether the thin client is turned on or is in standby. Consider using GPIO pins, or an LED controller, to manage the LED indicators. If you implement these indicators by using a front-panel LCD, you may want to add a controller for the front-panel LCD.

Network, Remote Control, and Keyboard Activity LED or LCD Indicators

For network activity and keyboard activity, you should use LED indicators or LCD indicators. The indicator for network activity must flash when network activity is detected by the thin client. The indicator for the keyboard must flash when the thin client detects presses of the keyboard button.

See Also

Concepts

Performance Considerations for the Hardware Components of a Thin Client
Hardware Architecture Diagram for a Thin Client

Other Resources

CETK Tests
Core OS Services
Developing a Board Support Package
Developing a Device Driver
Developing an OEM Adaptation Layer