ช่วยหน่อยครับ ผมอยากเก็บข้อมูลเป็นชุด

สวัสดีครับ ผมค่อนข้างเป็นมือใหม่สำหรับ arduino ช่วยหน่อยครับ ผมอยากเก็บข้อมูลแบบอักษร (String) เป็นชุดข้อมูล ข้อมูลที่ผมรับมา คือรับมาจาก Serial โดยผ่าน Module rs232 to ttl แล้วแปลงออกมาเป็น String ครับ แต่ข้อมูลที่ได้ออกมาจะส่งออกมาเป็นเรียลไทม์ครับ ผมอยากให้ส่งออกมาเป็นชุดข้อมูลได้ไหมครับ เพื่อที่จะเอาไปเช็คเปิดการทำงานของรีเลย์ครับ นี่คือโค้ดเบื้องต้นครับ

void loop() {
  val = digitalRead(digitalPin);

  if (val == 0){
  while (Serial1.available()>0 ) 
  { 
  char inByte = Serial1.read();
  rxData += inByte; 
  
  if (inByte == '\n')
  {
   Serial.print(rxData);
   parseData();
   rxData = ""; 
  }
 }
}
  if (val == 1)
  {
   Serial1.println(cmd); 
   relayRED();
 }
}
void parseData() {
  rxData.toUpperCase();
  
  if (rxData == ("PASS\n")) {
    relayGREEN();
  }
    if (rxData == "FAIL\n") {
    relayRED();
  }
}
void relayGREEN() {
  digitalWrite(LEDGREEN, HIGH);
  Serial.println("OK");
}
void relayRED() {
  digitalWrite(LEDRED, HIGH);
  Serial.println("NG");
  delay(1000);
}

ได้ครับ หากต้องการเก็บข้อมูลที่รับมาจาก Serial ในรูปแบบของ String เพื่อใช้ในการเปรียบเทียบหรือตรวจสอบสถานะของรีเลย์ได้ ก็สามารถปรับโค้ดให้เก็บข้อมูลเป็น String ได้ง่ายๆ แบบนี้

String rxData = ""; // สร้างตัวแปรเก็บข้อมูลที่รับมา

void loop() {
  val = digitalRead(digitalPin);

  if (val == 0){
    while (Serial1.available()>0 ) { 
      char inByte = Serial1.read();
      rxData += inByte; 
  
      if (inByte == '\n') {
        Serial.print(rxData);
        parseData(rxData); // เรียกใช้ฟังก์ชั่น parseData และส่งข้อมูล rxData ไปด้วย
        rxData = ""; 
      }
    }
  }
  if (val == 1) {
    Serial1.println(cmd); 
    relayRED();
  }
}

void parseData(String data) {
  data.toUpperCase();
  
  if (data == ("PASS\n")) {
    relayGREEN();
  }
  if (data == "FAIL\n") {
    relayRED();
  }
}

void relayGREEN() {
  digitalWrite(LEDGREEN, HIGH);
  Serial.println("OK");
}

void relayRED() {
  digitalWrite(LEDRED, HIGH);
  Serial.println("NG");
  delay(1000);
}

ในการแก้ไขโค้ด เพิ่มตัวแปร String rxData = ""; ที่สร้างขึ้นนอกฟังก์ชั่น loop() เพื่อใช้เก็บข้อมูลที่รับมาจาก Serial และส่งไปยังฟังก์ชั่น parseData() เมื่อพบข้อมูลที่มีเครื่องหมาย \n (new line) ที่สิ้นสุดข้อมูลหนึ่งชุด ซึ่งทำให้เราสามารถใช้ rxData ในการตรวจสอบสถานะของรีเลย์ได้ตามต้องการ

ขออนุญาตถามอีกครั้งนะครับผม ผมสามารถรับค่ามาเช็คได้แล้วครับ แต่ปัญหาเกิดตรงที่ผมอยากเช็คว่าหากค่าไม่ใช่ pass หรือ fail จะให้ทำงาน แต่โปรแกรมดันเช็คทุกบรรทัดที่ส่งออกมาเลยครับ

ส่วนอันนี้หากค่า pulse เกิน Hardwareของผม จะส่งคำว่า FAIL มาเลยครับ มีวิธีอื่นแนะนำไหมครับ
ปล. hardware ของผมคือ ไขควงไฟฟ้าครับ

มันต้องเช็คทุกค่าอยู่แล้วครับ ไม่งั้นมันจะรู้ได้ไงว่าตอนนี้มัน pass หรือ fail ถ้าจะไม่แสดงข้อความการทำงานก็แค่ ไม่ต้อง serial print ออกมาแค่นั้นครับ

มีวิธีแนะนำไหมครับที่สามารถเช็คค่าอื่นที่ไม่ใช่ pass กับ fail

จะเช็คค่าอะไรครับ