Table of Contents

## Name

citron - Citron Infrared Touch Driver (CiTouch)

## Synopsis

Section "InputDevice"""
Identifier idevname
Driver "citron"""
Option Device devpath
...
EndSection

## Description

citron is a XFree86 input driver for Citron Infrared Touch devices.

The citron driver acts as a pointer input device, and may be used as the X server's core pointer. It is connected via a "RS232" with the host.

## Supported Hardware

At the moment the following touches are supported. They are also available as ZPress touches.
IRT6I5-V2.x 6.5 inch Infrared Touch

IRT10I4-V4.x 10.4 inch Infrared Touch

IRT12I1-V2.x 12.1 inch Infrared Touch

IRT15I1-V1.x 15.1 inch Infrared Touch

## Configuration Details

Please refer to XF86Config(5x) for general configuration details and for options that can be used with all input drivers. This section only covers configuration details specific to this driver. For better understanding please read also the CTS and various IRT manuals which are available in "pdf" format from Citron web page www.citron.de or directly from Citron.

The following driver Options are supported:

Option Device devpath
  Specify the device path for the citron touch. Valid devices are:

> /dev/ttyS0, /dev/ttyS1, .... This option is mandatory.

> It's important to specify the right device Note: com1 -> /dev/ttyS0, com2 -> /dev/ttyS1 ....

Option ScreenNumber screennumber
  sets the screennumber for the citron InputDevice.

> Default: ScreenNumber: "0"

Option MinX, MinY value
  These are the minimum X and Y values for the citron input device.

> Note: MinX, MinY must be less than MaxX, MaxY.

> Range: "0" - "65535"

> Default: MinX: "0" MinY: "0"

Option MaxX, MaxY value
  These are the maximum X and Y values for the citron input device.

> Note: MaxX, MaxY must be greater than MinX, MinY.

> Range: "0" - "65535"

> Default: MaxX: "65535" MaxY: "65535"

Option ButtonNumber value
  This value is responsible for the button number that is returned within the xf86PostButton event message

> Range: "0" - "255"

> Default: "1"

Option ButtonThreshold value
  This value is responsible for the button threshold. It changes the pressure sensitivity of the touch. A higher number corresponds to a higher pressure.

> Note: This feature is only available with pressure sensitive hardware.

> Range: "0" - "255"

> Default: "20"

Sleep-Mode
  If the IRT is in Doze-Mode and Touch Zone is not interrupted for another certain span of time, the so-called Sleep-Mode is activated. The Sleep-Mode decreases the scan rate of the beams even further than the Doze-Mode does (see below). This way the life expectancy of the beams is prolonged and the power consumption of the IRT is reduced. As soon as an interruption of the Touch Zone is detected, the Sleep-Mode is deactivated and the Touch Zone will again be scanned with the maximum speed. With the Sleep-Mode activated, depending on the set scan rate the IRT's response time can be considerably longer as in normal operation. If, for example, a scan rate of 500 ms / scan is set, it may last up to a half of a second until the IRT detects the interruption and deactivates the Sleep-Mode.

Option SleepMode mode
  This value is responsible for the sleep-mode of the touch.

  > Determines the behaviour of the Sleep-Mode.

  > 0x00 No message at either activation or deactivation

  > 0x01 Message at activation

  > 0x02 Message at deactivation

  > 0x03 Message at activation and deactivation

  > 0x10 GP_OUT output set according to the Sleep-Mode status

  > Values: "0" "1" "2" "3" "16"

  > Default: "0"

Option SleepTime time
  This value is responsible for the sleep-time of the touch. It is the activation time in seconds ("0" = immediately activated, "65535" = always deactivated).

Range: "0" - "65535" [s]

Default: "65535" => deactivated

Option SleepScan scan
  This value is responsible for the scan-time of the touch. This is the time interval between two scan operations while in Sleep-Mode. The time interval is set in steps of milliseconds.

Range: "0" - "65535" [ms]

Default: "500"

Option PWMAdjSrc value

Option PWMAdjDst value
  These parameters are used to adjust the brightness of different backlight inverters. At the moment 2 backlight inverters are used: 0=TDK 1=AC. If you want a AC backlight inverter to behave like an AC type you have to set PWMAdjSrc to 0 (TDK) and PWMAdjDst to 1 (AC).

Range: "0" - "1"

Default: "-1" (no adjustment)

Option PWMActive value
  This value determines the mark-to-space ratio of the PWM output while in normal operation (sleep-mode not active). Higher values result in longer pulse widths. This output signal can be used in conjunction with the Citron AWBI to do backlight-dimming via the touch.

Range: "0" - "255"

Default: "255" (max. brightness)

Option PWMSleep value
  This value determines the mark-to-space ratio of the PWM output while in sleep-mode (-> SleepMode, SleepScan, SleepTime ) operation (sleep-mode active). Higher values result in longer pulse widths.

Range: "0" - "255"

Default: "255" (max. brightness)

Option PWMFreq value
  This value determines the PWM frequency in Hertz

Range: "39" - "9803"

Default: "9803" (max. frequency)

Option ClickMode mode
  With mode one can select between 5 ClickModes

  "1"" = ClickMode Enter

  With this mode every interruption of the infrared beams will activate a ButtonPress event and after the interruption a ButtonRelease event will be sent.

  "2"" = ClickMode Dual

  With this mode every interruption will sent a Proximity event and every second interruption a ButtonPress event. With the release of the interruption (while one interruption is still active) a ButtonRelease event will be sent.

  "3"" = ClickMode Dual Exit

  With this mode every interruption will sent a ProximityIn event and every second interruption a ButtonPress event. With the release of the interruption (while one interruption is still active) no ButtonRelease event will be sent. Only if all interruptions are released a ButtonRelease followed by a ProximityOut event will be sent.

  "4"" = ClickMode ZPress

  With this mode every interruption will sent a ProximityIn event. Only if a certain pressure is exceeded a ButtonPress event will occur. If the pressure falls below a certain limit a ButtonRelease event will be sent. After also the interruption is released a ProximityOut event is generated.

  "5"" = ClickMode ZPress Exit

  This mode is similat to "Clickmode Dual Exit". The first interruption of the beams will sent a ProximityIn event. Only if a certain pressure is exceeded a ButtonPress event will occur. If the pressure falls below a certain limit no ButtonRelease event will be sent. After the interruption is also released a ButtonRelease followed by a ProximityOut event is generated.

Range: "1" - "5"

Default: "1" (ClickMode Enter)

Option Origin value
  This value sets the coordinates origin to one of the four corners of the screen. The following values are accepted: "0" TOPLEFT: Origin set to the left-hand side top corner. "1" TOPRIGHT: Origin set to the right-hand side top corner. "2" BOTTOMRIGHT: Origin set to the right-hand side bottom corner. "3" BOTTOMLEFT: Origin set to the left-hand side bottom corner.

Range: "0" - "3"

Default: "0" (TOPLEFT)

Doze-Mode
  If for a certain span of time the Touch Zone is not interrupted, the so-called Doze-Mode is automatically activated. The activated Doze-Mode slightly decreases the scan rate of the beams. This way the power consumption of the IRT is reduced. As soon as an interruption of the Touch Zone is detected, the Doze-Mode is deactivated and the Touch Zone will again be scanned with the maximum speed.

Option DozeMode mode
  This value is responsible for the doze-mode of the touch.

Determines the behaviour of the Doze-Mode.

0x00 No

message at either activation or deactivation

0x01 Message at activation

0x02 Message at deactivation

0x03 Message at activation and deactivation

0x10 GP_OUT output set according to the Doze-Mode status

If the GP_OUT output is already controlled by the Sleep-Mode it is no longer available as an output port anymore.

Values: "0" "1" "2" "3" "16"

Default: "0"

Option DozeTime time
  This value is responsible for the doze-time of the touch. It is the activation time in seconds ("0" = immediately activated, "65535" = always deactivated).

Range: "0" - "65535" [s]

Default: "65535" => deactivated

Option DozeScan scan
  This value is responsible for the scan-time of the touch. This is the time interval between two scan operations while in Doze-Mode. The time interval is set in steps of milliseconds.

Range: "0" - "65535" [ms]

Default: "500"

Option DeltaX value
  This value determines a virtual area at the left and right side of the current cursor position where the cursor didn't move. Within this area no "MotionNotify" event will be sent.

Range: "0" - "255"

Default: "0" (no deltaX)

Option DeltaY value
  This value determines a virtual area at the top and bottom of the current cursor position where the cursor didn't move. Within this area no "MotionNotify" event will be sent.

Range: "0" - "255"

Default: "0" (no deltaY)

Option Beep value
  This value determines if a "ButtonPress" and/or a "ButtonRelease" event should sound the buzzer. "0" deactivates the buzzer while every other value will activate it.

Range: "0" - "1"

Default: "0" (deactivated)

Option PressVol value
  This value determines the volume of the buzzer (0-100%) when a "ButtonPress" event is sent.

Range: "0" - "100"

Default: "100"

Option PressPitch value
  This value determines the pitch of the tone when a "ButtonPress" event is sent.

Range: "0" - "3000"

Default: "880"

Option PressDur value
  This value determines the duration of the tone in ms when a "ButtonPress" event is sent.

Range: "0" - "255"

Default: "15"

Option ReleaseVol value
  This value determines the volume of the buzzer (0-100%) when a "ButtonRelease" event is sent.

Range: "0" - "100"

Default: "100"

Option ReleasePitch value
  This value determines the pitch of the tone when when a "ButtonRelease" event is sent.

Range: "0" - "3000"

Default: "1200"

Option ReleseDur value
  This value determines the duration of the tone in ms when when a "ButtonRelease" event is sent.

Range: "0" - "255"

Default: "10"

Option BeamTimeout value
  Determines the time span in seconds, that has to elapse before a beam is considered defective, blanked-out and excluded from the coordinates evaluation.

Range: "0" - "65535"

Default: "30" (30 seconds)

Option TouchTime value
  Determines the minimum time span in steps of 10ms for a valid interruption. In order for an interruption to be reported to the host computer as valid, it needs to remain at the same spot for at least the time span declared here.

Range: "0" - "255"

Default: "0" (=6,5 ms)

Option EnterCount count
  Number of skipped "enter reports". Reports are sent approx. every 20ms.

Range: "0" - "31"

Default: "3" (3 skipped messages = 60ms)

Option ZEnterCount count
  Number of skipped "enter reports" while in pressure sensitive mode. Reports are sent approx. every 20ms.

Range: "0" - "31"

Default: "1" (1 skipped messages = 20ms)

Option LockZEnterTime count
  Minimum duration of an AreaPressEnter state (Pressure > AreaPressure) before a PressEnter event is issued. The time is given in 10ms steps.

Range: "0" - "255"

Default: "1" (10ms)

Option LockZExitTime count
  Minimum duration of an AreaPressExit state (Pressure < AreaPressure/2) before a PressExit event is issued. The time is given in 10ms steps.

Range: "0" - "255"

Default: "1" (10ms)

Option LockZLockTime count
  Minimum gap between a PressExit and a PressEnter event. The time is in 10ms steps.

Range: "0" - "255"

Default: "10" (100ms)

Option DualCount count
  Number of skipped "dual touch error". Reports are sent approx. every 20ms. This option is only available for "ZPress" and "ZPress Exit" modes.

Range: "0" - "31"

Default: "2" (2 skipped messages = 40ms)

## See Also

XFree86(1) , XF86Config(5) , xf86config(1) , Xserver(1) , X(7) .

## Authors

2000-2003 - written by Citron GmbH (support@citron.de)

Table of Contents

- Name
- Synopsis
- Description
- Supported Hardware
- Configuration Details
- See Also
- Authors