その20.SANWAのScroll Mouseの方向の設定について ←その19に戻る 最初のページに戻る その21に進む→ |
1.またまた訂正っていうか・・・
いい加減このパターンから脱したいんだけど、いつも適当な事を書いているから仕方が無いか。
今回の訂正というか、勘違いは以前に三猫さんの所の掲示板に書いた内容なんだけど、サンワのScroll Mouseで方向の設定をしたら同時に接続してたLogitechのCT-100にも影響が有ったという件なんだけど、これは要するに、その時はっていうかCT-100は何故かUSBでは上手く動かないので何時もPS/2で接続しているんだけど、そのPS/2接続の方が原因だった訳で、CT-100がとかLogitechだからという訳では無かった。
他のトラボはPCの裏に回るのが面倒なので大概手前に引き回しているUSBハブに挿して使っているので、気が付くのが遅れたの。
いつもいつも大変申し訳ないです。
でも、以前にサンワのドライバのバージョン違いを検証した時に、サンワのドライバを入れた状態でMS探求者がPS/2で半分の移動量になっていた事が有ったから、そこから感づいても良かったよなぁ。
つまり、サンワのドライバScroll MouseはPS/2に接続されている他のトラボの挙動に妙な影響を与えるらしい。まあ、トラボの二台同時使用をしていて尚且つそれにサンワのトラボが含まれている人は、日本中探してもオレくらいだろうから、不具合っていうようなモノでは無いけどね。
あ、でもマウスを含めたら他にも居るかも・・・
話を元にもどして、と。
という訳で、サンワとLogitechの方向設定には直接の繋がりな無さそうな塩梅です。
下の図がLogitechの方向設定の画面で、
下の図がサンワの方向設定の画面で、本当に良く似ているんだけどなあ・・・
2.Scroll Mouseの方向設定の詳細
Scroll Mouseで方向の設定をすると、LogitechのMouseWareの挙動と違い、レジストリには即アクセスはせず、適用・OKをすると初めてレジストリに書き込まれる。
なお、レジストリの監視にはRegistry Monitorを使ってみた。
確定時に書き込まれるレジストリの場所は、
HKEY_CURRENT_USER\Software\KYE\NetScroll\CurrentVersion\Settings
で、値はOrientationXとOrientationYの2つ。
それぞれのデータはDWORD型なんだけど、この値が方位とどう相関してるのかは、よく判らない。
ちなみに方向設定をしていない初期値は、
OrientationX : 0x00000000 ; OrientationY : 0xffffffff
となっている。
Logitechのモノと違い、一見して意味が判る値にはなっていないので、方向と値からその相関を類推してみることにする。
3.データ取得その1
上方向を0度として、概ね45度づつシフトさせながら、ボールを回転させて設定してみると、以下の表のようになる。なお、あくまで手動でやっているので、かなり誤差を含んだ数字だ。
因みに、X・Yの各値は10進の整数に直している、例えば0x00000001→1、0xffffffff→-1となる。
テストに使ったのがSTINGRAYなので、仮想床面を水平にした状態と、センサが真下に来るような状態の二通りでデータを取得している。
仮想床面 センサ真下 方向 X Y 方向 X Y 0 -22 -48 0 0 -1 45 35 -27 45 51 -25 90 1 0 90 1 0 135 34 48 135 37 49 180 18 48 180 0 1 225 -1 0 225 -42 42 270 -1 0 270 -1 0 315 -38 -43 315 -40 -42
この結果からなんとなく判るのは、センサを真下にした方が精度が良さそう(当たり前か)という事と、90度毎のキリの良い方向(センサの方向と直行する)では、0・1・-1に収束する事。
そして、その収束は偶然ではなくて、かなりの幅でそれらの値に丸められている様子、適当に試して見るとそれぞれ30度くらいの幅だろうか。
ところで、この方位の設定をするのにサンワのトラボではなくて同時に接続された別のトラボからの入力も受け付ける。てことは、例のMOUSE_EVENTでエミュレート出来るのだろうか?
4.データ取得その2
ということで、0度から時計回りに1度づつカーソルを飛ばしつつ、「方向設定」ボタンと「適用」ボタンをクリック(適用しないとレジストリが書き換わらないので)し、データを記録するツールを作って試して見た。
データは表で貼ると、とても重いので画像で貼ってます。
値が暴れてしまっている部分が見られるけど、これは多分カーソルの飛ばし方か、クリックのタイミングが悪いせいと思われる。実際の入力ではこんなでは無いので。
ここで、より正確なエミュレートを、とかはじめると手間がかかりすぎるので、汚いデータだけどこれで勘弁してね。
ただ、傾向としてはなんとなく判る。要するにセンサと直行する方向の±10度の範囲では、その中心の方向に収束させて(しちゃって?)いるらしい。
また、上の値から散布図を描かせて見ると、下のようになる。
だから、これは何だ、と言われると困ってしまうんだけど・・・