Configurazione radio
Questo modulo include l'astrazione della piattaforma per la configurazione radio.
Riepilogo
Funzioni |
|
---|---|
otPlatRadioGetBusSpeed(otInstance *aInstance)
|
uint32_t
Ottieni la velocità del bus in bit/secondo tra l'host e il chip della radio.
|
otPlatRadioGetCaps(otInstance *aInstance)
|
Ottieni le funzionalità radio.
|
otPlatRadioGetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t *aThreshold)
|
Ottenere la soglia CCA ED della radio in dBm misurata al connettore dell'antenna secondo lo standard IEEE 802.15.4 - 2015 sezione 10.1.4.
|
otPlatRadioGetFemLnaGain(otInstance *aInstance, int8_t *aGain)
|
Restituisce il guadagno Rx LNA del FEM esterno in dBm.
|
otPlatRadioGetIeeeEui64(otInstance *aInstance, uint8_t *aIeeeEui64)
|
void
Consente di acquisire lo standard IEEE EUI-64 assegnato in fabbrica per questa interfaccia.
|
otPlatRadioGetNow(otInstance *aInstance)
|
uint64_t
Ottieni l'ora corrente in microsecondi a cui viene fatto riferimento a un orologio radio locale monotonico continuo (larghezza di 64 bit).
|
otPlatRadioGetPromiscuous(otInstance *aInstance)
|
bool
Scopri lo stato della modalità promiscuo.
|
otPlatRadioGetReceiveSensitivity(otInstance *aInstance)
|
int8_t
Ottieni il valore di sensibilità alla ricezione radio.
|
otPlatRadioGetTransmitPower(otInstance *aInstance, int8_t *aPower)
|
Controlla la potenza di trasmissione della radio in dBm.
|
otPlatRadioGetVersionString(otInstance *aInstance)
|
const char *
Ottieni la stringa della versione radio.
|
otPlatRadioSetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t aThreshold)
|
Impostare la soglia CCA ED della radio in dBm misurata al connettore dell'antenna secondo lo standard IEEE 802.15.4 - 2015 sezione 10.1.4.
|
otPlatRadioSetExtendedAddress(otInstance *aInstance, const otExtAddress *aExtAddress)
|
void
Imposta l'indirizzo esteso per il filtro degli indirizzi.
|
otPlatRadioSetFemLnaGain(otInstance *aInstance, int8_t aGain)
|
Imposta il guadagno Rx LNA del FEM esterno in dBm.
|
otPlatRadioSetMacFrameCounter(otInstance *aInstance, uint32_t aMacFrameCounter)
|
void
Imposta il valore del contatore di frame MAC corrente.
|
otPlatRadioSetMacFrameCounterIfLarger(otInstance *aInstance, uint32_t aMacFrameCounter)
|
void
Imposta il valore del contatore di frame MAC corrente solo se il nuovo valore specificato è maggiore di quello corrente.
|
otPlatRadioSetMacKey(otInstance *aInstance, uint8_t aKeyIdMode, uint8_t aKeyId, const otMacKeyMaterial *aPrevKey, const otMacKeyMaterial *aCurrKey, const otMacKeyMaterial *aNextKey, otRadioKeyType aKeyType)
|
void
Aggiorna le chiavi MAC e l'indice delle chiavi.
|
otPlatRadioSetPanId(otInstance *aInstance, otPanId aPanId)
|
void
Imposta l'ID PAN per il filtro degli indirizzi.
|
otPlatRadioSetPromiscuous(otInstance *aInstance, bool aEnable)
|
void
Attiva o disattiva la modalità promiscuo.
|
otPlatRadioSetRxOnWhenIdle(otInstance *aInstance, bool aEnable)
|
void
Imposta lo stato rx-on-when-idle sulla piattaforma radio.
|
otPlatRadioSetShortAddress(otInstance *aInstance, otShortAddress aShortAddress)
|
void
Imposta l'indirizzo breve per il filtro degli indirizzi.
|
otPlatRadioSetTransmitPower(otInstance *aInstance, int8_t aPower)
|
Imposta la potenza di trasmissione della radio in dBm.
|
Funzioni
otPlatRadioGetBusSpeed
uint32_t otPlatRadioGetBusSpeed( otInstance *aInstance )
Ottieni la velocità del bus in bit/secondo tra l'host e il chip della radio.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
La velocità del bus in bit/secondo tra l'host e il chip radio. Restituisce 0 quando il livello MAC e superiore e il livello radio si trovano nello stesso chip.
|
otPlatRadioGetCaps
otRadioCaps otPlatRadioGetCaps( otInstance *aInstance )
Ottieni le funzionalità radio.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
Il vettore di bit della funzionalità radio (vedi le definizioni di
OT_RADIO_CAP_* ). |
otPlatRadioGetCcaEnergyDetectThreshold
otError otPlatRadioGetCcaEnergyDetectThreshold( otInstance *aInstance, int8_t *aThreshold )
Ottenere la soglia CCA ED della radio in dBm misurata al connettore dell'antenna secondo lo standard IEEE 802.15.4 - 2015 sezione 10.1.4.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
otPlatRadioGetFemLnaGain
otError otPlatRadioGetFemLnaGain( otInstance *aInstance, int8_t *aGain )
Restituisce il guadagno Rx LNA del FEM esterno in dBm.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
otPlatRadioGetIeeeEui64
void otPlatRadioGetIeeeEui64( otInstance *aInstance, uint8_t *aIeeeEui64 )
Consente di acquisire lo standard IEEE EUI-64 assegnato in fabbrica per questa interfaccia.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
otPlatRadioGetNow
uint64_t otPlatRadioGetNow( otInstance *aInstance )
Ottieni l'ora corrente in microsecondi a cui viene fatto riferimento a un orologio radio locale monotonico continuo (larghezza di 64 bit).
L'orologio radio NON va a capo durante il tempo di attività del dispositivo. Le implementazioni DEVONO quindi identificare e compensare gli overflow del contatore interno. L'orologio non ha un'epoca definita e NON DEVE introdurre regolazioni continue o discontinue (ad esempio, secondi intercalari). Le implementazioni DEVONO compensare eventuali tempi di sospensione del dispositivo.
Le implementazioni POTREBBERO scegliere di disciplinare l'orologio radio e compensare i tempi di sonno con qualsiasi mezzo (ad esempio combinando un RTC ad alta precisione/bassa potenza con un contatore ad alta risoluzione), purché l'orologio combinato esposto fornisca valori continui di risoluzione monotonici in microsecondi entro i limiti di precisione annunciati da otPlatRadioGetCslAccuracy.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
L'ora corrente in microsecondi. UINT64_MAX quando la piattaforma non la supporta o l'ora della radio non è pronta.
|
otPlatRadioGetPromiscuous
bool otPlatRadioGetPromiscuous( otInstance *aInstance )
Scopri lo stato della modalità promiscuo.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Valori restituiti |
|
otPlatRadioGetReceiveSensitivity
int8_t otPlatRadioGetReceiveSensitivity( otInstance *aInstance )
Ottieni il valore di sensibilità alla ricezione radio.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
Il valore di sensibilità della ricezione radio in dBm.
|
otPlatRadioGetTransmitPower
otError otPlatRadioGetTransmitPower( otInstance *aInstance, int8_t *aPower )
Controlla la potenza di trasmissione della radio in dBm.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
otPlatRadioGetVersionString
const char * otPlatRadioGetVersionString( otInstance *aInstance )
Ottieni la stringa della versione radio.
Si tratta di una funzione facoltativa della piattaforma del driver della radio. Se non viene fornito dal driver della radio della piattaforma, OpenThread utilizza la versione OpenThread (
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
Un puntatore alla versione radio OpenThread.
|
otGetVersionString().
otPlatRadioSetCcaEnergyDetectThreshold
otError otPlatRadioSetCcaEnergyDetectThreshold( otInstance *aInstance, int8_t aThreshold )
Impostare la soglia CCA ED della radio in dBm misurata al connettore dell'antenna secondo lo standard IEEE 802.15.4 - 2015 sezione 10.1.4.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
otPlatRadioSetExtendedAddress
void otPlatRadioSetExtendedAddress( otInstance *aInstance, const otExtAddress *aExtAddress )
Imposta l'indirizzo esteso per il filtro degli indirizzi.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
otPlatRadioSetFemLnaGain
otError otPlatRadioSetFemLnaGain( otInstance *aInstance, int8_t aGain )
Imposta il guadagno Rx LNA del FEM esterno in dBm.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Valori restituiti |
|
otPlatRadioSetMacFrameCounter
void otPlatRadioSetMacFrameCounter( otInstance *aInstance, uint32_t aMacFrameCounter )
Imposta il valore del contatore di frame MAC corrente.
Viene utilizzato quando la radio fornisce la funzionalità OT_RADIO_CAPS_TRANSMIT_SEC
.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
otPlatRadioSetMacFrameCounterIfLarger
void otPlatRadioSetMacFrameCounterIfLarger( otInstance *aInstance, uint32_t aMacFrameCounter )
Imposta il valore del contatore di frame MAC corrente solo se il nuovo valore specificato è maggiore di quello corrente.
Viene utilizzato quando la radio fornisce la funzionalità OT_RADIO_CAPS_TRANSMIT_SEC
.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
otPlatRadioSetMacKey
void otPlatRadioSetMacKey( otInstance *aInstance, uint8_t aKeyIdMode, uint8_t aKeyId, const otMacKeyMaterial *aPrevKey, const otMacKeyMaterial *aCurrKey, const otMacKeyMaterial *aNextKey, otRadioKeyType aKeyType )
Aggiorna le chiavi MAC e l'indice delle chiavi.
Viene utilizzato quando la radio fornisce la funzionalità OT_Radi_CAPS_TRANSMIT_SEC.
Dettagli | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametri |
|
otPlatRadioSetPanId
void otPlatRadioSetPanId( otInstance *aInstance, otPanId aPanId )
Imposta l'ID PAN per il filtro degli indirizzi.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
otPlatRadioSetPromiscuous
void otPlatRadioSetPromiscuous( otInstance *aInstance, bool aEnable )
Attiva o disattiva la modalità promiscuo.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
otPlatRadioSetRxOnWhenIdle
void otPlatRadioSetRxOnWhenIdle( otInstance *aInstance, bool aEnable )
Imposta lo stato rx-on-when-idle sulla piattaforma radio.
Esistono alcune situazioni in cui la radio può entrare in stato di sospensione se il dispositivo è in stato rx spento quando inattivo, ma è difficile e costoso per il SubMac identificare queste situazioni e indicare alla radio di attivare la modalità di sospensione:
- Finalizzazione di una normale attività di ricezione frame, a condizione che:
- Il frame viene ricevuto senza errori e supera il filtro e non è un ACK fittizio.
- ACK non è richiesto o la trasmissione di ACK non è possibile a causa di condizioni interne.
- Finalizzazione di una trasmissione di un frame o di una trasmissione di un frame ACK, quando non viene richiesto ACK nel frame trasmesso.
- Finalizzazione dell'operazione di ricezione di un ACK richiesto a causa di:
- Scadenza del timeout ACK.
- Ricezione di un frame ACK non valido o non valido.
- La ricezione dell'ACK corretto, a meno che il frame trasmesso non fosse un comando di richiesta di dati e il bit in attesa del frame sull'ACK ricevuto sia impostato su true. In questo caso, l'implementazione della piattaforma radio DEVE mantenere il ricevitore acceso fino a un determinato timeout che attiva l'inizio di un periodo di inattività.
OPENTHREAD_CONFIG_MAC_DATA_POLL_TIMEOUT
può essere utilizzato come riferimento.
- Finalizzazione di un'attività CCA autonoma.
- Finalizzazione di un'operazione CCA con risultato di attività non disponibile durante la procedura CSMA/CA.
- Finalizzazione di un'attività di rilevamento dell'energia.
- Finalizzazione di una finestra di ricezione radio programmata con
otPlatRadioReceiveAt
.
Se una piattaforma supporta OT_RADIO_CAPS_RX_ON_WHEN_IDLE
, deve supportare anche OT_RADIO_CAPS_CSMA_BACKOFF
e gestire i periodi di inattività dopo l'autorizzazione CCA come descritto in precedenza.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
otPlatRadioSetShortAddress
void otPlatRadioSetShortAddress( otInstance *aInstance, otShortAddress aShortAddress )
Imposta l'indirizzo breve per il filtro degli indirizzi.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
otPlatRadioSetTransmitPower
otError otPlatRadioSetTransmitPower( otInstance *aInstance, int8_t aPower )
Imposta la potenza di trasmissione della radio in dBm.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Valori restituiti |
|
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.