【问题标题】:Referencing Hid Library from GitHub library in C# and use it在 C# 中从 GitHub 库中引用 Hid 库并使用它
【发布时间】:2016-11-15 05:31:06
【问题描述】:

我刚开始学习 C#,如果这是一个基本问题,请原谅。 我正在尝试开发一个将 USB-HID 刻度值读取到 Excel 中的应用程序。首先,我将使用这个 github 库(已经下载): https://github.com/mikeobrien/HidLibrary 然后使用 closedxml.codeplex.com 创建一个电子表格并在那里传输数据。

我正在尝试弄清楚如何在我的 C# 项目中引用这个库并使用它从秤中获取信息。我对 C# 或 .NET 了解不多,希望得到一些帮助,大多数谷歌搜索并没有太大帮助,所以任何线索都将不胜感激。谢谢!

【问题讨论】:

    标签: c# .net github usb hid


    【解决方案1】:

    您从 GitHub 提供的链接指定了在您的项目中引用它的库的名称。看看安装部分。此代码用于在项目的 Nuget 包控制台上使用。

    PM> Install-Package hidlibrary
    

    在此链接上查看如何使用 Visual Studio 的 Nuget 包控制台 https://docs.nuget.org/consume/package-manager-console

    【讨论】:

    • 谢谢,我去看看!
    • 这很有用,您是否有资源可以帮助我使用 HID 库连接到秤并检索信息
    • 很高兴收到您的来信@H.H.如果此答案解决了您的问题,请将其标记为有效答案。
    • 这只是部分帮助。我已经连接了库,但我仍然不知道如何使用库来联系 HID 设备并从中检索信息
    • 对于您的下一个问题,请在标题上更加具体,以便用户可以帮助您了解您真正想要的内容,并且不要在一个问题上混合很多问题。
    【解决方案2】:

    试试Hid.Net

    您可以在文档here 中阅读有关 Hid 传输的信息。

    这是从可能类似于天平的温度计读取的。

    Reference

        private static async Task DisplayTemperature()
        {
            //Connect to the device by product id and vendor id
            var temperDevice = await new FilterDeviceDefinition(vendorId: 0x413d, productId: 0x2107, usagePage: 65280)
                .CreateWindowsHidDeviceFactory(_loggerFactory)
                .ConnectFirstAsync()
                .ConfigureAwait(false);
    
            //Create the observable
            var observable = Observable
                .Timer(TimeSpan.Zero, TimeSpan.FromSeconds(.1))
                .SelectMany(_ => Observable.FromAsync(() => temperDevice.WriteAndReadAsync(new byte[] { 0x00, 0x01, 0x80, 0x33, 0x01, 0x00, 0x00, 0x00, 0x00 })))
                .Select(data => (data.Data[4] & 0xFF) + (data.Data[3] << 8))
                //Only display the temperature when it changes
                .Distinct()
                .Select(temperatureTimesOneHundred => Math.Round(temperatureTimesOneHundred / 100.0m, 2, MidpointRounding.ToEven));
    
            //Subscribe to the observable
            _ = observable.Subscribe(t => Console.WriteLine($"Temperature is {t}"));
    
            //Note: in a real scenario, we would dispose of the subscription afterwards. This method runs forever.
        } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多