Arduino:
Ghi vào lỗi chuẩn

Cách thực hiện:

Arduino không hỗ trợ natively stderr, nhưng chúng ta có thể mô phỏng nó bằng cách ghi vào Serial. Hãy tưởng tượng một chương trình nhấp nháy LED có kiểm tra lỗi:

void setup() {
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  if(!digitalWriteCheck(LED_BUILTIN, HIGH)) {
    Serial.println("Lỗi: Không thể đặt LED ở trạng thái cao"); // Đây là "stderr" của chúng ta
  }
  delay(1000); // Chờ một giây
  if(!digitalWriteCheck(LED_BUILTIN, LOW)) {
    Serial.println("Lỗi: Không thể đặt LED ở trạng thái thấp"); // Đây là "stderr" của chúng ta
  }
  delay(1000); // Chờ một giây
}

bool digitalWriteCheck(int pin, int giá_trị) {
  // Giả sử hàm này kiểm tra xem digitalWrite có thành công không
  digitalWrite(pin, giá_trị);
  // Nếu thành công trả về true, chúng ta luôn thất bại trong ví dụ này
  return false;
}

Mẫu Đầu ra:

Lỗi: Không thể đặt LED ở trạng thái cao
Lỗi: Không thể đặt LED ở trạng thái thấp

Sâu hơn

Lịch sử, stderr là một luồng chuẩn trong nhiều hệ điều hành, được giới thiệu bởi Unix. Trong Arduino, không có hệ điều hành, chúng ta tự tay xuất lỗi sử dụng Serial.print hoặc tương tự. Nếu bạn đang log vào máy tính, nhật ký có thể được chuyển hướng từ Serial sang một tập tin, tách biệt chúng ra khỏi stdout một cách hiệu quả. Người dùng nâng cao có thể sử dụng SoftwareSerial để mô phỏng stderr trên các cổng serial phần cứng khác nhau.

Xem thêm