フットキーボードの割り当てキー設定フォーマットを検討しました。
設定のデータ長は64バイト
あまり根拠はないのですが、とりあえず設定データパケットのデータ長は64バイトにしてみました。USBでのデータやりとりの常識はあまり知らないのですが、とりあえず64バイトのデータ送信はできそうですので、64バイトとしてみました。
パケットフォーマット
やりたいことは、
- 割り当てるスイッチ番号指定
- 割り当てる文字数
- 割り当てる文字のキーコード
- 割り当ても文字の修飾キーコード
ぐらいですかね。ただ、64バイトのデータ長のうち、30バイトはキーコード、30バイトは修飾キーコードで使い、4バイト余ります。スイッチ番号と割り当て文字数を1バイトずつ使うと2バイト残りますので、以下の内容を割り当てることにしました。
- コマンド
今回はキーコードを登録するのみですので、Macからフットキーボードに送るデータは登録データと決めてしまってもいいのですが、とりあえず1バイトはコマンドに使うことにしました。今のところこのコマンドは「登録」しか定義しませんが、もしかしたら将来、登録以外にも使う機会があるかもしれません。例えば、フットキーボードにUSBコンセントをつけて、そこに足元に風を送る小型扇風機をつけてそれを制御するとか、何か探すときに足元を明るく照らすために高輝度LEDをつけてそれを制御するとか。使わないか。 - パケット属性
データパケットの属性も定義しておいた方がよいかな、と思いました。例えば、1つのキーに何百バイトも登録したい場合、おそらく複数パケットになると思います。そのとき、例えば連続パケットであることを示すフラグに使うとか、パケット番号をつけるとか。何に使うかあまりはっきりしませんが、1バイト余らせてももったいないので、定義しておきます。
ということで、データフォーマットはこんな感じになります。
キー登録データ
データフォーマットは上のように決めましたので、キー登録データはこんな感じにしようとおもいます。
登録コマンドは0x01にして、パラメータの2バイトを登録スイッチ番号と文字数にしました。
ということで、次は設定データ固定でMacからフットキーボードに設定データを送って、フットキーポードの登録キー設定を変更してみようと思います。