Instance#

This module includes functions that control the OpenThread Instance.

Typedefs#

typedef struct otInstance

Represents the OpenThread instance structure.

typedef uint32_t

Represents a bit-field indicating specific state/configuration that has changed.

typedef void(*
otStateChangedCallback)(otChangedFlags aFlags, void *aContext)

Pointer is called to notify certain configuration or state changes within OpenThread.

Functions#

otInstanceInit(void *aInstanceBuffer, size_t *aInstanceBufferSize)

Initializes the OpenThread library.

Initializes the static single instance of the OpenThread library.

Initializes the OpenThread instance.

uint32_t
otInstanceGetId(otInstance *aInstance)

Gets the instance identifier.

bool
otInstanceIsInitialized(otInstance *aInstance)

Indicates whether or not the instance is valid/initialized.

void
otInstanceFinalize(otInstance *aInstance)

Disables the OpenThread library.

uint64_t
otInstanceGetUptime(otInstance *aInstance)

Returns the current instance uptime (in msec).

void
otInstanceGetUptimeAsString(otInstance *aInstance, char *aBuffer, uint16_t aSize)

Returns the current instance uptime as a human-readable string.

otSetStateChangedCallback(otInstance *aInstance, otStateChangedCallback aCallback, void *aContext)

Registers a callback to indicate when certain configuration or state changes within OpenThread.

void
otRemoveStateChangeCallback(otInstance *aInstance, otStateChangedCallback aCallback, void *aContext)

Removes a callback to indicate when certain configuration or state changes within OpenThread.

void
otInstanceReset(otInstance *aInstance)

Triggers a platform reset.

otInstanceResetToBootloader(otInstance *aInstance)

Triggers a platform reset to bootloader mode, if supported.

void
otInstanceFactoryReset(otInstance *aInstance)

Deletes all the settings stored on non-volatile memory, and then triggers a platform reset.

void
otInstanceResetRadioStack(otInstance *aInstance)

Resets the internal states of the OpenThread radio stack.

otInstanceErasePersistentInfo(otInstance *aInstance)

Erases all the OpenThread persistent info (network settings) stored on non-volatile memory.

const char *

Gets the OpenThread version string.

const char *
otGetRadioVersionString(otInstance *aInstance)

Gets the OpenThread radio version string.

Macros#

#define
OT_UPTIME_STRING_SIZE 24

Recommended size for string representation of uptime.

#define
OT_CHANGED_IP6_ADDRESS_ADDED (1U << 0)

IPv6 address was added.

#define
OT_CHANGED_IP6_ADDRESS_REMOVED (1U << 1)

IPv6 address was removed.

#define
OT_CHANGED_THREAD_ROLE (1U << 2)

Role (disabled, detached, child, router, leader) changed.

#define
OT_CHANGED_THREAD_LL_ADDR (1U << 3)

The link-local address changed.

#define
OT_CHANGED_THREAD_ML_ADDR (1U << 4)

The mesh-local address changed.

#define
OT_CHANGED_THREAD_RLOC_ADDED (1U << 5)

RLOC was added.

#define
OT_CHANGED_THREAD_RLOC_REMOVED (1U << 6)

RLOC was removed.

#define
OT_CHANGED_THREAD_PARTITION_ID (1U << 7)

Partition ID changed.

#define
OT_CHANGED_THREAD_KEY_SEQUENCE_COUNTER (1U << 8)

Thread Key Sequence changed.

#define
OT_CHANGED_THREAD_NETDATA (1U << 9)

Thread Network Data changed.

#define
OT_CHANGED_THREAD_CHILD_ADDED (1U << 10)

Child was added.

#define
OT_CHANGED_THREAD_CHILD_REMOVED (1U << 11)

Child was removed.

#define
OT_CHANGED_IP6_MULTICAST_SUBSCRIBED (1U << 12)

Subscribed to a IPv6 multicast address.

#define
OT_CHANGED_IP6_MULTICAST_UNSUBSCRIBED (1U << 13)

Unsubscribed from a IPv6 multicast address.

#define
OT_CHANGED_THREAD_CHANNEL (1U << 14)

Thread network channel changed.

#define
OT_CHANGED_THREAD_PANID (1U << 15)

Thread network PAN Id changed.

#define
OT_CHANGED_THREAD_NETWORK_NAME (1U << 16)

Thread network name changed.

#define
OT_CHANGED_THREAD_EXT_PANID (1U << 17)

Thread network extended PAN ID changed.

#define
OT_CHANGED_NETWORK_KEY (1U << 18)

Network key changed.

#define
OT_CHANGED_PSKC (1U << 19)

PSKc changed.

#define
OT_CHANGED_SECURITY_POLICY (1U << 20)

Security Policy changed.

#define
OT_CHANGED_CHANNEL_MANAGER_NEW_CHANNEL (1U << 21)

Channel Manager new pending Thread channel changed.

#define
OT_CHANGED_SUPPORTED_CHANNEL_MASK (1U << 22)

Supported channel mask changed.

#define
OT_CHANGED_COMMISSIONER_STATE (1U << 23)

Commissioner state changed.

#define
OT_CHANGED_THREAD_NETIF_STATE (1U << 24)

Thread network interface state changed.

#define
OT_CHANGED_THREAD_BACKBONE_ROUTER_STATE (1U << 25)

Backbone Router state changed.

#define
OT_CHANGED_THREAD_BACKBONE_ROUTER_LOCAL (1U << 26)

Local Backbone Router configuration changed.

#define
OT_CHANGED_JOINER_STATE (1U << 27)

Joiner state changed.

#define
OT_CHANGED_ACTIVE_DATASET (1U << 28)

Active Operational Dataset changed.

#define
OT_CHANGED_PENDING_DATASET (1U << 29)

Pending Operational Dataset changed.

#define
OT_CHANGED_NAT64_TRANSLATOR_STATE (1U << 30)

The state of NAT64 translator changed.

#define
OT_CHANGED_PARENT_LINK_QUALITY (1U << 31)

Parent link quality changed.

Typedef Documentation#

otInstance#

typedef struct otInstance otInstance

Represents the OpenThread instance structure.


Definition at line 71 of file include/openthread/instance.h

otChangedFlags#

typedef uint32_t otChangedFlags

Represents a bit-field indicating specific state/configuration that has changed.

See OT_CHANGED_* definitions.


Definition at line 229 of file include/openthread/instance.h

otStateChangedCallback#

typedef void(* otStateChangedCallback) (otChangedFlags aFlags, void *aContext) )(otChangedFlags aFlags, void *aContext)

Pointer is called to notify certain configuration or state changes within OpenThread.

Parameters
[in]aFlags

A bit-field indicating specific state that has changed. See OT_CHANGED_* definitions.

[in]aContext

A pointer to application-specific context.


Definition at line 238 of file include/openthread/instance.h

Function Documentation#

otInstanceInit#

otInstance * otInstanceInit (void * aInstanceBuffer, size_t * aInstanceBufferSize)

Initializes the OpenThread library.

Parameters
[in]aInstanceBuffer

The buffer for OpenThread to use for allocating the otInstance structure.

[inout]aInstanceBufferSize

On input, the size of aInstanceBuffer. On output, if not enough space for otInstance, the number of bytes required for otInstance.

Initializes OpenThread and prepares it for subsequent OpenThread API calls. This function must be called before any other calls to OpenThread.

Is available and can only be used when support for multiple OpenThread instances is enabled.

Returns

  • A pointer to the new OpenThread instance.

See Also


Definition at line 90 of file include/openthread/instance.h

otInstanceInitSingle#

otInstance * otInstanceInitSingle (void )

Initializes the static single instance of the OpenThread library.

Parameters
N/A

Initializes OpenThread and prepares it for subsequent OpenThread API calls. This function must be called before any other calls to OpenThread.

Is available and can only be used when support for multiple OpenThread instances is disabled.

Returns

  • A pointer to the single OpenThread instance.


Definition at line 103 of file include/openthread/instance.h

otInstanceInitMultiple#

otInstance * otInstanceInitMultiple (uint8_t aIdx)

Initializes the OpenThread instance.

Parameters
[in]aIdx

The index of the OpenThread instance to initialize.

This function initializes OpenThread and prepares it for subsequent OpenThread API calls. This function must be called before any other calls to OpenThread. This method utilizes static buffer to initialize the OpenThread instance.

This function is available and can only be used when support for multiple OpenThread static instances is enabled (OPENTHREAD_CONFIG_MULTIPLE_STATIC_INSTANCE_ENABLE)

Returns

  • A pointer to the new OpenThread instance.


Definition at line 120 of file include/openthread/instance.h

otInstanceGetId#

uint32_t otInstanceGetId (otInstance * aInstance)

Gets the instance identifier.

Parameters
N/AaInstance

The instance identifier is set to a random value when the instance is constructed, and then its value will not change after initialization.

Returns

  • The instance identifier.


Definition at line 131 of file include/openthread/instance.h

otInstanceIsInitialized#

bool otInstanceIsInitialized (otInstance * aInstance)

Indicates whether or not the instance is valid/initialized.

Parameters
[in]aInstance

A pointer to an OpenThread instance.

The instance is considered valid if it is acquired and initialized using either otInstanceInitSingle() (in single instance case) or otInstanceInit() (in multi instance case). A subsequent call to otInstanceFinalize() causes the instance to be considered as uninitialized.

Returns

  • TRUE if the given instance is valid/initialized, FALSE otherwise.


Definition at line 145 of file include/openthread/instance.h

otInstanceFinalize#

void otInstanceFinalize (otInstance * aInstance)

Disables the OpenThread library.

Parameters
[in]aInstance

A pointer to an OpenThread instance.

Call this function when OpenThread is no longer in use.


Definition at line 155 of file include/openthread/instance.h

otInstanceGetUptime#

uint64_t otInstanceGetUptime (otInstance * aInstance)

Returns the current instance uptime (in msec).

Parameters
[in]aInstance

A pointer to an OpenThread instance.

Requires OPENTHREAD_CONFIG_UPTIME_ENABLE to be enabled.

The uptime is given as number of milliseconds since OpenThread instance was initialized.

Returns

  • The uptime (number of milliseconds).


Definition at line 169 of file include/openthread/instance.h

otInstanceGetUptimeAsString#

void otInstanceGetUptimeAsString (otInstance * aInstance, char * aBuffer, uint16_t aSize)

Returns the current instance uptime as a human-readable string.

Parameters
[in]aInstance

A pointer to an OpenThread instance.

[out]aBuffer

A pointer to a char array to output the string.

[in]aSize

The size of aBuffer (in bytes). Recommended to use OT_UPTIME_STRING_SIZE.

Requires OPENTHREAD_CONFIG_UPTIME_ENABLE to be enabled.

The string follows the format "<hh>:<mm>:<ss>.<mmmm>" for hours, minutes, seconds and millisecond (if uptime is shorter than one day) or "<dd>d.<hh>:<mm>:<ss>.<mmmm>" (if longer than a day).

If the resulting string does not fit in aBuffer (within its aSize characters), the string will be truncated but the outputted string is always null-terminated.


Definition at line 189 of file include/openthread/instance.h

otSetStateChangedCallback#

otError otSetStateChangedCallback (otInstance * aInstance, otStateChangedCallback aCallback, void * aContext)

Registers a callback to indicate when certain configuration or state changes within OpenThread.

Parameters
[in]aInstance

A pointer to an OpenThread instance.

[in]aCallback

A pointer to a function that is called with certain configuration or state changes.

[in]aContext

A pointer to application-specific context.


Definition at line 252 of file include/openthread/instance.h

otRemoveStateChangeCallback#

void otRemoveStateChangeCallback (otInstance * aInstance, otStateChangedCallback aCallback, void * aContext)

Removes a callback to indicate when certain configuration or state changes within OpenThread.

Parameters
[in]aInstance

A pointer to an OpenThread instance.

[in]aCallback

A pointer to a function that is called with certain configuration or state changes.

[in]aContext

A pointer to application-specific context.


Definition at line 262 of file include/openthread/instance.h

otInstanceReset#

void otInstanceReset (otInstance * aInstance)

Triggers a platform reset.

Parameters
[in]aInstance

A pointer to an OpenThread instance.

The reset process ensures that all the OpenThread state/info (stored in volatile memory) is erased. Note that the otPlatformReset does not erase any persistent state/info saved in non-volatile memory.


Definition at line 273 of file include/openthread/instance.h

otInstanceResetToBootloader#

otError otInstanceResetToBootloader (otInstance * aInstance)

Triggers a platform reset to bootloader mode, if supported.

Parameters
[in]aInstance

A pointer to an OpenThread instance.

Requires OPENTHREAD_CONFIG_PLATFORM_BOOTLOADER_MODE_ENABLE.


Definition at line 287 of file include/openthread/instance.h

otInstanceFactoryReset#

void otInstanceFactoryReset (otInstance * aInstance)

Deletes all the settings stored on non-volatile memory, and then triggers a platform reset.

Parameters
[in]aInstance

A pointer to an OpenThread instance.


Definition at line 295 of file include/openthread/instance.h

otInstanceResetRadioStack#

void otInstanceResetRadioStack (otInstance * aInstance)

Resets the internal states of the OpenThread radio stack.

Parameters
[in]aInstance

A pointer to an OpenThread instance.

Callbacks and configurations are preserved.

This API is only available under radio builds (OPENTHREAD_RADIO = 1).


Definition at line 307 of file include/openthread/instance.h

otInstanceErasePersistentInfo#

otError otInstanceErasePersistentInfo (otInstance * aInstance)

Erases all the OpenThread persistent info (network settings) stored on non-volatile memory.

Parameters
[in]aInstance

A pointer to an OpenThread instance.

Erase is successful only if the device is in disabled state/role.


Definition at line 319 of file include/openthread/instance.h

otGetVersionString#

const char * otGetVersionString (void )

Gets the OpenThread version string.

Parameters
N/A

Returns

  • A pointer to the OpenThread version.


Definition at line 327 of file include/openthread/instance.h

otGetRadioVersionString#

const char * otGetRadioVersionString (otInstance * aInstance)

Gets the OpenThread radio version string.

Parameters
[in]aInstance

A pointer to an OpenThread instance.

Returns

  • A pointer to the OpenThread radio version.


Definition at line 337 of file include/openthread/instance.h