使用MVVM光工具包和USB通信的奇怪问题

时间:2011-06-28 11:05:50

标签: usb mvvm-light hid light

我已经制作了一个usb隐藏设备(pic18f2550和DS1820)。

我正在使用Visual Studio 2010,C#,.NET 4.0 Framework,最新版本的MVVM light toolkit和来自Florian Leitner的usb HID驱动程序(用于从hid.dll导入函数的工具[DllImport(“hid.dll”) )],读取线程等...)

首先,我使用代码隐藏方法制作了非常轻便的界面,用于测试设备和计算机之间的通信。一切都很好,我的设备被检测到并且信息被读取并且可以毫无问题地显示。为了学习使用这个工具包,我还决定实现MVVM模式。

我使用与我的第一个程序相同的代码制作了一个用于与usb设备进行通信的模型类。这个类实现了一个默认的构造函数,它创建了新的UsbInterface(没有souci)并启用了连接。

此构造函数使用Visual Studio单元测试进行测试,所有正常,设备已连接。

界面有一个按钮,RelayCommand和一个Action,当按下按钮时,它会调用我模型的默认构造函数。 (查看< - > ViewModel - >模型)

使用debug,调用默认构造函数,创建新的UsbInterface,但Connection始终返回false。

我真的不知道附加什么。

我的usb设备似乎运行良好,使用普通的WPF应用程序和我的ModelClass,来自Florent Leitner的USB HID类正常。

但是这个非常基本的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中的单元测试进行MVVM解决方案,_InterfacConnected为true(如果我的设备已连接)
使用MVVM解决方案,单击按钮,调用RelayCommand并调用默认的TemperatureModel构造函数,_InterfaceConnected总是为FALSE

有人有想法吗?

此致 埃里克

1 个答案:

答案 0 :(得分:0)

我已经更改了用于测试的USB类,现在使用来自SourceForge的libus-win32。 我尝试过使用CodeBehind的示例WPF应用程序。它运行良好。 今晚我会尝试对Mvvm做同样的事情。