hidlibrary by Mike O'Brien

<PackageReference Include="hidlibrary" Version="3.2.41" />

 IHidDevice

public interface IHidDevice : IDisposable

string Description { get; }

string DevicePath { get; }

IntPtr Handle { get; }

bool IsConnected { get; }

bool IsOpen { get; }

bool MonitorDeviceEvents { get; set; }

void CloseDevice()

void OpenDevice()

void OpenDevice(DeviceMode readMode, DeviceMode writeMode, ShareMode shareMode)

void Read(ReadCallback callback)

void Read(ReadCallback callback, int timeout)

HidDeviceData Read(int timeout)

Task<HidDeviceData> ReadAsync(int timeout = 0)

bool ReadFeatureData(out byte data, byte reportId = 0)

bool ReadManufacturer(out byte data)

bool ReadProduct(out byte data)

void ReadReport(ReadReportCallback callback, int timeout)

HidReport ReadReport(int timeout)

Task<HidReport> ReadReportAsync(int timeout = 0)

bool ReadSerialNumber(out byte data)

void Write(byte[] data, WriteCallback callback)

bool Write(byte[] data)

bool Write(byte[] data, int timeout)

void Write(byte[] data, WriteCallback callback, int timeout)

Task<bool> WriteAsync(byte[] data, int timeout = 0)

bool WriteFeatureData(byte[] data)

void WriteReport(HidReport report, WriteCallback callback)

bool WriteReport(HidReport report)

bool WriteReport(HidReport report, int timeout)

void WriteReport(HidReport report, WriteCallback callback, int timeout)

Task<bool> WriteReportAsync(HidReport report, int timeout = 0)