Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

joy(4) [debian man page]

JOY(4)							   BSD Kernel Interfaces Manual 						    JOY(4)

joy -- joystick device driver SYNOPSIS
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:"isa""0x201""isa""0x201" #include <sys/joystick.h> DESCRIPTION
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. One line perl example: perl -e 'open(JOY,"/dev/joy0")||die;while(1) {sysread(JOY,$x,16);@j=unpack("iiii",$x);print "@j ";sleep(1);}' ioctl calls Several ioctl() calls are also available. They take an argument of type int * JOY_SETTIMEOUT int *limit 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. JOY_GETTIMEOUT int *limit Get the time limit (in microseconds) used for reading the joystick status. JOY_SET_X_OFFSET int *offset Set the value to be added to the X position when reading the joystick status. JOY_SET_Y_OFFSET int *offset Set the value to be added to the Y position when reading the joystick status. JOY_GET_X_OFFSET int *offset Get the value which is added to the X position when reading the joystick status. JOY_GET_Y_OFFSET int *offset Get the value which is added to the Y position when reading the joystick status. TECHNICAL SPECIFICATIONS
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 FILES
/dev/joy? joystick device files HISTORY
The joy driver appeared in FreeBSD 2.0.5. AUTHORS
Jean-Marc Zucconi <> BSD
January 23, 1995 BSD

Check Out this Related Man Page

joystick_getaxis(3)						Svgalib User Manual					       joystick_getaxis(3)

joystick_getaxis, joystick_getbutton - query the current state of a joystick. SYNOPSIS
#include <vgajoystick.h> char joystick_getaxis(int joydev, int a); char joystick_getbutton(int joydev, int b); DESCRIPTION
These functions query the current state of the joystick joydev. Actually this is the state found during the last call to joy- stick_update(3) with the default joystick event handler active. joystick_getaxis(joydev, a) return the current state of the given axis (usually it is x - 0, y - 1, z - 1, ...) in range -128 .. 127. Some effort is made such that the center position is close to 0. Note that especially the version 0.* protocol joystick calibration is very bad. You won't usually see the extrem values on the extreme position. Also, the center position will be close to zero but often not be exactly zero and return values will also vary slightly from call to call even when the user did not move the joystick. joystick_getbutton(joydev, b) returns the state of a button. It returns 1 for pressed button and 0 else. Note that no hardware checks for button clicks. The button press is only detected during a call to joystick_update(3) (at least in the 0.* protocol). NOTE: The functions simply return the data passed to the default joystick event handler! For your convenience, the following stortcuts have been established by use of the preprocessor: joystick_button1(i) for joystick_getbutton(i, 0). joystick_button2(i) for joystick_getbutton(i, 1). joystick_button3(i) for joystick_getbutton(i, 2). joystick_button4(i) for joystick_getbutton(i, 3). joystick_x(i) for joystick_getaxis(i, 0). joystick_y(i) for joystick_getaxis(i, 1). joystick_z(i) for joystick_getaxis(i, 2). joystick_getb1() for joystick_getbutton(0, 0). joystick_getb2() for joystick_getbutton(0, 1). joystick_getb3() for joystick_getbutton(0, 2). joystick_getb4() for joystick_getbutton(0, 3). joystick_getx() for joystick_getaxis(0, 0). joystick_gety() for joystick_getaxis(0, 1). joystick_getz() for joystick_getaxis(0, 2). CAVEATS
This function is only available in ELF versions of svgalib. Due to backwards compatibility issues it cannot be used with shared a.out libs. SEE ALSO
svgalib(7), vgagl(7), libvga.config(5), joytest(6), mjoytest(6), joystick_init(3), joystick_close(3), joystick_update(3), joy- stick_sethandler(3), joystick_setdefaulthandler(3), joystick_getnumaxes(3), joystick_getnumbuttons(3). AUTHOR
The svgalib joystick handler was mostly done by Daniel Engstr"om <>. Multiple joystick, VC switching support and code to glue it into svgalib by Michael Weller <>. Part of the code is based on code from C. Smith and Vojtech Pavlik. Svgalib 1.3.0 14 April 1998 joystick_getaxis(3)
Man Page

Featured Tech Videos