Google is committed to advancing racial equity for Black communities. See how.
דף זה תורגם על ידי Cloud Translation API.
Switch to English

יומני OpenThread

יומני OpenThread נשלטים על ידי קבועי תצורה רבים של זמן הידור. אלא אם כן צוין אחרת, קבועים אלה מוגדרים בקובץ הבא:

/src/core/config/logging.h

שיטות פלט

OpenThread תומך בשיטות רישום פלט שונות, המוגדרות כקבוע קביעת התצורה של OPENTHREAD_CONFIG_LOG_OUTPUT של OPENTHREAD_CONFIG_LOG_OUTPUT . אפשרויות שיטת הרישום מפורטות בקובץ הבא:

/src/core/config/logging.h

תצורת ברירת המחדל של פלט יומן הינה OPENTHREAD_CONFIG_LOG_OUTPUT_PLATFORM_DEFINED .

שיטת הפלט היא דוגמה למצב בו תצטרך לעדכן את קבוע התצורה ברמת הפלטפורמה במקום הליבה. לדוגמה, כדי לשנות את שיטת הפלט באפליקציית ה- sim לדוגמא, ערוך /examples/platforms/sim/openthread-core-sim-config.h במקום /src/core/config/logging.h .

רמות יומן

יומנים עשויים להפיק רמות שונות של מידע, המוגדרות כקבוע קבוע תצורת זמן ההידור של OPENTHREAD_CONFIG_LOG_LEVEL . אפשרויות הרמה מפורטות בקובץ הבא:

/include/openthread/platform/logging.h

רשימת רמות היומן זמינה גם בהתייחסות API של פלטפורמת רישום פלטפורמות .

רמת יומן ברירת המחדל היא OT_LOG_LEVEL_CRIT רק את היומנים הקריטיים ביותר. שנה את הרמה כדי לראות יומנים נוספים לפי הצורך. כדי לראות את כל יומני OpenThread, השתמש ב- OT_LOG_LEVEL_DEBG .

התחבר אזורים

אזורי היומן קובעים אילו אזורים בקוד OpenThread מופעלים לרישום. ספירת האזור מוגדרת בקובץ הבא:

/include/openthread/platform/logging.h

רשימת אזורי היומן זמינה גם בהפניה API לרישום פלטפורמות .

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

פונקציית רישום ברירת מחדל

פונקציית ברירת המחדל לרישום בתוך OpenThread היא otPlatLog , המוגדר כקבוע קביעת התצורה של OPENTHREAD_CONFIG_PLAT_LOG_FUNCTION של OPENTHREAD_CONFIG_PLAT_LOG_FUNCTION .

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

כדי להשתמש בפונקציה זו ישירות באפליקציות לדוגמה OpenThread, השתמש במתג הבניה REFERENCE_DEVICE . לדוגמה, להשתמש בו בתוך אפליקציית CLI ( examples/apps/cli/main.c ) לדוגמא nRF52840:

make -f examples/Makefile-nrf52840 REFERENCE_DEVICE=1

לחלופין, שנה את המשתנה COMMONCFLAGS בדוגמה Makefile כדי לאפשר זאת כברירת מחדל בעת בנייה.

כיצד להפעיל יומנים

לפני שתפעיל יומנים, ודא שהסביבה שלך מוגדרת לבניית OpenThread. ראה בניית OpenThread למידע נוסף.

אפשר את כל היומנים

כדי להפעיל במהירות את כל רמות היומן והאזורים, השתמש FULL_LOGS build FULL_LOGS :

make -f examples/Makefile-simulation FULL_LOGS=1

מתג זה מגדיר את רמת היומן ל- OT_LOG_LEVEL_DEBG כל דגלי האזור.

אפשר רמה מסוימת של יומנים

כדי לאפשר רמה מסוימת של יומנים, ערוך /src/core/config/logging.h ועדכן את OPENTHREAD_CONFIG_LOG_LEVEL לרמה הרצויה, ואז בנה OpenThread. לדוגמה, כדי לאפשר יומני עד OT_LOG_LEVEL_INFO :

#define OPENTHREAD_CONFIG_LOG_LEVEL OT_LOG_LEVEL_INFO
make -f examples/Makefile-simulation

צפו ביומנים בסיסלוג

יומני נשלחים ל syslog כברירת מחדל. בלינוקס זה /var/log/syslog.

  1. בנה את דוגמת הסימולציה כאשר כל היומנים מופעלים:
    make -f examples/Makefile-sim FULL_LOGS=1
    
  2. התחל צומת מדומה:
    ./output/x86_64-unknown-linux-gnu/bin/ot-cli-ftd 1
    
  3. בחלון מסוף חדש, הגדר פלט בזמן אמת של יומני ה- OT:
    tail -F /var/log/syslog | grep "ot-cli-ftd"
    
  4. בצומת המדומה, העלה את Thread:
    dataset init new
    Done
    dataset
    Active Timestamp: 1
    Channel: 13
    Channel Mask: 07fff800
    Ext PAN ID: d63e8e3e495ebbc3
    Mesh Local Prefix: fd3d:b50b:f96d:722d/64
    Master Key: dfd34f0f05cad978ec4e32b0413038ff
    Network Name: OpenThread-8f28
    PAN ID: 0x8f28
    PSKc: c23a76e98f1a6483639b1ac1271e2e27
    Security Policy: 0, onrcb
    Done
    dataset commit active
    Done
    ifconfig up
    Done
    thread start
    Done
    
  5. חזור לחלון המסוף המריץ את פקודת tail . יומנים צריכים להופיע בזמן אמת עבור הצומת המדומה:
    ot-cli-ftd[30055]: [1] [DEBG]-MAC-----: SrcAddrMatch - Cleared all entries
    ot-cli-ftd[30055]: [1] [INFO]-CORE----: Non-volatile: Read NetworkInfo {rloc:0x9c00, extaddr:1a4aaf5e97c852de, role:Leader, mode:0x0f, keyseq:0x0, ...
    ot-cli-ftd[30055]: [1] [INFO]-CORE----: Non-volatile: ... pid:0x8581bc9, mlecntr:0x3eb, maccntr:0x3e8, mliid:05e4b515e33746c8}
    ot-cli-ftd[30055]: [1] [INFO]-CORE----: Notifier: StateChanged (0x7f133b) [Ip6+ Ip6- LLAddr MLAddr Rloc+ KeySeqCntr NetData Ip6Mult+ Channel PanId NetName ExtPanId MstrKey PSKc SecPolicy]
    ot-cli-ftd[30055]: [1] [INFO]-CLI-----: execute command: dataset panid
    ot-cli-ftd[30055]: [1] [INFO]-CLI-----: execute command: dataset commit active
    ot-cli-ftd[30055]: [1] [INFO]-MESH-CP-: Active dataset set
    ot-cli-ftd[30055]: [1] [DEBG]-MAC-----: Idle mode: Radio sleeping
    ot-cli-ftd[30055]: [1] [DEBG]-MAC-----: RadioPanId: 0x8f28
    ot-cli-ftd[30055]: [1] [INFO]-CORE----: Notifier: StateChanged (0x007f0100) [KeySeqCntr Channel PanId NetName ExtPanId MstrKey PSKc SecPolicy]
    ot-cli-ftd[30055]: [1] [INFO]-CLI-----: execute command: ifconfig up
    ot-cli-ftd[30055]: [1] [DEBG]-MAC-----: Idle mode: Radio receiving on channel 11
    ot-cli-ftd[30055]: [1] [INFO]-CLI-----: execute command: thread start
    ot-cli-ftd[30055]: [1] [NOTE]-MLE-----: Role Disabled -> Detached
    ot-cli-ftd[30055]: [1] [INFO]-MLE-----: Attempt to become router
    ot-cli-ftd[30055]: [1] [INFO]-CORE----: Non-volatile: Read NetworkInfo {rloc:0x9c00, extaddr:1a4aaf5e97c852de, role:Leader, mode:0x0f, keyseq:0x0, ...
    ot-cli-ftd[30055]: [1] [INFO]-CORE----: Non-volatile: ... pid:0x8581bc9, mlecntr:0x3eb, maccntr:0x3e8, mliid:05e4b515e33746c8}
    ot-cli-ftd[30055]: [1] [INFO]-CORE----: Non-volatile: Saved NetworkInfo {rloc:0x9c00, extaddr:1a4aaf5e97c852de, role:Leader, mode:0x0f, keyseq:0x0, ...
    ot-cli-ftd[30055]: [1] [INFO]-CORE----: Non-volatile: ... pid:0x8581bc9, mlecntr:0x7d4, maccntr:0x7d0, mliid:05e4b515e33746c8}
    ot-cli-ftd[30055]: [1] [DEBG]-MLE-----: Store Network Information
    ot-cli-ftd[30055]: [1] [INFO]-MLE-----: Send Link Request (ff02:0:0:0:0:0:0:2)
    

שימו לב לתגי היומן בפלט: [INFO] , [DEBG] , [NOTE] . כל אלה תואמים את רמות היומן . לדוגמה, אם תשנה את רמת היומן ל- OT_LOG_LEVEL_INFO , יומני DEBG ייעלמו מהפלט.

צפה ביומנים באפליקציית CLI

ניתן לראות יומנים ישירות באפליקציה לדוגמה OpenThread CLI.

  1. ערוך את קובץ התצורה עבור הפלטפורמה לדוגמה ושנה את פלט היומן לאפליקציה. לדוגמא לסימולציה, זהו /examples/platforms/sim/openthread-core-sim-config.h :
    #define OPENTHREAD_CONFIG_LOG_OUTPUT OPENTHREAD_CONFIG_LOG_OUTPUT_APP
    
  2. בנה את דוגמת הסימולציה עם הרמה הרצויה של יומני. להפעלת כל היומנים:
    make -f examples/Makefile-sim FULL_LOGS=1
    
  3. התחל צומת מדומה:
    ./output/x86_64-apple-darwin/bin/ot-cli-ftd 1
    
  4. אתה אמור לראות פלט יומן באותו חלון כמו ה- CLI של OpenThread תוך כדי עיבוד הפקודות.

אם הוספת רישום מותאם אישית והפעלת את כל היומנים, ייתכן שמאגר השידור של UART אינו גדול מספיק בכדי לטפל ביומנים המותאמים אישית הנוספים. אם יומנים מסוימים אינם מופיעים כאשר הם אמורים לעשות זאת, נסה להגדיל את גודל מאגר השידור UART, המוגדר כ- OPENTHREAD_CONFIG_CLI_UART_TX_BUFFER_SIZE ב- /src/cli/cli_config.h או קובץ התצורה של הפלטפורמה, כגון /examples/platforms/nrf528xx/nrf52840/openthread-core-nrf52840-config.h .

הצג יומנים עבור NCP

יומנים עבור NCP עלולים להישלח דרך wpantund אל syslog של מארח. עבור מארח לינוקס, זה /var/log/syslog.

השתמש בערך OPENTHREAD_CONFIG_LOG_OUTPUT של OPENTHREAD_CONFIG_LOG_OUTPUT_NCP_SPINEL כדי לאפשר רישום NCP. שנה זאת בקובץ התצורה של הפלטפורמה.

לדוגמא, כדי לאפשר זאת עבור nrf52840 המחובר למארח לינוקס:

  1. ערוך את קובץ התצורה של הפלטפורמה ושנה את פלט היומן ל- NCP Spinel. עבור nrf52840, זה /examples/platforms/nrf528xx/nrf52840/openthread-core-nrf52840-config.h :
    #define OPENTHREAD_CONFIG_LOG_OUTPUT OPENTHREAD_CONFIG_LOG_OUTPUT_NCP_SPINEL
    
  2. בנה את הדוגמה nrf52840 עם הרמה הרצויה של יומנים ודגלים אחרים הספציפיים ל- NCP. לבניית צירוף עם כל היומנים מופעלים:
    make -f examples/Makefile-nrf52840 JOINER=1 USB=1 FULL_LOGS=1
    
  3. הבזק את ה- NCP, חבר אותו למארח לינוקס והתחל את wpantund כמפורט במודל חומרת OpenThread .
  4. לאחר NCP פועל, לבדוק את syslog על מכונת לינוקס:
    tail -F /var/log/syslog | grep "ot-ncp-ftd"
    
  5. אתה אמור לראות יומני OpenThread מוצגים בזמן אמת עבור NCP. ייתכן שתראה אותם גם בפלט wpantund .

שנה את רמת היומן בזמן הריצה

ניתן לשנות את רמות היומן בזמן הריצה אם מופעלת בקרת רמת יומן דינמית.

  1. ערוך /src/core/config/logging.h והגדר את OPENTHREAD_CONFIG_ENABLE_DYNAMIC_LOG_LEVEL ל- 1 .
  2. שנה את רמת היומן בהתאם ליישום שלך:
    1. לקבלת מערכת על שבב (SoC) , השתמש ב- API לרישום בתוך יישום OpenThread שלך.
    2. עבור NCP, השתמש ב- wpanctl בשורת הפקודה:
      wpanctl set OpenThread:LogLevel 5
      
      ראה wpan-properties.h במאגר wpantund עבור כל המאפיינים שנחשפו ל- wpanctl ו- API של ספינל להגדרות ברמת היומן שלו.