UWP:从 HID 采集卡读取输入字节

Posted

技术标签:

【中文标题】UWP:从 HID 采集卡读取输入字节【英文标题】:UWP: read input bytes from HID Capture Card 【发布时间】:2020-09-02 07:09:14 【问题描述】:

我的 UWP 应用程序将 Capture Card 识别为 HidDevice:

HidDevice device = await HidDevice.FromIdAsync(deviceId, Windows.Storage.FileAccessMode.Read);

是否可以从 HID Capture Card 读取输入字节? (就像OBS 一样)。 可能是 InputStream 上的一些 DataReader?

我在清单中的隐藏能力:

<DeviceCapability Name="humaninterfacedevice">

          <Device Id="vidpid:534d 2109">
              <Function Type="usage:0005 *" />
              <Function Type="usage:FF00 0001" />
              <Function Type="usage:ff00 *" />
          </Device>
          
      </DeviceCapability>

【问题讨论】:

【参考方案1】:

从 HID 采集卡中读取输入字节

当然,您可以读取HidDevice 输入字节。 HidDevice 包含InputReportReceived 事件,可用于在数据输入时显示数据。更多详情请参考官方document。

device.InputReportReceived += async (sender, args) =>

    HidInputReport inputReport = args.Report;
    IBuffer buffer = inputReport.Data;

    // Create a DispatchedHandler as we are interracting with the UI directly and the
    // thread that this function is running on might not be the UI thread; 
    // if a non-UI thread modifies the UI, an exception is thrown.

    await this.Dispatcher.RunAsync(
        CoreDispatcherPriority.Normal,
        new DispatchedHandler(() =>
        
            info.Text += "\nHID Input Report: " + inputReport.ToString() +
            "\nTotal number of bytes received: " + buffer.Length.ToString();
        ));
;

【讨论】:

我已经在后台使用 youtube 视频尝试了此代码,但 InputReportReceived 事件从未触发。在 OBS 工作室中它可以工作。 你能解释一下在 obs studio 中它的工作原理吗?你有没有在前台尝试过上面的代码? 这意味着OBS工作室成功录制了youtube视频在浏览器中打开的音频。我在前台进程中使用您的代码运行了 UWP 应用程序。 你能分享更多关于你的隐藏设备信息的细节吗? 它已被添加到清单中。我更新了我的问题,您可以隐藏我使用的功能。我想如果没有这个,我会从函数 HidDevice.FromIdAsync 中得到 NULL,所以这不是我的情况。

以上是关于UWP:从 HID 采集卡读取输入字节的主要内容,如果未能解决你的问题,请参考以下文章

Unity UWP 蓝牙条码扫描器

求个温度采集的流程图

如何用MapReduce程序对采集到的数据进行预处理?

如何从 USB HID 设备读取输入?

以太网口采集欧姆龙PLCDM数据存入ACCESS数据库C#上位机

VB编写与USB采集卡通信程序