簡體   English   中英

MAC中的HID設備接口

[英]HID Device Interface in MAC

我必須為OSX創建與通過USB連接的HID設備交互的軟件/驅動程序。 該應用程序的目的如下:

  1. 檢測何時插入或卸下HID設備。 設備的PID和VID是已知的。
  2. 讀取HID設備序列號,固件版本以及與VID和PID匹配的已連接設備的其他詳細信息
  3. 連接后,獲取報告並將報告設置到HID設備。
  4. 與另一個應用程序進行通信,用戶可以通過該應用程序更改HID設備設置

我不是驅動程序開發人員,但是具有C,C ++,Obj C等方面的經驗。我想知道什么是實現上述目標的最佳方法。 那是我應該開發內核擴展(驅動程序)還是有更好的選擇?

我面臨的挑戰是

  • 從驅動程序開發開始
  • Mac應用程序與驅動程序通信。

無論哪種方式,這對我來說都是一個新領域。 您能從我這里開始建議一些文檔或示例代碼嗎?

還請提及論壇或社區,這可能有助於開發Mac設備驅動程序。

謝謝大家的幫助。 :)

MacOS X已經具有用於HID設備的驅動程序。 因此,您無需為此開發特殊的驅動程序/內核擴展。

您可以使用跨平台的開源庫hidapi與HID設備進行通信。

這個問題的其他答案當然適用於許多不同的用例,我建議盡可能走那條路。 當然,在某些情況下,您需要深入了解kext方面。 特別是,如果HID設備需要充當系統鍵盤或指點設備,但沒有被內置的HID堆棧按您的意願拿起,則可能需要(或想要)開發一個內核-空間驅動器。 (不過,您也可以選擇從用戶空間向窗口系統中注入事件,因此,如果有疑問,我首先將用例原型化。)

您尚未完全向我們提供有關您要執行的操作的詳細信息,或者無法確切地說出設備的性質來確定哪種方法最好。

有關示例代碼,請查看Apple自己的開放源代碼。 (IOHIDFamily,IOUSBFamily等)。在網絡上搜索正在使用的類,還將在Github等上打開一些第三方OSS代碼。

Stack Overflow和相關的Apple開發人員郵件列表(Darwin驅動程序,Darwin內核或Usb,具體取決於問題),也許是開發人員論壇(我發現他們始終難以追蹤/監控)可能是為此的最佳社區之類的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM