コンピュータからシリアルポート経由でデータの文字列をArduino Megaボードに送信しようとしています。データの文字列は、識別子のためのいくつかの文字と2つの値で構成されています。 1つの値は0から240の間です(2桁の値、3つの場合もあります)。2番目の値は-45〜+ 45の数値です。C#でコードを書き込んで文字列を送信しました。以下に示す。シリアル経由でC#から文字列を送信する
private void goButton_Click(object sender, EventArgs e)
{
if (!serialPort1.IsOpen)
return;
command = 43;
outBuffer += "E" + command1 + "F";
outBuffer += "G" + command2 + "H";
// Therefore send through serial port a string in the following format:
// E<command1>FG<command2>H
// Where <command1> will be an int value between 0 - 240, and
// <command2> will be be a value between -45 and + 45
serialPort1.Write(outBuffer);
outBuffer = "";
}
Arduinoボードで受け取った文字列から値を抽出する際に問題が発生しました。文字列を正しく表示しているようだが、私が間違っていることや、実際には2つの値をフィルタリング/抽出して2つの別々の変数に格納する方法を見つけることができなかったコードを書いた。私は現在持っているArduinoのコードは次のとおりです。
if (Serial.available() > 0)
{
char inData;
String inDataString;
inData = Serial.read();
inDataString = inData;
// Shows the string of E<command1>FG<command2>H
Serial.print(inDataString);
}
は、どのように私は、コンピュータから送信された2つの値を得ることができるようにArduinoの上のコードは、正しいことができますか?