Мультипан

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

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

Функции

otPlatMultipanGetActiveInstance ( otInstance **aInstance)
Получить экземпляр, который в данный момент контролирует радио.
otPlatMultipanIidToInstance (uint8_t aIid)
Получите указатель экземпляра, соответствующий данному IID.
otPlatMultipanInstanceToIid ( otInstance *aInstance)
uint8_t
Получите IID, соответствующий данному указателю экземпляра OpenThread.
otPlatMultipanSetActiveInstance ( otInstance *aInstance, bool aCompletePending)
Установите aInstance в качестве текущего активного экземпляра, управляющего радио.
otPlatMultipanSwitchoverDone ( otInstance *aInstance, bool aSuccess)
void
Платформа завершила процедуру переключения интерфейса.

Функции

отПлатМультипанжетактивеинстанце

otError otPlatMultipanGetActiveInstance(
  otInstance **aInstance
)

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

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

Подробности
Параметры
[out] aInstance
Указатель на переменную для хранения указателя активного экземпляра.
Возвращаемые значения
OT_ERROR_NONE
Объект успешно получен.
OT_ERROR_NOT_IMPLEMENTED
Не удалось из-за отсутствия поддержки на радио.
OT_ERROR_INVALID_COMMAND
Платформа поддерживает все интерфейсы одновременно.

отплатмультипанидтоинстанце

otInstance * otPlatMultipanIidToInstance(
  uint8_t aIid
)

Получите указатель экземпляра, соответствующий данному IID.

Подробности
Параметры
[in] aIid
IID интерфейса.
Возвращаемые значения
Instance
указатель, если aIid имеет назначенный экземпляр, в противном случае nullptr.

отплатмультипанинстанцетоид

uint8_t otPlatMultipanInstanceToIid(
  otInstance *aInstance
)

Получите IID, соответствующий данному указателю экземпляра OpenThread.

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

отПлатМультипансетактивеинстанце

otError otPlatMultipanSetActiveInstance(
  otInstance *aInstance,
  bool aCompletePending
)

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

Эта функция позволяет выбрать активный в данный момент экземпляр на платформах, которые не поддерживают параллельную связь на нескольких интерфейсах. Другими словами, если более одного экземпляра находятся в состоянии приема, вызов otPlatMultipanSetActiveInstance гарантирует, что указанный экземпляр будет получающим. Эта функция возвращает значение, если запрос был получен правильно. После завершения переключения интерфейса платформа должна вызвать otPlatMultipanSwitchoverDone . Переключение интерфейсов может занять больше времени, если aCompletePending установлено значение true.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aCompletePending
Значение true, если текущая операция радиосвязи должна завершиться до переключения интерфейса (мягкое переключение), значение false для принудительного переключения.
Возвращаемые значения
OT_ERROR_NONE
Свойство успешно установлено.
OT_ERROR_BUSY
Не удалось, поскольку выполняется другая операция.
OT_ERROR_NOT_IMPLEMENTED
Ошибка из-за неизвестного экземпляра или количества экземпляров, превышающего количество доступных интерфейсов.
OT_ERROR_INVALID_COMMAND
Платформа поддерживает все интерфейсы одновременно.
OT_ERROR_ALREADY
Данный интерфейс уже активен.

otPlatMultipanSwitchoverDone

void otPlatMultipanSwitchoverDone(
  otInstance *aInstance,
  bool aSuccess
)

Платформа завершила процедуру переключения интерфейса.

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

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aSuccess
True, если интерфейсы переключились успешно, и false, если переключение не удалось.

Ресурсы

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