2012年4月2日月曜日

intuos5 touch買ってみた(タッチパネル解析編)

RawInputを使ってタッチパネルのデータを取れないか調べました。

○デバイス
HID   ベンダーID 1386 プロダクトID 38 Ver 0 UsagePage 0xff00 Usage 0x0b
他にTouch ScreenのUsageを持つ物もあったが、なぜかそれではWM_INPUTが送られてこない。

○タッチ情報
WM_INPUTで取得できるデバイス情報は64バイト固定(2バイトのヘッダ、コンタクトデータ8バイト×7コンタクト分、6バイトの0)

ヘッダ
+0 0x03 固定
+1 1~7 データ内コンタクト数

8バイトのコンタクトデータ×7点分
・変化が無かったものは省略される
・コンタクトデータ先頭が0x81かどうかで扱いが異なる

コンタクトがない時
0が8バイト

コンタクトデータ先頭が0x81だった時
+0 0x81
+1 コンタクト2(LSB)~8(MSB)が継続中なら1を立てる
+2~+7 0固定

コンタクトデータ先頭が0x81でなかった時
+0 コンタクト番号(2-9まで確認)
+1 0x20(コンタクト終了)、0xc4(コンタクト3-9が最初に追加されたとき、コンタクト2追加時は0x90)、0x94(コンタクト有効で+6のデータが変化した時)、0x90(コンタクト有効で+6のデータが変化してない時)
+2 X座標上位8bit
+3 Y座標上位8bit
+4 上位4bitがx座標の下位4bit,下位4bitがY座標の下位4bit
+5 接触面の大きさ
+6 コンタクトの確度?
+7 0固定

XY座標とも左上が0,右下が0xfff