Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Registros de OpenThread

Ver fuente en GitHub

Los registros de OpenThread están controlados por numerosas constantes de configuración en tiempo de compilación. A menos que se indique lo contrario, estas constantes se definen en el siguiente archivo:

openthread/src/core/config/logging.h

Métodos de salida

OpenThread soporta diferentes métodos de registro de salida, que se define como la constante de configuración de tiempo de compilación de OPENTHREAD_CONFIG_LOG_OUTPUT . Las opciones del método de registro se enumeran en el siguiente archivo:

openthread/src/core/config/logging.h

La configuración de salida de registro predeterminado se OPENTHREAD_CONFIG_LOG_OUTPUT_PLATFORM_DEFINED .

El método de salida es un ejemplo de dónde es posible que deba actualizar la constante de configuración a nivel de plataforma en lugar de la principal. Por ejemplo, para cambiar el método de salida en el ejemplo de simulación de aplicación, editar openthread/examples/platforms/simulation/openthread-core-simulation-config.h en lugar de openthread/src/core/config/logging.h .

Niveles de registro

Registros pueden salida diferentes niveles de información, que se define como la constante de configuración de tiempo de compilación de OPENTHREAD_CONFIG_LOG_LEVEL . Las opciones de nivel se enumeran en el siguiente archivo:

openthread/include/openthread/platform/logging.h

La lista de los niveles de registro también están disponibles en la plataforma de registro de macros referencia de la API.

El nivel de registro predeterminado es OT_LOG_LEVEL_CRIT que sólo da salida a los registros más críticos. Cambie el nivel para ver más registros como desee. Para ver todos los registros OpenThread, utilice OT_LOG_LEVEL_DEBG .

Regiones de registro

Las regiones de registro determinan qué áreas del código OpenThread están habilitadas para el registro. La enumeración de la región se define en el siguiente archivo:

openthread/include/openthread/platform/logging.h

La lista de regiones de registro también están disponibles en la plataforma de registro de enumeraciones referencia de la API.

Las regiones de registro se utilizan comúnmente como parámetros en las funciones de registro. Todas las regiones están habilitadas de forma predeterminada.

Función de registro predeterminada

La función predeterminada para iniciar la sesión dentro de OpenThread es otPlatLog , que se define como la constante de configuración de tiempo de compilación de OPENTHREAD_CONFIG_PLAT_LOG_FUNCTION .

Ver el registro de la plataforma de referencia de API para más información sobre esta función.

Para utilizar esta función directamente en las aplicaciones de ejemplo OpenThread, utilice el OT_REFERENCE_DEVICE opción cmake. Por ejemplo, para usarlo dentro de la aplicación CLI para el ejemplo CC2538:

./script/build -DOT_REFERENCE_DEVICE=ON

Alternativamente, actualizar el openthread/etc/cmake/options.cmake archivo para activar por defecto en la construcción.

Cómo habilitar registros

Antes de habilitar los registros, asegúrese de que su entorno esté configurado para compilar OpenThread. Ver OpenThread Construir para más información.

Habilitar todos los registros

Para habilitar rápidamente todos los niveles de registro y regiones, utilice los OT_FULL_LOGS opción CMAKE:

./script/build -DOT_FULL_LOGS=ON

Esta opción establece el nivel de registro a OT_LOG_LEVEL_DEBG y enciende todas las banderas región.

Habilite un nivel específico de registros

Para habilitar un nivel específico de registros, editar openthread/src/core/config/logging.h y actualización OPENTHREAD_CONFIG_LOG_LEVEL al nivel deseado, luego construir OpenThread. Por ejemplo, para habilitar los registros hasta OT_LOG_LEVEL_INFO :

#define OPENTHREAD_CONFIG_LOG_LEVEL OT_LOG_LEVEL_INFO
./script/build

Ver registros en syslog

Los registros se envían a la syslog por defecto. En Linux, esto es /var/log/syslog.

  1. Construir el ejemplo de simulación con todos los registros habilitados:
    cd openthread
    ./script/cmake-build simulation -DOT_FULL_LOGS=ON
    
  2. Iniciar un nodo simulado:
    ./build/simulation/examples/apps/cli/ot-cli-ftd 1
    
  3. En una nueva ventana de terminal, configure una salida en tiempo real de los registros de OT:
    tail -F /var/log/syslog | grep "ot-cli-ftd"
    
  4. En el nodo simulado, abra 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
Network 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

Volver interruptor en la ventana de terminal que ejecuta el tail de comandos. Los registros deben mostrarse en tiempo real para el nodo simulado. Tenga en cuenta las etiquetas de registro en la salida: [INFO] , [DEBG] , [NOTE] . Todos ellos corresponden a los niveles de registro . Por ejemplo, si cambia el nivel de registro a OT_LOG_LEVEL_INFO , los DEBG registros desaparecen de la salida.

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)

Ver registros en la aplicación CLI

Los registros se pueden ver directamente en la aplicación de ejemplo de OpenThread CLI.

  1. Edite el archivo de configuración para la plataforma de ejemplo y cambie la salida del registro a la aplicación. Para el ejemplo de simulación, este es openthread/examples/platforms/simulation/openthread-core-simulation-config.h :
    #define OPENTHREAD_CONFIG_LOG_OUTPUT OPENTHREAD_CONFIG_LOG_OUTPUT_APP
    
  2. Cree el ejemplo de simulación con el nivel de registros deseado. Para permitir que todos los registros:
    ./script/cmake-build simulation -DOT_FULL_LOGS=ON
    
  3. Iniciar un nodo simulado:
    ./build/simulation/examples/apps/cli/ot-cli-ftd 1
    
  4. Debería ver la salida del registro en la misma ventana que la CLI de OpenThread a medida que se procesan los comandos.

Si ha agregado un registro personalizado y habilitado todos los registros, es posible que el búfer de línea CLI o el búfer de transmisión UART no sean lo suficientemente grandes para manejar los registros personalizados adicionales. Si algunos registros no aparecen cuando deberían, intente aumentar el tamaño del búfer de la línea de CLI, definida como OPENTHREAD_CONFIG_CLI_MAX_LINE_LENGTH en /openthread/src/cli/cli_config.h o aumentar el tamaño del búfer de transmisión UART, definida como OPENTHREAD_CONFIG_CLI_UART_TX_BUFFER_SIZE en la década de plataforma archivo de configuración, tal como /src/nrf52840/openthread-core-nrf52840-config.h .

Ver registros de un NCP

Registros para un NCP pueden ser enviados a través de wpantund al syslog de un host. Para un host Linux, esto es /var/log/syslog.

Utilice un OPENTHREAD_CONFIG_LOG_OUTPUT valor de OPENTHREAD_CONFIG_LOG_OUTPUT_APP para habilitar el registro PNC. Cambie esto en el archivo de configuración de la plataforma.

Por ejemplo, para habilitar esto para un nrf52840 conectado a un host Linux:

  1. Edite el archivo de configuración para la plataforma y cambie la salida del registro a la aplicación. Para nrf52840, esto es ./src/nrf52840/openthread-core-nrf52840-config.h en ot-nrf528xx repositorio:
    #define OPENTHREAD_CONFIG_LOG_OUTPUT OPENTHREAD_CONFIG_LOG_OUTPUT_APP
    
  2. Cree el ejemplo nrf52840 con el nivel deseado de registros y otros indicadores específicos de NCP. Para construir un carpintero con todos los registros habilitados:
    ./script/build nrf52840 UART_trans -DOT_JOINER=ON -DOT_FULL_LOGS=ON
    
  3. El flash de la PNC, conectarlo al host Linux, y empezar wpantund como se detalla en el wpantund repositorio.

  4. Una vez que el NCP está en marcha, comprobar el syslog en la máquina Linux:

    tail -F /var/log/syslog | grep "wpantund"
    

  5. Debería ver los registros de OpenThread mostrarse en tiempo real para el NCP. También puede ver en la wpantund salida.

Cambiar el nivel de registro en tiempo de ejecución

Los niveles de registro se pueden cambiar en tiempo de ejecución si el control dinámico del nivel de registro está habilitado.

  1. Construir la aplicación con la opción -DOT_LOG_LEVEL_DYNAMIC=ON . Por ejemplo,
    ./script/build nrf52840 UART_trans -DOT_JOINER=ON -DOT_FULL_LOGS=ON -DOT_LOG_LEVEL_DYNAMIC=ON
    
  2. Cambie el nivel de registro según su implementación:
    1. Para un sistema en chip (SoC) , utilice la API de registro dentro de la aplicación OpenThread.
    2. Para un NCP, utilice wpanctl en la línea de comandos. Ver wpan-properties.h en el wpantund repositorio para todas las propiedades expuestas a wpanctl y la API de Espinela de sus definiciones de los niveles de registro.
      wpanctl set OpenThread:LogLevel 5