Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (3) — Plan9 3rd Edition (Vita Nuova)

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

touchcal(8)

TOUCH(3)

NAME

touch − touch screen

SYNOPSIS

bind -a ’#T’ /dev
 /dev/touchcal
/dev/touchctl
/dev/touchstat
/dev/touch

DESCRIPTION

The touch screen driver serves a one-level directory giving access to a touch panel.  The driver attempts to compensate for the warped nature of the panels we have used: amongst other things, it repeatedly samples the panel to obtain a stable reading, and applies a transformation to the (x, y) coordinates obtained to account for the peculiar distortions of individual panels. A panel should be calibrated by touchcal(8) before use.

There are two variants of the driver.  One drives a DynaPro touch panel on a York Electronics Centre BRD/98/024 interface (Version A) accessed via the Motorola MPC8xx SPI interface.  The other drives a different pressure-sensitive touch panel on a webphone reference design. 

The driver initialisation starts a kernel process to read samples from the touch screen and provide them to the system through the interface used for mouse events.  The events generated mark ‘mouse button’ 1 as down as long as the panel is touched and up otherwise.  Other ‘mouse buttons’ are always up.  This is adequate for many applications (but not acme(1)).

The data file ­touch is read-only.  Each read samples the touch panel and returns two decimal numbers, separated by a space, giving the ­x and ­y coordinates read.  The values are both -1 if a consistent reading could not be made.  This file is used only for debugging; the window system should not be running. 

The control file ­touchctl accepts commands to set driver parameters:

X a b c (MPC8xx only) Set the parameters for a transformation of the X-coordinates received from the panel:

x’ = a∗x+b∗y+c

The values are fixed-point: 1.0 is represented by 216. 

Y d e f (MPC8xx only) Set the parameters for a similar transformation of Y-coordinates:

y’ = d∗x+e∗y+f

sn Sample every ­n milliseconds. 

cp sx sy (SA1100) Wait for the screen to be touched and sample parameters for point p, 0≤p≤3, corresponding to one of the four corners of the screen.  Save the sample parameters for calibration.  ­C (SA1100) Compute calibration parameters based on previously stored samples. 

rn Sets delay between touch reads. 

Rn Average 2^n readings each sample. 

fn Set the filter level (-1024 ≤n≤1024). 

ex y Set error term for ­x and y; normally calculated by C. 

tp r Set pressure threshold for press and release

Reads of ­touchctl return all current parameters in the same form as the commands (allowing settings to be read from the file and later restored by simply writing them back). 

The read-only file ­touchstat contains four decimal values separated by spaces or newlines: the number of raw samples, the number of valid samples, microseconds waiting for samples, and microseconds spent processing samples. 

The SA1100 driver provides a file ­/dev/touchcal that holds the calibration results as a set of decimal numbers for each of the four sample points, one set per line.  The results can be saved and written back to restore the same calibration. 

SOURCE

­/os/mpc/devtouch.c
­/os/sa1100/devtouch.c

SEE ALSO

touchcal(8)

Plan 9  —  June 07, 2000

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026