Funkbetrieb

Dieses Modul enthält die Plattformabstraktion für Funkvorgänge.

Zusammenfassung

Funktionen

otPlatDiagRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Der Funktreiber 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 Kalibrierungstabelle 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 Kalibrierungstabelle.
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
Alle Kurzadressen aus der Match-Table für die Quelladresse löschen.
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 Enhanced-ACK-basierte Prüfung in Radio für einen bestimmten Initiator.
otPlatRadioDisable(otInstance *aInstance)
Deaktivieren Sie das Radio.
otPlatRadioEnable(otInstance *aInstance)
Aktiviere die Mobilfunkverbindung.
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 der Quelladresse 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 Funktreiber ruft diese Methode auf, um OpenThread darüber zu informieren, dass der Energiescan abgeschlossen ist.
otPlatRadioGetCoexMetrics(otInstance *aInstance, otRadioCoexMetrics *aCoexMetrics)
Messwerte für die 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 Funkuhr in PPM ermittelt.
otPlatRadioGetCslUncertainty(otInstance *aInstance)
uint8_t
Die feste Unsicherheit (d.h.
otPlatRadioGetPreferredChannelMask(otInstance *aInstance)
uint32_t
Ruft die vom Radio bevorzugte Kanalmaske ab, mit der sich das Gerät erstellen möchte.
otPlatRadioGetRawPowerSetting(otInstance *aInstance, uint8_t aChannel, uint8_t *aRawPowerSetting, uint16_t *aRawPowerSettingLength)
Hiermit wird die reine Energieeinstellung für den jeweiligen Kanal abgerufen.
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
Rufe die vom Radio unterstützte Kanalmaske ab, die das Gerät verwenden darf.
otPlatRadioGetTransmitBuffer(otInstance *aInstance)
Ruft den Frame-Zwischenspeicher für die Funkübertragung ab.
otPlatRadioIsCoexEnabled(otInstance *aInstance)
bool
Prüfen Sie, ob die Funktion „Coex“ aktiviert ist.
otPlatRadioIsEnabled(otInstance *aInstance)
bool
Überprüfen Sie, ob die Radiofunktion aktiviert ist.
otPlatRadioReceive(otInstance *aInstance, uint8_t aChannel)
Stelle das Radio von „Ruhemodus“ auf „Empfangen“ um (Schalte das Radio ein).
otPlatRadioReceiveAt(otInstance *aInstance, uint8_t aChannel, uint32_t aStart, uint32_t aDuration)
Planen Sie ein Radioempfangsfenster zu einer bestimmten Uhrzeit und Dauer.
otPlatRadioReceiveDone(otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Der Funktreiber 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 Übertragungsleistung für einen bestimmten Kanal fest.
otPlatRadioSetChannelTargetPower(otInstance *aInstance, uint8_t aChannel, int16_t aTargetPower)
Legen Sie die Zielstärke für den jeweiligen Channel fest.
otPlatRadioSetCoexEnabled(otInstance *aInstance, bool aEnabled)
Aktiviere die Funktion „Radio Coex“.
otPlatRadioSetRegion(otInstance *aInstance, uint16_t aRegionCode)
Legen Sie den Regionscode fest.
otPlatRadioSleep(otInstance *aInstance)
Das Radio von „Empfangen“ in den Ruhemodus wechseln (Radio ausschalten).
otPlatRadioTransmit(otInstance *aInstance, otRadioFrame *aFrame)
Starten Sie die Übertragungssequenz über das Funkgerät.
otPlatRadioTxDone(otInstance *aInstance, otRadioFrame *aFrame, otRadioFrame *aAckFrame, otError aError)
void
Der Funktreiber ruft diese Funktion auf, um OpenThread darüber zu informieren, dass der Übertragungsvorgang abgeschlossen ist. Dabei wird 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 Funktreiber 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 bei erfolgreichem Empfang eines Frames, OT_ERROR_ABORT, wenn der Empfang abgebrochen und ein Frame nicht empfangen wurde, OT_ERROR_NO_BUFS wenn ein Frame aufgrund eines fehlenden rx-Puffers 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 stattfinden, 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 Kalibrierungstabelle 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 Rohleistung. Das Format hängt von der Funkhardware ab und sollte von den Entwicklern im Plattform-Funktreiber definiert werden. Wenn die Funk-Hardware beispielsweise sowohl den Funk- als auch den FEM-Chip enthält, kann die Einstellung für die unverarbeitete Leistung 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 mit den Einstellungen für die reine Leistung.
[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 zur Kalibrierung der Stromversorgung 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, 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 verfügbarer Eintrag in der Quell-Match-Table.

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 Kurzadresse, die hinzugefügt werden soll.
Rückgabewerte
OT_ERROR_NONE
Die Kurzadresse wurde der Quell-Match-Table hinzugefügt.
OT_ERROR_NO_BUFS
Kein verfügbarer Eintrag in der Quell-Match-Table.

otPlatRadioClearCalibratedPowers

otError otPlatRadioClearCalibratedPowers(
  otInstance *aInstance
)

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

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.

otPlatRadioClearSrcMatchExtEinträge

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 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.

otPlatRadioClearSrcMatchShortEinträge

void otPlatRadioClearSrcMatchShortEntries(
  otInstance *aInstance
)

Alle Kurzadressen aus der Match-Table für die Quelladresse löschen.

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 Enhanced-ACK-basierte Prüfung in Radio für einen bestimmten Initiator.

Nachdem die Enhanced-ACK-basierte Prüfung durch einen bestimmten Prüfungsinitiator konfiguriert wurde, sollte das an diesen Knoten gesendete Enhanced-ACK einen anbieterspezifischen IE mit Link-Metriken-Daten enthalten. Mit dieser Methode wird das Radio zum Starten/Stoppen angewiesen, um Link-Metrikendaten zu erfassen und einen anbieterspezifischen IE einzubeziehen, der die an diesen Prüfungsinitiator gesendeten Daten im Enhanced-ACK enthält.

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 Enhanced-ACK-basierte Prüfung 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
Erfolgreich auf Deaktiviert umgestellt.
OT_ERROR_INVALID_STATE
Das Radio befand sich nicht im Ruhemodus.

otPlatRadioEnable

otError otPlatRadioEnable(
  otInstance *aInstance
)

Aktiviere die Mobilfunkverbindung.

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-Punkt 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 der Quelladresse aktivieren/deaktivieren.

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

Wenn diese Option deaktiviert ist, muss die Optionsfeldebene bei allen Aktualisierungen der Datenanfragebefehle die Option „Frame anstehend“ setzen.

Wenn diese Option aktiviert ist, verwendet die Optionsfeldebene die Match-Table für die Quelladresse, um zu bestimmen, ob das Bit „Frame Pending“ in einer Bestätigung eines Datenanfragebefehls gesetzt oder gelöscht wird.

Die Match-Table für die Quelladresse enthält eine 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 der Quelladresse aktivieren/deaktivieren.

otPlatRadioEnergyScan

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

Beginne die Sequenz des Energiescans im Radio.

Wird verwendet, wenn die Funkverbindung OT_RADIO_CAPS_ENERGY_SCAN bietet.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aScanChannel
Der Kanal, auf dem der Energiesuchlauf ausgeführt wird.
[in] aScanDuration
Die Dauer in Millisekunden für den zu durchsuchenden Kanal.
Rückgabewerte
OT_ERROR_NONE
Suche des Kanals wurde gestartet.
OT_ERROR_BUSY
Das Radio sucht nun nach Energie.
OT_ERROR_NOT_IMPLEMENTED
Das Radio unterstützt keine Energiesuche.

otPlatRadioEnergyScanDone

void otPlatRadioEnergyScanDone(
  otInstance *aInstance,
  int8_t aEnergyScanMaxRssi
)

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

Wird verwendet, wenn die Funkverbindung OT_RADIO_CAPS_ENERGY_SCAN bietet.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aEnergyScanMaxRssi
Der maximale RSSI, der auf dem gescannten Kanal gefunden wurde.

otPlatRadioGetCoexMetrics

otError otPlatRadioGetCoexMetrics(
  otInstance *aInstance,
  otRadioCoexMetrics *aCoexMetrics
)

Messwerte für die 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 Verweis auf die Messwertstruktur für die parallele Verwendung.
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 Funkuhr in PPM ermittelt.

Dies ist die Uhr, 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 schlechteste Genauigkeit unter allen möglichen vorhersehbaren Betriebsbedingungen (Temperatur, Druck usw.) der Implementierung sein.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Der aktuelle CSL-rx/tx-Planungsdrift 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 berechnet wurde, unabhängig von der verstrichenen Zeit. Zusätzlich zu der sich über die verstrichenen Zeit akkumulierten Unsicherheit muss das CSL-Kanalbeispiel („RX-Fenster“) um die doppelte Abweichung erweitert werden, sodass bei einem zufälligen Ankunftszeitjitter 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 vom Radio bevorzugte Kanalmaske ab, mit der sich das Gerät erstellen möchte.

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

otPlatRadioGetRawPowerSetting

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

Hiermit wird die reine Energieeinstellung für den jeweiligen Kanal abgerufen.

Die Plattformfunkebene sollte die Einstellung für die Rohleistung basierend auf dem durch die Funkebene definierten Format 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 mit den Einstellungen für die reine Leistung.
[in,out] aRawPowerSettingLength
Bei der Eingabe ein Zeiger auf die Größe von aRawPowerSetting. Bei der Ausgabe ein Zeiger auf die Länge der Energieeinstellungsdaten.
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 reine Energieeinstellung für aChannel wurde nicht gefunden.

otPlatRadioGetRegion

otError otPlatRadioGetRegion(
  otInstance *aInstance,
  uint16_t *aRegionCode
)

Rufen Sie den Regionscode ab.

Das Format für Radioregionen ist die 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. 127, wenn RSSI ungültig ist.

otPlatRadioGetState

otRadioState otPlatRadioGetState(
  otInstance *aInstance
)

Aktuellen Radiostatus abrufen.

Ist für OpenThread nicht erforderlich. 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.

otPlatRadioGetUnterstützteChannelMask

uint32_t otPlatRadioGetSupportedChannelMask(
  otInstance *aInstance
)

Rufe die vom Radio unterstützte Kanalmaske ab, die das Gerät verwenden darf.

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

otPlatRadioGetTransmitBuffer

otRadioFrame * otPlatRadioGetTransmitBuffer(
  otInstance *aInstance
)

Ruft den Frame-Zwischenspeicher für die Funkübertragung 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 die Funktion „Coex“ 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 das Radiokoex aktiviert ist, andernfalls FALSE.

otPlatRadioIsEnabled

bool otPlatRadioIsEnabled(
  otInstance *aInstance
)

Überprüfen Sie, ob die Radiofunktion aktiviert ist.

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

otPlatRadioEmpfang

otError otPlatRadioReceive(
  otInstance *aInstance,
  uint8_t aChannel
)

Stelle das Radio von „Ruhemodus“ auf „Empfangen“ 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
Umstellung auf Empfang abgeschlossen.
OT_ERROR_INVALID_STATE
Das Funkgerät wurde deaktiviert oder die Übertragung wurde durchgeführt.

otPlatRadioReceiveAt

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

Planen Sie ein Radioempfangsfenster zu einer bestimmten Uhrzeit und Dauer.

Details
Parameter
[in] aChannel
Der Radiokanal, auf dem der Empfang erfolgen soll.
[in] aStart
Die Startzeit des Empfangsfensters relativ zur lokalen Radiouhr, siehe otPlatRadioGetNow. Der Funkempfänger IST zur Startzeit des Fensters eingeschaltet und bereit, das erste Symbol der SHF eines Frames zu empfangen.
[in] aDuration
Die Dauer des Empfangsfensters in Mikrosekunden, gemessen von der lokalen Radiouhr. Nach Ablauf dieser Zeit SOLLTE die Funkanlage ausgeschaltet oder in den TX-Modus gewechselt werden, wenn ein ACK-Frame gesendet werden muss, es sei denn, sie empfängt noch aktiv einen Frame. In letzterem Fall WIRD das Funkgerät im Empfangsmodus belassen, bis der Frame-Empfang entweder erfolgreich war oder fehlgeschlagen ist.
Rückgabewerte
OT_ERROR_NONE
Das Empfangsfenster wurde geplant.
OT_ERROR_FAILED
Das Empfangsfenster konnte nicht geplant werden.

otPlatRadioReceiveDone

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

Der Funktreiber 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 bei erfolgreichem Empfang eines Frames, OT_ERROR_ABORT, wenn der Empfang abgebrochen und ein Frame nicht empfangen wurde, OT_ERROR_NO_BUFS wenn ein Frame aufgrund eines fehlenden rx-Puffers nicht empfangen werden konnte.

otPlatRadioSetChannelMaxTransmitPower

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

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

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aChannel
Der Radiokanal.
[in] aMaxPower
Durch die maximale Leistung in dBm, wenn OT_RADIO_RSSI_INVALID übergeben wird, wird dieser Kanal deaktiviert.
Rückgabewerte
OT_ERROR_NOT_IMPLEMENTED
Die Funktion ist nicht implementiert.
OT_ERROR_INVALID_ARGS
Der angegebene Channel ist ungültig.
OT_ERROR_FAILED
Andere plattformspezifische Fehler.
OT_ERROR_NONE
Maximale Übertragungsleistung wurde festgelegt.

otPlatRadioSetChannelTargetPower

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

Legen Sie die Zielstärke für den jeweiligen Channel fest.

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

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aChannel
Der Radiokanal.
[in] aTargetPower
Die Zielleistung in 0,01 dBm. Bei Übergabe von INT16_MAX wird die Zielkapazität für diesen Kanal deaktiviert.
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
)

Aktiviere die Funktion „Radio Coex“.

Wird verwendet, wenn die Funktion OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE aktiviert ist.

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

otPlatRadioSetRegion

otError otPlatRadioSetRegion(
  otInstance *aInstance,
  uint16_t aRegionCode
)

Legen Sie den Regionscode fest.

Das Format für Radioregionen ist die 2-Byte-ASCII-Darstellung des Alpha-2-Codes nach ISO 3166.

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

otPlatRadioSleep

otError otPlatRadioSleep(
  otInstance *aInstance
)

Das Radio von „Empfangen“ in den Ruhemodus wechseln (Radio ausschalten).

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
Rückgabewerte
OT_ERROR_NONE
Auf Ruhemodus umgestellt.
OT_ERROR_BUSY
Das Radio 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 anfordern kann. Der Kanal und die Übertragungsleistung 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 oder OT_RADIO_CAPS_SLEEP_TO_TX nicht unterstützt wird
    • Ruhemodus, wenn RX bei inaktivem Gerät ausgeschaltet und OT_RADIO_CAPS_SLEEP_TO_TX unterstützt wird.
  2. Überträgt den psdu auf dem angegebenen Kanal und mit der angegebenen Übertragungsleistung.

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

otPlatRadioTxDone

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

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

Wenn die Funkschnittstelle OT_RADIO_CAPS_TRANSMIT_SEC-Funktionalität bietet, aktualisiert die Funkplattformebene aFrame mit dem Sicherheitsframe-Zähler und den Schlüsselindexwerten, die über das Funksystem 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 kein ACK empfangen wurde.
[in] aError
OT_ERROR_NONE wenn der Frame übertragen wurde, OT_ERROR_NO_ACK wenn der Frame übertragen wurde, aber kein ACK empfangen wurde, konnte die OT_ERROR_CHANNEL_ACCESS_FAILURE tx 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 im CSL-Beispielfenster einen Zeitstempel, zu dem ein Frame unter „ideale Bedingungen“ empfangen werden sollte, wenn es keine Ungenauigkeit/Taktverwehung gibt.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aCslSampleTime
Die nächste Abtastzeit in Mikrosekunden. Dies ist die Zeit, zu der das erste Symbol der MHR 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.