スポンサーリンク

USBHIDACTION(1) FreeBSD 一般コマンドマニュアル USBHIDACTION(1)

名称

usbhidaction − USB の HID コントロールにしたがってアクションを実行する

書式

usbhidaction [−diev] −c config-file −f device [−p pidfile] arg ...

解説

usbhidaction ユーティリティは、特定の値が HID コントロールに現れた時にコ マンドを実行するのに使用されます。このプログラムの通常の動作は、設定ファ イルの読み込み後にデーモンとなり、 HID の項目に指定された通りにコマンドを 実行します。 HID デバイスからの読み込みが失敗した場合、プログラムは終了し ます。つまり USB デバイスが抜かれた場合にも、プログラムは終了するというこ とです。

オプションは以下の通りです:

       −d

デーモンになるかどうかのフラグをトグルさせます。

−e
usbhidaction
がすぐ終了するように指示します。これは、複数の冗長オ プションをつけた時に、どのようにファイルが解釈されるかを確認する のに便利です。

−i
設定ファイルに記述されているが、デバイスに存在しない HID 項目を無 視します。

−v
出力を冗長にします。デーモンにはなりません。

−c config-file
設定ファイルのパス名を指定します。

−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)}’‘

関連項目

usbhidctl(1), usbhid(3), uhid(4), usb(4)

歴史

usbhidaction コマンドは NetBSD 1.6 ではじめて登場しました。 usbhidaction コマンドは FreeBSD 5.1 で登場しました。

FreeBSD 10.0 April 9, 2003 FreeBSD 10.0

スポンサーリンク