Operação por rádio

Este módulo inclui a abstração da plataforma para operações de rádio.

Resumo

Funções

otPlatDiagRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
O driver de rádio chama esse método para notificar o módulo de diagnóstico do OpenThread de um frame recebido.
otPlatDiagRadioTransmitDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
O driver de rádio chama esse método para notificar o módulo de diagnóstico do OpenThread de que a transmissão foi concluída.
otPlatRadioAddCalibratedPower(otInstance *aInstance, uint8_t aChannel, int16_t aActualPower, const uint8_t *aRawPowerSetting, uint16_t aRawPowerSettingLength)
Adiciona uma potência calibrada do canal especificado à tabela de calibração de energia.
otPlatRadioAddSrcMatchExtEntry(otInstance *aInstance, const otExtAddress *aExtAddress)
Adicione um endereço estendido à tabela de correspondências de endereço de origem.
otPlatRadioAddSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
Adicionar um endereço curto à tabela de correspondências de endereço de origem.
otPlatRadioClearCalibratedPowers(otInstance *aInstance)
Limpe todas as potências calibradas da tabela de calibração.
otPlatRadioClearSrcMatchExtEntries(otInstance *aInstance)
void
Limpe todos os endereços estendidos/longos da tabela de correspondências de endereço de origem.
otPlatRadioClearSrcMatchExtEntry(otInstance *aInstance, const otExtAddress *aExtAddress)
Remova um endereço estendido da tabela de correspondências de endereço de origem.
otPlatRadioClearSrcMatchShortEntries(otInstance *aInstance)
void
Limpa todos os endereços curtos da tabela de correspondências de endereço de origem.
otPlatRadioClearSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
Remover um endereço curto da tabela de correspondências de endereço de origem.
otPlatRadioConfigureEnhAckProbing(otInstance *aInstance, otLinkMetrics aLinkMetrics, otShortAddress aShortAddress, const otExtAddress *aExtAddress)
Ativar/desativar ou atualizar sondagem baseada em ACK Enhanced no rádio para um iniciador específico.
otPlatRadioDisable(otInstance *aInstance)
Desative o rádio.
otPlatRadioEnable(otInstance *aInstance)
Ative o rádio.
otPlatRadioEnableCsl(otInstance *aInstance, uint32_t aCslPeriod, otShortAddress aShortAddr, const otExtAddress *aExtAddr)
Ativa ou desativa o receptor da CSL.
otPlatRadioEnableSrcMatch(otInstance *aInstance, bool aEnable)
void
Ativar/desativar o recurso de correspondência de endereço de origem.
otPlatRadioEnergyScan(otInstance *aInstance, uint8_t aScanChannel, uint16_t aScanDuration)
Inicia a sequência de verificação de energia no rádio.
otPlatRadioEnergyScanDone(otInstance *aInstance, int8_t aEnergyScanMaxRssi)
void
O driver de rádio chama esse método para notificar o OpenThread de que a verificação de energia foi concluída.
otPlatRadioGetCoexMetrics(otInstance *aInstance, otRadioCoexMetrics *aCoexMetrics)
Acessar as métricas de coexistência de rádio.
otPlatRadioGetCslAccuracy(otInstance *aInstance)
uint8_t
Saber a precisão atual estimada do pior caso (desvio máximo ± da frequência nominal) do relógio de rádio local em unidades de PPM.
otPlatRadioGetCslUncertainty(otInstance *aInstance)
uint8_t
A incerteza fixa (ou seja,
otPlatRadioGetPreferredChannelMask(otInstance *aInstance)
uint32_t
Recebe a máscara de canal preferencial de rádio que o dispositivo prefere usar.
otPlatRadioGetRawPowerSetting(otInstance *aInstance, uint8_t aChannel, uint8_t *aRawPowerSetting, uint16_t *aRawPowerSettingLength)
Acessa a configuração de energia bruta do canal especificado.
otPlatRadioGetRegion(otInstance *aInstance, uint16_t *aRegionCode)
Acesse o código da região.
otPlatRadioGetRssi(otInstance *aInstance)
int8_t
Confira a medição de RSSI mais recente.
otPlatRadioGetState(otInstance *aInstance)
Acessar o estado atual do rádio.
otPlatRadioGetSupportedChannelMask(otInstance *aInstance)
uint32_t
Acessa a máscara de canal de rádio com suporte em que o dispositivo tem permissão para estar.
otPlatRadioGetTransmitBuffer(otInstance *aInstance)
Acessa o buffer de frame de transmissão de rádio.
otPlatRadioIsCoexEnabled(otInstance *aInstance)
bool
Confira se o coex de rádio está ativado ou não.
otPlatRadioIsEnabled(otInstance *aInstance)
bool
Verifica se o rádio está ativado ou não.
otPlatRadioReceive(otInstance *aInstance, uint8_t aChannel)
Faça a transição do rádio de Sono para Receber (ligue o rádio).
otPlatRadioReceiveAt(otInstance *aInstance, uint8_t aChannel, uint32_t aStart, uint32_t aDuration)
Programe uma janela de recepção de rádio em um horário e uma duração específicos.
otPlatRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
O driver de rádio chama esse método para notificar o OpenThread de um frame recebido.
otPlatRadioSetChannelMaxTransmitPower(otInstance *aInstance, uint8_t aChannel, int8_t aMaxPower)
Define a potência máxima de transmissão para um canal específico.
otPlatRadioSetChannelTargetPower(otInstance *aInstance, uint8_t aChannel, int16_t aTargetPower)
Define a potência desejada para o canal especificado.
otPlatRadioSetCoexEnabled(otInstance *aInstance, bool aEnabled)
Ative o coex de rádio.
otPlatRadioSetRegion(otInstance *aInstance, uint16_t aRegionCode)
Defina o código da região.
otPlatRadioSleep(otInstance *aInstance)
Mude o rádio de Receber para Em suspensão (desligue o rádio).
otPlatRadioTransmit(otInstance *aInstance, otRadioFrame *aFrame)
Inicia a sequência de transmissão no rádio.
otPlatRadioTxDone(otInstance *aInstance, otRadioFrame *aFrame, otRadioFrame *aAckFrame, otError aError)
void
O driver de rádio chama essa função para notificar o OpenThread de que a operação de transmissão foi concluída, fornecendo o frame transmitido e, se aplicável, o frame de confirmação recebido.
otPlatRadioTxStarted(otInstance *aInstance, otRadioFrame *aFrame)
void
O driver de rádio chama esse método para notificar o OpenThread de que a transmissão foi iniciada.
otPlatRadioUpdateCslSampleTime(otInstance *aInstance, uint32_t aCslSampleTime)
void
O tempo de amostragem da CSL foi atualizado no driver de rádio.

Funções

otPlatDiagRadioReceiveDone

void otPlatDiagRadioReceiveDone(
  otInstance *aInstance,
  otRadioFrame *aFrame,
  otError aError
)

O driver de rádio chama esse método para notificar o módulo de diagnóstico do OpenThread de um frame recebido.

É usada quando os diagnósticos estão ativados.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aFrame
Um ponteiro para o frame recebido ou NULL se a operação de recebimento falhar.
[in] aError
OT_ERROR_NONE quando um frame foi recebido, OT_ERROR_ABORT quando a recepção foi cancelada e um frame não foi recebido, OT_ERROR_NO_BUFS quando um frame não foi recebido devido à falta de espaço no buffer de rx.

otPlatDiagRadioTransmitDone

void otPlatDiagRadioTransmitDone(
  otInstance *aInstance,
  otRadioFrame *aFrame,
  otError aError
)

O driver de rádio chama esse método para notificar o módulo de diagnóstico do OpenThread de que a transmissão foi concluída.

É usada quando os diagnósticos estão ativados.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aFrame
Um ponteiro para o frame que foi transmitido.
[in] aError
OT_ERROR_NONE quando o frame foi transmitido, OT_ERROR_CHANNEL_ACCESS_FAILURE tx não pôde ocorrer devido à atividade no canal, OT_ERROR_ABORT quando a transmissão foi cancelada por outros motivos.

otPlatRadioAddCalibratedPower

otError otPlatRadioAddCalibratedPower(
  otInstance *aInstance,
  uint8_t aChannel,
  int16_t aActualPower,
  const uint8_t *aRawPowerSetting,
  uint16_t aRawPowerSettingLength
)

Adiciona uma potência calibrada do canal especificado à tabela de calibração de energia.

O aActualPower é a potência de saída medida quando os parâmetros dos módulos do hardware de rádio estão definidos como aRawPowerSetting.

A configuração de potência bruta é uma matriz de bytes opaca. O OpenThread não define o formato da configuração de energia bruta. O formato está relacionado ao hardware de rádio e deve ser definido pelos desenvolvedores no driver de rádio da plataforma. Por exemplo, se o hardware de rádio tiver o chip de rádio e o chip FEM, a configuração de energia bruta pode ser uma combinação do registro de energia de rádio e do valor de ganho de FEM.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aChannel
O canal de rádio.
[in] aActualPower
A potência real em 0,01 dBm.
[in] aRawPowerSetting
Um ponteiro para a matriz de bytes da configuração de energia bruta.
[in] aRawPowerSettingLength
O comprimento da aRawPowerSetting.
Valores de retorno
OT_ERROR_NONE
A potência calibrada foi adicionada à tabela de calibração.
OT_ERROR_NO_BUFS
Nenhuma entrada disponível na tabela de calibração de energia.
OT_ERROR_INVALID_ARGS
aChannel, aActualPower ou aRawPowerSetting é inválido ou o aActualPower já existe na tabela de calibração de energia.
OT_ERROR_NOT_IMPLEMENTED
Este recurso não está implementado.

otPlatRadioAddSrcMatchExtEntry

otError otPlatRadioAddSrcMatchExtEntry(
  otInstance *aInstance,
  const otExtAddress *aExtAddress
)

Adicione um endereço estendido à tabela de correspondências de endereço de origem.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aExtAddress
O endereço estendido a ser adicionado, armazenado na ordem de bytes Little-endian.
Valores de retorno
OT_ERROR_NONE
O endereço estendido foi adicionado à tabela de correspondências de origem.
OT_ERROR_NO_BUFS
Nenhuma entrada disponível na tabela de correspondências de origem.

otPlatRadioAddSrcMatchShortEntry

otError otPlatRadioAddSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Adicionar um endereço curto à tabela de correspondências de endereço de origem.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aShortAddress
O endereço curto a ser adicionado.
Valores de retorno
OT_ERROR_NONE
O endereço curto foi adicionado à tabela de correspondências de origem.
OT_ERROR_NO_BUFS
Nenhuma entrada disponível na tabela de correspondências de origem.

otPlatRadioClearCalibratedPowers

otError otPlatRadioClearCalibratedPowers(
  otInstance *aInstance
)

Limpe todas as potências calibradas da tabela de calibração.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
Valores de retorno
OT_ERROR_NONE
Todas as potências calibradas foram removidas da tabela de calibração de energia.
OT_ERROR_NOT_IMPLEMENTED
Este recurso não está implementado.

otPlatRadioClearSrcMatchExtEntries

void otPlatRadioClearSrcMatchExtEntries(
  otInstance *aInstance
)

Limpe todos os endereços estendidos/longos da tabela de correspondências de endereço de origem.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.

otPlatRadioClearSrcMatchExtEntry

otError otPlatRadioClearSrcMatchExtEntry(
  otInstance *aInstance,
  const otExtAddress *aExtAddress
)

Remova um endereço estendido da tabela de correspondências de endereço de origem.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aExtAddress
O endereço estendido a ser removido armazenado na ordem de bytes Little-endian.
Valores de retorno
OT_ERROR_NONE
O endereço estendido foi removido da tabela de correspondências de origem.
OT_ERROR_NO_ADDRESS
O endereço estendido não está na tabela de correspondências de endereço de origem.

otPlatRadioClearSrcMatchShortEntries

void otPlatRadioClearSrcMatchShortEntries(
  otInstance *aInstance
)

Limpa todos os endereços curtos da tabela de correspondências de endereço de origem.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.

otPlatRadioClearSrcMatchShortEntry

otError otPlatRadioClearSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Remover um endereço curto da tabela de correspondências de endereço de origem.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aShortAddress
O endereço curto a ser removido.
Valores de retorno
OT_ERROR_NONE
O endereço curto foi removido da tabela de correspondências de origem.
OT_ERROR_NO_ADDRESS
O endereço curto não está na tabela de correspondências de endereço de origem.

otPlatRadioConfigureEnhAckProbing

otError otPlatRadioConfigureEnhAckProbing(
  otInstance *aInstance,
  otLinkMetrics aLinkMetrics,
  otShortAddress aShortAddress,
  const otExtAddress *aExtAddress
)

Ativar/desativar ou atualizar sondagem baseada em ACK Enhanced no rádio para um iniciador específico.

Depois que a sondagem com base em ACK for configurada por um iniciador de sondagem específico, a ACK otimizada enviada a esse nó deve incluir o IE específico de fornecedor contendo dados de métricas de link. Esse método informa ao rádio para iniciar/parar para coletar dados de métricas de link e incluir o IE específico do fornecedor que contém os dados no Enhanced-ACK enviado para esse iniciador de sondagem.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aLinkMetrics
Este parâmetro especifica quais métricas devem ser consultadas. De acordo com a especificação 4.11.3.4.4.6, no máximo duas métricas podem ser especificadas. A sondagem será desativada se aLinkMetrics for 0 bit a bit.
[in] aShortAddress
O endereço curto do Iniciador de sondagem.
[in] aExtAddress
O endereço de origem estendido do Iniciador de sondagem. aExtAddr NÃO PODE ser NULL.
Valores de retorno
OT_ERROR_NONE
A sondagem baseada em ACK foi configurada com sucesso.
OT_ERROR_INVALID_ARGS
aExtAddress é NULL.
OT_ERROR_NOT_FOUND
O iniciador indicado por aShortAddress não foi encontrado ao tentar limpar.
OT_ERROR_NO_BUFS
Não há mais suporte para Iniciadores.
OT_ERROR_NOT_IMPLEMENTED
O recurso não está implementado.

otPlatRadioDesativar

otError otPlatRadioDisable(
  otInstance *aInstance
)

Desative o rádio.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
Valores de retorno
OT_ERROR_NONE
Transição concluída para "Desativado".
OT_ERROR_INVALID_STATE
O rádio não estava em modo de espera.

otPlatRadioEnable

otError otPlatRadioEnable(
  otInstance *aInstance
)

Ative o rádio.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
Valores de retorno
OT_ERROR_NONE
Ativado.
OT_ERROR_FAILED
Não foi possível ativar o rádio.

otPlatRadioEnableCsl

otError otPlatRadioEnableCsl(
  otInstance *aInstance,
  uint32_t aCslPeriod,
  otShortAddress aShortAddr,
  const otExtAddress *aExtAddr
)

Ativa ou desativa o receptor da CSL.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aCslPeriod
Período da CSL, 0 para desativar a CSL. O ponto da CSL tem uma unidade de 10 símbolos.
[in] aShortAddr
O endereço de origem curto do peering do receptor da CSL.
[in] aExtAddr
O endereço de origem estendido do peering do receptor da CSL.
Valores de retorno
kErrorNotImplemented
O driver de rádio não é compatível com a CSL.
kErrorFailed
Outros erros específicos da plataforma.
kErrorNone
A CSL foi ativada ou desativada.

otPlatRadioEnableSrcMatch

void otPlatRadioEnableSrcMatch(
  otInstance *aInstance,
  bool aEnable
)

Ativar/desativar o recurso de correspondência de endereço de origem.

O recurso de correspondência de endereço de origem controla como a camada de rádio decide o bit "frame pendente" para acks enviados em resposta a comandos de solicitação de dados de filhos.

Se desativado, a camada de rádio precisa definir o "frame pendente" em todas as confirmações para comandos de solicitação de dados.

Se ativado, a camada de rádio usa a tabela de correspondências de endereço de origem para determinar se deve definir ou limpar o bit "frame pendente" em uma confirmação para um comando de solicitação de dados.

A tabela de correspondências de endereço de origem fornece a lista de filhos para os quais há um frame pendente. Um endereço curto ou um endereço estendido/longo pode ser adicionado à tabela de correspondências de endereços de origem.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aEnable
Ativar/desativar o recurso de correspondência de endereço de origem.

otPlatRadioEnergyScan

otError otPlatRadioEnergyScan(
  otInstance *aInstance,
  uint8_t aScanChannel,
  uint16_t aScanDuration
)

Inicia a sequência de verificação de energia no rádio.

É usado quando o rádio fornece o recurso OT_RADIO_CAPS_ENERGY_SCAN.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aScanChannel
O canal em que a verificação de energia será realizada.
[in] aScanDuration
A duração, em milissegundos, do canal a ser verificado.
Valores de retorno
OT_ERROR_NONE
A busca do canal foi iniciada.
OT_ERROR_BUSY
O rádio está fazendo a verificação de energia.
OT_ERROR_NOT_IMPLEMENTED
O rádio não é compatível com a busca de energia.

otPlatRadioEnergyScanDone

void otPlatRadioEnergyScanDone(
  otInstance *aInstance,
  int8_t aEnergyScanMaxRssi
)

O driver de rádio chama esse método para notificar o OpenThread de que a verificação de energia foi concluída.

É usado quando o rádio fornece o recurso OT_RADIO_CAPS_ENERGY_SCAN.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aEnergyScanMaxRssi
O RSSI máximo encontrado no canal verificado.

otPlatRadioGetCoexMetrics

otError otPlatRadioGetCoexMetrics(
  otInstance *aInstance,
  otRadioCoexMetrics *aCoexMetrics
)

Acessar as métricas de coexistência de rádio.

É usado quando o recurso OPENOUTPUT_CONFIG_PLATFORM_RADIO_COEX_ENABLE está ativado.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[out] aCoexMetrics
Um indicador para a estrutura de métricas de coexistência.
Valores de retorno
OT_ERROR_NONE
As métricas de coex foram recuperadas.
OT_ERROR_INVALID_ARGS
aCoexMetrics era NULL.

otPlatRadioGetCslAccuracy

uint8_t otPlatRadioGetCslAccuracy(
  otInstance *aInstance
)

Saber a precisão atual estimada do pior caso (desvio máximo ± da frequência nominal) do relógio de rádio local em unidades de PPM.

Este é o relógio usado para programar operações da CSL.

Caso a implementação não estime o valor atual, mas retorne um valor fixo, esse valor PRECISA ter a menor precisão em todas as condições operacionais previstas (temperatura, pressão etc.) da implementação.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
Retorna
O deslocamento de programação rx/tx atual da CSL, no PPM.

otPlatRadioGetCslIndefinição

uint8_t otPlatRadioGetCslUncertainty(
  otInstance *aInstance
)

A incerteza fixa (ou seja,

instabilidade aleatória) do horário de chegada das transmissões de CSL recebidas por este dispositivo em unidades de 10 microssegundos.

Isso designa o pior desvio constante positivo ou negativo do pior caso do horário de chegada real de uma transmissão a partir do tempo de transmissão calculado em relação ao relógio de rádio local, independentemente do tempo decorrido. Além da incerteza acumulada ao longo do tempo decorrido, a amostra do canal da CSL ("janela RX") precisa ser estendida em duas vezes esse desvio. Assim, é garantido que uma transmissão real seja detectada pelo receptor local na presença de instabilidade aleatória no tempo de chegada.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
Retorna
A indefinição da CSL em unidades de 10 nós.

otPlatRadioGetPreferredChannelMask

uint32_t otPlatRadioGetPreferredChannelMask(
  otInstance *aInstance
)

Recebe a máscara de canal preferencial de rádio que o dispositivo prefere usar.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
Retorna
A máscara de canal preferencial de rádio.

otPlatRadioGetRawPowerSetting

otError otPlatRadioGetRawPowerSetting(
  otInstance *aInstance,
  uint8_t aChannel,
  uint8_t *aRawPowerSetting,
  uint16_t *aRawPowerSettingLength
)

Acessa a configuração de energia bruta do canal especificado.

A camada de rádio da plataforma precisa analisar a configuração de energia bruta com base no formato definido da camada de rádio e definir os parâmetros de cada módulo de hardware de rádio.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aChannel
O canal de rádio.
[out] aRawPowerSetting
Um ponteiro para a matriz de bytes da configuração de energia bruta.
[in,out] aRawPowerSettingLength
Na entrada, um ponteiro para o tamanho de aRawPowerSetting. Na saída, um indicador para o comprimento dos dados brutos de configuração de energia.
Valores de retorno
OT_ERROR_NONE
A potência desejada foi recebida.
OT_ERROR_INVALID_ARGS
O aChannel é inválido, aRawPowerSetting ou aRawPowerSettingLength é NULL ou é muito curto.
OT_ERROR_NOT_FOUND
A configuração de energia bruta para o aChannel não foi encontrada.

otPlatRadioGetRegion

otError otPlatRadioGetRegion(
  otInstance *aInstance,
  uint16_t *aRegionCode
)

Acesse o código da região.

O formato da região de rádio é a representação ascii de 2 bytes do código ISO 3166 alfa-2.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[out] aRegionCode
A região do rádio.
Valores de retorno
OT_ERROR_INVALID_ARGS
aRegionCode é nullptr.
OT_ERROR_FAILED
Outros erros específicos da plataforma.
OT_ERROR_NONE
O código da região foi recebido.
OT_ERROR_NOT_IMPLEMENTED
O recurso não está implementado.

otPlatRadioGetRssi

int8_t otPlatRadioGetRssi(
  otInstance *aInstance
)

Confira a medição de RSSI mais recente.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
Retorna
O RSSI em dBm quando for válido. 127 quando o RSSI é inválido.

otPlatRadioGetState

otRadioState otPlatRadioGetState(
  otInstance *aInstance
)

Acessar o estado atual do rádio.

Não é exigido pelo OpenThread. Ela pode ser usada para depuração e/ou fins específicos do aplicativo.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
Retorna
Estado atual do rádio.

otPlatRadioGetSupportedChannelMask

uint32_t otPlatRadioGetSupportedChannelMask(
  otInstance *aInstance
)

Acessa a máscara de canal de rádio com suporte em que o dispositivo tem permissão para estar.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
Retorna
A máscara de canal de rádio compatível.

otPlatRadioGetTransmitBuffer

otRadioFrame * otPlatRadioGetTransmitBuffer(
  otInstance *aInstance
)

Acessa o buffer de frame de transmissão de rádio.

O OpenThread forma o frame IEEE 802.15.4 nesse buffer e chama otPlatRadioTransmit() para solicitar a transmissão.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
Retorna
Um ponteiro para o buffer do frame de transmissão.

otPlatRadioIsCoexEnabled

bool otPlatRadioIsCoexEnabled(
  otInstance *aInstance
)

Confira se o coex de rádio está ativado ou não.

É usado quando o recurso OPENOUTPUT_CONFIG_PLATFORM_RADIO_COEX_ENABLE está ativado.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
Retorna
TRUE se o coex de rádio estiver ativado; caso contrário, será FALSE.

otPlatRadioIsEnabled

bool otPlatRadioIsEnabled(
  otInstance *aInstance
)

Verifica se o rádio está ativado ou não.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
Retorna
TRUE se o rádio estiver ativado; caso contrário, FALSE.

otPlatRadioReceive

otError otPlatRadioReceive(
  otInstance *aInstance,
  uint8_t aChannel
)

Faça a transição do rádio de Sono para Receber (ligue o rádio).

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aChannel
O canal a ser usado para receber.
Valores de retorno
OT_ERROR_NONE
Transferido para recebimento.
OT_ERROR_INVALID_STATE
O rádio estava desativado ou em transmissão.

otPlatRadioReceiveAt

otError otPlatRadioReceiveAt(
  otInstance *aInstance,
  uint8_t aChannel,
  uint32_t aStart,
  uint32_t aDuration
)

Programe uma janela de recepção de rádio em um horário e uma duração específicos.

Detalhes
Parâmetros
[in] aChannel
O canal de rádio no qual receber.
[in] aStart
O horário de início da janela de recebimento em relação ao relógio de rádio local. Consulte otPlatRadioGetNow. O receptor de rádio DEVE estar ligado e pronto para receber o primeiro símbolo do SHR de um frame no horário de início da janela.
[in] aDuration
Duração da janela de recebimento, em microssegundos, conforme medida pelo relógio de rádio local. O rádio DEVE ser desligado (ou alternado para o modo TX se for necessário enviar um frame ACK) depois desse período, a menos que ainda esteja recebendo ativamente um frame. No último caso, o rádio DEVE manter-se no modo de recepção até que a recepção do frame seja bem-sucedida ou falhe.
Valores de retorno
OT_ERROR_NONE
Janela de recebimento programada.
OT_ERROR_FAILED
Não foi possível programar a janela de recebimento.

otPlatRadioReceiveDone

void otPlatRadioReceiveDone(
  otInstance *aInstance,
  otRadioFrame *aFrame,
  otError aError
)

O driver de rádio chama esse método para notificar o OpenThread de um frame recebido.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aFrame
Um ponteiro para o frame recebido ou NULL se a operação de recebimento falhar.
[in] aError
OT_ERROR_NONE quando um frame foi recebido, OT_ERROR_ABORT quando a recepção foi cancelada e um frame não foi recebido, OT_ERROR_NO_BUFS quando um frame não foi recebido devido à falta de espaço no buffer de rx.

otPlatRadioSetChannelMaxTransmitPower

otError otPlatRadioSetChannelMaxTransmitPower(
  otInstance *aInstance,
  uint8_t aChannel,
  int8_t aMaxPower
)

Define a potência máxima de transmissão para um canal específico.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aChannel
O canal de rádio.
[in] aMaxPower
A potência máxima em dBm, ao transmitir OT_RADIO_RSSI_INVALID, desativará este canal.
Valores de retorno
OT_ERROR_NOT_IMPLEMENTED
O recurso não está implementado
OT_ERROR_INVALID_ARGS
O canal especificado não é válido.
OT_ERROR_FAILED
Outros erros específicos da plataforma.
OT_ERROR_NONE
Potência máxima de transmissão definida.

otPlatRadioSetChannelTargetPower

otError otPlatRadioSetChannelTargetPower(
  otInstance *aInstance,
  uint8_t aChannel,
  int16_t aTargetPower
)

Define a potência desejada para o canal especificado.

O driver de rádio precisa definir a potência de saída real para ser menor ou igual à potência de destino e o mais próximo possível da potência de destino.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aChannel
O canal de rádio.
[in] aTargetPower
Potência desejada em 0,01 dBm. Transmitir INT16_MAX desativa o canal para usar a potência desejada.
Valores de retorno
OT_ERROR_NONE
A potência de destino foi definida.
OT_ERROR_INVALID_ARGS
aChannel ou aTargetPower é inválido.
OT_ERROR_NOT_IMPLEMENTED
O recurso não está implementado.

otPlatRadioSetCoexEnabled

otError otPlatRadioSetCoexEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Ative o coex de rádio.

É usado quando o recurso OPENOUTPUT_CONFIG_PLATFORM_RADIO_COEX_ENABLE está ativado.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aEnabled
TRUE para ativar o coex de rádio; caso contrário, FALSE.
Valores de retorno
OT_ERROR_NONE
Ativado.
OT_ERROR_FAILED
Não foi possível ativar o coex de rádio.

otPlatRadioSetRegion

otError otPlatRadioSetRegion(
  otInstance *aInstance,
  uint16_t aRegionCode
)

Defina o código da região.

O formato da região de rádio é a representação ascii de 2 bytes do código ISO 3166 alfa-2.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aRegionCode
A região do rádio.
Valores de retorno
OT_ERROR_FAILED
Outros erros específicos da plataforma.
OT_ERROR_NONE
O código de região foi definido.
OT_ERROR_NOT_IMPLEMENTED
O recurso não está implementado.

OtPlatRadioSleep

otError otPlatRadioSleep(
  otInstance *aInstance
)

Mude o rádio de Receber para Em suspensão (desligue o rádio).

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
Valores de retorno
OT_ERROR_NONE
Transferido para o modo de suspensão.
OT_ERROR_BUSY
O rádio estava transmitindo.
OT_ERROR_INVALID_STATE
O rádio foi desativado.

otPlatRadioTransmit

otError otPlatRadioTransmit(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

Inicia a sequência de transmissão no rádio.

O autor da chamada precisa formar o frame IEEE 802.15.4 no buffer fornecido por otPlatRadioGetTransmitBuffer() antes de solicitar a transmissão. O canal e a potência de transmissão também são incluídos na estrutura otRadioFrame.

A sequência de transmissão consiste em:

  1. Transição do rádio para transmissão de um dos seguintes estados:
    • Receber se o RX estiver ativado quando o dispositivo estiver inativo ou se OT_RADIO_CAPS_SLEEP_TO_TX não for compatível
    • Suspende se o RX estiver desativado quando o dispositivo estiver ocioso e o OT_RADIO_CAPS_SLEEP_TO_TX for compatível.
  2. Transmite o psdu no canal especificado e com a potência de transmissão fornecida.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aFrame
Um ponteiro para o frame a ser transmitido.
Valores de retorno
OT_ERROR_NONE
Transição concluída para transmissão.
OT_ERROR_INVALID_STATE
O rádio não estava no estado de recebimento.

otPlatRadioTxDone

void otPlatRadioTxDone(
  otInstance *aInstance,
  otRadioFrame *aFrame,
  otRadioFrame *aAckFrame,
  otError aError
)

O driver de rádio chama essa função para notificar o OpenThread de que a operação de transmissão foi concluída, fornecendo o frame transmitido e, se aplicável, o frame de confirmação recebido.

Quando o rádio fornece o recurso OT_RADIO_CAPS_TRANSMIT_SEC, a camada de plataforma de rádio atualiza aFrame com o contador de frames de segurança e os valores de índice de chave mantidos pelo rádio.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aFrame
Um ponteiro para o frame que foi transmitido.
[in] aAckFrame
Ponteiro para o frame ACK, NULL se nenhum ACK tiver sido recebido.
[in] aError
OT_ERROR_NONE quando o frame foi transmitido, OT_ERROR_NO_ACK quando o frame foi transmitido, mas nenhum ACK foi recebido, OT_ERROR_CHANNEL_ACCESS_FAILURE devido à atividade no canal, OT_ERROR_ABORT quando a transmissão foi cancelada por outros motivos.

otPlatRadioTxStarted

void otPlatRadioTxStarted(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

O driver de rádio chama esse método para notificar o OpenThread de que a transmissão foi iniciada.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para a estrutura da instância do OpenThread.
[in] aFrame
Um ponteiro para o frame que está sendo transmitido.

otPlatRadioUpdateCslSampleTime

void otPlatRadioUpdateCslSampleTime(
  otInstance *aInstance,
  uint32_t aCslSampleTime
)

O tempo de amostragem da CSL foi atualizado no driver de rádio.

O tempo de amostra é armazenado no driver de rádio como uma cópia para calcular a fase ao enviar ACK com o CSL IE A amostra (janela) da CSL do receptor da CSL se estende antes e depois do tempo de amostragem. O horário da amostra da CSL marca um carimbo de data/hora na janela de amostra da CSL em que um frame precisa ser recebido em "condições ideais" se não houver imprecisão ou deslocamento do relógio.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aCslSampleTime
A próxima hora de amostragem, em microssegundos. É o momento em que o primeiro símbolo do MHR do frame é esperado.

Recursos

Os tópicos de Referência da API OpenThread se originam no código-fonte, disponível no GitHub (link em inglês). Para mais informações ou para contribuir com nossa documentação, consulte Recursos.