Странная проблема с использованием легкого инструментария MVVM и связи через USB - PullRequest
0 голосов
/ 28 июня 2011

Я сделал USB-устройство (pic18f2550 и DS1820).

Я использую Visual Studio 2010, C #, .NET 4.0 Framework, последнюю версию легкого инструментария MVVM и драйвер HID USB от Florian Leitner (средство для импорта функций из hid.dll [DllImport ("hid.dll") )], тема для чтения и т.д ...)

Во-первых, я сделал очень легкий интерфейс с использованием кода для тестирования связи между моим устройством и моим компьютером. Все в порядке, мое устройство обнаружено и информация считывается и может отображаться без проблем. Для обучения с использованием этого инструментария я также решил реализовать шаблон MVVM.

Я создал модельный класс для связи с моим USB-устройством, используя тот же код, что и моя первая программа. Этот класс реализует конструктор по умолчанию, который создает новый интерфейс UsbInterface (без souci) и включает соединение.

Этот конструктор протестирован с модульным тестом Visual Studio, все нормально, устройство подключено.

В интерфейсе есть кнопка RelayCommand и Action, которые при нажатии кнопки вызывают конструктор по умолчанию для моей модели. (View <-> ViewModel -> Model)

Используя debug, вызывается конструктор по умолчанию, создается новый UsbInterface, но Connection всегда возвращает false.

Я действительно не знаю, что добавить.

Мое USB-устройство работает нормально, класс USB HID от Florent Leitner в порядке, используя обычное приложение 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 имеет значение true (если мое устройство подключено)
используя модульный тест в Visual Studio для решения MVVM, _InterfacConnected имеет значение true (если мое устройство подключено)
используя решение MVVM, нажмите кнопку, вызовите RelayCommand и вызовите конструктор TemperatureModel по умолчанию, _InterfaceConnected всегда FALSE

У кого-нибудь есть идея?

С уважением Eric

1 Ответ

0 голосов
/ 07 июля 2011

Я изменил класс USB, используемый для тестирования, и теперь использую libus-win32 из SourceForge.Я пробовал с примером приложения WPF с CodeBehind.Работает хорошо.Я постараюсь сделать то же самое с Mvvm сегодня вечером.

...