Fonctionnement radio

Ce module inclut l'abstraction de plate-forme pour les opérations radio.

Résumé

distantes

otPlatDiagRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Le pilote radio appelle cette méthode pour avertir le module de diagnostic OpenThread d'une trame reçue.
otPlatDiagRadioTransmitDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Le pilote radio appelle cette méthode pour avertir le module de diagnostic OpenThread que la transmission est terminée.
otPlatRadioAddCalibratedPower(otInstance *aInstance, uint8_t aChannel, int16_t aActualPower, const uint8_t *aRawPowerSetting, uint16_t aRawPowerSettingLength)
Ajoutez une puissance calibrée du canal spécifié au tableau de calibrage de la puissance.
otPlatRadioAddSrcMatchExtEntry(otInstance *aInstance, const otExtAddress *aExtAddress)
Ajoutez une adresse étendue à la table des correspondances des adresses source.
otPlatRadioAddSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
Ajoutez une adresse courte à la table des correspondances des adresses sources.
otPlatRadioClearCalibratedPowers(otInstance *aInstance)
Effacez toutes les puissances calibrées du tableau d'étalonnage de la puissance.
otPlatRadioClearSrcMatchExtEntries(otInstance *aInstance)
void
Effacez toutes les adresses étendues/longues du tableau de correspondance des adresses source.
otPlatRadioClearSrcMatchExtEntry(otInstance *aInstance, const otExtAddress *aExtAddress)
Supprimez une adresse étendue de la table des correspondances d'adresses source.
otPlatRadioClearSrcMatchShortEntries(otInstance *aInstance)
void
Effacez toutes les adresses courtes du tableau de correspondance des adresses sources.
otPlatRadioClearSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
Supprimez une adresse courte du tableau de correspondance des adresses sources.
otPlatRadioConfigureEnhAckProbing(otInstance *aInstance, otLinkMetrics aLinkMetrics, otShortAddress aShortAddress, const otExtAddress *aExtAddress)
Activez/Désactivez ou mettez à jour la vérification basée sur l'accusé de réception avancé dans la radio pour un initialiseur spécifique.
otPlatRadioDisable(otInstance *aInstance)
Désactivez la radio.
otPlatRadioEnable(otInstance *aInstance)
Activez la radio.
otPlatRadioEnableCsl(otInstance *aInstance, uint32_t aCslPeriod, otShortAddress aShortAddr, const otExtAddress *aExtAddr)
Activez ou désactivez le récepteur CSL.
otPlatRadioEnableSrcMatch(otInstance *aInstance, bool aEnable)
void
Activer ou désactiver la fonctionnalité de correspondance des adresses sources
otPlatRadioEnergyScan(otInstance *aInstance, uint8_t aScanChannel, uint16_t aScanDuration)
Commence la séquence de balayage de l'énergie à la radio.
otPlatRadioEnergyScanDone(otInstance *aInstance, int8_t aEnergyScanMaxRssi)
void
Le pilote radio appelle cette méthode pour avertir OpenThread que l’analyse énergétique est terminée.
otPlatRadioGetCoexMetrics(otInstance *aInstance, otRadioCoexMetrics *aCoexMetrics)
Obtenir les métriques de coexistence de signaux radio
otPlatRadioGetCslAccuracy(otInstance *aInstance)
uint8_t
Obtenez la précision actuelle estimée du pire cas (écart maximal ± par rapport à la fréquence nominale) de l'horloge radio locale en unités de ppm.
otPlatRadioGetCslUncertainty(otInstance *aInstance)
uint8_t
L'incertitude fixe (par exemple,
otPlatRadioGetPreferredChannelMask(otInstance *aInstance)
uint32_t
Récupère le masque de canal radio préféré sur lequel l'appareil préfère se former.
otPlatRadioGetRawPowerSetting(otInstance *aInstance, uint8_t aChannel, uint8_t *aRawPowerSetting, uint16_t *aRawPowerSettingLength)
Permet d'obtenir le paramètre de consommation d'énergie brute pour le canal donné.
otPlatRadioGetRegion(otInstance *aInstance, uint16_t *aRegionCode)
Obtenez le code régional.
otPlatRadioGetRssi(otInstance *aInstance)
int8_t
Obtenez la mesure RSSI la plus récente.
otPlatRadioGetState(otInstance *aInstance)
Obtenir l'état actuel de la radio.
otPlatRadioGetSupportedChannelMask(otInstance *aInstance)
uint32_t
Obtenir le masque de canal compatible avec la radio sur lequel l'appareil est autorisé
otPlatRadioGetTransmitBuffer(otInstance *aInstance)
Permet d'obtenir le tampon de trame de transmission radio.
otPlatRadioIsCoexEnabled(otInstance *aInstance)
bool
Vérifiez si le coex radio est activé.
otPlatRadioIsEnabled(otInstance *aInstance)
bool
Vérifiez si la radio est activée.
otPlatRadioReceive(otInstance *aInstance, uint8_t aChannel)
Faites passer la radio du mode Veille à la réception (activez la radio).
otPlatRadioReceiveAt(otInstance *aInstance, uint8_t aChannel, uint32_t aStart, uint32_t aDuration)
Programmez une fenêtre de réception radio à une heure et une durée spécifiques.
otPlatRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Le pilote radio appelle cette méthode pour avertir OpenThread d’une trame reçue.
otPlatRadioSetChannelMaxTransmitPower(otInstance *aInstance, uint8_t aChannel, int8_t aMaxPower)
Définissez la puissance de transmission maximale pour un canal spécifique.
otPlatRadioSetChannelTargetPower(otInstance *aInstance, uint8_t aChannel, int16_t aTargetPower)
Définit la puissance cible pour le canal donné.
otPlatRadioSetCoexEnabled(otInstance *aInstance, bool aEnabled)
Activez le contact radio.
otPlatRadioSetRegion(otInstance *aInstance, uint16_t aRegionCode)
Définissez le code régional.
otPlatRadioSleep(otInstance *aInstance)
Faites passer la radio de "Recevoir" à "Veille" (éteignez la radio).
otPlatRadioTransmit(otInstance *aInstance, otRadioFrame *aFrame)
Commencez la séquence de transmission sur la radio.
otPlatRadioTxDone(otInstance *aInstance, otRadioFrame *aFrame, otRadioFrame *aAckFrame, otError aError)
void
Le pilote radio appelle cette fonction pour avertir OpenThread que l’opération de transmission est terminée, en fournissant à la fois la trame transmise et, le cas échéant, la trame ACK reçue.
otPlatRadioTxStarted(otInstance *aInstance, otRadioFrame *aFrame)
void
Le pilote radio appelle cette méthode pour avertir OpenThread que la transmission a commencé.
otPlatRadioUpdateCslSampleTime(otInstance *aInstance, uint32_t aCslSampleTime)
void
Mise à jour de l'heure d'échantillonnage CSL dans le pilote radio.

distantes

otPlatDiagRadioReceiveDone

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

Le pilote radio appelle cette méthode pour avertir le module de diagnostic OpenThread d'une trame reçue.

Utilisé lorsque les diagnostics sont activés.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aFrame
Un pointeur vers le frame reçu ou NULL si l'opération de réception a échoué.
[in] aError
OT_ERROR_NONE lorsque la trame est reçue avec succès, OT_ERROR_ABORT lorsque la réception a été annulée et qu'une trame n'a pas été reçue, OT_ERROR_NO_BUFS lorsqu'une trame n'a pas pu être reçue en raison d'un espace de mémoire tampon rx insuffisant.

otPlatDiagRadioTransmitDone

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

Le pilote radio appelle cette méthode pour avertir le module de diagnostic OpenThread que la transmission est terminée.

Utilisé lorsque les diagnostics sont activés.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aFrame
Un pointeur vers la trame qui a été transmise.
[in] aError
OT_ERROR_NONE lors de la transmission de la trame, OT_ERROR_CHANNEL_ACCESS_FAILURE le transfert n’a pas pu être effectué en raison d’une activité sur le canal, OT_ERROR_ABORT lorsque la transmission a été annulée pour d’autres raisons.

otPlatRadioAddCalibratedPower

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

Ajoutez une puissance calibrée du canal spécifié au tableau de calibrage de la puissance.

La valeur aActualPower correspond à la puissance de sortie réelle mesurée lorsque les paramètres des modules matériels radio sont définis sur aRawPowerSetting.

Le paramètre de puissance brute est un tableau d'octets opaque. OpenThread ne définit pas le format du paramètre de la puissance brute. Son format est lié au matériel radio et doit être défini par les développeurs dans le pilote radio de la plate-forme. Par exemple, si le matériel radio contient à la fois la puce radio et la puce FEM, le paramètre de puissance brute peut être une combinaison du registre de puissance radio et de la valeur de gain FEM.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aChannel
Canal de radio.
[in] aActualPower
Puissance réelle en 0,01 dBm.
[in] aRawPowerSetting
Pointeur vers le tableau d'octets du paramètre de puissance brute.
[in] aRawPowerSettingLength
Longueur du aRawPowerSetting.
Valeurs de retour
OT_ERROR_NONE
La puissance calibrée a bien été ajoutée au tableau d'étalonnage de la puissance.
OT_ERROR_NO_BUFS
Aucune entrée disponible dans le tableau d'étalonnage de la puissance.
OT_ERROR_INVALID_ARGS
Les valeurs aChannel, aActualPower ou aRawPowerSetting ne sont pas valides, ou le aActualPower existe déjà dans le tableau d'étalonnage de l'alimentation.
OT_ERROR_NOT_IMPLEMENTED
Cette fonctionnalité n'est pas mise en œuvre.

otPlatRadioAddSrcMatchExtEntry

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

Ajoutez une adresse étendue à la table des correspondances des adresses source.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aExtAddress
Adresse étendue à ajouter, stockée dans l'ordre des octets Little-endian.
Valeurs de retour
OT_ERROR_NONE
L'adresse étendue a bien été ajoutée à la table des correspondances source.
OT_ERROR_NO_BUFS
Aucune entrée disponible dans le tableau des correspondances source.

otPlatRadioAddSrcMatchShortEntry

otError otPlatRadioAddSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Ajoutez une adresse courte à la table des correspondances des adresses sources.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aShortAddress
Adresse courte à ajouter.
Valeurs de retour
OT_ERROR_NONE
L'adresse courte a bien été ajoutée à la table des correspondances source.
OT_ERROR_NO_BUFS
Aucune entrée disponible dans le tableau des correspondances source.

otPlatRadioClearCalibratedPowers

otError otPlatRadioClearCalibratedPowers(
  otInstance *aInstance
)

Effacez toutes les puissances calibrées du tableau d'étalonnage de la puissance.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
Valeurs de retour
OT_ERROR_NONE
Toutes les puissances calibrées ont bien été effacées du tableau d'étalonnage de l'alimentation.
OT_ERROR_NOT_IMPLEMENTED
Cette fonctionnalité n'est pas mise en œuvre.

otPlatRadioClearSrcMatchExtEntries

void otPlatRadioClearSrcMatchExtEntries(
  otInstance *aInstance
)

Effacez toutes les adresses étendues/longues du tableau de correspondance des adresses source.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.

otPlatRadioClearSrcMatchExtEntry

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

Supprimez une adresse étendue de la table des correspondances d'adresses source.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aExtAddress
Adresse étendue à supprimer, stockée dans l'ordre des octets Little-endian.
Valeurs de retour
OT_ERROR_NONE
L'adresse étendue a bien été supprimée de la table des correspondances source.
OT_ERROR_NO_ADDRESS
L'adresse étendue ne figure pas dans le tableau de correspondance des adresses source.

otPlatRadioClearSrcMatchShortEntries

void otPlatRadioClearSrcMatchShortEntries(
  otInstance *aInstance
)

Effacez toutes les adresses courtes du tableau de correspondance des adresses sources.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.

otPlatRadioClearSrcMatchShortEntry

otError otPlatRadioClearSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Supprimez une adresse courte du tableau de correspondance des adresses sources.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aShortAddress
Adresse courte à supprimer.
Valeurs de retour
OT_ERROR_NONE
L'adresse courte a bien été supprimée de la table des correspondances source.
OT_ERROR_NO_ADDRESS
L'adresse courte ne figure pas dans le tableau de correspondance des adresses sources.

otPlatRadioConfigureEnhAckProbing

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

Activez/Désactivez ou mettez à jour la vérification basée sur l'accusé de réception avancé dans la radio pour un initialiseur spécifique.

Une fois la vérification basée sur l'accusé de réception avancé configurée par un lanceur de vérification spécifique, l'accusé de réception avancé envoyé à ce nœud doit inclure l'IE spécifique au fournisseur contenant des données de métriques sur les liens. Cette méthode indique à la radio qu'elle doit démarrer/arrêter la collecte de données de métriques sur les liens et inclure l'IE spécifique au fournisseur qui contient les données de l'accusé de réception avancé envoyées à ce lanceur de vérification.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aLinkMetrics
Ce paramètre spécifie les métriques à interroger. Conformément à la spécification 4.11.3.4.4.6, vous pouvez spécifier deux métriques au maximum. La vérification sera désactivée si aLinkMetrics présente une valeur de 0 au niveau du bit.
[in] aShortAddress
Adresse courte de l'initiateur de vérification.
[in] aExtAddress
Adresse source étendue de l'initiateur de vérification. aExtAddr NE DOIT PAS être NULL.
Valeurs de retour
OT_ERROR_NONE
La vérification basée sur l'accusé de réception avancé a bien été configurée.
OT_ERROR_INVALID_ARGS
aExtAddress : NULL.
OT_ERROR_NOT_FOUND
L'initiateur indiqué par aShortAddress est introuvable lors de la tentative d'effacement.
OT_ERROR_NO_BUFS
Impossible d'ajouter d'autres lanceurs.
OT_ERROR_NOT_IMPLEMENTED
La fonctionnalité n'est pas implémentée.

otPlatRadioDisable

otError otPlatRadioDisable(
  otInstance *aInstance
)

Désactivez la radio.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
Valeurs de retour
OT_ERROR_NONE
Passage à l'état "Désactivé".
OT_ERROR_INVALID_STATE
Le signal radio n'était pas en veille.

otPlatRadioEnable

otError otPlatRadioEnable(
  otInstance *aInstance
)

Activez la radio.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
Valeurs de retour
OT_ERROR_NONE
Activation réussie.
OT_ERROR_FAILED
Impossible d'activer la radio.

otPlatRadioEnableCsl

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

Activez ou désactivez le récepteur CSL.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aCslPeriod
Période CSL, 0 pour désactiver CSL. Le point CSL est exprimé en unités de 10 symboles.
[in] aShortAddr
Adresse source courte du pair du récepteur CSL.
[in] aExtAddr
Adresse source étendue du pair du récepteur CSL.
Valeurs de retour
kErrorNotImplemented
Le pilote radio n'est pas compatible avec CSL.
kErrorFailed
Autres erreurs spécifiques à la plate-forme
kErrorNone
CSL a bien été activé ou désactivé.

otPlatRadioEnableSrcMatch

void otPlatRadioEnableSrcMatch(
  otInstance *aInstance,
  bool aEnable
)

Activer ou désactiver la fonctionnalité de correspondance des adresses sources

La fonctionnalité de correspondance d'adresse source contrôle la manière dont la couche radio décide du bit "frame en attente" pour les accusés de réception envoyés en réponse aux commandes de requête de données des enfants.

Si cette option est désactivée, la couche radio doit définir le frame en attente sur toutes les confirmations des commandes de demande de données.

Si cette option est activée, la couche radio utilise la table de correspondance des adresses sources pour déterminer si le bit "frame en attente" doit être défini ou effacé dans un accusé de réception d'une commande de requête de données.

Le tableau de correspondance des adresses sources fournit la liste des enfants pour lesquels il existe un frame en attente. Vous pouvez ajouter une adresse courte ou une adresse étendue/longue à la table des correspondances d'adresse source.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aEnable
Activer ou désactiver la fonctionnalité de correspondance des adresses sources

otPlatRadioEnergyScan

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

Commence la séquence de balayage de l'énergie à la radio.

Utilisé lorsque le signal radio fournit la capacité OT_RADIO_CAPS_ENERGY_SCAN.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aScanChannel
Canal sur lequel effectuer la recherche d'énergie.
[in] aScanDuration
Durée, en millisecondes, de l'analyse de la chaîne.
Valeurs de retour
OT_ERROR_NONE
La recherche de la chaîne a bien été lancée.
OT_ERROR_BUSY
Le signal radio effectue un balayage de l'énergie.
OT_ERROR_NOT_IMPLEMENTED
Le signal radio ne prend pas en charge la numérisation de l'énergie.

otPlatRadioEnergyScanDone

void otPlatRadioEnergyScanDone(
  otInstance *aInstance,
  int8_t aEnergyScanMaxRssi
)

Le pilote radio appelle cette méthode pour avertir OpenThread que l’analyse énergétique est terminée.

Utilisé lorsque le signal radio fournit la capacité OT_RADIO_CAPS_ENERGY_SCAN.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aEnergyScanMaxRssi
Le RSSI maximal rencontré sur la chaîne analysée.

otPlatRadioGetCoexMetrics

otError otPlatRadioGetCoexMetrics(
  otInstance *aInstance,
  otRadioCoexMetrics *aCoexMetrics
)

Obtenir les métriques de coexistence de signaux radio

Utilisé lorsque la fonctionnalité OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE est activée.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[out] aCoexMetrics
Pointeur vers la structure des métriques de coexistence.
Valeurs de retour
OT_ERROR_NONE
Les métriques de coûts ont bien été récupérées.
OT_ERROR_INVALID_ARGS
aCoexMetrics était NULL.

otPlatRadioGetCslAccuracy

uint8_t otPlatRadioGetCslAccuracy(
  otInstance *aInstance
)

Obtenez la précision actuelle estimée du pire cas (écart maximal ± par rapport à la fréquence nominale) de l'horloge radio locale en unités de ppm.

Il s'agit de l'horloge utilisée pour planifier les opérations CSL.

Si l'implémentation n'estimation pas la valeur actuelle, mais renvoie une valeur fixe, cette valeur DOIT correspondre au pire des cas de justesse parmi toutes les conditions de fonctionnement prévues (température, pression, etc.) de l'implémentation.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
Renvoie
Dérive de planification actuelle de CSL rx/tx, en PPM.

otPlatRadioGetCslUncertainty

uint8_t otPlatRadioGetCslUncertainty(
  otInstance *aInstance
)

L'incertitude fixe (par exemple,

gigue aléatoire) de l'heure d'arrivée des transmissions CSL reçues par cet appareil, exprimées en unités de 10 microsecondes.

Cela désigne l'écart positif ou négatif constant de l'heure d'arrivée réelle d'une transmission à partir de l'heure de transmission, calculée par rapport à l'horloge radio locale, indépendamment du temps écoulé. En plus de l'incertitude accumulée sur le temps écoulé, l'échantillon de canal CSL ("fenêtre RX") doit être prolongé du double de cet écart, de sorte qu'une transmission réelle soit garantie par le récepteur local en présence d'une gigue aléatoire de l'heure d'arrivée.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
Renvoie
L'incertitude CSL en unités de 10 us.

otPlatRadioGetPreferredChannelMask

uint32_t otPlatRadioGetPreferredChannelMask(
  otInstance *aInstance
)

Récupère le masque de canal radio préféré sur lequel l'appareil préfère se former.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
Renvoie
Masque de canal préféré.

otPlatRadioGetRawPowerSetting

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

Permet d'obtenir le paramètre de consommation d'énergie brute pour le canal donné.

La couche radio de la plate-forme doit analyser le paramètre de puissance brute en fonction du format défini par la couche radio et définir les paramètres de chaque module matériel radio.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aChannel
Canal de radio.
[out] aRawPowerSetting
Pointeur vers le tableau d'octets du paramètre de puissance brute.
[in,out] aRawPowerSettingLength
À l'entrée, un pointeur indiquant la taille de aRawPowerSetting. En sortie, pointeur vers la longueur des données brutes de paramétrage de l'alimentation.
Valeurs de retour
OT_ERROR_NONE
Puissance cible obtenue.
OT_ERROR_INVALID_ARGS
La valeur aChannel n'est pas valide, la valeur aRawPowerSetting ou aRawPowerSettingLength est nulle ou trop courte.
OT_ERROR_NOT_FOUND
Le paramètre d'alimentation brute de aChannel est introuvable.

otPlatRadioGetRegion

otError otPlatRadioGetRegion(
  otInstance *aInstance,
  uint16_t *aRegionCode
)

Obtenez le code régional.

Le format de la région radio est la représentation ASCII de deux octets du code alpha-2 de la norme ISO 3166.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[out] aRegionCode
Région radio.
Valeurs de retour
OT_ERROR_INVALID_ARGS
aRegionCode a la valeur nullptr.
OT_ERROR_FAILED
Autres erreurs spécifiques à la plate-forme
OT_ERROR_NONE
Le code régional a bien été obtenu.
OT_ERROR_NOT_IMPLEMENTED
La fonctionnalité n'est pas implémentée.

otPlatRadioGetRssi

int8_t otPlatRadioGetRssi(
  otInstance *aInstance
)

Obtenez la mesure RSSI la plus récente.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
Renvoie
RSSI en dBm lorsqu'il est valide. 127 lorsque le RSSI n'est pas valide.

otPlatRadioGetState

otRadioState otPlatRadioGetState(
  otInstance *aInstance
)

Obtenir l'état actuel de la radio.

N'est pas requis par OpenThread. Il peut être utilisé à des fins de débogage et/ou de celles spécifiques à l'application.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
Renvoie
État actuel du signal radio.

otPlatRadioGetSupportedChannelMask

uint32_t otPlatRadioGetSupportedChannelMask(
  otInstance *aInstance
)

Obtenir le masque de canal compatible avec la radio sur lequel l'appareil est autorisé

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
Renvoie
Masque de canal compatible avec la radio.

otPlatRadioGetTransmitBuffer

otRadioFrame * otPlatRadioGetTransmitBuffer(
  otInstance *aInstance
)

Permet d'obtenir le tampon de trame de transmission radio.

OpenThread forme la trame IEEE 802.15.4 dans ce tampon, puis appelle otPlatRadioTransmit() pour demander la transmission.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
Renvoie
Pointeur vers le tampon de trame de transmission.

otPlatRadioIsCoexEnabled

bool otPlatRadioIsCoexEnabled(
  otInstance *aInstance
)

Vérifiez si le coex radio est activé.

Utilisé lorsque la fonctionnalité OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE est activée.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
Renvoie
TRUE si le coex radio est activé, FALSE dans le cas contraire.

otPlatRadioIsEnabled

bool otPlatRadioIsEnabled(
  otInstance *aInstance
)

Vérifiez si la radio est activée.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
Renvoie
TRUE si la radio est activée, FALSE dans le cas contraire.

otPlatRadioReceive

otError otPlatRadioReceive(
  otInstance *aInstance,
  uint8_t aChannel
)

Faites passer la radio du mode Veille à la réception (activez la radio).

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aChannel
Canal à utiliser pour recevoir.
Valeurs de retour
OT_ERROR_NONE
Passage à l'état "Réception" réussi.
OT_ERROR_INVALID_STATE
Le signal radio a été désactivé ou en cours d'émission.

otPlatRadioReceiveAt

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

Programmez une fenêtre de réception radio à une heure et une durée spécifiques.

Détails
Paramètres
[in] aChannel
Canal radio sur lequel recevoir.
[in] aStart
Heure de début de la fenêtre de réception par rapport à l'horloge radio locale, voir otPlatRadioGetNow. Le récepteur radio DOIT être activé et prêt à recevoir le premier symbole de la fonction SHR d'une image à l'heure de début de la fenêtre.
[in] aDuration
Durée de la fenêtre de réception, en microsecondes, mesurée par l'horloge radio locale. La radio DOIT être désactivée (ou passer en mode TX si une trame ACK doit être envoyée) après cette durée, sauf si elle reçoit toujours une trame. Dans ce dernier cas, la radio SHALL sera maintenue en mode réception jusqu'à ce que la réception des trames ait réussi ou échoué.
Valeurs de retour
OT_ERROR_NONE
La fenêtre de réception a bien été programmée.
OT_ERROR_FAILED
Impossible de planifier la fenêtre de réception.

otPlatRadioReceiveDone

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

Le pilote radio appelle cette méthode pour avertir OpenThread d’une trame reçue.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aFrame
Un pointeur vers le frame reçu ou NULL si l'opération de réception a échoué.
[in] aError
OT_ERROR_NONE lorsque la trame est reçue avec succès, OT_ERROR_ABORT lorsque la réception a été annulée et qu'une trame n'a pas été reçue, OT_ERROR_NO_BUFS lorsqu'une trame n'a pas pu être reçue en raison d'un espace de mémoire tampon rx insuffisant.

otPlatRadioSetChannelMaxTransmitPower

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

Définissez la puissance de transmission maximale pour un canal spécifique.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aChannel
Canal de radio.
[in] aMaxPower
La puissance maximale en dBm au-delà de OT_RADIO_RSSI_INVALID désactive ce canal.
Valeurs de retour
OT_ERROR_NOT_IMPLEMENTED
La fonctionnalité n'est pas implémentée
OT_ERROR_INVALID_ARGS
La chaîne spécifiée n'est pas valide.
OT_ERROR_FAILED
Autres erreurs spécifiques à la plate-forme
OT_ERROR_NONE
La puissance de transmission maximale a bien été définie.

otPlatRadioSetChannelTargetPower

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

Définit la puissance cible pour le canal donné.

Le pilote radio doit définir la puissance de sortie réelle sur une valeur inférieure ou égale à la puissance cible et aussi proche que possible de la puissance cible.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aChannel
Canal de radio.
[in] aTargetPower
Puissance cible en 0,01 dBm. Si vous transmettez INT16_MAX, ce canal sera désactivé pour utiliser la puissance cible.
Valeurs de retour
OT_ERROR_NONE
La puissance cible a bien été définie.
OT_ERROR_INVALID_ARGS
Les valeurs aChannel ou aTargetPower ne sont pas valides.
OT_ERROR_NOT_IMPLEMENTED
La fonctionnalité n'est pas implémentée.

otPlatRadioSetCoexEnabled

otError otPlatRadioSetCoexEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Activez le contact radio.

Utilisé lorsque la fonctionnalité OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE est activée.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aEnabled
TRUE pour activer le coex radio, FALSE dans le cas contraire.
Valeurs de retour
OT_ERROR_NONE
Activation réussie.
OT_ERROR_FAILED
Impossible d'activer le coex radio.

otPlatRadioSetRegion

otError otPlatRadioSetRegion(
  otInstance *aInstance,
  uint16_t aRegionCode
)

Définissez le code régional.

Le format de la région radio est la représentation ASCII de deux octets du code alpha-2 de la norme ISO 3166.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aRegionCode
Code de région radio. aRegionCode >> 8 correspond au premier caractère ASCII et aRegionCode & 0xff est le deuxième caractère ASCII.
Valeurs de retour
OT_ERROR_FAILED
Autres erreurs spécifiques à la plate-forme
OT_ERROR_NONE
Le code régional a bien été défini.
OT_ERROR_NOT_IMPLEMENTED
La fonctionnalité n'est pas implémentée.

otPlatRadioSleep

otError otPlatRadioSleep(
  otInstance *aInstance
)

Faites passer la radio de "Recevoir" à "Veille" (éteignez la radio).

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
Valeurs de retour
OT_ERROR_NONE
Passage au mode Sommeil réussi.
OT_ERROR_BUSY
Le signal radio transmettait.
OT_ERROR_INVALID_STATE
La radio a été désactivée.

otPlatRadioTransmit

otError otPlatRadioTransmit(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

Commencez la séquence de transmission sur la radio.

L'appelant doit former la trame IEEE 802.15.4 dans le tampon fourni par otPlatRadioGetTransmitBuffer() avant de demander la transmission. Le canal et la puissance de transmission sont également inclus dans la structure otRadioFrame.

La séquence de transmission comprend les éléments suivants:

  1. Passage de la radio à la transmission depuis l'un des états suivants:
    • Recevoir la réception si RX est activé lorsque l'appareil est inactif ou que OT_RADIO_CAPS_SLEEP_TO_TX n'est pas pris en charge
    • Mettre en veille si RX est désactivé lorsque l'appareil est inactif et que OT_RADIO_CAPS_SLEEP_TO_TX est pris en charge.
  2. Il transmet le psdu sur le canal donné et à la puissance de transmission donnée.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aFrame
Un pointeur vers la trame à transmettre.
Valeurs de retour
OT_ERROR_NONE
Transition vers Transmit réussie.
OT_ERROR_INVALID_STATE
Le signal radio n'était pas à l'état de réception.

otPlatRadioTxDone

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

Le pilote radio appelle cette fonction pour avertir OpenThread que l’opération de transmission est terminée, en fournissant à la fois la trame transmise et, le cas échéant, la trame ACK reçue.

Lorsque le signal radio fournit la capacité OT_RADIO_CAPS_TRANSMIT_SEC, la couche de plate-forme radio met à jour aFrame avec le compteur de frames de sécurité et les valeurs d'index de clé gérées par le signal radio.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aFrame
Un pointeur vers la trame qui a été transmise.
[in] aAckFrame
Un pointeur vers la trame ACK, NULL si aucun ACK n'a été reçu.
[in] aError
OT_ERROR_NONE lorsque la trame a été transmise, OT_ERROR_NO_ACK lorsque la trame a été transmise, mais qu’aucun ACK n’a été reçu, le tx OT_ERROR_CHANNEL_ACCESS_FAILURE n’a pas pu avoir lieu en raison d’une activité sur le canal, OT_ERROR_ABORT lorsque la transmission a été annulée pour d’autres raisons.

otPlatRadioTxStarted

void otPlatRadioTxStarted(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

Le pilote radio appelle cette méthode pour avertir OpenThread que la transmission a commencé.

Détails
Paramètres
[in] aInstance
Pointeur vers la structure de l'instance OpenThread.
[in] aFrame
Un pointeur vers la trame en cours de transmission.

otPlatRadioUpdateCslSampleTime

void otPlatRadioUpdateCslSampleTime(
  otInstance *aInstance,
  uint32_t aCslSampleTime
)

Mise à jour de l'heure d'échantillonnage CSL dans le pilote radio.

L'échantillon de temps est stocké dans le pilote radio sous forme de copie pour calculer la phase lors de l'envoi de l'accusé de réception (ACK) avec CSL IE. L'échantillon CSL (fenêtre) du récepteur CSL s'étend avant et après l'heure d'échantillonnage. L'heure d'échantillonnage CSL marque un code temporel dans la fenêtre d'échantillon CSL quand une trame doit être reçue dans des "conditions idéales" en l'absence d'imprécision ou de dérive des horloges.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aCslSampleTime
Durée d'échantillonnage suivante, en microsecondes. Il s'agit de l'heure à laquelle le premier symbole du MHR de la trame est attendu.

Ressources

Les sujets de référence de l'API OpenThread proviennent du code source, disponible sur GitHub. Pour en savoir plus ou pour contribuer à notre documentation, consultez la section Ressources.