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 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 sam‐
ples, microseconds waiting for samples, and microseconds spent process‐
ing samples.
The SA1100 driver provides a file /dev/touchcal that holds the calibra‐
tion 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 ALSOtouchcal(8)TOUCH(3)