2013-10-29 51 views
2

我有一個通過USB連接到計算機的DJ控制器。它由多個按鈕,旋轉撥號盤(看起來像電位器),交叉漸變器,當然還有一個轉盤用於抓取。 該控制器可以在流行的DJ程序中使用,並且工作正常。 在DJ程序中,我可以將設備上的不同按鈕和控件映射到DJ程序中的軟件功能。映射時,按鈕的名稱會顯示在DJ程序中(名稱如「FX1」 - 不只是映射到鍵盤按鈕)。如何與DJ控制器(USB硬件)進行通信

我想創建一個能夠從USB DJ控制器輸入的應用程序。沒有花哨的音頻處理之類的東西,我想要做的是能:

  1. 獲取可從設備的按鈕和控制的列表,從這些控件,而不是從鍵盤
  2. 獲取值

由於按鈕,滑塊等在DJ控制器中顯示爲命名控件,這使我相信這些信息是可訪問的,可能類似於操縱桿的工作方式(雖然我實際上沒有用過.NET中的遊戲杆)。

一個人如何與這種USB設備進行通信,特別是在C#中進行通信?

回答

0

這一切都取決於控制器的製造商提供給您什麼以及設備如何枚舉。

假設設備是通用批量設備(需要第三方驅動程序),您可以在該設備的VID/PID上安裝自己的WinUSB驅動程序。然後,您可以通過WinUSB API與設備進行連接。這裏的問題是你需要知道設備的協議 - 如果他們願意放手,你可以從製造商處獲得這個協議。另一種方法是在正常操作期間使用硬件分析儀(如Ellisys)嗅探總線。

如果設備正在枚舉爲HID設備,那麼它必須符合某些HID標準(例如鼠標,鍵盤或MIDI控制器)。在這種情況下,規範將被定義已經在製造商之外提供。在這種情況下,您可以使用hidapi打開和使用設備,就像DJ應用程序一樣。

相關問題