フットキーボードのキーデータ登録フォーマット

ガジェット製作

フットキーボードの割り当てキー設定フォーマットを検討しました。

設定のデータ長は64バイト

あまり根拠はないのですが、とりあえず設定データパケットのデータ長は64バイトにしてみました。USBでのデータやりとりの常識はあまり知らないのですが、とりあえず64バイトのデータ送信はできそうですので、64バイトとしてみました。

 

パケットフォーマット

やりたいことは、

  • 割り当てるスイッチ番号指定
  • 割り当てる文字数
  • 割り当てる文字のキーコード
  • 割り当ても文字の修飾キーコード

ぐらいですかね。ただ、64バイトのデータ長のうち、30バイトはキーコード、30バイトは修飾キーコードで使い、4バイト余ります。スイッチ番号と割り当て文字数を1バイトずつ使うと2バイト残りますので、以下の内容を割り当てることにしました。

  • コマンド
    今回はキーコードを登録するのみですので、Macからフットキーボードに送るデータは登録データと決めてしまってもいいのですが、とりあえず1バイトはコマンドに使うことにしました。今のところこのコマンドは「登録」しか定義しませんが、もしかしたら将来、登録以外にも使う機会があるかもしれません。例えば、フットキーボードにUSBコンセントをつけて、そこに足元に風を送る小型扇風機をつけてそれを制御するとか、何か探すときに足元を明るく照らすために高輝度LEDをつけてそれを制御するとか。使わないか。
  • パケット属性
    データパケットの属性も定義しておいた方がよいかな、と思いました。例えば、1つのキーに何百バイトも登録したい場合、おそらく複数パケットになると思います。そのとき、例えば連続パケットであることを示すフラグに使うとか、パケット番号をつけるとか。何に使うかあまりはっきりしませんが、1バイト余らせてももったいないので、定義しておきます。

ということで、データフォーマットはこんな感じになります。

Packet format

 

キー登録データ

データフォーマットは上のように決めましたので、キー登録データはこんな感じにしようとおもいます。

登録コマンドは0x01にして、パラメータの2バイトを登録スイッチ番号と文字数にしました。

Packet keydata

ということで、次は設定データ固定でMacからフットキーボードに設定データを送って、フットキーポードの登録キー設定を変更してみようと思います。

« »