HID(ヒューマンインタフェースデバイス)を使用する必要があります私はHIDキーボードとして提示したUSBバーコードリーダーのための類似した何かをやりました。
最近のカーネルでは、/dev/input/event*
にマウスのイベントデバイスがあります。あなたがそれを開いて、EVIOCGRAB ioctl()でそれをつかむと、他のアプリケーションにマウスイベントを送信しません。マウスからまっすぐにイベントを読むことができます - LinuxソースコードディストリビューションのDocumentation/input/input.txt
にあるevdevのインタフェースドキュメントを参照してください。
struct input_event {
struct timeval time;
unsigned short type;
unsigned short code;
unsigned int value;
};
(struct input_event
をし、次のマクロは、すべてのlinux/input.h
に定義されています):イベント・デバイスから読み取るとき
、あなたは次の形式で、入力イベントの全体数を取得します。あなたが興味を持っている
イベントがinput_event.type == EV_REL
(相対移動イベントを)持っているだろう、input_event.code
メンバーはREL_X
のようなもの(X軸を示す - 完全なリストについてlinux/input.h
ファイルを参照してください)になり、そしてinput_event.value
変位になります。
別の答えが示すように、HIDプロトコルを自分で実装する必要はありません。
出典
2009-08-14 12:26:58
caf
「X環境には従来どおりの効果はありません」とは思っていませんが、x軸とy軸が必要ですか? X環境では座標は意味/可用性しか持たないのですか? –
わからないのですか?彼らは?生データが相対x-y差異にない場合、どのようにエンコードされますか? – duckworthd