JOY(4) FreeBSD/i386 カーネルインタフェースマニュアル JOY(4)
名称
joy − ジョイスティックのデバイスドライバ |
書式
device joy0 at isa? port IO_GAME #include <machine/joystick.h> |
解説
ジョイスティックデバイスドライバは、アプリケーションが PC ジョイスティッ クの状態を読み出せるようにします。 ある時点でこのデバイスをオープンできるプロセスは 1 つだけです。 ジョイスティックの状態は、read() システムコールによって、 joystick 構造体 に入れられます。この構造体はヘッダファイルで次のように定義されています。 |
struct joystick { |
||||
int x; /* x 位置 */ |
||||
int y; /* y 位置 */ |
||||
int b1; |
/* ボタン 1 の状態 */ |
|||
int b2; |
/* ボタン 2 の状態 */ |
|||
}; |
位置は一般に 0-2000 の値をとります。 |
perl の 1 行実行例: |
perl -e
’open(JOY,"/dev/joy0")||die;while(1) |
ioctl 呼び出し |
いくつかの ioctl() 呼び出しも利用できます。これらは int * 型の引数を 1 つ 取ります。 |
JOY_SETTIMEOUT int *limit
ジョイスティックの状態を読み出す際の時間制限 (マイクロ 秒単位) を設定します。あまり小さな値を設定すると正しい 位置の値を得ることができなくなります (その場合は -2147483648 になります) が、それでもボタンの状態だけに 注目している場合には役に立つかもしれません。 JOY_GETTIMEOUT int *limit JOY_SET_X_OFFSET int *offset JOY_SET_Y_OFFSET int *offset JOY_GET_X_OFFSET int *offset JOY_GET_Y_OFFSET int *offset 技術的仕様 |
DB-15 コネクタのピン配置は次の通りです: 1 XY1 (+5v) 2 スイッチ 1 3 X1 (分圧器 #1) 4 スイッチ 1 (GND) 5 スイッチ 2 (GND) 6 Y1 (分圧器 #2) 7 スイッチ 2 8 N.C. 9 XY2 (+5v) 10 スイッチ 4 11 X2 (分圧器 #3) 12 スイッチ 3&4 (GND) 13 Y2 (分圧器 #4) 14 スイッチ 3 15 N.C. 分圧器は通常 0-150k (まれに 0-100k) の可変抵抗で、 IBM の技術文書によれ ば、時間は次の式で表されます: Time = 24.2e-6s + 0.011e-6s * R/Ohms |
関連ファイル
/dev/joy?
ジョイスティックのデバイスファイル 作者 |
Jean-Marc Zucconi 〈jmz@cabri.obs-besancon.fr〉 |
歴史
joystick ドライバは FreeBSD 2.0.5 に初めて登場しました。 FreeBSD 10.0 January 23, 1995 FreeBSD 10.0 |