O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Registros OpenThread

Ver fonte no GitHub

Os logs do OpenThread são controlados por várias constantes de configuração de tempo de compilação. Salvo indicação em contrário, essas constantes são definidas no seguinte arquivo:

openthread/src/core/config/logging.h

Métodos de saída

OpenThread suporta diferentes métodos de registo de saída, definida como a constante de configuração de tempo de compilação de OPENTHREAD_CONFIG_LOG_OUTPUT . As opções do método de registro estão listadas no seguinte arquivo:

openthread/src/core/config/logging.h

A configuração de saída de log padrão é OPENTHREAD_CONFIG_LOG_OUTPUT_PLATFORM_DEFINED .

O método de saída é um exemplo de onde você pode precisar atualizar a constante de configuração no nível da plataforma em vez da principal. Por exemplo, para alterar o método de saída no exemplo aplicativo de simulação, editar openthread/examples/platforms/simulation/openthread-core-simulation-config.h vez de openthread/src/core/config/logging.h .

Níveis de registro

Os registos podem saída níveis variáveis de informação, definida como a constante de configuração de tempo de compilação de OPENTHREAD_CONFIG_LOG_LEVEL . As opções de nível estão listadas no seguinte arquivo:

openthread/include/openthread/platform/logging.h

A lista de níveis de log também estão disponíveis no Macros Platform Logging referência API.

O nível de log padrão é OT_LOG_LEVEL_CRIT que só emite os registros mais críticos. Altere o nível para ver mais registros conforme desejado. Para ver todos os logs OpenThread, use OT_LOG_LEVEL_DEBG .

Regiões de registro

As regiões de registro determinam quais áreas do código OpenThread estão habilitadas para registro. A enumeração da região é definida no seguinte arquivo:

openthread/include/openthread/platform/logging.h

A lista das regiões de log também estão disponíveis no Enumerations Platform Logging referência API.

As regiões de log são comumente usadas como parâmetros em funções de log. Todas as regiões são ativadas por padrão.

Função de registro padrão

A função padrão do log dentro OpenThread é otPlatLog , definida como a constante de tempo de compilação de configuração de OPENTHREAD_CONFIG_PLAT_LOG_FUNCTION .

Veja o Logging Platform referência de API para obter mais informações sobre esta função.

Para utilizar esta função diretamente nos exemplos de aplicativos OpenThread, utilize o OT_REFERENCE_DEVICE opção cmake. Por exemplo, para usá-lo dentro do aplicativo CLI para o exemplo CC2538:

./script/build -DOT_REFERENCE_DEVICE=ON

Alternativamente, atualizar o openthread/etc/cmake/options.cmake arquivo para habilitá-lo por padrão quando a construção.

Como habilitar registros

Antes de habilitar os logs, certifique-se de que seu ambiente esteja configurado para construir OpenThread. Veja Desenvolver OpenThread para mais informações.

Habilitar todos os registros

Para ativar rapidamente todos os níveis de log e regiões, use os OT_FULL_LOGS CEfectue opção:

./script/build -DOT_FULL_LOGS=ON

Esta opção define o nível de registro para OT_LOG_LEVEL_DEBG e voltas em todas as bandeiras região.

Habilite um nível específico de registros

Para habilitar um nível específico de registros, editar openthread/src/core/config/logging.h e atualização OPENTHREAD_CONFIG_LOG_LEVEL para o nível desejado, em seguida, construir OpenThread. Por exemplo, para permitir que os logs até OT_LOG_LEVEL_INFO :

#define OPENTHREAD_CONFIG_LOG_LEVEL OT_LOG_LEVEL_INFO
./script/build

Ver logs no syslog

Logs são enviadas para o syslog por padrão. No Linux, este é /var/log/syslog.

  1. Criar o exemplo de simulação com todos os logs ativado:
    cd openthread
    ./script/cmake-build simulation -DOT_FULL_LOGS=ON
    
  2. Iniciar um nó simulado:
    ./build/simulation/examples/apps/cli/ot-cli-ftd 1
    
  3. Em uma nova janela de terminal, configurar uma saída em tempo real das toras OT:
    tail -F /var/log/syslog | grep "ot-cli-ftd"
    
  4. No nó 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

Volte para a janela de terminal executando a tail de comando. Os logs devem ser exibidos em tempo real para o nó simulado. Observe as marcas de registro na saída: [INFO] , [DEBG] , [NOTE] . Todos estes correspondem aos níveis de log . Por exemplo, se você alterar o nível de registro para OT_LOG_LEVEL_INFO , os DEBG registros desaparecem a partir da saída.

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 no aplicativo CLI

Os registros podem ser visualizados diretamente no aplicativo de exemplo OpenThread CLI.

  1. Edite o arquivo de configuração para a plataforma de exemplo e altere a saída do log para o aplicativo. Para o exemplo de simulação, este é openthread/examples/platforms/simulation/openthread-core-simulation-config.h :
    #define OPENTHREAD_CONFIG_LOG_OUTPUT OPENTHREAD_CONFIG_LOG_OUTPUT_APP
    
  2. Construa o exemplo de simulação com o nível desejado de toras. Para permitir que todos os logs:
    ./script/cmake-build simulation -DOT_FULL_LOGS=ON
    
  3. Iniciar um nó simulado:
    ./build/simulation/examples/apps/cli/ot-cli-ftd 1
    
  4. Você deve ver a saída do log na mesma janela que a CLI do OpenThread conforme os comandos são processados.

Se você adicionou o registro personalizado e habilitou todos os registros, o buffer de linha CLI ou o buffer de transmissão UART pode não ser grande o suficiente para lidar com os registros personalizados adicionais. Se alguns logs não estão aparecendo quando deveriam, tente aumentar o tamanho do buffer de linha CLI, definida como OPENTHREAD_CONFIG_CLI_MAX_LINE_LENGTH em /openthread/src/cli/cli_config.h ou aumentar o tamanho do buffer UART de transmissão, definida como OPENTHREAD_CONFIG_CLI_UART_TX_BUFFER_SIZE nos da plataforma arquivo de configuração, tais como /src/nrf52840/openthread-core-nrf52840-config.h .

Ver os registros de um NCP

Logs para um PCN podem ser enviados através wpantund ao syslog de um host. Para um host Linux, este é /var/log/syslog.

Use um OPENTHREAD_CONFIG_LOG_OUTPUT valor de OPENTHREAD_CONFIG_LOG_OUTPUT_APP para habilitar o registro NCP. Altere isso no arquivo de configuração da plataforma.

Por exemplo, para habilitar isso para um nrf52840 conectado a um host Linux:

  1. Edite o arquivo de configuração da plataforma e altere a saída do log para o aplicativo. Para nrf52840, este é ./src/nrf52840/openthread-core-nrf52840-config.h em ot-nrf528xx repositório:
    #define OPENTHREAD_CONFIG_LOG_OUTPUT OPENTHREAD_CONFIG_LOG_OUTPUT_APP
    
  2. Construa o exemplo nrf52840 com o nível desejado de logs e outros sinalizadores específicos do NCP. Para construir um marceneiro com todos os logs ativado:
    ./script/build nrf52840 UART_trans -DOT_JOINER=ON -DOT_FULL_LOGS=ON
    
  3. Piscar o NCP, conecte-o ao host Linux, e começar wpantund conforme detalhado no wpantund repositório.

  4. Uma vez que o NCP está em execução, verifique o syslog na máquina Linux:

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

  5. Você deve ver os logs do OpenThread exibidos em tempo real para o NCP. Você também pode vê-los no wpantund saída.

Altere o nível de registro em tempo de execução

Os níveis de log podem ser alterados em tempo de execução se o controle de nível de log dinâmico estiver habilitado.

  1. Construir o aplicativo com a opção -DOT_LOG_LEVEL_DYNAMIC=ON . Por exemplo,
    ./script/build nrf52840 UART_trans -DOT_JOINER=ON -DOT_FULL_LOGS=ON -DOT_LOG_LEVEL_DYNAMIC=ON
    
  2. Altere o nível de registro de acordo com sua implementação:
    1. Para um system-on-chip (SoC) , utilize a API de registro dentro de sua aplicação OpenThread.
    2. Para um PCN, use wpanctl na linha de comando. Veja wpan-properties.h na wpantund repositório para todas as propriedades expostas a wpanctl ea API Spinel para suas definições de nível de log.
      wpanctl set OpenThread:LogLevel 5