Funzionamento della radio

Questo modulo include l'astrazione della piattaforma per le operazioni radio.

Riepilogo

Funzioni

otPlatDiagRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Il driver della radio chiama questo metodo per notificare al modulo di diagnostica OpenThread un frame ricevuto.
otPlatDiagRadioTransmitDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Il driver della radio chiama questo metodo per notificare il modulo di diagnostica OpenThread che la trasmissione è stata completata.
otPlatRadioAddCalibratedPower(otInstance *aInstance, uint8_t aChannel, int16_t aActualPower, const uint8_t *aRawPowerSetting, uint16_t aRawPowerSettingLength)
Aggiungi una potenza calibrata del canale specificato alla tabella di calibrazione dell'alimentazione.
otPlatRadioAddSrcMatchExtEntry(otInstance *aInstance, const otExtAddress *aExtAddress)
Aggiungi un indirizzo esteso alla tabella delle corrispondenze dell'indirizzo di origine.
otPlatRadioAddSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
Aggiungi un indirizzo breve alla tabella delle corrispondenze dell'indirizzo di origine.
otPlatRadioClearCalibratedPowers(otInstance *aInstance)
Cancella tutte le potenze calibrate dalla tabella di calibrazione dell'alimentazione.
otPlatRadioClearSrcMatchExtEntries(otInstance *aInstance)
void
Cancella tutti gli indirizzi estesi/lungi dalla tabella delle corrispondenze degli indirizzi di origine.
otPlatRadioClearSrcMatchExtEntry(otInstance *aInstance, const otExtAddress *aExtAddress)
Rimuovi un indirizzo esteso dalla tabella delle corrispondenze dell'indirizzo di origine.
otPlatRadioClearSrcMatchShortEntries(otInstance *aInstance)
void
Cancella tutti gli indirizzi brevi dalla tabella delle corrispondenze degli indirizzi di origine.
otPlatRadioClearSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
Rimuovi un indirizzo breve dalla tabella delle corrispondenze dell'indirizzo di origine.
otPlatRadioConfigureEnhAckProbing(otInstance *aInstance, otLinkMetrics aLinkMetrics, otShortAddress aShortAddress, const otExtAddress *aExtAddress)
Consente di attivare/disattivare o aggiornare il probe basato su ACK avanzato nella radio per un iniziatore specifico.
otPlatRadioDisable(otInstance *aInstance)
Disattiva la radio.
otPlatRadioEnable(otInstance *aInstance)
Attiva la radio.
otPlatRadioEnableCsl(otInstance *aInstance, uint32_t aCslPeriod, otShortAddress aShortAddr, const otExtAddress *aExtAddr)
Attiva o disattiva ricevitore CSL.
otPlatRadioEnableSrcMatch(otInstance *aInstance, bool aEnable)
void
Attiva/disattiva la funzionalità di corrispondenza dell'indirizzo di origine.
otPlatRadioEnergyScan(otInstance *aInstance, uint8_t aScanChannel, uint16_t aScanDuration)
Inizia la sequenza di scansione energetica alla radio.
otPlatRadioEnergyScanDone(otInstance *aInstance, int8_t aEnergyScanMaxRssi)
void
Il driver della radio chiama questo metodo per notificare a OpenThread il completamento della scansione energetica.
otPlatRadioGetCoexMetrics(otInstance *aInstance, otRadioCoexMetrics *aCoexMetrics)
Ottieni le metriche della coesistenza radio.
otPlatRadioGetCslAccuracy(otInstance *aInstance)
uint8_t
Ottieni l'accuratezza stimata corrente del caso peggiore (massima ± deviazione dalla frequenza nominale) dell'orologio radio locale in unità di PPM.
otPlatRadioGetCslUncertainty(otInstance *aInstance)
uint8_t
L'incertezza fissa (ovvero
otPlatRadioGetPreferredChannelMask(otInstance *aInstance)
uint32_t
Visualizza la maschera del canale preferito dalla radio su cui il dispositivo preferisce formare.
otPlatRadioGetRawPowerSetting(otInstance *aInstance, uint8_t aChannel, uint8_t *aRawPowerSetting, uint16_t *aRawPowerSettingLength)
Ottieni le impostazioni di alimentazione non elaborate per il canale in questione.
otPlatRadioGetRegion(otInstance *aInstance, uint16_t *aRegionCode)
Ottieni il codice regione.
otPlatRadioGetRssi(otInstance *aInstance)
int8_t
Ottieni la misurazione RSSI più recente.
otPlatRadioGetState(otInstance *aInstance)
Visualizza lo stato attuale della radio.
otPlatRadioGetSupportedChannelMask(otInstance *aInstance)
uint32_t
Ottieni la maschera del canale supportata dalle radio su cui il dispositivo può essere attivato.
otPlatRadioGetTransmitBuffer(otInstance *aInstance)
Ottieni il buffer di frame della trasmissione radio.
otPlatRadioIsCoexEnabled(otInstance *aInstance)
bool
Controlla se la connessione radio è attiva o meno.
otPlatRadioIsEnabled(otInstance *aInstance)
bool
Controlla se la radio è attiva o meno.
otPlatRadioReceive(otInstance *aInstance, uint8_t aChannel)
Passa dalla modalità Sonno alla ricezione (attiva la radio).
otPlatRadioReceiveAt(otInstance *aInstance, uint8_t aChannel, uint32_t aStart, uint32_t aDuration)
Pianifica una finestra di ricezione radio a un orario e a una durata specifici.
otPlatRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Il driver del segnale radio chiama questo metodo per notificare a OpenThread un frame ricevuto.
otPlatRadioSetChannelMaxTransmitPower(otInstance *aInstance, uint8_t aChannel, int8_t aMaxPower)
Imposta la potenza di trasmissione massima per un canale specifico.
otPlatRadioSetChannelTargetPower(otInstance *aInstance, uint8_t aChannel, int16_t aTargetPower)
Imposta la potenza target per il canale in questione.
otPlatRadioSetCoexEnabled(otInstance *aInstance, bool aEnabled)
Attiva il codice radio.
otPlatRadioSetRegion(otInstance *aInstance, uint16_t aRegionCode)
Imposta il codice regione.
otPlatRadioSleep(otInstance *aInstance)
Passa dalla ricezione alla modalità di sospensione (disattiva la radio).
otPlatRadioTransmit(otInstance *aInstance, otRadioFrame *aFrame)
Avvia la sequenza di trasmissione alla radio.
otPlatRadioTxDone(otInstance *aInstance, otRadioFrame *aFrame, otRadioFrame *aAckFrame, otError aError)
void
Il driver radio chiama questa funzione per notificare OpenThread che l'operazione di trasmissione è stata completata, fornendo sia il frame trasmesso che, se applicabile, il frame di conferma ricevuto.
otPlatRadioTxStarted(otInstance *aInstance, otRadioFrame *aFrame)
void
Il driver radio chiama questo metodo per notificare a OpenThread che la trasmissione è iniziata.
otPlatRadioUpdateCslSampleTime(otInstance *aInstance, uint32_t aCslSampleTime)
void
Aggiorna ora di campionamento CSL nel driver radio.

Funzioni

otPlatDiagRadioReceiveDone

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

Il driver della radio chiama questo metodo per notificare al modulo di diagnostica OpenThread un frame ricevuto.

Viene utilizzato quando è attiva la diagnostica.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aFrame
Un puntatore al frame ricevuto o NULL se l'operazione di ricezione non è riuscita.
[in] aError
OT_ERROR_NONE quando ha ricevuto correttamente un frame, OT_ERROR_ABORT quando la ricezione è stata interrotta e non è stato ricevuto un frame, OT_ERROR_NO_BUFS quando non è stato possibile ricevere un frame a causa della mancanza di spazio nel buffer rx.

otPlatDiagRadioTransmitDone

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

Il driver della radio chiama questo metodo per notificare il modulo di diagnostica OpenThread che la trasmissione è stata completata.

Viene utilizzato quando è attiva la diagnostica.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aFrame
Un puntatore al frame trasmesso.
[in] aError
OT_ERROR_NONE quando il frame è stato trasmesso, OT_ERROR_CHANNEL_ACCESS_FAILURE tx non eseguito a causa di attività sul canale, OT_ERROR_ABORT quando la trasmissione è stata interrotta per altri motivi.

otPlatRadioAddCalibratedPower

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

Aggiungi una potenza calibrata del canale specificato alla tabella di calibrazione dell'alimentazione.

aActualPower indica la potenza di uscita effettivamente misurata quando i parametri dei moduli hardware radio sono impostati su aRawPowerSetting.

L'impostazione di potenza non elaborata è un array di byte opachi. OpenThread non definisce il formato dell'impostazione di alimentazione non elaborata. Il suo formato riguarda l'hardware radio e deve essere definito dagli sviluppatori nel driver radio della piattaforma. Ad esempio, se l'hardware della radio contiene sia il chip di radio che il chip FEM, l'impostazione di potenza non elaborata può essere una combinazione del registro della potenza della radio e del valore di guadagno FEM.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aChannel
Il canale radio.
[in] aActualPower
La potenza effettiva in 0,01 dBm.
[in] aRawPowerSetting
Un puntatore all'array di byte di impostazione potenza non elaborata.
[in] aRawPowerSettingLength
La lunghezza del aRawPowerSetting.
Valori restituiti
OT_ERROR_NONE
L'alimentazione calibrata è stata aggiunta alla tabella di calibrazione dell'alimentazione.
OT_ERROR_NO_BUFS
Nessuna voce disponibile nella tabella di calibrazione dell'alimentazione.
OT_ERROR_INVALID_ARGS
aChannel, aActualPower o aRawPowerSetting non sono validi oppure aActualPower esiste già nella tabella di calibrazione dell'alimentazione.
OT_ERROR_NOT_IMPLEMENTED
Questa funzionalità non è implementata.

otPlatRadioAddSrcMatchExtEntry

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

Aggiungi un indirizzo esteso alla tabella delle corrispondenze dell'indirizzo di origine.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aExtAddress
L'indirizzo esteso da aggiungere archiviato in ordine di byte small-endian.
Valori restituiti
OT_ERROR_NONE
L'indirizzo esteso è stato aggiunto alla tabella delle corrispondenze di origine.
OT_ERROR_NO_BUFS
Nessuna voce disponibile nella tabella delle corrispondenze di origine.

otPlatRadioAddSrcMatchShortEntry

otError otPlatRadioAddSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Aggiungi un indirizzo breve alla tabella delle corrispondenze dell'indirizzo di origine.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aShortAddress
L'indirizzo breve da aggiungere.
Valori restituiti
OT_ERROR_NONE
Indirizzo breve aggiunto alla tabella delle corrispondenze di origine.
OT_ERROR_NO_BUFS
Nessuna voce disponibile nella tabella delle corrispondenze di origine.

otPlatRadioClearCalibratedPowers

otError otPlatRadioClearCalibratedPowers(
  otInstance *aInstance
)

Cancella tutte le potenze calibrate dalla tabella di calibrazione dell'alimentazione.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Valori restituiti
OT_ERROR_NONE
Sono state eliminate tutte le potenze calibrate dalla tabella di calibrazione dell'alimentazione.
OT_ERROR_NOT_IMPLEMENTED
Questa funzionalità non è implementata.

otPlatRadioClearSrcMatchExtEntries

void otPlatRadioClearSrcMatchExtEntries(
  otInstance *aInstance
)

Cancella tutti gli indirizzi estesi/lungi dalla tabella delle corrispondenze degli indirizzi di origine.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.

otPlatRadioClearSrcMatchExtEntry

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

Rimuovi un indirizzo esteso dalla tabella delle corrispondenze dell'indirizzo di origine.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aExtAddress
L'indirizzo esteso da rimuovere archiviato in ordine di byte small-endian.
Valori restituiti
OT_ERROR_NONE
L'indirizzo esteso dalla tabella delle corrispondenze di origine è stato rimosso correttamente.
OT_ERROR_NO_ADDRESS
L'indirizzo esteso non è presente nella tabella delle corrispondenze dell'indirizzo di origine.

otPlatRadioClearSrcMatchShortEntries

void otPlatRadioClearSrcMatchShortEntries(
  otInstance *aInstance
)

Cancella tutti gli indirizzi brevi dalla tabella delle corrispondenze degli indirizzi di origine.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.

otPlatRadioClearSrcMatchShortEntry

otError otPlatRadioClearSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Rimuovi un indirizzo breve dalla tabella delle corrispondenze dell'indirizzo di origine.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aShortAddress
L'indirizzo breve da rimuovere.
Valori restituiti
OT_ERROR_NONE
L'indirizzo breve è stato rimosso dalla tabella delle corrispondenze di origine.
OT_ERROR_NO_ADDRESS
L'indirizzo breve non è presente nella tabella delle corrispondenze dell'indirizzo di origine.

otPlatRadioConfigureEnhAckProbing

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

Consente di attivare/disattivare o aggiornare il probe basato su ACK avanzato nella radio per un iniziatore specifico.

Dopo che il probe basato su ACK avanzato è stato configurato da uno specifico iniziatore di probe, l'ACK avanzato inviato a quel nodo deve includere l'IE specifico del fornitore contenente i dati delle metriche di collegamento. Questo metodo indica al segnale radio di avviare/interrompere la raccolta dei dati delle metriche sui link e includere l'IE specifico del fornitore contenente i dati nell'Advanced-ACK inviati a quell'iniziatore del probe.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aLinkMetrics
Questo parametro specifica le metriche su cui eseguire la query. Secondo la specifica 4.11.3.4.4.6, è possibile specificare al massimo 2 metriche. Il probe verrebbe disabilitato se aLinkMetrics a livello di bit è 0.
[in] aShortAddress
L'indirizzo breve dell'iniziatore del probe.
[in] aExtAddress
L'indirizzo di origine esteso dell'iniziatore del probe. aExtAddr NON DEVE essere NULL.
Valori restituiti
OT_ERROR_NONE
Il probe basato su ACK avanzato è configurato correttamente.
OT_ERROR_INVALID_ARGS
aExtAddress è NULL.
OT_ERROR_NOT_FOUND
Impossibile trovare l'iniziatore indicato da aShortAddress durante il tentativo di cancellazione.
OT_ERROR_NO_BUFS
Non è più possibile supportare Initiator.
OT_ERROR_NOT_IMPLEMENTED
La funzionalità non è implementata.

otPlatRadioDisable

otError otPlatRadioDisable(
  otInstance *aInstance
)

Disattiva la radio.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Valori restituiti
OT_ERROR_NONE
Transizione eseguita correttamente.
OT_ERROR_INVALID_STATE
La radio non era in stato di sospensione.

otPlatRadioEnable

otError otPlatRadioEnable(
  otInstance *aInstance
)

Attiva la radio.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Valori restituiti
OT_ERROR_NONE
Attivazione eseguita correttamente.
OT_ERROR_FAILED
Impossibile attivare la radio.

otPlatRadioEnableCsl

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

Attiva o disattiva ricevitore CSL.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aCslPeriod
Periodo CSL, 0 per disabilitare CSL. Il punto CSL è unità di 10 simboli.
[in] aShortAddr
L'indirizzo di origine breve del peer del destinatario CSL.
[in] aExtAddr
L'indirizzo di origine esteso del peer del destinatario CSL.
Valori restituiti
kErrorNotImplemented
Il driver della radio non supporta la crittografia lato client.
kErrorFailed
Altri errori specifici della piattaforma.
kErrorNone
CSL attivata o disattivata correttamente.

otPlatRadioEnableSrcMatch

void otPlatRadioEnableSrcMatch(
  otInstance *aInstance,
  bool aEnable
)

Attiva/disattiva la funzionalità di corrispondenza dell'indirizzo di origine.

La funzionalità di corrispondenza dell'indirizzo di origine controlla in che modo il livello radio decide il bit "frame pending" per gli ACK inviati in risposta ai comandi di richiesta dati dei bambini.

Se disattivato, il livello radio deve impostare il "frame pending" su tutti gli ACK ai comandi di richiesta dati.

Se abilitato, il livello radio utilizza la tabella delle corrispondenze degli indirizzi di origine per determinare se impostare o cancellare il bit "frame pending" in un ACK a un comando di richiesta dati.

La tabella delle corrispondenze degli indirizzi di origine fornisce l'elenco degli indirizzi secondari per i quali è presente un frame in attesa. È possibile aggiungere un indirizzo breve o un indirizzo esteso/lungo alla tabella delle corrispondenze dell'indirizzo di origine.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aEnable
Attiva/disattiva la funzionalità di corrispondenza dell'indirizzo di origine.

otPlatRadioEnergyScan

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

Inizia la sequenza di scansione energetica alla radio.

Viene utilizzato quando la radio fornisce la funzionalità OT_Radio_CAPS_ENERGY_SCAN.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aScanChannel
Il canale su cui eseguire la scansione energetica.
[in] aScanDuration
La durata in millisecondi della scansione del canale.
Valori restituiti
OT_ERROR_NONE
Ricerca del canale avviata.
OT_ERROR_BUSY
La radio sta eseguendo una scansione energetica.
OT_ERROR_NOT_IMPLEMENTED
La radio non supporta la scansione energetica.

otPlatRadioEnergyScanDone

void otPlatRadioEnergyScanDone(
  otInstance *aInstance,
  int8_t aEnergyScanMaxRssi
)

Il driver della radio chiama questo metodo per notificare a OpenThread il completamento della scansione energetica.

Viene utilizzato quando la radio fornisce la funzionalità OT_Radio_CAPS_ENERGY_SCAN.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aEnergyScanMaxRssi
Il numero massimo di RSSI rilevato sul canale sottoposto a scansione.

otPlatRadioGetCoexMetrics

otError otPlatRadioGetCoexMetrics(
  otInstance *aInstance,
  otRadioCoexMetrics *aCoexMetrics
)

Ottieni le metriche della coesistenza radio.

Viene utilizzato quando la funzionalità OPENTHREAD_CONFIG_PLATFORM_Radi_COEX_ENABLE è attiva.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[out] aCoexMetrics
Un puntatore alla struttura delle metriche di coesistenza.
Valori restituiti
OT_ERROR_NONE
Metriche coex recuperate correttamente.
OT_ERROR_INVALID_ARGS
aCoexMetrics era NULL.

otPlatRadioGetCslAccuracy

uint8_t otPlatRadioGetCslAccuracy(
  otInstance *aInstance
)

Ottieni l'accuratezza stimata corrente del caso peggiore (massima ± deviazione dalla frequenza nominale) dell'orologio radio locale in unità di PPM.

Questo è l'orologio utilizzato per pianificare le operazioni CSL.

Se l'implementazione non stima il valore attuale, ma restituisce un valore fisso, questo valore DEVE corrispondere alla precisione peggiore rispetto a tutte le possibili condizioni operative previste (temperatura, pressione, ecc.) dell'implementazione.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Restituisce
La deviazione della pianificazione rx/tx attuale del CSL, in PPM.

otPlatRadioGetCslUncertainty

uint8_t otPlatRadioGetCslUncertainty(
  otInstance *aInstance
)

L'incertezza fissa (ovvero

tremolio casuale) dell'ora di arrivo delle trasmissioni CSL ricevute da questo dispositivo in unità di 10 microsecondi.

Indica la deviazione positiva o negativa costante del caso peggiore dell'ora di arrivo effettiva di una trasmissione dal tempo di trasmissione calcolato rispetto all'orologio radio locale, indipendentemente dal tempo trascorso. Oltre all'incertezza accumulata nel tempo trascorso, il campione di canali CSL ("finestra RX") deve essere esteso di due volte questa deviazione, in modo che il ricevitore locale garantisca la trasmissione effettiva in presenza di un tremolio dell'ora di arrivo casuale.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Restituisce
L'incertezza CSL in unità di 10 us.

otPlatRadioGetPreferredChannelMask

uint32_t otPlatRadioGetPreferredChannelMask(
  otInstance *aInstance
)

Visualizza la maschera del canale preferito dalla radio su cui il dispositivo preferisce formare.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Restituisce
La maschera del canale preferito per la radio.

otPlatRadioGetRawPowerSetting

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

Ottieni le impostazioni di alimentazione non elaborate per il canale in questione.

Il livello radio della piattaforma deve analizzare l'impostazione di potenza non elaborata in base al formato definito dal livello radio e impostare i parametri di ciascun modulo hardware radio.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aChannel
Il canale radio.
[out] aRawPowerSetting
Un puntatore all'array di byte di impostazione potenza non elaborata.
[in,out] aRawPowerSettingLength
Nell'input, un puntatore delle dimensioni di aRawPowerSetting. All'uscita, un puntatore alla lunghezza dei dati non elaborati relativi all'impostazione della potenza.
Valori restituiti
OT_ERROR_NONE
Potenza target raggiunta.
OT_ERROR_INVALID_ARGS
aChannel non è valido. aRawPowerSetting o aRawPowerSettingLength sono NULL o sono troppo brevi.
OT_ERROR_NOT_FOUND
Impossibile trovare l'impostazione di alimentazione non elaborata di aChannel.

otPlatRadioGetRegion

otError otPlatRadioGetRegion(
  otInstance *aInstance,
  uint16_t *aRegionCode
)

Ottieni il codice regione.

Il formato della regione radio è la rappresentazione ASCII a 2 byte del codice ISO 3166 alpha-2.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[out] aRegionCode
La regione radio.
Valori restituiti
OT_ERROR_INVALID_ARGS
aRegionCode è nullptr.
OT_ERROR_FAILED
Altri errori specifici della piattaforma.
OT_ERROR_NONE
Codice regione ricevuto.
OT_ERROR_NOT_IMPLEMENTED
La funzionalità non è implementata.

otPlatRadioGetRssi

int8_t otPlatRadioGetRssi(
  otInstance *aInstance
)

Ottieni la misurazione RSSI più recente.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Restituisce
L'RSSI in dBm, se valido. 127 quando RSSI non è valido.

otPlatRadioGetState

otRadioState otPlatRadioGetState(
  otInstance *aInstance
)

Visualizza lo stato attuale della radio.

Non è richiesto da OpenThread. Può essere utilizzata per il debug e/o per scopi specifici dell'applicazione.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Restituisce
Stato attuale della radio.

otPlatRadioGetSupportedChannelMask

uint32_t otPlatRadioGetSupportedChannelMask(
  otInstance *aInstance
)

Ottieni la maschera del canale supportata dalle radio su cui il dispositivo può essere attivato.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Restituisce
La maschera del canale supportata dalla radio.

otPlatRadioGetTransmitBuffer

otRadioFrame * otPlatRadioGetTransmitBuffer(
  otInstance *aInstance
)

Ottieni il buffer di frame della trasmissione radio.

OpenThread forma il frame IEEE 802.15.4 in questo buffer, quindi chiama otPlatRadioTransmit() per richiedere la trasmissione.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Restituisce
Un puntatore al buffer del frame di trasmissione.

otPlatRadioIsCoexEnabled

bool otPlatRadioIsCoexEnabled(
  otInstance *aInstance
)

Controlla se la connessione radio è attiva o meno.

Viene utilizzato quando la funzionalità OPENTHREAD_CONFIG_PLATFORM_Radi_COEX_ENABLE è attiva.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Restituisce
TRUE se il codice radio è abilitato, altrimenti FALSE.

otPlatRadioIsEnabled

bool otPlatRadioIsEnabled(
  otInstance *aInstance
)

Controlla se la radio è attiva o meno.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Restituisce
TRUE se la radio è abilitata, FALSE in caso contrario.

otPlatRadioReceive

otError otPlatRadioReceive(
  otInstance *aInstance,
  uint8_t aChannel
)

Passa dalla modalità Sonno alla ricezione (attiva la radio).

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aChannel
Il canale da utilizzare per la ricezione.
Valori restituiti
OT_ERROR_NONE
Transizione eseguita correttamente a Ricevi.
OT_ERROR_INVALID_STATE
La radio è stata disattivata o sta trasmettendo.

otPlatRadioReceiveAt

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

Pianifica una finestra di ricezione radio a un orario e a una durata specifici.

Dettagli
Parametri
[in] aChannel
Il canale radio su cui ricevere.
[in] aStart
L'ora di inizio della finestra di ricezione relativa all'orologio radio locale; vedi otPlatRadioGetNow. Il ricevitore radio DEVE essere acceso e pronto a ricevere il primo simbolo dell'SHR di un frame all'ora di inizio della finestra.
[in] aDuration
La durata della finestra di ricezione, in microsecondi, misurata dall'orologio radio locale. La radio DEVE essere spenta (o passata alla modalità TX se è necessario inviare un fotogramma ACK) dopo questo periodo di tempo, a meno che non stia ancora ricevendo attivamente un frame. In quest'ultimo caso, la radio DEVE essere mantenuta in modalità di ricezione fino a quando la ricezione del frame non ha esito positivo o negativo.
Valori restituiti
OT_ERROR_NONE
Finestra di ricezione pianificata correttamente.
OT_ERROR_FAILED
Impossibile pianificare la finestra di ricezione.

otPlatRadioReceiveDone

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

Il driver del segnale radio chiama questo metodo per notificare a OpenThread un frame ricevuto.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aFrame
Un puntatore al frame ricevuto o NULL se l'operazione di ricezione non è riuscita.
[in] aError
OT_ERROR_NONE quando ha ricevuto correttamente un frame, OT_ERROR_ABORT quando la ricezione è stata interrotta e non è stato ricevuto un frame, OT_ERROR_NO_BUFS quando non è stato possibile ricevere un frame a causa della mancanza di spazio nel buffer rx.

otPlatRadioSetChannelMaxTransmitPower

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

Imposta la potenza di trasmissione massima per un canale specifico.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aChannel
Il canale radio.
[in] aMaxPower
La potenza massima in dBm, passando OT_Radio_RSSI_INVALID, disattiverai questo canale.
Valori restituiti
OT_ERROR_NOT_IMPLEMENTED
La funzionalità non è implementata
OT_ERROR_INVALID_ARGS
Il canale specificato non è valido.
OT_ERROR_FAILED
Altri errori specifici della piattaforma.
OT_ERROR_NONE
Potenza massima di trasmissione impostata correttamente.

otPlatRadioSetChannelTargetPower

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

Imposta la potenza target per il canale in questione.

Il driver della radio deve impostare la potenza di uscita effettiva in modo che sia inferiore o uguale alla potenza target e il più vicino possibile a quest'ultima.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aChannel
Il canale radio.
[in] aTargetPower
La potenza target in 0,01 dBm. Se superi INT16_MAX, il canale verrà disabilitato per utilizzare la potenza target.
Valori restituiti
OT_ERROR_NONE
Potenza target impostata.
OT_ERROR_INVALID_ARGS
aChannel o aTargetPower non sono validi.
OT_ERROR_NOT_IMPLEMENTED
La funzionalità non è implementata.

otPlatRadioSetCoexEnabled

otError otPlatRadioSetCoexEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Attiva il codice radio.

Viene utilizzato quando la funzionalità OPENTHREAD_CONFIG_PLATFORM_Radi_COEX_ENABLE è attiva.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aEnabled
TRUE per abilitare il codice radio, altrimenti FALSE.
Valori restituiti
OT_ERROR_NONE
Attivazione eseguita correttamente.
OT_ERROR_FAILED
Impossibile attivare la connessione radio.

otPlatRadioSetRegion

otError otPlatRadioSetRegion(
  otInstance *aInstance,
  uint16_t aRegionCode
)

Imposta il codice regione.

Il formato della regione radio è la rappresentazione ASCII a 2 byte del codice ISO 3166 alpha-2.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aRegionCode
Il codice della regione della radio. aRegionCode >> 8 è il primo carattere ASCII, mentre aRegionCode & 0xff è il secondo carattere ASCII.
Valori restituiti
OT_ERROR_FAILED
Altri errori specifici della piattaforma.
OT_ERROR_NONE
Codice regione impostato.
OT_ERROR_NOT_IMPLEMENTED
La funzionalità non è implementata.

otPlatRadioSleep

otError otPlatRadioSleep(
  otInstance *aInstance
)

Passa dalla ricezione alla modalità di sospensione (disattiva la radio).

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Valori restituiti
OT_ERROR_NONE
Transizione alla modalità Sonno eseguita correttamente.
OT_ERROR_BUSY
La radio stava trasmettendo.
OT_ERROR_INVALID_STATE
La radio è stata disattivata.

otPlatRadioTransmit

otError otPlatRadioTransmit(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

Avvia la sequenza di trasmissione alla radio.

Prima di richiedere la trasmissione, il chiamante deve formare il frame IEEE 802.15.4 nel buffer fornito da otPlatRadioGetTransmitBuffer(). Anche il canale e la potenza di trasmissione sono inclusi nella struttura otRadioFrame.

La sequenza di trasmissione è composta da:

  1. Si passa alla trasmissione da uno dei seguenti stati della radio:
    • Ricevi se RX è attivo quando il dispositivo è inattivo o OT_Radio_CAPS_SLEEP_TO_TX non è supportato
    • Sospendi se RX è disattivato quando il dispositivo è inattivo ed è supportato OT_Radio_CAPS_SLEEP_TO_TX.
  2. Trasmette lo psdu sul canale e alla potenza di trasmissione specificata.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aFrame
Un puntatore al frame da trasmettere.
Valori restituiti
OT_ERROR_NONE
Transizione eseguita correttamente.
OT_ERROR_INVALID_STATE
La radio non era in stato di ricezione.

otPlatRadioTxDone

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

Il driver radio chiama questa funzione per notificare OpenThread che l'operazione di trasmissione è stata completata, fornendo sia il frame trasmesso che, se applicabile, il frame di conferma ricevuto.

Quando la radio fornisce la funzionalità OT_RADIO_CAPS_TRANSMIT_SEC, il livello della piattaforma radio aggiorna aFrame con il contatore dei frame di sicurezza e i valori dell'indice delle chiavi mantenuti dal segnale radio.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aFrame
Un puntatore al frame trasmesso.
[in] aAckFrame
Puntatore al frame ACK, NULL se non è stato ricevuto alcun ACK.
[in] aError
OT_ERROR_NONE quando il frame è stato trasmesso, OT_ERROR_NO_ACK quando il frame è stato trasmesso ma non è stato ricevuto ACK, OT_ERROR_CHANNEL_ACCESS_FAILURE tx non riuscito a causa di attività sul canale, OT_ERROR_ABORT quando la trasmissione è stata interrotta per altri motivi.

otPlatRadioTxStarted

void otPlatRadioTxStarted(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

Il driver radio chiama questo metodo per notificare a OpenThread che la trasmissione è iniziata.

Dettagli
Parametri
[in] aInstance
Un puntatore alla struttura dell'istanza OpenThread.
[in] aFrame
Un puntatore al frame che viene trasmesso.

otPlatRadioUpdateCslSampleTime

void otPlatRadioUpdateCslSampleTime(
  otInstance *aInstance,
  uint32_t aCslSampleTime
)

Aggiorna ora di campionamento CSL nel driver radio.

L'ora di campionamento viene memorizzata nel driver radio come copia per calcolare la fase durante l'invio di ACK con CSL IE. Il campione CSL (finestra) del ricevitore CSL si estende prima e dopo l'ora di campionamento. L'ora di campionamento CSL indica un timestamp nella finestra di esempio CSL in cui un frame dovrebbe essere ricevuto in "condizioni ideali" in assenza di imprecisioni o deviazioni temporali.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aCslSampleTime
L'ora di campionamento successiva, in microsecondi. È il momento in cui è previsto il primo simbolo dell'MHR del frame.

Risorse

Gli argomenti di riferimento dell'API OpenThread provengono dal codice sorgente, disponibile su GitHub. Per saperne di più o per contribuire alla nostra documentazione, consulta la sezione Risorse.