2011-12-30 83 views
0

我正在使用hexdump -C來顯示來自linux機器上的指針設備的實時數據。它返回的信息是每行16個字節的十六進制數。就像這樣:將原始鼠標/指針數據轉換爲有意義的東西?

000001b0 a9 1c fd 4e f1 2c 0f 00 01 00 3e 00 01 00 00 00 |...N.,....>.....| 
000001c0 a9 1c fd 4e 0e 2d 0f 00 01 00 3e 00 00 00 00 00 |...N.-....>.....| 
000001d0 a9 1c fd 4e 16 2d 0f 00 00 00 00 00 00 00 00 00 |...N.-..........| 
000001e0 aa 1c fd 4e b1 9a 05 00 01 00 3d 00 01 00 00 00 |...N......=.....| 
000001f0 aa 1c fd 4e ce 9a 05 00 01 00 3d 00 00 00 00 00 |...N......=.....| 
00000200 aa 1c fd 4e d5 9a 05 00 00 00 00 00 00 00 00 00 |...N............| 

我的問題是,我怎麼知道該怎麼這個字符串從鼠標指針的座標數據轉換?

+1

查詢手冊或製造商。或者做一個/很多/試驗和錯誤! – Dan 2011-12-30 02:11:57

+3

哦,這是16 /字節/每行,而不是位。 – Dan 2011-12-30 02:12:26

+0

所以它基本上是一個黑匣子?這種類型的數據沒有通用格式? – lodkkx 2011-12-30 02:12:43

回答

1

大多數USB輸入設備符合USB HID規範。 Xorg evdev(4)驅動程序應該能夠使用幾乎任何指針設備。

如果你正在編寫自己的驅動程序,libusb可能是一個很好的起點。

0

你需要找到的是x的週期和大小(以字節爲單位)和y座標

您可以編寫計算座標的頻率被寫入(在移動裝置)的編程'。那麼你必須進行校準......移動指針並看到座標的變化......這是全球性的,我會怎麼做。

+0

如果它是一個USB鼠標, - > sarnold答案:)不難處理。 – 2011-12-30 02:30:41

0

試錯了嗎?你知道你的屏幕分辨率,這可能會有所幫助。 您可以嘗試將鼠標指針放在左上角(0,0)並記錄您獲得的數據。希望它不應該改變,如果你嘗試進一步滾動屏幕(或數據重複)。然後將其移到右下角並記錄您到達的數據。同樣,你希望如果你嘗試從屏幕上滾動,這些值不會改變。然後,您可以查看數據,擺弄永久性,直到值看起來正確,並確定是否存在任何縮放。

也許