Arduino:
לוגים

איך לעשות:

ל-Arduino אין ספריית רישום טובעת בדומה לסביבות אחרות, אבל אפשר לממש רישום בסיסי לקונסולת ה-Serial בפחות מאמץ. הנה דוגמא זריזה כדי להתחיל:

void setup() {
  // התחלת תקשורת סריאלית עם קצב המז"ב הנתון
  Serial.begin(9600);

  // המתן לחיבור הפורט הסריאלי - נחוץ רק בכמה לוחות
  while (!Serial) {
    ; // המתן לחיבור הפורט הסריאלי. נחוץ ל-USB מקורי
  }

  // רישום הודעת מידע המציינת שתהליך ההכנה הסתיים
  Serial.println("הכנה הושלמה!");
}

void loop() {
  // רישום פשוט שמדפיס את זמן הפעולה (uptime) כל שנייה
  static unsigned long lastLogTime = 0;
  unsigned long currentMillis = millis();

  if (currentMillis - lastLogTime >= 1000) {
    lastLogTime = currentMillis;
    Serial.print("זמן הפעולה (ms): ");
    Serial.println(currentMillis);

    // כאן תוכל להוסיף גם יומני שגיאות, אזהרות, או מידע נוסף.
  }
  
  // שאר הלוגיקה של התוכנית שלך כאן...
}

פלט דוגמא של Serial:

הכנה הושלמה!
זמן הפעולה (ms): 1000
זמן הפעולה (ms): 2000
זמן הפעולה (ms): 3000
...

עיון נוסף:

בהיסטוריה, רישום לוגים במיקרו-בקרים לא היה פשוט כפי שהיה במערכת הפעלה מורכבת. משאבים מוגבלים אילצו להיות חזקים על כל בית ופיתוח נדרש להיזהר שלא לסתום את המערכת. עם בואם של לוחות יותר יכולים והפלטפורמה של ארדואינו שפישטה את התהליך, רישום נעשה נגיש יותר.

בעוד הקוד לעיל מציג רישום דרך הממשק Serial, ישנם שיטות אחרות כמו כתיבה לכרטיס SD, שליחת נתונים ברשת לשרת מרוחק, או אפילו פלט למסך LCD קטן.

הטמעת מערכת רישומים מעלה שיקולים כמו סיבוב קבצים, חומרת הרמה (מידע, ניפוי, אזהרה, שגיאה), והשפעה על הביצועים. בארדואינו, ייתכן שתצטרך להיות ער למגבלות זיכרון כאשר תרשום מבני נתונים מורכבים. לשיקול דעת של שליחת יומנים מרוחקים, אבטחת היומנים שנשלחים היא חשש נוסף.

פתרונות מתקדמים יותר כמו Syslog, תקן רישום שהתקבל באופן נרחב, קיימים מחוץ לעולם ארדואינו, אך אפשר לשלב ספריות צד שלישי המציעות פונקציונליות דומה עם רמות שונות של מורכבות ודרישות משאבים.

ראה גם: