Операция

Этот модуль включает абстракцию платформы для радиоопераций.

Резюме

Функции

otPlatDiagRadioReceiveDone ( otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Радиодрайвер вызывает этот метод, чтобы уведомить модуль диагностики OpenThread о полученном кадре.
otPlatDiagRadioTransmitDone ( otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Радиодрайвер вызывает этот метод, чтобы уведомить модуль диагностики OpenThread о завершении передачи.
otPlatRadioAddSrcMatchExtEntry ( otInstance *aInstance, const otExtAddress *aExtAddress)
Добавьте расширенный адрес в таблицу соответствия адресов источника.
otPlatRadioAddSrcMatchShortEntry ( otInstance *aInstance, otShortAddress aShortAddress)
Добавьте короткий адрес в таблицу соответствия исходных адресов.
otPlatRadioClearSrcMatchExtEntries ( otInstance *aInstance)
void
Удалите все расширенные / длинные адреса из таблицы соответствия исходных адресов.
otPlatRadioClearSrcMatchExtEntry ( otInstance *aInstance, const otExtAddress *aExtAddress)
Удалите расширенный адрес из таблицы соответствия адресов источника.
otPlatRadioClearSrcMatchShortEntries ( otInstance *aInstance)
void
Удалите все короткие адреса из таблицы соответствия исходных адресов.
otPlatRadioClearSrcMatchShortEntry ( otInstance *aInstance, otShortAddress aShortAddress)
Удалите короткий адрес из таблицы соответствия адресов источника.
otPlatRadioConfigureEnhAckProbing ( otInstance *aInstance, otLinkMetrics aLinkMetrics, otShortAddress aShortAddress, const otExtAddress *aExtAddress)
Включение / отключение или обновление проверки на основе Enhanced-ACK в радио для конкретного инициатора.
otPlatRadioDisable ( otInstance *aInstance)
Отключите радио.
otPlatRadioEnable ( otInstance *aInstance)
Включите радио.
otPlatRadioEnableCsl ( otInstance *aInstance, uint32_t aCslPeriod, otShortAddress aShortAddr, const otExtAddress *aExtAddr)
Включение или отключение приемника CSL.
otPlatRadioEnableSrcMatch ( otInstance *aInstance, bool aEnable)
void
Включение / отключение функции сопоставления исходного адреса.
otPlatRadioEnergyScan ( otInstance *aInstance, uint8_t aScanChannel, uint16_t aScanDuration)
Начните сканирование энергии на радио.
otPlatRadioEnergyScanDone ( otInstance *aInstance, int8_t aEnergyScanMaxRssi)
void
Радиодрайвер вызывает этот метод, чтобы уведомить OpenThread о завершении сканирования энергии.
otPlatRadioGetCoexMetrics ( otInstance *aInstance, otRadioCoexMetrics *aCoexMetrics)
Получите показатели сосуществования радио.
otPlatRadioGetCslAccuracy ( otInstance *aInstance)
uint8_t
Получите текущую точность часов, используемых для планирования операций CSL, в единицах ± ppm.
otPlatRadioGetCslClockUncertainty ( otInstance *aInstance)
uint8_t
Получите текущую погрешность в единицах 10 мкс для часов, используемых для планирования операций CSL.
otPlatRadioGetPreferredChannelMask ( otInstance *aInstance)
uint32_t
Получите маску предпочтительного радиоканала, на которой устройство предпочитает формировать.
otPlatRadioGetRegion ( otInstance *aInstance, uint16_t *aRegionCode)
Получите код региона.
otPlatRadioGetRssi ( otInstance *aInstance)
int8_t
Получите самое последнее измерение RSSI.
otPlatRadioGetState ( otInstance *aInstance)
Получите текущее состояние радио.
otPlatRadioGetSupportedChannelMask ( otInstance *aInstance)
uint32_t
Получите маску поддерживаемого радио канала, на котором разрешено использовать устройство.
otPlatRadioGetTransmitBuffer ( otInstance *aInstance)
Получите буфер кадра радиопередачи.
otPlatRadioIsCoexEnabled ( otInstance *aInstance)
bool
Проверьте, включен ли совместный радиоканал.
otPlatRadioIsEnabled ( otInstance *aInstance)
bool
Проверьте, включено ли радио.
otPlatRadioReceive ( otInstance *aInstance, uint8_t aChannel)
Переведите радио из режима сна в режим приема (включите радио).
otPlatRadioReceiveAt ( otInstance *aInstance, uint8_t aChannel, uint32_t aStart, uint32_t aDuration)
Запланируйте окно радиоприема на определенное время и продолжительность.
otPlatRadioReceiveDone ( otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Радиодрайвер вызывает этот метод, чтобы уведомить OpenThread о полученном кадре.
otPlatRadioSetChannelMaxTransmitPower ( otInstance *aInstance, uint8_t aChannel, int8_t aMaxPower)
Установите максимальную мощность передачи для определенного канала.
otPlatRadioSetCoexEnabled ( otInstance *aInstance, bool aEnabled)
Включите радио coex.
otPlatRadioSetRegion ( otInstance *aInstance, uint16_t aRegionCode)
Установите код региона.
otPlatRadioSleep ( otInstance *aInstance)
Переведите радио из режима приема в спящий режим (выключите радио).
otPlatRadioTransmit ( otInstance *aInstance, otRadioFrame *aFrame)
Начните передачу по радио.
otPlatRadioTxDone ( otInstance *aInstance, otRadioFrame *aFrame, otRadioFrame *aAckFrame, otError aError)
void
Радиодрайвер вызывает эту функцию, чтобы уведомить OpenThread о завершении операции передачи, предоставляя как переданный кадр, так и, если применимо, полученный кадр подтверждения.
otPlatRadioTxStarted ( otInstance *aInstance, otRadioFrame *aFrame)
void
Радиодрайвер вызывает этот метод, чтобы уведомить OpenThread о начале передачи.
otPlatRadioUpdateCslSampleTime ( otInstance *aInstance, uint32_t aCslSampleTime)
void
Обновите время выборки CSL в радиодрайвере.

Функции

otPlatDiagRadioReceiveDone

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

Радиодрайвер вызывает этот метод, чтобы уведомить модуль диагностики OpenThread о полученном кадре.

Эта функция используется, когда включена диагностика.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aFrame
Указатель на полученный кадр или NULL, если операция приема не удалась.
[in] aError
OT_ERROR_NONE при успешном получении кадра, OT_ERROR_ABORT, когда прием был прерван и кадр не был получен, OT_ERROR_NO_BUFS, когда кадр не может быть получен из-за нехватки места в буфере rx.

otPlatDiagRadioTransmitDone

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

Радиодрайвер вызывает этот метод, чтобы уведомить модуль диагностики OpenThread о завершении передачи.

Эта функция используется, когда включена диагностика.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aFrame
Указатель на переданный кадр.
[in] aError
OT_ERROR_NONE, когда кадр был передан, OT_ERROR_CHANNEL_ACCESS_FAILURE tx не мог произойти из-за активности на канале, OT_ERROR_ABORT, когда передача была прервана по другим причинам.

otPlatRadioAddSrcMatchExtEntry

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

Добавьте расширенный адрес в таблицу соответствия адресов источника.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aExtAddress
Добавляемый расширенный адрес сохраняется в порядке байтов с прямым порядком байтов.
Возвращаемые значения
OT_ERROR_NONE
Успешно добавлен расширенный адрес в исходную таблицу соответствия.
OT_ERROR_NO_BUFS
Нет доступной записи в исходной таблице соответствия.

otPlatRadioAddSrcMatchShortEntry

otError otPlatRadioAddSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Добавьте короткий адрес в таблицу соответствия исходных адресов.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aShortAddress
Добавляемый короткий адрес.
Возвращаемые значения
OT_ERROR_NONE
Успешно добавлен короткий адрес в исходную таблицу соответствия.
OT_ERROR_NO_BUFS
Нет доступной записи в исходной таблице соответствия.

otPlatRadioClearSrcMatchExtEntries

void otPlatRadioClearSrcMatchExtEntries(
  otInstance *aInstance
)

Удалите все расширенные / длинные адреса из таблицы соответствия исходных адресов.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.

otPlatRadioClearSrcMatchExtEntry

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

Удалите расширенный адрес из таблицы соответствия адресов источника.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aExtAddress
Удаляемый расширенный адрес сохраняется в порядке байтов с прямым порядком байтов.
Возвращаемые значения
OT_ERROR_NONE
Расширенный адрес успешно удален из исходной таблицы соответствия.
OT_ERROR_NO_ADDRESS
Расширенный адрес отсутствует в таблице соответствия адресов источника.

otPlatRadioClearSrcMatchShortEntries

void otPlatRadioClearSrcMatchShortEntries(
  otInstance *aInstance
)

Удалите все короткие адреса из таблицы соответствия исходных адресов.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.

otPlatRadioClearSrcMatchShortEntry

otError otPlatRadioClearSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Удалите короткий адрес из таблицы соответствия адресов источника.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aShortAddress
Короткий адрес, который нужно удалить.
Возвращаемые значения
OT_ERROR_NONE
Короткий адрес успешно удален из исходной таблицы соответствия.
OT_ERROR_NO_ADDRESS
Короткого адреса нет в таблице соответствия адресов источника.

otPlatRadioConfigureEnhAckProbing

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

Включение / отключение или обновление проверки на основе Enhanced-ACK в радио для конкретного инициатора.

После того, как зондирование на основе Enhanced-ACK настроено конкретным инициатором проверки, Enhanced-ACK, отправляемый на этот узел, должен включать IE, зависящий от поставщика, содержащий данные метрики канала. Этот метод информирует радиостанцию ​​о необходимости запуска / остановки для сбора данных метрики канала и включения IE, зависящего от поставщика, который содержит данные в Enhanced-ACK, отправленные этому инициатору проверки.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aLinkMetrics
Этот параметр указывает, какие показатели запрашивать. Согласно спецификации 4.11.3.4.4.6, можно указать не более 2 показателей. Пробный будет отключена , если aLinkMetrics является побитовое 0.
[in] aShortAddr
Краткий адрес инициатора зондирования.
[in] aExtAddr
Расширенный исходный адрес инициатора проверки. aExtAddr НЕ ДОЛЖНА быть NULL .
Возвращаемые значения
OT_ERROR_NONE
Успешно настроено зондирование на основе Enhanced-ACK.
OT_ERROR_INVALID_ARGS
aExtAddress является NULL .
OT_ERROR_NOT_FOUND
Инициатор указывает aShortAddress не найден при попытке очистить.
OT_ERROR_NO_BUFS
Инициатор больше не поддерживается.

otPlatRadioDisable

otError otPlatRadioDisable(
  otInstance *aInstance
)

Отключите радио.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
Возвращаемые значения
OT_ERROR_NONE
Успешно переведен в состояние "Отключено".
OT_ERROR_INVALID_STATE
Радио не было в спящем режиме.

otPlatRadioEnable

otError otPlatRadioEnable(
  otInstance *aInstance
)

Включите радио.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
Возвращаемые значения
OT_ERROR_NONE
Успешно включен.
OT_ERROR_FAILED
Не удалось включить радио.

otPlatRadioEnableCsl

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

Включение или отключение приемника CSL.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aCslPeriod
Период CSL, 0 для отключения CSL.
[in] aShortAddr
Короткий адрес источника однорангового узла получателя CSL.
[in] aExtAddr
Расширенный адрес источника однорангового получателя CSL.
Возвращаемые значения
kErrorNotImplemented
Радиодрайвер не поддерживает CSL.
kErrorFailed
Другие ошибки, специфичные для платформы.
kErrorNone
CSL успешно включен или отключен.

otPlatRadioEnableSrcMatch

void otPlatRadioEnableSrcMatch(
  otInstance *aInstance,
  bool aEnable
)

Включение / отключение функции сопоставления исходного адреса.

Функция сопоставления адресов источника управляет тем, как уровень радиосвязи определяет бит «ожидания кадра» для подтверждений, отправленных в ответ на команды запроса данных от дочерних элементов.

Если этот параметр отключен, уровень радиосвязи должен установить «ожидающий кадр» для всех подтверждений для команд запроса данных.

Если этот параметр включен, уровень радиосвязи использует таблицу соответствия адресов источника, чтобы определить, установить или сбросить бит «ожидающий кадр» в подтверждении для команды запроса данных.

Таблица соответствия исходных адресов предоставляет список дочерних элементов, для которых есть ожидающий фрейм. В таблицу соответствия адресов источника можно добавить короткий адрес или расширенный / длинный адрес.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aEnable
Включение / отключение функции сопоставления исходного адреса.

otPlatRadioEnergyScan

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

Начните сканирование энергии на радио.

Эта функция используется, когда радио предоставляет возможность OT_RADIO_CAPS_ENERGY_SCAN.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aScanChannel
Канал для выполнения сканирования энергии.
[in] aScanDuration
Продолжительность сканирования канала в миллисекундах.
Возвращаемые значения
OT_ERROR_NONE
Успешно начато сканирование канала.
OT_ERROR_NOT_IMPLEMENTED
Радио не поддерживает сканирование по энергии.

otPlatRadioEnergyScanDone

void otPlatRadioEnergyScanDone(
  otInstance *aInstance,
  int8_t aEnergyScanMaxRssi
)

Радиодрайвер вызывает этот метод, чтобы уведомить OpenThread о завершении сканирования энергии.

Эта функция используется, когда радио предоставляет возможность OT_RADIO_CAPS_ENERGY_SCAN.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aEnergyScanMaxRssi
Максимальный RSSI, обнаруженный на сканируемом канале.

otPlatRadioGetCoexMetrics

otError otPlatRadioGetCoexMetrics(
  otInstance *aInstance,
  otRadioCoexMetrics *aCoexMetrics
)

Получите показатели сосуществования радио.

Эта функция используется, когда включена функция OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[out] aCoexMetrics
Указатель на структуру показателей сосуществования.
Возвращаемые значения
OT_ERROR_NONE
Успешно получены метрики coex.
OT_ERROR_INVALID_ARGS
aCoexMetrics был NULL.

otPlatRadioGetCslAccuracy

uint8_t otPlatRadioGetCslAccuracy(
  otInstance *aInstance
)

Получите текущую точность часов, используемых для планирования операций CSL, в единицах ± ppm.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возврат
Текущее изменение расписания CSL rx / tx в единицах ± ppm.

otPlatRadioGetCslClockUncertainty

uint8_t otPlatRadioGetCslClockUncertainty(
  otInstance *aInstance
)

Получите текущую погрешность в единицах 10 мкс для часов, используемых для планирования операций CSL.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возврат
Текущая погрешность часов CSL в единицах 10 мкс.

otPlatRadioGetPreferredChannelMask

uint32_t otPlatRadioGetPreferredChannelMask(
  otInstance *aInstance
)

Получите маску предпочтительного радиоканала, на которой устройство предпочитает формировать.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
Возврат
Маска предпочтительного радиоканала.

otPlatRadioGetRegion

otError otPlatRadioGetRegion(
  otInstance *aInstance,
  uint16_t *aRegionCode
)

Получите код региона.

Формат радиообласти - это 2-байтовое представление ascii кода ISO 3166 alpha-2.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[out] aRegionCode
Радио регион.
Возвращаемые значения
OT_ERROR_INVALID_ARGS
aRegionCode является nullptr.
OT_ERROR_FAILED
Другие ошибки, специфичные для платформы.
OT_ERROR_NONE
Код региона получен.

otPlatRadioGetRssi

int8_t otPlatRadioGetRssi(
  otInstance *aInstance
)

Получите самое последнее измерение RSSI.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
Возврат
RSSI в дБм, если он действителен. 127, когда RSSI недействителен.

otPlatRadioGetState

otRadioState otPlatRadioGetState(
  otInstance *aInstance
)

Получите текущее состояние радио.

Эта функция не требуется OpenThread. Его можно использовать для отладки и / или для конкретных приложений.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
Возврат
Текущее состояние магнитолы.

otPlatRadioGetSupportedChannelMask

uint32_t otPlatRadioGetSupportedChannelMask(
  otInstance *aInstance
)

Получите маску поддерживаемого радио канала, на котором разрешено использовать устройство.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
Возврат
Радио поддерживает маску канала.

otPlatRadioGetTransmitBuffer

otRadioFrame * otPlatRadioGetTransmitBuffer(
  otInstance *aInstance
)

Получите буфер кадра радиопередачи.

OpenThread формирует IEEE 802.15.4 кадра в этом буфере затем вызывает otPlatRadioTransmit() для передачи запроса.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
Возврат
Указатель на буфер кадра передачи.

otPlatRadioIsCoexEnabled

bool otPlatRadioIsCoexEnabled(
  otInstance *aInstance
)

Проверьте, включен ли совместный радиоканал.

Эта функция используется, когда включена функция OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
Возврат
ИСТИНА, если радиосвязь включена, иначе - ЛОЖЬ.

otPlatRadioIsEnabled

bool otPlatRadioIsEnabled(
  otInstance *aInstance
)

Проверьте, включено ли радио.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
Возврат
ИСТИНА, если радио включено, иначе - ЛОЖЬ.

otPlatRadioReceive

otError otPlatRadioReceive(
  otInstance *aInstance,
  uint8_t aChannel
)

Переведите радио из режима сна в режим приема (включите радио).

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aChannel
Канал, который нужно использовать для приема.
Возвращаемые значения
OT_ERROR_NONE
Успешно перешел на получение.
OT_ERROR_INVALID_STATE
Радио было отключено или работало.

otPlatRadioReceiveAt

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

Запланируйте окно радиоприема на определенное время и продолжительность.

Подробности
Параметры
[in] aChannel
Радиоканал для приема.
[in] aStart
Время начала окна приема в микросекундах.
[in] aDuration
Продолжительность окна приема в микросекундах
Возвращаемые значения
OT_ERROR_NONE
Окно приема успешно запланировано.
OT_ERROR_FAILED
Окно приема не может быть запланировано.

otPlatRadioReceiveDone

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

Радиодрайвер вызывает этот метод, чтобы уведомить OpenThread о полученном кадре.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aFrame
Указатель на полученный кадр или NULL, если операция приема не удалась.
[in] aError
OT_ERROR_NONE при успешном получении кадра, OT_ERROR_ABORT, когда прием был прерван и кадр не был получен, OT_ERROR_NO_BUFS, когда кадр не может быть получен из-за нехватки места в буфере rx.

otPlatRadioSetChannelMaxTransmitPower

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

Установите максимальную мощность передачи для определенного канала.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aChannel
Радиоканал.
[in] aMaxPower
Максимальная мощность в дБм, передача OT_RADIO_RSSI_INVALID отключит этот канал.
Возвращаемые значения
OT_ERROR_NOT_IMPLEMENTED
Функция не реализована
OT_ERROR_INVALID_ARGS
Указанный канал недействителен.
OT_ERROR_FAILED
Другие ошибки, специфичные для платформы.
OT_ERROR_NONE
Успешно установите максимальную мощность передачи.

otPlatRadioSetCoexEnabled

otError otPlatRadioSetCoexEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Включите радиосвязь.

Эта функция используется, когда включена функция OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aEnabled
TRUE, чтобы разрешить совместное использование радио, в противном случае - FALSE.
Возвращаемые значения
OT_ERROR_NONE
Успешно включен.
OT_ERROR_FAILED
Не удалось включить радиоуправление.

otPlatRadioSetRegion

otError otPlatRadioSetRegion(
  otInstance *aInstance,
  uint16_t aRegionCode
)

Установите код региона.

Формат радиообласти - это 2-байтовое представление ascii кода ISO 3166 alpha-2.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aRegionCode
Радио регион.
Возвращаемые значения
OT_ERROR_FAILED
Другие ошибки, специфичные для платформы.
OT_ERROR_NONE
Код региона установлен успешно.

otPlatRadioSleep

otError otPlatRadioSleep(
  otInstance *aInstance
)

Переведите радио из режима приема в спящий режим (выключите радио).

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
Возвращаемые значения
OT_ERROR_NONE
Успешно перешел в спящий режим.
OT_ERROR_BUSY
Радио передавало.
OT_ERROR_INVALID_STATE
Радио было отключено.

otPlatRadioTransmit

otError otPlatRadioTransmit(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

Начните передачу по радио.

Абонент должен сформировать кадр IEEE 802.15.4 в буфере , предоставленной otPlatRadioGetTransmitBuffer() до запроса передачи. Канал и мощность передачи, также включены в otRadioFrame структуры.

Последовательность передачи состоит из:

  1. Перевод радиостанции в режим передачи из одного из следующих состояний:
    • Получать, если RX включен, когда устройство находится в режиме ожидания или OT_RADIO_CAPS_SLEEP_TO_TX не поддерживается
    • Спать, если RX выключен, когда устройство находится в режиме ожидания и поддерживается OT_RADIO_CAPS_SLEEP_TO_TX.
  2. Передает psdu по заданному каналу и с заданной мощностью передачи.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aFrame
Указатель на кадр, который нужно передать.
Возвращаемые значения
OT_ERROR_NONE
Успешно перешел на передачу.
OT_ERROR_INVALID_STATE
Радио не находилось в состоянии приема.

otPlatRadioTxDone

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

Радиодрайвер вызывает эту функцию, чтобы уведомить OpenThread о завершении операции передачи, предоставив как переданный кадр, так и, если применимо, полученный кадр подтверждения.

Когда радио обеспечивает OT_RADIO_CAPS_TRANSMIT_SEC возможностей, радио платформа слой обновляет aFrame со счетчиком кадрами безопасности и ключевыми значениями индекса поддерживаются радио.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aFrame
Указатель на переданный кадр.
[in] aAckFrame
Указатель на кадр ACK, NULL, если ACK не было получено.
[in] aError
OT_ERROR_NONE, когда кадр был передан, OT_ERROR_NO_ACK, когда кадр был передан, но ACK не был получен, OT_ERROR_CHANNEL_ACCESS_FAILURE tx не может произойти из-за активности на канале, OT_ERROR_ABORT, когда передача была прервана по другим причинам.

otPlatRadioTxStarted

void otPlatRadioTxStarted(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

Радиодрайвер вызывает этот метод, чтобы уведомить OpenThread о начале передачи.

Подробности
Параметры
[in] aInstance
Указатель на структуру экземпляра OpenThread.
[in] aFrame
Указатель на передаваемый кадр.

otPlatRadioUpdateCslSampleTime

void otPlatRadioUpdateCslSampleTime(
  otInstance *aInstance,
  uint32_t aCslSampleTime
)

Обновите время выборки CSL в радиодрайвере.

Время выборки сохраняется в радиодрайвере как копия для расчета фазы при отправке ACK с CSL IE.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aCslSampleTime
Время последней выборки.