USBHIDACTION(1) | FreeBSD General Commands Manual | USBHIDACTION(1) |
名称
usbhidaction — USB の HID コントロールにしたがってアクションを実行する書式
usbhidaction | [ -diev] -c config-file -f device [ -p pidfile][ -t tablefile] arg ... |
解説
usbhidaction ユーティリティは、特定の値が HID コントロールに現れた時にコマンドを実行するのに使用されます。このプログラムの通常の動作は、設定ファイルの読み込み後にデーモンとなり、 HID の項目に指定された通りにコマンドを実行します。 HID デバイスからの読み込みが失敗した場合、プログラムは、終了します。つまり USB デバイスが抜かれた場合にも、プログラムは、終了するということです。オプションは、以下の通りです:
- -d
- デーモンになるかどうかのフラグをトグルさせます。
- -e
- usbhidaction がすぐ終了するように指示します。これは、複数の冗長オプションをつけた時に、どのようにファイルが解釈されるかを確認するのに便利です。
- -i
- 設定ファイルに記述されているが、デバイスに存在しない HID 項目を無視します。
- -v
- 出力を冗長にします。デーモンにはなりません。
- -c config-file
- 設定ファイルのパス名を指定します。
- -t tablefile
- HID 使用法テーブルファイルのパス名を指定します。
- -f device
- 作動対象のデバイスのパス名を指定します。 device が数字の場合は、 USB HID デバイス番号とみなします。相対パスの場合は、 /dev 以下のデバイスの名前とみなします。絶対パスの場合は、そのままデバイスのパス名とみなします。
- -p pidfile
- プロセス ID を格納する別のファイル名を指定します。
プロセスが SIGHUP シグナルを受け取とると、設定ファイルが再び読み込まれます。
設定
設定ファイルは、非常に単純な形式をしています。各行は、アクションを記述しています。空白で始まる行は、前の行からの継続とみなされます。‘#
’で始まる行は、コメントとみなされます。
各行は、4 つの部分で構成されます。それは、USB HID の項目名、その項目の値、デバウンス値、アクションです。それぞれの部分は、空白で区切られます。
項目名は、 usbhidctl(1) によって使用されるもと同様です。
項目の値は、単なる数値です。その項目がこの値を示した時に、アクションが実行されます。この値が‘ *
’の場合は、すべての値にマッチします。
デバウンス値は、非負の整数です。値 0 は、デバウンスしないことを示します。値 1 は、状態が変化した時のみアクションを実行します。値が 2 以上の場合は、項目の値がこの量だけ変化した時にのみ実行されます。
アクションは、 system(3) で実行される通常のコマンドです。コマンドが実行される前に、いくつかの置換が行われます。‘ $n
’は、コマンドライン上の n 番目の引数に置き換えられます。‘ $V
’は、HID 項目の数値に置き換えられます。‘ $N
’は、コントロール名に置き換えられ、‘ $H
’は、HID デバイス名に置き換えられます。
関連ファイル
- /usr/share/misc/usb_hid_usages
- HID の使用法テーブル
- /var/run/usbaction.pid
- デフォルトの PID ファイルの場所
使用例
以下の設定ファイルは、スピーカに HID コントロールを持つ 1 組の Philips USB スピーカを制御するのに使われます。
# 様々な Philips USB スピーカ用の設定 Consumer:Volume_Up 1 0 mixer -f $1 vol +1 Consumer:Volume_Down 1 0 mixer -f $1 vol -1 # mute は未サポート #Consumer:Mute 1 0 mixer -f $1 mute Consumer:Channel_Top.Microsoft:Base_Up 1 0 mixer -f $1 bass +1 Consumer:Channel_Top.Microsoft:Base_Down 1 0 mixer -f $1 bass -1
この設定を使用した起動例は、次のようになります。
usbhidaction -f /dev/uhid1 -c conf /dev/mixer1
以下は、Logitech Wingman でミキサボリュームを制御する例です。ボタンに対するデバウンス値は、1 で、スライダに対する値は、5 であることに注意してください。
Button:Button_1 1 1 mixer vol +10 Button:Button_2 1 1 mixer vol -10 Generic_Desktop:Z * 5 mixer vol `echo $V | awk '{print int($$1/255*100)}'`
歴史
usbhidaction コマンドは、 NetBSD 1.6 ではじめて登場しました。 usbhidaction コマンドは、 FreeBSD 5.1 で登場しました。April 9, 2003 | FreeBSD |