前回決めた、フットキーボードのキーデータ登録フォーマット、問題ありましたので早速再検討しました。8バイトしか送れないフットキーボードに送るデータ長を64バイトにしても、LEDのON/OFFが動作していたので問題ないかと思っていました。ところが、いよいよ前回のフォーマットに沿ってテストプログラムを作って設定してみたところ、うまく設定できませんでした。送信側のMacアプリも受信側のフットキーボードプログラムもOUTバッファは64バイト確保して、Mac側から64バイト指定で送信できているのに、なぜかうまく設定できませんでした。それでいろいろとプログラムを変えて試したところ、どうも64バイト送っても最初の8バイトしか認識されていないみたいなんです。これってUSBキーボードの仕様なんでしょうか。ドキュメントから読み取ることはできませんでしたが、Microchip社のサンプルコードのコメントに、”元々8バイト送れるけど、サンプルではサンプルでは1バイト処理する”って書いてあったのですが、やっぱり8バイトが上限なんですかね。この仕様で正しいのか確証が持てませんが、送れないものは送れないので、キーデータの登録フォーマット見直しました。(顔文字はフォーマットには含まれません)キーデータの登録フォーマットということで、キーデータ登録コマンドは0x01にするとして、残りの7バイトを有効活用したいところですが、あまり難しくしてもPICマイコン側のエラー処理とか大変になりそうな気もしたので、1文字登録は1回(8バイト)で設定できればよい複数文字登録はどうせ複数回送信することになるので、8バイトで設定できる文字数が少なくても気にしないということにして、こんな感じで決めました。1回8バイトの送信で、2文字のみの登録です。なんか効率悪い気もするけど、これで行ってみます。フットキーポードのプログラムコマンドをちょっと見直して、0x01はキー登録コマンド、従来からあったLEDオン/オフは0x10に移しました。あと、バッファサイズなど変更したので、一通りのソースコードをアップします。https://github.com/tool-lab/new-foot-keyboard-data-formatMac側のアプリMac側のキーデータ登録アプリですが、キーデータ登録するボタンを追加しました。このあとアプリで入力した文字をフットキーボードに設定するようにしますので、入力用のテキストフィールドを追加しました。テキストフィールドは何もしていません。ダイアログはこんな感じです。登録するようにしています。ソースコードは思いっきりハードコーディングです。