我制作了一个 USB 隐藏设备(pic18f2550 和 DS1820)。
我正在使用 Visual Studio 2010、C#、.NET 4.0 框架、最新版本的 MVVM 灯光工具包和 Florian Leitner 的 USB HID 驱动程序(从 hid.dll [DllImport("hid.dll")] 导入函数的功能),阅读线程等...)
首先,我使用代码隐藏制作了非常轻量级的界面,用于测试我的设备和我的计算机之间的通信。一切都很好,我的设备被检测到并且信息被读取并且可以毫无问题地显示。为了学习使用这个工具包,我还决定实现 MVVM 模式。
我已经使用与我的第一个程序相同的代码制作了一个用于与我的 USB 设备通信的模型类。此类实现一个默认构造函数,该构造函数创建新的 UsbInterface (no souci) 并启用连接。
此构造函数使用 Visual Studio 单元测试进行测试,一切正常,设备已连接。
该界面有一个按钮、RelayCommand 和一个 Action,它们在按下按钮时调用我的模型的默认构造函数。(视图 <-> ViewModel -> 模型)
使用调试,调用默认构造函数,创建新的 UsbInterface,但 Connection 总是返回 false。
我真的不知道什么是附加的。
我的 USB 设备似乎运行良好,来自 Florent Leitner 的 USB HID 类可以使用普通的 WPF 应用程序和我的 ModelClass。
但是这个非常基本的 ModelClass(和 Usb 类)并没有在这种模式下运行。
默认构造函数
public TemperatureModel()
{
usb = new USBInterface(”vid_04d8″, “pid_003f”);
_InterfaceConnected = usb.Connect();
if (_InterfaceConnected)
{
usb.enableUsbBufferEvent(new EventHandler(TraitementReception));
}
}
使用带有代码的简单 WPF 应用程序,_InterfacConnected 为真(如果我的设备已连接)
使用Visual Studio for MVVM 解决方案中的单元测试,_InterfacConnected 为真(如果我的设备已连接)
使用 MVVM 解决方案,单击按钮,调用 RelayCommand 和调用默认的 TemperatureModel 构造函数,_InterfaceConnected 总是 FALSE
有人有想法吗?
问候埃里克