/dev/joy?
joystick device files
Joystick device driver
To compile this driver into the kernel, place the following lines in your kernel configuration file:
device joy
Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5):
joy_load="YES"
In /boot/device.hints: hint.joy.0.at="isa" hint.joy.0.port="0x201" hint.joy.1.at="isa" hint.joy.1.port="0x201"
#include <sys/joystick.h>
The joystick device driver allows applications to read the status of the PC joystick.
This device may be opened by only one process at a time.
The joystick status is read from a structure via a read() call. The structure is defined in the header file as follows:
struct joystick {
int x; /* x position */
int y; /* y position */
int b1; /* button 1 status */
int b2; /* button 2 status */
};
Positions are typically in the range 0-2000.
perl -e 'open(JOY,"/dev/joy0")||die;while(1) {sysread(JOY,$x,16);@j=unpack("iiii",$x);print "@j\n";sleep(1);}'
Several ioctl() calls are also available. They take an argument of type int *
Set the time limit (in microseconds) for reading the joystick status. Setting a value too small may prevent to get correct values for the positions (which are then set to -2147483648), however this can be useful if one is only interested by the buttons status.
Get the time limit (in microseconds) used for reading the joystick status.
Set the value to be added to the X position when reading the joystick status.
Set the value to be added to the Y position when reading the joystick status.
Get the value which is added to the X position when reading the joystick status.
Get the value which is added to the Y position when reading the joystick status.
The pinout of the DB-15 connector is as follow:
1 XY1 (+5v) 2 Switch 1 3 X1 (potentiometer #1) 4 Switch 1 (GND) 5 Switch 2 (GND) 6 Y1 (potentiometer #2) 7 Switch 2 8 N.C. 9 XY2 (+5v) 10 Switch 4 11 X2 (potentiometer #3) 12 Switch 3&4 (GND) 13 Y2 (potentiometer #4) 14 Switch 3 15 N.C.
Pots are normally 0-150k variable resistors (0-100k sometimes), and according to the IBM technical reference, the time is given by Time = 24.2e-6s + 0.011e-6s * R/Ohms
/dev/joy?
joystick device files
9 releases since Debian 5.0 (Lenny); the text changed 6 times.