2011-06-28 8 views
0

私はUSBハイドデバイス(pic18f2550とDS1820)を作成しました。MVVMライトツールキットとUSB通信を使用すると奇妙な問題が発生する

私はVisual Studio 2010、C#、.NET 4.0 Framework、MVVMライトツールキットの最新バージョン、およびFlorian LeitnerのUSB HIDドライバ(hid.dll [DllImport( "hid.dll ")]、読み込み用スレッドなど)

まず、デバイスとコンピュータ間の通信をテストするためのコードビハインドを使用して、非常に軽いインターフェースを作成しました。すべて正常です、私のデバイスが検出され、情報が読み取られ、問題なく表示することができます。 MVVMパターンを実装するために、このツールキットを使用して学習することも決定しました。

私は、私のUSBデバイスとのコミュニケーションのためのモデルクラスを、私の最初のプログラムと同じコードを使って作っています。このクラスは、新しいUsbInterface(no souci)を作成し、接続を有効にする既定のコンストラクターを実装します。

このコンストラクタはVisual Studioのユニットテストでテストされていますが、すべてのデバイスは接続されています。

インターフェイスにはボタン、RelayCommand、およびボタンが押されたときにモデルのデフォルトコンストラクタを呼び出すアクションがあります。 (View < - > 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は(本当ですデバイスが接続されている場合)
ボタンをクリックし、RelayCommandを呼び出してデフォルトのTemperatureModelコンストラクタを呼び出し、_InterfaceConnected always FALSE

誰かがアイデアを持っていますか?

よろしく エリック

+0

RelayCommandを使用し、USBデバイスのコードを呼び出す場所にコードを投稿できますか? – Rumplin

答えて

0

私はテストのために使用されたUSBクラスを変更し、現在はSourceForgeからlibus-win32のを使用してきました。 CodeBehindを使用してサンプルWPFアプリケーションを試しました。走っている。 私は今夜Mvvmと同じことをやろうとします。

+0

どうやってこの図書館に行ったのですか? – Michael

関連する問題