※この情報が合っているかどうかなんて、わしゃ知らんよ。 データの例 6: 02 91 f3 03 16 06 ff 01 (0) 6: 02 91 f3 03 16 06 ff 01 (0) 6: 02 91 f3 03 16 06 ff 01 (0) 6: 02 91 f4 03 16 06 ff 01 (0) 6: 02 91 f4 03 16 06 ff 01 (0) 構造体にすると、多分こうなる。 typedef _packet { unsigned char report_id; /* USB HIDのreport ID(0x02) */ unsigned char button_status; /* ボタン状態 */ unsigned short x; /* X座標 */ unsigned short y; /* Y座標 */ unsigned short p; /* 筆圧 */ } CTF220_Packet; 値は全てlittle-endian。 ペンとタブレットとの距離が遠い場合、report ID=0x63のデータを返す場合がある (この時、他のデータは全て0x00となるため、無視して良いと思われる)。 ボタン状態は、 bit 7 ペン高さが有効範囲内にある bit 6 bit 5 bit 4 ペン座標が有効範囲内にある bit 3 bit 2 サイドスイッチ(ペン先に近い側) bit 1 セカンドサイドスイッチ(ペン先から遠い側) bit 0 ペン先 となる。 X座標の範囲は0x0000〜0x0cb0、Y座標の範囲は0x0000〜0x0910、 筆圧の範囲は0x0000〜0x01ff。 なお、ファンクションキーは筆圧に割り当てられており、 bit15 ファンクションキー右 bit14 ファンクションキー左 となっている。