2009-06-29 149 views
2

我有興趣使用libhid訪問我們正在PIC單片機上開發的自定義HID設備。我已經能夠成功運行test_libhid代碼。讀取和寫入使用該庫的設備的指令作爲test_libhid代碼中的註釋提供。在Linux上使用libhid確定USB HID設備的HID路徑

我試圖按照記錄的技術進行讀寫,但到目前爲止,我還沒有成功讀取或寫入設備。我懷疑原因可能是設備的報告描述符爲輸入和輸出數據報告指定了一個64字節的數組。

我已經閱讀了usb.org中HID部分的設備類定義中包含的詳細信息,我認爲我理解描述符是如何工作的以及它們如何轉換爲HID路徑,但是我嘗試讀取和寫入數據到設備失敗。

我已經驗證該設備在Windows中工作,所以我的問題似乎在於Linux端。我不認爲這是重要的,但我應該注意到,我目前在使用Ubuntu 8.04服務器加載的VMWare虛擬機上工作

任何人都可以提供一些關於如何爲以下內容指定HID路徑的指導報告描述符(從-vvv的lsusb生成):

Report Descriptor: (length is 29) 
    Item(Global): Usage Page, data= [ 0x00 0xff ] 65280 
         (null) 
    Item(Local): Usage, data= [ 0x01 ] 1 
         (null) 
    Item(Main ): Collection, data= [ 0x01 ] 1 
         Application 
    Item(Local): Usage Minimum, data= [ 0x01 ] 1 
         (null) 
    Item(Local): Usage Maximum, data= [ 0x40 ] 64 
         (null) 
    Item(Global): Logical Minimum, data= [ 0x00 ] 0 
    Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255 
    Item(Global): Report Size, data= [ 0x08 ] 8 
    Item(Global): Report Count, data= [ 0x40 ] 64 
    Item(Main ): Input, data= [ 0x02 ] 2 
        Data Variable Absolute No_Wrap Linear 
        Preferred_State No_Null_Position Non_Volatile Bitfield 
    Item(Local): Usage Minimum, data= [ 0x01 ] 1 
         (null) 
    Item(Local): Usage Maximum, data= [ 0x40 ] 64 
         (null) 
    Item(Main ): Output, data= [ 0x02 ] 2 
         Data Variable Absolute No_Wrap Linear 
         Preferred_State No_Null_Position Non_Volatile Bitfield 
    Item(Main ): End Collection, data=none 

此外,當我運行test_libhid程序,它轉儲解析樹作爲像這樣64個相同條目:

path: 0xff000001.0x00000000; type: 0x80 

這些推測投入。此列表後面是這個樣子另外64項:

path: 0xff000001.0x00000000; type: 0x90 

我已經發布到libhid郵件列表,但一直沒有太多的活動有最近,所以我想我會在這裏把我的問題。如果任何人都可以提供關於如何指定該輸入和輸出報告的HID路徑的指導,這將是一個巨大的幫助。

謝謝。

+0

發佈您的評論:部分作爲回答,稍後再接受 – shodanex 2009-07-06 07:25:39

回答

1

經過多次試驗和錯誤之後,我始終無法獲得libhid來處理目標設備的報告描述符。我確實發現HID設備接口(hiddev)工作得很好,實際上很容易理解。有一個很好的PDF Reference for hiddev,我強烈推薦。另外,/ usr/include/linux中的include文件hiddev.h也非常有幫助。在Ubuntu 8.04中,hiddev界面「開箱即用」,無需額外配置。

希望這會對下一個將HID設備連接到Linux主機時遇到問題的人有所幫助。

注意:我爲上面的.PDF文件提供的鏈接似乎已經消失。我發佈了一個copy of the .PDF file here。它是一個免費的文件共享服務,所以你需要忍受幾個廣告才能下載它。

+0

對不起,該下載鏈接現在無效,請重新上傳嗎?感謝:) – 2011-08-15 22:19:22