0

C# UI を使用して Arduino ボードを制御していますが、完全に動作します。テキスト プロトコルを使用してコマンドと値を送信しています。しかし、Arduino から C# に複数のセンサー値を受け取る方法がわかりません。

C# から Arduino まで、文字列の最初と最後に ASCII チャートを使用して、値を Arduino のどこに格納するかを決定しています。アルドゥイーノでは:

void serial_Sensitivity_command(){
    if (Serial.available()){
        while (Serial.available() >= 0){
            if (inChar == SOFF){
                dex1 = 0;
                inData_sens[dex1] = '\0';
                started1 = true;
                ended1 = false;
            }
            else
                if (inChar == EOFF){
                    ended1 = true;
                }
                else
                {
                    if (dex1 < 9){
                        inData_sens[dex1] = inChar;
                        dex1++;
                        inData_sens[dex1] = '\0';
                    }
                }

                if (started1 && ended1){
                    sensitivity_gain = atoi(inData_sens);
                    started1 = false;
                    ended1 = false;
                    dex1 = 0;
                    inData_sens[dex1] = '\0';
                }
            break;
        }
    }
}

C# の各テキストブロックに 8 つの異なる値をルーティングしたいと考えています。Arduino で行ったように、C# で使用する同様の方法はありますか?

または、文字列配列を読み取ってから Substring を使用する必要がありますか?

4

1 に答える 1

0

string プロトコルは試していませんが、USB 経由でシリアル ポートを使用することに成功しました。

アルドゥイーノでは:

//Reading in
while(Serial.available(){
    unsigned char c;
    c = Serial.read();
    if (c == EOFF)
        <process input>
    else
        <buffer input>
}

//sending out
Serial.write(byte1);
Serial.write(byte2);
....
Serial.write(<End of stream marker);

次に、C# ではSystem.IO.Ports、SerialPort を使用してデータを読み取り、同じ形式でデータを収集できます。

于 2013-04-13T14:51:39.943 に答える