Funkbetrieb

Dieses Modul enthält die Plattformabstraktion für den Funkbetrieb.

Zusammenfassung

Funktionen

otPlatDiagRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Der Radiotreiber ruft diese Methode auf, um das OpenThread-Diagnosemodul über einen empfangenen Frame zu informieren.
otPlatDiagRadioTransmitDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Der Funktreiber ruft diese Methode auf, um das OpenThread-Diagnosemodul darüber zu informieren, dass die Übertragung abgeschlossen ist.
otPlatRadioAddCalibratedPower(otInstance *aInstance, uint8_t aChannel, int16_t aActualPower, const uint8_t *aRawPowerSetting, uint16_t aRawPowerSettingLength)
Fügen Sie der Leistungskalibrierungstabelle eine kalibrierte Leistung des angegebenen Kanals hinzu.
otPlatRadioAddSrcMatchExtEntry(otInstance *aInstance, const otExtAddress *aExtAddress)
Fügen Sie der Match-Table für die Quelladresse eine erweiterte Adresse hinzu.
otPlatRadioAddSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
Fügen Sie der Match-Table für die Quelladresse eine Kurzadresse hinzu.
otPlatRadioClearCalibratedPowers(otInstance *aInstance)
Löschen Sie alle kalibrierten Leistungsstärken aus der Leistungskalibrierungstabelle.
otPlatRadioClearSrcMatchExtEntries(otInstance *aInstance)
void
Löscht alle erweiterten/langen Adressen aus der Match-Table für die Quelladresse.
otPlatRadioClearSrcMatchExtEntry(otInstance *aInstance, const otExtAddress *aExtAddress)
Entfernen Sie eine erweiterte Adresse aus der Match-Table für die Quelladresse.
otPlatRadioClearSrcMatchShortEntries(otInstance *aInstance)
void
Löschen Sie alle Kurzadressen aus der Match-Table für die Quelladresse.
otPlatRadioClearSrcMatchShortEntry(otInstance *aInstance, otShortAddress aShortAddress)
Entfernen Sie eine Kurzadresse aus der Match-Table für die Quelladresse.
otPlatRadioConfigureEnhAckProbing(otInstance *aInstance, otLinkMetrics aLinkMetrics, otShortAddress aShortAddress, const otExtAddress *aExtAddress)
Aktiviert, deaktiviert oder aktualisiert die verbesserte Bestätigungsprüfung im Radio für einen bestimmten Initiator.
otPlatRadioDisable(otInstance *aInstance)
Deaktivieren Sie das Radio.
otPlatRadioEnable(otInstance *aInstance)
Radio aktivieren
otPlatRadioEnableCsl(otInstance *aInstance, uint32_t aCslPeriod, otShortAddress aShortAddr, const otExtAddress *aExtAddr)
CSL-Empfänger aktivieren oder deaktivieren.
otPlatRadioEnableSrcMatch(otInstance *aInstance, bool aEnable)
void
Funktion zum Abgleich von Quelladressen aktivieren/deaktivieren
otPlatRadioEnergyScan(otInstance *aInstance, uint8_t aScanChannel, uint16_t aScanDuration)
Beginne die Sequenz des Energiescans im Radio.
otPlatRadioEnergyScanDone(otInstance *aInstance, int8_t aEnergyScanMaxRssi)
void
Der Radiotreiber ruft diese Methode auf, um OpenThread darüber zu informieren, dass der Energiescan abgeschlossen ist.
otPlatRadioGetCoexMetrics(otInstance *aInstance, otRadioCoexMetrics *aCoexMetrics)
Messwerte zur Koexistenz von Radiosendern abrufen.
otPlatRadioGetCslAccuracy(otInstance *aInstance)
uint8_t
Hiermit wird die aktuelle geschätzte Worst-Case-Genauigkeit (maximale ± Abweichung von der Nennfrequenz) der lokalen Radiouhr in PPM ermittelt.
otPlatRadioGetCslUncertainty(otInstance *aInstance)
uint8_t
Die feste Unsicherheit (d.h.
otPlatRadioGetPreferredChannelMask(otInstance *aInstance)
uint32_t
Ruft die Maske für den bevorzugten Radiokanal ab, über den das Gerät sich vorzugsweise bilden möchte.
otPlatRadioGetRawPowerSetting(otInstance *aInstance, uint8_t aChannel, uint8_t *aRawPowerSetting, uint16_t *aRawPowerSettingLength)
Ruft die Stromeinstellung für den angegebenen Kanal ab.
otPlatRadioGetRegion(otInstance *aInstance, uint16_t *aRegionCode)
Rufen Sie den Regionscode ab.
otPlatRadioGetRssi(otInstance *aInstance)
int8_t
Aktuelle RSSI-Messung abrufen.
otPlatRadioGetState(otInstance *aInstance)
Aktuellen Radiostatus abrufen.
otPlatRadioGetSupportedChannelMask(otInstance *aInstance)
uint32_t
Rufen Sie die von Funkschnittstellen unterstützte Kanalmaske ab, die das Gerät verwenden darf.
otPlatRadioGetTransmitBuffer(otInstance *aInstance)
Rufen Sie den Frame-Zwischenspeicher für Funkübertragungen ab.
otPlatRadioIsCoexEnabled(otInstance *aInstance)
bool
Prüfen Sie, ob Radiocoex aktiviert ist.
otPlatRadioIsEnabled(otInstance *aInstance)
bool
Prüfen Sie, ob der Radiosender aktiviert ist.
otPlatRadioReceive(otInstance *aInstance, uint8_t aChannel)
Stelle das Radio vom Ruhemodus auf den Empfang um (Schalte das Radio ein).
otPlatRadioReceiveAt(otInstance *aInstance, uint8_t aChannel, uint32_t aStart, uint32_t aDuration)
Sie können ein Radioempfangsfenster für eine bestimmte Uhrzeit und Dauer festlegen.
otPlatRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Der Radiotreiber ruft diese Methode auf, um OpenThread über einen empfangenen Frame zu informieren.
otPlatRadioSetChannelMaxTransmitPower(otInstance *aInstance, uint8_t aChannel, int8_t aMaxPower)
Legen Sie die maximale Sendeleistung für einen bestimmten Kanal fest.
otPlatRadioSetChannelTargetPower(otInstance *aInstance, uint8_t aChannel, int16_t aTargetPower)
Legt die Zielstärke für den jeweiligen Kanal fest.
otPlatRadioSetCoexEnabled(otInstance *aInstance, bool aEnabled)
Radiokoex aktivieren
otPlatRadioSetRegion(otInstance *aInstance, uint16_t aRegionCode)
Legen Sie den Regionscode fest.
otPlatRadioSleep(otInstance *aInstance)
Schalte das Radio vom Empfangen in den Ruhemodus um (schalte das Radio aus).
otPlatRadioTransmit(otInstance *aInstance, otRadioFrame *aFrame)
Starten Sie die Übertragungssequenz über das Funkgerät.
otPlatRadioTxDone(otInstance *aInstance, otRadioFrame *aFrame, otRadioFrame *aAckFrame, otError aError)
void
Der Radiotreiber ruft diese Funktion auf, um OpenThread darüber zu informieren, dass der Übertragungsvorgang abgeschlossen ist. Dabei werden sowohl der übertragene Frame als auch gegebenenfalls der empfangene Bestätigungsframe bereitgestellt.
otPlatRadioTxStarted(otInstance *aInstance, otRadioFrame *aFrame)
void
Der Funktreiber ruft diese Methode auf, um OpenThread darüber zu informieren, dass die Übertragung gestartet wurde.
otPlatRadioUpdateCslSampleTime(otInstance *aInstance, uint32_t aCslSampleTime)
void
CSL-Beispielzeit im Radiotreiber aktualisieren.

Funktionen

otPlatDiagRadioReceiveDone

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

Der Radiotreiber ruft diese Methode auf, um das OpenThread-Diagnosemodul über einen empfangenen Frame zu informieren.

Wird verwendet, wenn die Diagnose aktiviert ist.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aFrame
Ein Zeiger auf den empfangenen Frame oder NULL, wenn der Empfangsvorgang fehlgeschlagen ist.
[in] aError
OT_ERROR_NONE wenn ein Frame erfolgreich empfangen wurde, OT_ERROR_ABORT, wenn der Empfang abgebrochen und ein Frame nicht empfangen wurde, OT_ERROR_NO_BUFS wenn ein Frame aufgrund eines fehlenden rx-Pufferbereichs nicht empfangen werden konnte.

otPlatDiagRadioTransmitDone

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

Der Funktreiber ruft diese Methode auf, um das OpenThread-Diagnosemodul darüber zu informieren, dass die Übertragung abgeschlossen ist.

Wird verwendet, wenn die Diagnose aktiviert ist.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aFrame
Ein Zeiger auf den Frame, der übertragen wurde.
[in] aError
OT_ERROR_NONE als der Frame übertragen wurde, konnte OT_ERROR_CHANNEL_ACCESS_FAILURE aufgrund von Aktivitäten auf dem Kanal nicht ausgeführt werden, OT_ERROR_ABORT, wenn die Übertragung aus anderen Gründen abgebrochen wurde.

otPlatRadioAddCalibratedPower

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

Fügen Sie der Leistungskalibrierungstabelle eine kalibrierte Leistung des angegebenen Kanals hinzu.

aActualPower ist die tatsächlich gemessene Ausgangsleistung, wenn die Parameter der Funkhardwaremodule auf aRawPowerSetting eingestellt sind.

Die Einstellung für die reine Leistung ist ein intransparentes Byte-Array. OpenThread definiert nicht das Format der Einstellung für die Rohstärke. Das Format hängt von der Radiohardware ab und sollte von den Entwicklern im Plattform-Radiotreiber definiert werden. Wenn die Funkhardware beispielsweise sowohl den Radiochip als auch den FEM-Chip enthält, kann die Einstellung für die Rohleistung eine Kombination aus dem Radio-Power-Register und dem FEM-Verstärkungswert sein.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aChannel
Der Radiokanal.
[in] aActualPower
Die tatsächliche Leistung in 0,01 dBm.
[in] aRawPowerSetting
Ein Zeiger auf das Byte-Array für die Einstellung der Rohleistung.
[in] aRawPowerSettingLength
Die Länge von aRawPowerSetting.
Rückgabewerte
OT_ERROR_NONE
Die kalibrierte Leistung wurde der Kalibrierungstabelle hinzugefügt.
OT_ERROR_NO_BUFS
Kein Eintrag in der Tabelle der Leistungskalibrierung verfügbar.
OT_ERROR_INVALID_ARGS
aChannel, aActualPower oder aRawPowerSetting ist ungültig oder aActualPower ist bereits in der Tabelle zur Leistungskalibrierung vorhanden.
OT_ERROR_NOT_IMPLEMENTED
Diese Funktion ist nicht implementiert.

otPlatRadioAddSrcMatchExtEntry

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

Fügen Sie der Match-Table für die Quelladresse eine erweiterte Adresse hinzu.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aExtAddress
Die erweiterte Adresse, die hinzugefügt werden soll, und in Little-Endian-Bytereihenfolge gespeichert.
Rückgabewerte
OT_ERROR_NONE
Die erweiterte Adresse wurde der Quell-Match-Table hinzugefügt.
OT_ERROR_NO_BUFS
Kein Eintrag in der Quell-Match-Table verfügbar.

otPlatRadioAddSrcMatchShortEntry

otError otPlatRadioAddSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Fügen Sie der Match-Table für die Quelladresse eine Kurzadresse hinzu.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aShortAddress
Die kurze Adresse, die hinzugefügt werden soll.
Rückgabewerte
OT_ERROR_NONE
Die Kurzadresse wurde der Quell-Match-Table hinzugefügt.
OT_ERROR_NO_BUFS
Kein Eintrag in der Quell-Match-Table verfügbar.

otPlatRadioClearCalibratedPowers

otError otPlatRadioClearCalibratedPowers(
  otInstance *aInstance
)

Löschen Sie alle kalibrierten Leistungsstärken aus der Leistungskalibrierungstabelle.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
Rückgabewerte
OT_ERROR_NONE
Alle kalibrierten Leistungsstärken wurden aus der Kalibrierungstabelle gelöscht.
OT_ERROR_NOT_IMPLEMENTED
Diese Funktion ist nicht implementiert.

otPlatRadioClearSrcMatchExtEntries

void otPlatRadioClearSrcMatchExtEntries(
  otInstance *aInstance
)

Löscht alle erweiterten/langen Adressen aus der Match-Table für die Quelladresse.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.

otPlatRadioClearSrcMatchExtEntry

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

Entfernen Sie eine erweiterte Adresse aus der Match-Table für die Quelladresse.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aExtAddress
Die zu entfernende erweiterte Adresse und in Little-Endian-Bytereihenfolge gespeichert.
Rückgabewerte
OT_ERROR_NONE
Die erweiterte Adresse wurde aus der Quell-Match-Table entfernt.
OT_ERROR_NO_ADDRESS
Die erweiterte Adresse ist nicht in der Match-Table für die Quelladresse enthalten.

otPlatRadioClearSrcMatchShortEntries

void otPlatRadioClearSrcMatchShortEntries(
  otInstance *aInstance
)

Löschen Sie alle Kurzadressen aus der Match-Table für die Quelladresse.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.

otPlatRadioClearSrcMatchShortEntry

otError otPlatRadioClearSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Entfernen Sie eine Kurzadresse aus der Match-Table für die Quelladresse.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aShortAddress
Die zu entfernende Kurzadresse.
Rückgabewerte
OT_ERROR_NONE
Die Kurzadresse wurde aus der Quell-Match-Table entfernt.
OT_ERROR_NO_ADDRESS
Die Kurzadresse ist nicht in der Match-Table für die Quelladresse enthalten.

otPlatRadioConfigureEnhAckProbing

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

Aktiviert, deaktiviert oder aktualisiert die verbesserte Bestätigungsprüfung im Radio für einen bestimmten Initiator.

Nachdem die erweiterte Bestätigungsprüfung durch einen bestimmten Prüfungsinitiator konfiguriert wurde, sollte die an diesen Knoten gesendete erweiterte Bestätigungsanfrage einen anbieterspezifischen IE mit Daten zu den Linkmesswerten enthalten. Mit dieser Methode wird das Radio angewiesen, die Erfassung von Linkmesswerten zu starten/stoppen, und den anbieterspezifischen IE mit einzubeziehen, der die Daten in der erweiterten Bestätigung enthält, die an diesen Prüfungsinitiator gesendet wurden.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aLinkMetrics
Dieser Parameter gibt an, welche Messwerte abgefragt werden sollen. Gemäß Spezifikation 4.11.3.4.4.6 können maximal 2 Messwerte angegeben werden. Die Prüfung wird deaktiviert, wenn aLinkMetrics bitweise 0 ist.
[in] aShortAddress
Die Kurzadresse des Prüfungsinitiators.
[in] aExtAddress
Die erweiterte Quelladresse des Prüfungsinitiators. aExtAddr DARF NICHT NULL sein.
Rückgabewerte
OT_ERROR_NONE
Die Prüfung auf der Grundlage erweiterter Bestätigungen wurde erfolgreich konfiguriert.
OT_ERROR_INVALID_ARGS
aExtAddress liegt bei NULL.
OT_ERROR_NOT_FOUND
Der durch aShortAddress angegebene Initiator wurde beim Löschen nicht gefunden.
OT_ERROR_NO_BUFS
Es kann kein Initiator mehr unterstützt werden.
OT_ERROR_NOT_IMPLEMENTED
Die Funktion ist nicht implementiert.

otPlatRadioDisable

otError otPlatRadioDisable(
  otInstance *aInstance
)

Deaktivieren Sie das Radio.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
Rückgabewerte
OT_ERROR_NONE
Auf „Deaktiviert“ umgestellt.
OT_ERROR_INVALID_STATE
Das Radio war nicht im Ruhemodus.

otPlatRadioEnable

otError otPlatRadioEnable(
  otInstance *aInstance
)

Radio aktivieren

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
Rückgabewerte
OT_ERROR_NONE
Aktiviert.
OT_ERROR_FAILED
Das Radio konnte nicht aktiviert werden.

otPlatRadioEnableCsl

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

CSL-Empfänger aktivieren oder deaktivieren.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aCslPeriod
CSL-Zeitraum, 0 zum Deaktivieren von CSL. Der CSL-Zeitraum wird in einer Einheit von 10 Symbolen angegeben.
[in] aShortAddr
Die kurze Quelladresse des Peers des CSL-Empfängers.
[in] aExtAddr
Die erweiterte Quelladresse des Peers des CSL-Empfängers.
Rückgabewerte
kErrorNotImplemented
Der Radiotreiber unterstützt CSL nicht.
kErrorFailed
Andere plattformspezifische Fehler.
kErrorNone
CSL wurde aktiviert oder deaktiviert.

otPlatRadioEnableSrcMatch

void otPlatRadioEnableSrcMatch(
  otInstance *aInstance,
  bool aEnable
)

Funktion zum Abgleich von Quelladressen aktivieren/deaktivieren

Die Funktion zum Abgleich der Quelladresse steuert, wie die Optionsfeldebene das Bit „Frame pending“ für Bestätigungen entscheidet, die als Antwort auf Datenanfragebefehle von untergeordneten Elementen gesendet werden.

Wenn diese Option deaktiviert ist, muss die Optionsfeldebene für alle Befehle vom Typ „Acks to data request“ (Frame ausstehend) festlegen.

Wenn diese Option aktiviert ist, verwendet die Optionsfeldebene die Übereinstimmungstabelle der Quelladresse, um zu bestimmen, ob das Bit „Frame ausstehend“ in einer Bestätigung zu einem Datenanfragebefehl gesetzt oder gelöscht wird.

Die Match-Table für die Quelladresse enthält die Liste der untergeordneten Elemente, für die ein ausstehender Frame vorhanden ist. Der Match-Table für die Quelladresse kann entweder eine Kurzadresse oder eine erweiterte/lange Adresse hinzugefügt werden.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aEnable
Funktion zum Abgleich von Quelladressen aktivieren/deaktivieren.

otPlatRadioEnergyScan

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

Beginne die Sequenz des Energiescans im Radio.

Wird verwendet, wenn die Funkschnittstelle OT_RADIO_CAPS_ENERGY_SCAN bietet.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aScanChannel
Der Kanal, für den der Energiesuchlauf durchgeführt werden soll.
[in] aScanDuration
Die Dauer in Millisekunden für den Suchlauf des Kanals.
Rückgabewerte
OT_ERROR_NONE
Kanalsuche erfolgreich gestartet.
OT_ERROR_BUSY
Das Radio sucht nun nach Energie.
OT_ERROR_NOT_IMPLEMENTED
Energiescan wird vom Radio nicht unterstützt.

otPlatRadioEnergyScanDone

void otPlatRadioEnergyScanDone(
  otInstance *aInstance,
  int8_t aEnergyScanMaxRssi
)

Der Radiotreiber ruft diese Methode auf, um OpenThread darüber zu informieren, dass der Energiescan abgeschlossen ist.

Wird verwendet, wenn die Funkschnittstelle OT_RADIO_CAPS_ENERGY_SCAN bietet.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aEnergyScanMaxRssi
Der maximal auf dem gescannten Kanal gefundene RSSI.

otPlatRadioGetCoexMetrics

otError otPlatRadioGetCoexMetrics(
  otInstance *aInstance,
  otRadioCoexMetrics *aCoexMetrics
)

Messwerte zur Koexistenz von Radiosendern abrufen.

Wird verwendet, wenn die Funktion OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE aktiviert ist.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[out] aCoexMetrics
Ein Zeiger auf die Messwertstruktur für die Koexistenz.
Rückgabewerte
OT_ERROR_NONE
Coex-Messwerte wurden abgerufen.
OT_ERROR_INVALID_ARGS
aCoexMetrics war NULL.

otPlatRadioGetCslAccuracy

uint8_t otPlatRadioGetCslAccuracy(
  otInstance *aInstance
)

Hiermit wird die aktuelle geschätzte Worst-Case-Genauigkeit (maximale ± Abweichung von der Nennfrequenz) der lokalen Radiouhr in PPM ermittelt.

Dies ist die Zeit, die zum Planen von CSL-Vorgängen verwendet wird.

Falls die Implementierung nicht den aktuellen Wert schätzt, aber einen festen Wert zurückgibt, MUSS dieser Wert die ungünstigste Genauigkeit über alle möglichen vorhersehbaren Betriebsbedingungen der Implementierung hinweg bieten.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Die aktuelle CSL-rx/tx-Planungsabweichung in PPM.

otPlatRadioGetCslUncertainty

uint8_t otPlatRadioGetCslUncertainty(
  otInstance *aInstance
)

Die feste Unsicherheit (d.h.

zufälliger Jitter) der Ankunftszeit von CSL-Übertragungen, die von diesem Gerät empfangen werden, in Einheiten von 10 Mikrosekunden.

Dies bezeichnet die ungünstigste konstante positive oder negative Abweichung der tatsächlichen Ankunftszeit einer Übertragung von der Übertragungszeit, die relativ zur lokalen Radiouhr unabhängig von der verstrichenen Zeit berechnet wurde. Zusätzlich zu der über die verstrichenen Zeit akkumulierten Unsicherheit muss das CSL-Kanalbeispiel („RX-Fenster“) um die doppelte Abweichung erweitert werden, sodass bei einem zufälligen Eingangszeitjitter garantiert eine tatsächliche Übertragung vom lokalen Empfänger erkannt wird.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Die CSL-Unsicherheit in Einheiten von 10 us.

otPlatRadioGetPreferredChannelMask

uint32_t otPlatRadioGetPreferredChannelMask(
  otInstance *aInstance
)

Ruft die Maske für den bevorzugten Radiokanal ab, über den das Gerät sich vorzugsweise bilden möchte.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
Rückgabe
Die Maske für den bevorzugten Radiokanal.

otPlatRadioGetRawPowerSetting

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

Ruft die Stromeinstellung für den angegebenen Kanal ab.

Die Plattform-Funkschnittstelle sollte die Einstellung für die Rohleistung anhand des durch die Funkschicht definierten Formats parsen und die Parameter jedes Funkhardwaremoduls festlegen.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aChannel
Der Radiokanal.
[out] aRawPowerSetting
Ein Zeiger auf das Byte-Array für die Einstellung der Rohleistung.
[in,out] aRawPowerSettingLength
Bei der Eingabe ein Zeiger auf die Größe von aRawPowerSetting. Bei der Ausgabe ein Zeiger auf die Länge der Leistungseinstellungsdaten.
Rückgabewerte
OT_ERROR_NONE
Zielstärke wurde abgerufen.
OT_ERROR_INVALID_ARGS
aChannel ist ungültig, aRawPowerSetting oder aRawPowerSettingLength ist NULL oder zu kurz.
OT_ERROR_NOT_FOUND
Die Einstellung für den Stromverbrauch von aChannel wurde nicht gefunden.

otPlatRadioGetRegion

otError otPlatRadioGetRegion(
  otInstance *aInstance,
  uint16_t *aRegionCode
)

Rufen Sie den Regionscode ab.

Das Format der Funkregion entspricht der 2-Byte-ASCII-Darstellung des Alpha-2-Codes nach ISO 3166.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[out] aRegionCode
Die Funkregion.
Rückgabewerte
OT_ERROR_INVALID_ARGS
aRegionCode ist nullptr.
OT_ERROR_FAILED
Andere plattformspezifische Fehler.
OT_ERROR_NONE
Regionscode wurde abgerufen.
OT_ERROR_NOT_IMPLEMENTED
Die Funktion ist nicht implementiert.

otPlatRadioGetRssi

int8_t otPlatRadioGetRssi(
  otInstance *aInstance
)

Aktuelle RSSI-Messung abrufen.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
Rückgabe
RSSI in dBm, wenn er gültig ist. wenn RSSI ungültig ist.

otPlatRadioGetState

otRadioState otPlatRadioGetState(
  otInstance *aInstance
)

Aktuellen Radiostatus abrufen.

Wird für OpenThread nicht benötigt. Sie kann für die Fehlerbehebung und/oder anwendungsspezifische Zwecke verwendet werden.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
Rückgabe
Aktueller Status des Radios.

otPlatRadioGetSupportedChannelMask

uint32_t otPlatRadioGetSupportedChannelMask(
  otInstance *aInstance
)

Rufen Sie die von Funkschnittstellen unterstützte Kanalmaske ab, die das Gerät verwenden darf.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
Rückgabe
Die von Funkschnittstellen unterstützte Kanalmaske.

otPlatRadioGetTransmitBuffer

otRadioFrame * otPlatRadioGetTransmitBuffer(
  otInstance *aInstance
)

Rufen Sie den Frame-Zwischenspeicher für Funkübertragungen ab.

OpenThread bildet den IEEE 802.15.4-Frame in diesem Zwischenspeicher und ruft dann otPlatRadioTransmit() auf, um die Übertragung anzufordern.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
Rückgabe
Ein Zeiger auf den Übertragungs-Frame-Zwischenspeicher.

otPlatRadioIsCoexEnabled

bool otPlatRadioIsCoexEnabled(
  otInstance *aInstance
)

Prüfen Sie, ob Radiocoex aktiviert ist.

Wird verwendet, wenn die Funktion OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE aktiviert ist.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
Rückgabe
TRUE, wenn der Radiokoex aktiviert ist, andernfalls FALSE.

otPlatRadioIsEnabled

bool otPlatRadioIsEnabled(
  otInstance *aInstance
)

Prüfen Sie, ob der Radiosender aktiviert ist.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
Rückgabe
TRUE, wenn die Funkschnittstelle aktiviert ist, andernfalls FALSE.

otPlatRadioReceive

otError otPlatRadioReceive(
  otInstance *aInstance,
  uint8_t aChannel
)

Stelle das Radio vom Ruhemodus auf den Empfang um (Schalte das Radio ein).

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aChannel
Der Kanal, der für den Empfang verwendet werden soll.
Rückgabewerte
OT_ERROR_NONE
Auf „Empfangen“ umgestellt.
OT_ERROR_INVALID_STATE
Das Radio wurde deaktiviert oder überträgt.

otPlatRadioReceiveAt

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

Sie können ein Radioempfangsfenster für eine bestimmte Uhrzeit und Dauer festlegen.

Details
Parameter
[in] aChannel
Der Radiokanal, über den der Empfang erfolgen soll.
[in] aStart
Die Startzeit des Empfangsfensters bezogen auf die lokale Radiouhr, siehe otPlatRadioGetNow. Der Funkempfänger IST zum Beginn des Fensters eingeschaltet und bereit, das erste Symbol des SHR eines Frames zu empfangen.
[in] aDuration
Die Dauer des Empfangsfensters in Mikrosekunden, gemessen von der lokalen Radiouhr. Nach diesem Zeitraum SOLLTE die Funkverbindung ausgeschaltet werden (oder in den TX-Modus wechseln, wenn ein ACK-Frame gesendet werden muss), es sei denn, sie empfängt noch aktiv einen Frame. In letzterem Fall IST die Funkschnittstelle im Empfangsmodus, bis der Frame-Empfang entweder erfolgreich war oder fehlgeschlagen ist.
Rückgabewerte
OT_ERROR_NONE
Empfangsfenster wurde geplant.
OT_ERROR_FAILED
Das Empfangsfenster konnte nicht geplant werden.

otPlatRadioReceiveDone

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

Der Radiotreiber ruft diese Methode auf, um OpenThread über einen empfangenen Frame zu informieren.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aFrame
Ein Zeiger auf den empfangenen Frame oder NULL, wenn der Empfangsvorgang fehlgeschlagen ist.
[in] aError
OT_ERROR_NONE wenn ein Frame erfolgreich empfangen wurde, OT_ERROR_ABORT, wenn der Empfang abgebrochen und ein Frame nicht empfangen wurde, OT_ERROR_NO_BUFS wenn ein Frame aufgrund eines fehlenden rx-Pufferbereichs nicht empfangen werden konnte.

otPlatRadioSetChannelMaxTransmitPower

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

Legen Sie die maximale Sendeleistung für einen bestimmten Kanal fest.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aChannel
Der Radiokanal.
[in] aMaxPower
Die maximale Leistung in dBm bei Übergabe von OT_RADIO_RSSI_INVALID deaktiviert diesen Kanal.
Rückgabewerte
OT_ERROR_NOT_IMPLEMENTED
Die Funktion ist nicht implementiert.
OT_ERROR_INVALID_ARGS
Der angegebene Kanal ist ungültig.
OT_ERROR_FAILED
Andere plattformspezifische Fehler.
OT_ERROR_NONE
Maximale Sendeleistung wurde festgelegt.

otPlatRadioSetChannelTargetPower

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

Legt die Zielstärke für den jeweiligen Kanal fest.

Der Radiotreiber sollte die tatsächliche Ausgangsleistung so einstellen, dass sie kleiner oder gleich der Zielleistung und möglichst nah an der Zielleistung liegt.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aChannel
Der Radiokanal.
[in] aTargetPower
Die Zielleistung in 0,01 dBm. Wenn INT16_MAX übergeben wird, kann dieser Kanal die Zielstärke nicht mehr verwenden.
Rückgabewerte
OT_ERROR_NONE
Zielleistung wurde festgelegt.
OT_ERROR_INVALID_ARGS
aChannel oder aTargetPower ist ungültig.
OT_ERROR_NOT_IMPLEMENTED
Die Funktion ist nicht implementiert.

otPlatRadioSetCoexEnabled

otError otPlatRadioSetCoexEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Radiokoex aktivieren

Wird verwendet, wenn die Funktion OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE aktiviert ist.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aEnabled
TRUE, um den Radiokoex zu aktivieren, andernfalls FALSE.
Rückgabewerte
OT_ERROR_NONE
Aktiviert.
OT_ERROR_FAILED
Der Radio-Coex konnte nicht aktiviert werden.

otPlatRadioSetRegion

otError otPlatRadioSetRegion(
  otInstance *aInstance,
  uint16_t aRegionCode
)

Legen Sie den Regionscode fest.

Das Format der Funkregion entspricht der 2-Byte-ASCII-Darstellung des Alpha-2-Codes nach ISO 3166.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aRegionCode
Der Regionscode der Funkschnittstelle. aRegionCode >> 8 ist das erste ASCII-Zeichen und aRegionCode & 0xff ist das zweite ASCII-Zeichen.
Rückgabewerte
OT_ERROR_FAILED
Andere plattformspezifische Fehler.
OT_ERROR_NONE
Regionscode erfolgreich festgelegt.
OT_ERROR_NOT_IMPLEMENTED
Die Funktion ist nicht implementiert.

otPlatRadioSleep

otError otPlatRadioSleep(
  otInstance *aInstance
)

Schalte das Radio vom Empfangen in den Ruhemodus um (schalte das Radio aus).

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
Rückgabewerte
OT_ERROR_NONE
Wechsel zu Ruhemodus.
OT_ERROR_BUSY
Die Funkübertragung hat übertragen.
OT_ERROR_INVALID_STATE
Das Radio wurde deaktiviert.

otPlatRadioTransmit

otError otPlatRadioTransmit(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

Starten Sie die Übertragungssequenz über das Funkgerät.

Der Aufrufer muss den IEEE 802.15.4-Frame im von otPlatRadioGetTransmitBuffer() bereitgestellten Zwischenspeicher bilden, bevor er die Übertragung anfordert. Der Kanal und die Sendeleistung sind ebenfalls in der otRadioFrame-Struktur enthalten.

Die Übertragungssequenz besteht aus:

  1. Die Funkverbindung wird von einem der folgenden Status auf „Transmit“ umgestellt:
    • Empfangen, wenn RX bei inaktivem Gerät aktiviert ist oder OT_RADIO_CAPS_SLEEP_TO_TX nicht unterstützt wird
    • Ruhemodus, wenn RX deaktiviert und das Gerät inaktiv ist und OT_RADIO_CAPS_SLEEP_TO_TX unterstützt wird.
  2. Überträgt den psdu auf dem gegebenen Kanal und mit der angegebenen Sendeleistung.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aFrame
Ein Zeiger auf den Frame, der übertragen werden soll.
Rückgabewerte
OT_ERROR_NONE
Auf Übertragen umgestellt.
OT_ERROR_INVALID_STATE
Das Radio befand sich nicht im Status „Empfangen“.

otPlatRadioTxDone

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

Der Radiotreiber ruft diese Funktion auf, um OpenThread darüber zu informieren, dass der Übertragungsvorgang abgeschlossen ist. Dabei werden sowohl der übertragene Frame als auch gegebenenfalls der empfangene Bestätigungsframe bereitgestellt.

Wenn der Radiodienst OT_RADIO_CAPS_TRANSMIT_SEC-Funktionen bietet, aktualisiert die Funkplattformebene aFrame mit dem Sicherheitsframe-Zähler und den Schlüsselindexwerten, die vom Funkgerät verwaltet werden.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aFrame
Ein Zeiger auf den Frame, der übertragen wurde.
[in] aAckFrame
Ein Zeiger auf den ACK-Frame, NULL, wenn keine ACK empfangen wurde.
[in] aError
OT_ERROR_NONE wenn der Frame übertragen wurde, OT_ERROR_NO_ACK , wenn der Frame übertragen wurde, aber keine ACK empfangen wurde, OT_ERROR_CHANNEL_ACCESS_FAILURE tx konnte aufgrund von Aktivitäten auf dem Kanal nicht durchgeführt werden, OT_ERROR_ABORT, wenn die Übertragung aus anderen Gründen abgebrochen wurde.

otPlatRadioTxStarted

void otPlatRadioTxStarted(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

Der Funktreiber ruft diese Methode auf, um OpenThread darüber zu informieren, dass die Übertragung gestartet wurde.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanzstruktur.
[in] aFrame
Ein Zeiger auf den Frame, der übertragen wird.

otPlatRadioUpdateCslSampleTime

void otPlatRadioUpdateCslSampleTime(
  otInstance *aInstance,
  uint32_t aCslSampleTime
)

CSL-Beispielzeit im Radiotreiber aktualisieren.

Die Stichprobenzeit wird im Radiotreiber als Kopie zur Berechnung der Phase beim Senden von ACK mit CSL IE gespeichert. Die CSL-Stichprobe (Fenster) des CSL-Empfängers wird vor und nach der Abtastzeit verlängert. Die CSL-Abtastzeit markiert einen Zeitstempel im CSL-Stichprobenfenster, zu dem ein Frame unter „idealen Bedingungen“ empfangen werden sollte, wenn es keine Ungenauigkeit/takten Drift gibt.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aCslSampleTime
Die nächste Stichprobenzeit in Mikrosekunden. Dies ist der Zeitpunkt, an dem das erste MHR-Symbol des Frames erwartet wird.

Ressourcen

OpenThread API-Referenzthemen stammen aus dem Quellcode, der auf GitHub verfügbar ist. Weitere Informationen finden Sie unter Ressourcen. Dort können Sie auch einen Beitrag zu unserer Dokumentation leisten.