2016-11-17 5 views
-1

私はシリアルポート経由でデータを読み取るアプリケーションを開発中です。私が読んでしようとしているのは、空でも何かであるかもしれないstringです。Arduinoから来る文字列を読む

私の最初の試みは、シリアルポートから来るものを挿入できる配列を作成することでした。

string[] pass = new string[4]; 
pass[0] = ""; 
pass[1] = "Something"; 
pass[2] = "To"; 
pass[3] = "Read"; 

for (int i = 0; i < pass.Length; i++) 
{ 
    string element = pass[i]; 
} 

しかし、私はシリアルポートから何かを読みたいので、これはうまくいかない。 次のオプションのdata.ToString() == "Any string I want"にあります。

string data = serPort.ReadExisting(); 
if (data.ToString() == "Any string I want") 
{ 
    Environment.Exit(0); 
} 

基本的には、代わりに"Any string I want"の私は、私はそれは、アプリケーションによって認識されるのArduinoを通じて何かを送信するたびにしたいと思います。

皆さん、ありがとうございます。言い換えれば、入ってくるデータがArduinoによって書かれた文字列と等しいなら、それは何かをするでしょう。

+0

あなたが何を求めているのかわかりません。 –

+0

質問を更新しました... @MichaelFaisst –

+0

2つの文字列を比較する方法をお尋ねしますか? –

答えて

0

終了文字を決定し、それをシリアル文字列を送信している着信データに追加して、着信データ内のその文字を探す必要があります。私はキャリッジリターンラインフィードを使用しています。

private string receivedDate = string.Empty; 
    private System.IO.Ports.SerialPort mport; 
    private void Form1_Load(object sender, EventArgs e) 
    { 
     mport = new SerialPort("COM1", 9600, Parity.None,8, StopBits.One); 
     mport.DataReceived += new SerialDataReceivedEventHandler(mport_DataReceived); 
    } 

    private void mport_DataReceived(object sender, SerialDataReceivedEventArgs e) 
    { 
     receivedDate += mport.ReadExisting(); 
     if (receivedDate.Contains("\r\n")) 
     { 
      //show data 
      //Clear receivedDate 

     } 

    } 
関連する問題