2017-02-08 9 views
-1

私はすでにArduinoをGUIの問題に送っていました(積極的に受け取りました)。しかし、別の問題が浮上していると言うのは悲しいことです。 Disabler() - >>のようなGUIの機能を使用してGUIを更新することはできません。これはボタンを無効にします。SerialDataReceivedイベントの問題

私のサンプルコードはここにあります。私のデータについては

は私のショーウィンドウ機能

public void ShowWindow() 
    { 

     if(rdata.Contains("FEED")==true) 
     { 
      MessageBox.Show("Feeds already being dispense!","Feeding Process",MessageBoxButton.OK,MessageBoxImage.Information); 

     } 
     else if(rdata.Contains("DRINK")==true) 
     { 
      MessageBox.Show("Drinkable water already being dispense!", "Drinking Water Process",MessageBoxButton.OK,MessageBoxImage.Information); 

     } 
     else if(rdata.Contains("CLEAN")==true) 
     { 
      MessageBox.Show("Cleaning the cage is done!", "Cleaning Process",MessageBoxButton.OK,MessageBoxImage.Information); 

     } 

     else if(rdata.Contains("Fsms")==true) 
     { 
      MessageBox.Show("Feeds Dispensing is starting","Drinking Water Process",MessageBoxButton.OK,MessageBoxImage.Information); 
     } 

     else if(rdata.Contains("Dsms")==true) 
     { 
      MessageBox.Show("Water Dispensing is starting", "Drinking Water Process",MessageBoxButton.OK,MessageBoxImage.Information); 

     } 

     else if(rdata.Contains("Csms")==true) 
     { 
      MessageBox.Show("Cleaning Process is starting", "Cleaning Process",MessageBoxButton.OK,MessageBoxImage.Information); 

     } 
    } 

について

private void Senport_DataReceived(Object sender, SerialDataReceivedEventArgs e) 
    { 
     SerialPort Senport = (SerialPort)sender; 
     rdata = Senport.ReadLine(); 
     ShowWindow(); 
    } 

イベント

を受け取ったが、私は以下のこの機能を使用していたが、例外エラーがポップアップ表示されます。

public void Disabler() 
    { 
     switch(flagger) 
     { 
      case 1: FEED.IsEnabled=false; FEED2.IsEnabled=false; Clean.IsEnabled=false; break; 
      case 2: Clean.IsEnabled=false; FEED.IsEnabled=false; FEED2.IsEnabled=false; break; 
      case 3: Clean.IsEnabled=false; FEED.IsEnabled=false; FEED2.IsEnabled=false; break; 
     } 
    } 

どうすればこの機能を使用できますか?ところで、この関数は同じスレッド上にないというエラーが表示されます。あなたが私を助けることを願って:Dありがとう!

+0

「例外エラーが表示されます」表示されている例外またはエラーはありますか? Disblerメソッドによって実行される機能は何ですか? 「FEED」、「FEED2」、「Clean」などが宣言されている場所? –

+0

それは別のスレッドにあるので使用できると言います。 Disabler()の機能は、ボタンを数秒または数時間無効にすることです。だから私はそれを上に記述します。 –

+0

これは...どうやってDisabler()メソッドを呼び出していますか?あなたが達成しようとしているユースケースや機能について説明できますか? –

答えて

0

これは例外エラーです。ときに私は、関数Disabler()を入れようとしています。 ShowWindow()関数のすべてのif文の中にあります。