Радиоуправление

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

Краткое содержание

Функции

otPlatDiagRadioReceiveDone ( otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Радиодрайвер вызывает этот метод, чтобы уведомить модуль диагностики OpenThread о полученном кадре.
otPlatDiagRadioTransmitDone ( otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
Радиодрайвер вызывает этот метод, чтобы уведомить модуль диагностики OpenThread о завершении передачи.
otPlatRadioAddCalibratedPower ( otInstance *aInstance, uint8_t aChannel, int16_t aActualPower, const uint8_t *aRawPowerSetting, uint16_t aRawPowerSettingLength)
Добавьте калиброванную мощность указанного канала в таблицу калибровки мощности.
otPlatRadioAddSrcMatchExtEntry ( otInstance *aInstance, const otExtAddress *aExtAddress)
Добавьте расширенный адрес в таблицу соответствия адресов источника.
otPlatRadioAddSrcMatchShortEntry ( otInstance *aInstance, otShortAddress aShortAddress)
Добавьте короткий адрес в таблицу соответствия адресов источника.
otPlatRadioClearCalibratedPowers ( otInstance *aInstance)
Удалите все калиброванные мощности из таблицы калибровки мощности.
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
Получите текущую оценку точности наихудшего случая (максимум ± отклонение от номинальной частоты) местных радиочасов в единицах PPM.
otPlatRadioGetCslUncertainty ( otInstance *aInstance)
uint8_t
Фиксированная неопределенность (т.е.
otPlatRadioGetPreferredChannelMask ( otInstance *aInstance)
uint32_t
Получает маску предпочтительного радиоканала, которую устройство предпочитает формировать.
otPlatRadioGetRawPowerSetting ( otInstance *aInstance, uint8_t aChannel, uint8_t *aRawPowerSetting, uint16_t *aRawPowerSettingLength)
Получите необработанные настройки мощности для данного канала.
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)
Установите максимальную мощность передачи для определенного канала.
otPlatRadioSetChannelTargetPower ( otInstance *aInstance, uint8_t aChannel, int16_t aTargetPower)
Установите целевую мощность для данного канала.
otPlatRadioSetCoexEnabled ( otInstance *aInstance, bool aEnabled)
Включите радиокоекс.
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, когда кадр не удалось получить из-за нехватки места в буфере приема.

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, передача не могла произойти из-за активности на канале, OT_ERROR_ABORT, когда передача была прервана по другим причинам.

otPlatRadioAddCalibratedPower

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

Добавьте калиброванную мощность указанного канала в таблицу калибровки мощности.

aActualPower — это фактическая измеренная выходная мощность, когда для параметров аппаратных радиомодулей установлено значение aRawPowerSetting .

Необработанная настройка мощности представляет собой непрозрачный массив байтов. OpenThread не определяет формат необработанных настроек мощности. Его формат связан с радиооборудованием и должен быть определен разработчиками в драйвере радио платформы. Например, если радиооборудование содержит и радиочип, и микросхему FEM, необработанная настройка мощности может представлять собой комбинацию регистра мощности радиосвязи и значения усиления FEM.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aChannel
Радиоканал.
[in] aActualPower
Фактическая мощность в 0,01 дБм.
[in] aRawPowerSetting
Указатель на массив байтов необработанной настройки мощности.
[in] aRawPowerSettingLength
Длина aRawPowerSetting .
Возвращаемые значения
OT_ERROR_NONE
Калиброванная мощность успешно добавлена ​​в таблицу калибровки мощности.
OT_ERROR_NO_BUFS
В таблице калибровки мощности нет доступной записи.
OT_ERROR_INVALID_ARGS
aChannel , aActualPower или aRawPowerSetting недействительны, или aActualPower уже существует в таблице калибровки мощности.
OT_ERROR_NOT_IMPLEMENTED
Эта функция не реализована.

отПлатрадиоаддсркматчекстэнтри

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

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

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

отПлатрадиоаддсркматчшортэнтри

otError otPlatRadioAddSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

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

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

otPlatRadioClearCalibratedPowers

otError otPlatRadioClearCalibratedPowers(
  otInstance *aInstance
)

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

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
Возвращаемые значения
OT_ERROR_NONE
Все откалиброванные мощности успешно удалены из таблицы калибровки мощности.
OT_ERROR_NOT_IMPLEMENTED
Эта функция не реализована.

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 в радиоканале для конкретного инициатора.

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

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

отПлатРадиоДисабле

otError otPlatRadioDisable(
  otInstance *aInstance
)

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

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

отПлатРадиоEnable

otError otPlatRadioEnable(
  otInstance *aInstance
)

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

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

отПлатрадиоенаблеклсл

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

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

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

отПлатрадиоенаблесркматч

void otPlatRadioEnableSrcMatch(
  otInstance *aInstance,
  bool aEnable
)

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

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

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

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

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

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

отПлатРадиоЭнергоСкан

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_BUSY
Радио выполняет энергетическое сканирование.
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
Метрики совместного использования получены успешно.
OT_ERROR_INVALID_ARGS
aCoexMetrics имел значение NULL.

otPlatRadioGetCslAccuracy

uint8_t otPlatRadioGetCslAccuracy(
  otInstance *aInstance
)

Получите текущую оценку точности наихудшего случая (максимум ± отклонение от номинальной частоты) местных радиочасов в единицах PPM.

Это часы, используемые для планирования операций CSL.

В случае, если реализация не оценивает текущее значение, а возвращает фиксированное значение, это значение ДОЛЖНО быть точностью наихудшего случая для всех возможных предусмотренных рабочих условий (температура, давление и т. д.) реализации.

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

otPlatRadioGetCslUncertainty

uint8_t otPlatRadioGetCslUncertainty(
  otInstance *aInstance
)

Фиксированная неопределенность (т.е.

случайный джиттер) времени прибытия передач CSL, полученных этим устройством, в единицах 10 микросекунд.

Это обозначает постоянное положительное или отрицательное отклонение фактического времени прибытия передачи от времени передачи, рассчитанного относительно местных радиочасов, независимо от прошедшего времени. В дополнение к неопределенности, накопленной за истекшее время, выборка канала CSL («окно приема») должна быть расширена на удвоенное отклонение, чтобы фактическая передача гарантированно была обнаружена локальным приемником при наличии случайного дрожания времени прибытия.

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

otPlatRadioGetPreferredChannelMask

uint32_t otPlatRadioGetPreferredChannelMask(
  otInstance *aInstance
)

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

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

otPlatRadioGetRawPowerSetting

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

Получите необработанные настройки мощности для данного канала.

Радиоуровень платформы должен проанализировать необработанные настройки мощности на основе формата, определенного на радиоуровне, и установить параметры каждого радиоаппаратного модуля.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aChannel
Радиоканал.
[out] aRawPowerSetting
Указатель на массив байтов необработанной настройки мощности.
[in,out] aRawPowerSettingLength
На входе указатель на размер aRawPowerSetting . На выходе указатель на длину необработанных данных настройки мощности.
Возвращаемые значения
OT_ERROR_NONE
Успешно получена целевая мощность.
OT_ERROR_INVALID_ARGS
aChannel недействителен, aRawPowerSetting или aRawPowerSettingLength имеет значение NULL или слишком короткий.
OT_ERROR_NOT_FOUND
Необработанные настройки мощности для aChannel не найдены.

otPlatRadioGetRegion

otError otPlatRadioGetRegion(
  otInstance *aInstance,
  uint16_t *aRegionCode
)

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

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

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

otPlatRadioGetRssi

int8_t otPlatRadioGetRssi(
  otInstance *aInstance
)

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

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

отПлатрадиожетстате

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.
Возврат
Указатель на буфер кадра передачи.

отПлатрадиоискоексенаблед

bool otPlatRadioIsCoexEnabled(
  otInstance *aInstance
)

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

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

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

отПлатрадиоисенаблед

bool otPlatRadioIsEnabled(
  otInstance *aInstance
)

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

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

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
Время начала окна приема относительно местных радиочасов, см. otPlatRadioGetNow . Радиоприемник ДОЛЖЕН быть включен и готов принять первый символ SHR кадра во время начала окна.
[in] aDuration
Длительность окна приема в микросекундах, измеренная местными радиочасами. Радио СЛЕДУЕТ выключить (или переключить в режим TX, если необходимо отправить кадр ACK) по истечении этого времени, если только оно все еще активно не принимает кадр. В последнем случае радиостанция ДОЛЖНА оставаться в режиме приема до тех пор, пока прием кадра не будет успешным или неудачным.
Возвращаемые значения
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, когда кадр не удалось получить из-за нехватки места в буфере приема.

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
Успешно установлена ​​максимальная мощность передачи.

otPlatRadioSetChannelTargetPower

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

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

Драйвер радиостанции должен установить фактическую выходную мощность меньше или равной целевой мощности и как можно ближе к целевой мощности.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aChannel
Радиоканал.
[in] aTargetPower
Целевая мощность в 0,01 дБм. Передача INT16_MAX отключит этот канал для использования целевой мощности.
Возвращаемые значения
OT_ERROR_NONE
Успешно установите целевую мощность.
OT_ERROR_INVALID_ARGS
Недопустимый aChannel или aTargetPower .
OT_ERROR_NOT_IMPLEMENTED
Функция не реализована.

отПлатРадиоСетКоексенаблед

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
Не удалось включить радиокоекс.

отПлатРадиоСетРегион

otError otPlatRadioSetRegion(
  otInstance *aInstance,
  uint16_t aRegionCode
)

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

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

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aRegionCode
Код региона радио. aRegionCode >> 8 — это первый символ ascii, а aRegionCode & 0xff — второй символ ascii.
Возвращаемые значения
OT_ERROR_FAILED
Другие ошибки, специфичные для платформы.
OT_ERROR_NONE
Код региона успешно установлен.
OT_ERROR_NOT_IMPLEMENTED
Функция не реализована.

отПлатРадиоСон

otError otPlatRadioSleep(
  otInstance *aInstance
)

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

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

отПлатРадиоТрансмит

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
Указатель на кадр подтверждения, NULL, если подтверждение не получено.
[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
Указатель на передаваемый кадр.

отПлатрадиоупдатеклсамплетиме

void otPlatRadioUpdateCslSampleTime(
  otInstance *aInstance,
  uint32_t aCslSampleTime
)

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

Время выборки сохраняется в драйвере радио в виде копии для расчета фазы при отправке ACK с CSL IE. Выборка CSL (окно) приемника CSL простирается до и после времени выборки. Время выборки CSL отмечает временную метку в окне выборки CSL, когда кадр должен быть получен в «идеальных условиях», если не будет неточностей/дрейфа тактовой частоты.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aCslSampleTime
Следующий шаг расчета в микросекундах. Это время, когда ожидается первый символ MHR кадра.

Ресурсы

Справочные разделы API OpenThread взяты из исходного кода, доступного на GitHub . Для получения дополнительной информации или внесения вклада в нашу документацию обратитесь к Ресурсам .