TOUCH(3) 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 inter-
face (Version A) accessed via the Motorola MPC8xx SPI inter-
face. 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 transforma-
tion of the X-coordinates received from the panel:
x' = a*x+b*y+c
Page 1 Plan 9 (printed 10/25/25)
TOUCH(3) TOUCH(3)
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 sam-
ple 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 sam-
ples, 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 calibra-
tion.
SOURCE
/os/mpc/devtouch.c
/os/sa1100/devtouch.c
SEE ALSO
touchcal(8)
Page 2 Plan 9 (printed 10/25/25)