[manual index][section index]


touch - touch screen


bind -a '#T' /dev



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 2ud.

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

y' = d*x+e*y+f
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.
(SA1100) Compute calibration parameters based on previously stored samples.
Sets delay between touch reads.
Average 2^n readings each sample.
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.





TOUCH(3 ) Rev:  Thu Feb 15 14:43:36 GMT 2007