【发布时间】:2015-05-18 23:09:14
【问题描述】:
我正在使用 C# 开发一个监控系统,它通过 RS485 控制器连接到一些仪器。该控制器由微型船处理器制成,Windows 操作系统将其识别为 HID 设备(USB 即插即用)。 也就是说,我使用 Windows dll 函数 (hid.dll) 进行开发,如下面的代码块所示:
[DllImport("hid.dll", SetLastError = true)]
public static extern void HidD_GetHidGuid(ref Guid hidGuid);
[DllImport("hid.dll", SetLastError = true)]
public static extern bool HidD_GetNumInputBuffers(SafeFileHandle hidDeviceObject, ref Int32 numberBuffers);
[DllImport("hid.dll", SetLastError = true)]
public static extern bool HidD_GetPreparsedData(SafeFileHandle hidDeviceObject, ref IntPtr preparsedData);
今天,我正在研究将此应用程序移植到带有 Mono 的 Linux 操作系统(Debian 发行版),我相信 Linux 将无法处理这些调用,因为它基于 Windows 操作系统。
有没有其他方法可以在不使用这些 dll 的情况下将 HID 设备与 C# 集成?或者你知道如何实现这一点吗?
【问题讨论】:
-
嗨@dna,感谢您的帮助。我在此链接上找到了一个有趣的库:stackoverflow.com/questions/2803890/net-api-for-hid-usb,我现在正在尝试使用它。