Operação de rádio

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

Resumo

remotas

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 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)
Adicione 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
Limpe todos os endereços curtos da tabela de correspondências de endereço de origem.
otPlatRadioClearSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
Remova 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 otimizada 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 recurso de correspondência do endereço de origem.
otPlatRadioEnergyScan(otInstance *aInstance, uint8_t aScanChannel, uint16_t aScanDuration)
Inicie a sequência de busca 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)
Acessa as métricas de coexistência do rádio.
otPlatRadioGetCslAccuracy(otInstance *aInstance)
uint8_t
Encontrar a precisão atual estimada do pior caso (desvio máximo de ± da frequência nominal) do relógio de rádio local em unidades de PPM.
otPlatRadioGetCslUncertainty(otInstance *aInstance)
uint8_t
A incerteza fixa (por exemplo,
otPlatRadioGetPreferredChannelMask(otInstance *aInstance)
uint32_t
Recebe a máscara de canal preferencial do rádio que o dispositivo prefere formar.
otPlatRadioGetRawPowerSetting(otInstance *aInstance, uint8_t aChannel, uint8_t *aRawPowerSetting, uint16_t *aRawPowerSettingLength)
Mostra a configuração de energia bruta do canal especificado.
otPlatRadioGetRegion(otInstance *aInstance, uint16_t *aRegionCode)
Consiga o código da região.
otPlatRadioGetRssi(otInstance *aInstance)
int8_t
Confira a medição de RSSI mais recente.
otPlatRadioGetState(otInstance *aInstance)
Recebe o estado atual do rádio.
otPlatRadioGetSupportedChannelMask(otInstance *aInstance)
uint32_t
Conseguir a máscara de canal com suporte de rádio em que o dispositivo tem permissão de uso.
otPlatRadioGetTransmitBuffer(otInstance *aInstance)
Acessa o buffer do frame de transmissão de rádio.
otPlatRadioIsCoexEnabled(otInstance *aInstance)
bool
Confira se a coex de rádio está ativada ou não.
otPlatRadioIsEnabled(otInstance *aInstance)
bool
Verifique se o rádio está ativado ou não.
otPlatRadioReceive(otInstance *aInstance, uint8_t aChannel)
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 sobre 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 a codificação de rádio.
otPlatRadioSetRegion(otInstance *aInstance, uint16_t aRegionCode)
Defina o código da região.
otPlatRadioSleep(otInstance *aInstance)
Transição do rádio de Receber para 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 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
Atualize o horário de amostragem da CSL no driver do rádio.

remotas

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.

É usado quando o diagnóstico está ativado.

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 com sucesso, 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 pôde ser recebido devido à falta de espaço no buffer 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 que a transmissão foi concluída.

É usado quando o diagnóstico está ativado.

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, não foi possível realizar OT_ERROR_CHANNEL_ACCESS_ SIM tx 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 energia bruta é uma matriz de bytes opaca. O OpenThread não define o formato da configuração de energia bruta. O formato dela está relacionado ao hardware de rádio e deve ser definido pelos desenvolvedores no driver do rádio da plataforma. Por exemplo, se o hardware de rádio contiver o chip de rádio e o chip FEM, a configuração de energia bruta poderá ser uma combinação do registro de energia de rádio e do valor de ganho do 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 de energia.
OT_ERROR_NO_BUFS
Nenhuma entrada disponível na tabela de calibragem de energia.
OT_ERROR_INVALID_ARGS
aChannel, aActualPower ou aRawPowerSetting é inválido ou o aActualPower já existe na tabela de calibragem 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 few-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
)

Adicione 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 poderes 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 few-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
)

Limpe 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
)

Remova 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 do endereço de origem.

otPlatRadioConfigureEnhAckProbing

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

Ativar/desativar ou atualizar sondagem baseada em ACK otimizada 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 enviada a esse nó deve incluir o IE específico do 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 de fornecedor que contém os dados no Enhanced-ACK enviado para esse Initiator 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.
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 a iniciador.
OT_ERROR_NOT_IMPLEMENTED
O recurso não foi implementado.

otPlatRadioDisable

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 para "Desativada" com sucesso.
OT_ERROR_INVALID_STATE
O rádio não estava em modo de suspensão.

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 com sucesso.
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 desativação da CSL. O ponto do 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 recurso de correspondência do 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 confirmações enviadas em resposta a comandos de solicitação de dados de filhos.

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

Se ativada, a camada de rádio usa a tabela de correspondências de endereço de origem para determinar se é necessário 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. É possível adicionar um endereço curto ou um endereço estendido/longo à tabela de correspondências do endereço 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
)

Inicie a sequência de busca 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 buscado.
Valores de retorno
OT_ERROR_NONE
A busca do canal foi iniciada.
OT_ERROR_BUSY
O rádio está fazendo a leitura de energia.
OT_ERROR_NOT_IMPLEMENTED
O rádio não tem suporte à verificação 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
)

Acessa as métricas de coexistência do 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 das métricas de coexistência.
Valores de retorno
OT_ERROR_NONE
As métricas coex foram recuperadas.
OT_ERROR_INVALID_ARGS
aCoexMetrics estava NULL.

otPlatRadioGetCslAccuracy

uint8_t otPlatRadioGetCslAccuracy(
  otInstance *aInstance
)

Encontrar a precisão atual estimada do pior caso (desvio máximo de ± 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 faça uma estimativa do valor atual, mas retorne um valor fixo, esse valor PRECISA ser a pior precisão possível em todas as condições de operação previstas (temperatura, pressão etc.) da implementação.

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

otPlatRadioGetCslUncertainty

uint8_t otPlatRadioGetCslUncertainty(
  otInstance *aInstance
)

A incerteza fixa (por exemplo,

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

Isso designa o pior desvio positivo ou negativo constante do horário real de chegada de uma transmissão 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 CSL ("janela RX") precisa ser estendida em duas vezes esse desvio, de modo que uma transmissão real seja detectada pelo receptor local na presença de instabilidade do horário de chegada aleatória.

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

otPlatRadioGetPreferredChannelMask

uint32_t otPlatRadioGetPreferredChannelMask(
  otInstance *aInstance
)

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

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

otPlatRadioGetRawPowerSetting

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

Mostra 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 ponteiro para o comprimento dos dados brutos de configuração de energia.
Valores de retorno
OT_ERROR_NONE
Você recebeu o poder do alvo.
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 do aChannel não foi encontrada.

otPlatRadioGetRegion

otError otPlatRadioGetRegion(
  otInstance *aInstance,
  uint16_t *aRegionCode
)

Consiga o código da região.

O formato de região do 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 foi 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 é válido. 127 quando o RSSI é inválido.

otPlatRadioGetState

otRadioState otPlatRadioGetState(
  otInstance *aInstance
)

Recebe o estado atual do rádio.

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

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

otPlatRadioGetSupportedChannelMask

uint32_t otPlatRadioGetSupportedChannelMask(
  otInstance *aInstance
)

Conseguir a máscara de canal com suporte de rádio em que o dispositivo tem permissão de uso.

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

otPlatRadioGetTransmitBuffer

otRadioFrame * otPlatRadioGetTransmitBuffer(
  otInstance *aInstance
)

Acessa o buffer do 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 a coex de rádio está ativada 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 a coex de rádio estiver ativada; caso contrário, FALSE.

otPlatRadioIsEnabled

bool otPlatRadioIsEnabled(
  otInstance *aInstance
)

Verifique 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
)

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 em que 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 de SHR de um frame no horário de início da janela.
[in] aDuration
A duração da janela de recebimento, em microssegundos, medida pelo relógio de rádio local. O rádio DEVE ser desligado (ou alternado para o modo TX se um frame ACK precisar ser enviado) após esse 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
A janela de recebimento foi 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 sobre 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 com sucesso, 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 pôde ser recebido devido à falta de espaço no buffer 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, desativa este canal.
Valores de retorno
OT_ERROR_NOT_IMPLEMENTED
O recurso não foi 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 a mais próxima 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 energia de destino.
Valores de retorno
OT_ERROR_NONE
A potência de destino foi definida.
OT_ERROR_INVALID_ARGS
O aChannel ou o aTargetPower é inválido.
OT_ERROR_NOT_IMPLEMENTED
O recurso não foi implementado.

otPlatRadioSetCoexEnabled

otError otPlatRadioSetCoexEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Ative a codificação 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 a coex de rádio; caso contrário, FALSE.
Valores de retorno
OT_ERROR_NONE
Ativado com sucesso.
OT_ERROR_FAILED
A coex do rádio não pôde ser ativada.

otPlatRadioSetRegion

otError otPlatRadioSetRegion(
  otInstance *aInstance,
  uint16_t aRegionCode
)

Defina o código da região.

O formato de região do 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
O código da região do rádio. O aRegionCode >> 8 é o primeiro caractere ASCII e o aRegionCode & 0xff é o segundo.
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 foi implementado.

otPlatRadioSleep

otError otPlatRadioSleep(
  otInstance *aInstance
)

Transição do rádio de Receber para Suspensão (desligue 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 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 estã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 inativo e com suporte a OT_RADIO_CAPS_SLEEP_TO_TX.
  2. Transmite o psdu no canal e na potência de transmissão fornecidos.

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 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 oferece o recurso OT_RADIO_CAPS_TRANSMIT_SEC, a camada da 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
Um ponteiro para o frame ACK, NULL se nenhuma ACK tiver sido recebida.
[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_ Adicione tx a 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
)

Atualize o horário de amostragem da CSL no driver do rádio.

O horário da amostra é armazenado no driver de rádio como uma cópia para calcular a fase ao enviar ACK com o CSL IE. A amostra de CSL (janela) do receptor da CSL se estende antes e depois do tempo de amostragem. O horário de amostragem 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” caso não haja 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 se espera o primeiro símbolo do MHR do frame.

Recursos

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