2011-06-28 45 views
0

我製作了一個USB HID設備(pic18f2550和DS1820)。我使用的是Visual Studio 2010,C#,.NET 4.0 Framework,最新版本的MVVM light toolkit以及來自Florian Leitner的usb HID驅動程序(用於從hid.dll導入函數的工具[DllImport(「hid.dll 「)],用於閱讀的線程等)使用MVVM光工具包和USB通信的奇怪問題

首先,我使用代碼隱藏功能製作了非常輕的界面,用於測試設備和計算機之間的通信。一切正常,我的設備被檢測到並且信息被讀取並且可以毫無問題地顯示。爲了學習使用這個工具包,我還決定實現MVVM模式。

我已經爲我的usb設備製作了一個模型類,與我的第一個程序使用相同的代碼。這個類實現了一個默認的構造函數,它創建了新的UsbInterface(no souci)並啓用了連接。

此構造函數使用Visual Studio單元測試進行測試,所有的罰款,設備連接。

該界面有一個按鈕,RelayCommand和一個Action,它們在按下按鈕時調用我的模型的默認構造函數。 (查看<→ViewModel→Model)

使用調試,調用默認構造函數,創建新的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爲真(如果我的設備連接)
使用在MVVM溶液的Visual Studio單元測試,_InterfacConnected爲真(如果我的設備
使用MVVM解決方案,點擊按鈕,呼叫RelayCommand並調用默認的構造函數TemperatureModel連接),_InterfaceConnected總是FALSE

有人有想法嗎?

問候 埃裏克

+0

你可以發表代碼在哪裏使用RelayCommand並調用USB設備的代碼? – Rumplin

回答

0

我已經改變了用於測試的USB類,現在使用利布斯-win32的從SourceForge。 我已經用CodeBehind嘗試了一個示例WPF應用程序。它運行良好。 我會盡量在今晚與Mvvm一樣。

+0

你是怎麼和這個圖書館一起去的? – Michael