gpt4 book ai didi

c# - 如何与 DJ Controller (USB 硬件)通信

转载 作者:太空宇宙 更新时间:2023-11-03 16:05:32 26 4
gpt4 key购买 nike

我有一个通过 USB 连接到计算机的 DJ Controller 。它由许多按钮、旋转拨盘(看起来像电位器)、交叉推子,当然还有一个用于搓盘的转盘组成。该 Controller 能够用于流行的 DJ 节目并且工作正常。在 DJ 程序中,我能够将设备上的不同按钮和控件映射到 DJ 程序中的软件功能。映射时,按钮的名称会显示在 DJ 节目中(诸如“FX1”之类的名称 - 不只是映射到键盘按钮)。

我想创建一个能够从 USB DJ Controller 获取输入的应用程序。没有花哨的音频处理或类似的东西,我想做的就是能够:

  1. 获取设备可用的按钮和控件的列表
  2. 从这些控件而不是键盘获取值

因为按钮、 slider 等在 DJ Controller 中显示为命名控件,这让我相信这些信息是可以访问的,可能与操纵杆的工作方式类似(尽管我实际上没有在 .网络)。

一般来说,尤其是在 C# 中,如何与这样的 USB 设备进行通信?

最佳答案

这完全取决于 Controller 制造商向您提供的内容,以及设备如何枚举。

假设该设备是通用批量设备(需要第三方驱动程序),您可能会在该设备的 VID/PID 上安装您自己的 WinUSB 驱动程序。然后您可以通过 WinUSB API 与设备交互。这里的问题是你需要知道设备的协议(protocol)——如果他们愿意的话,你可以从制造商那里得到它。这里的另一种选择是在正常操作期间嗅探总线(使用 Ellisys 等硬件分析器)。

如果设备被枚举为 HID 设备,那么它必须符合某些 HID 标准(例如鼠标、键盘或 MIDI Controller )。在这种情况下,规范将已经定义并在制造商外部可用。在这种情况下,您可以使用 hidapi 打开和使用设备,就像您的 DJ 应用程序一样。

关于c# - 如何与 DJ Controller (USB 硬件)通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19665885/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com