从C#中的GitHub库引用Hid库并使用它

时间:2016-07-12 20:03:01

标签: c# .net github usb hid

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

我试图弄清楚如何在我的C#项目中引用这个库并使用它来从规模中获取信息。我不太了解C#或.NET,并且会喜欢一些帮助,大多数谷歌搜索没有多少帮助,所以任何线索都会非常感激。谢谢!

2 个答案:

答案 0 :(得分:2)

您从GitHub提供的链接指定了在项目中引用它的lib的名称。看一下安装部分。此代码适用于项目上的Nuget Package Console。

PM> Install-Package hidlibrary

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

答案 1 :(得分:0)

试试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.
    }