2013-10-29 44 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应用程序一样。

相关问题