Arduino ไม่ได้รับคำสั่งหลายคำสั่ง

ฉันกำลังพยายามทำพื้นฐานด้วย Arduino ของฉัน และด้วยเหตุนี้ฉันจึงเริ่มจากเล็กๆ น้อยๆ

ที่กล่าวว่าฉันต้องการให้ Arduino ฟังคำสั่งง่ายๆ หลายคำสั่งที่ถูกส่งจาก Raspberry Pi ของฉัน (ตอนนี้ฉันกำลังจำลองสิ่งนี้ผ่านมอนิเตอร์แบบอนุกรม)

นี่คือรหัสที่ฉันทำงานด้วย:

#include "SoftwareSerial.h"

void setup()
{
  Serial.begin(9600);
  delay(100);
}

void loop() {
    if (Serial.find("test1")) {
      delay(100);
      Serial.println("TEST1 command received");
    }
    if (Serial.find("test2")) {
      delay(100);
      Serial.println("TEST2 command received");
    }
  }
}

น่าเศร้า มีเพียงคำสั่ง test1 เท่านั้นที่ทริกเกอร์การตอบสนองการพิมพ์แบบอนุกรม หมายเลข test2 ใครสามารถช่วยชี้ฉันไปในทิศทางที่ถูกต้องได้ไหม

ขอบคุณ!


person user5740843    schedule 22.09.2016    source แหล่งที่มา
comment
find จะบล็อกจนกว่าจะพบ test1 หรือหมดเวลา โดยจะใช้ข้อมูลทั้งหมดระหว่างทาง รวมถึงสตริง test2 ที่อาจพบด้วย ฉันขอแนะนำให้คุณค้นคว้าข้อมูลเล็กน้อยเกี่ยวกับฟังก์ชันที่คุณพยายามใช้   -  person Eugene Sh.    schedule 22.09.2016


คำตอบ (1)


จากการอ่านเอกสาร ฉันไม่คิดว่าคุณสามารถใช้ฟังก์ชัน find() เช่นนั้นได้

พิจารณาว่าจะเกิดอะไรขึ้นหากป้อน test2 เมื่อมีการเรียกใช้การโทร find("test1") อาจใช้อักขระทั้งหมดจนถึงและรวม 2 แล้วจึงส่งคืน false ซึ่ง ณ จุดนี้อักขระเหล่านั้นจะหายไป

ฉันคิดว่าคุณควรออกแบบโปรโตคอลจริง โดยมีตัวคั่นระหว่างคำสั่ง และอ่าน/แยกวิเคราะห์สิ่งเหล่านั้น

person unwind    schedule 22.09.2016