Stay organized with collections Save and categorize content based on your preferences.

Joiner

This module includes functions for the Thread Joiner role.

Summary

Enumerations

otJoinerState enum
This enumeration defines the Joiner State.

Typedefs

otJoinerCallback)(otError aError, void *aContext) typedef
void(*
This function pointer is called to notify the completion of a join operation.
otJoinerDiscerner typedef
This structure represents a Joiner Discerner.
otJoinerState typedef
This enumeration defines the Joiner State.

Functions

otJoinerGetDiscerner(otInstance *aInstance)
Gets the Joiner Discerner.
otJoinerGetId(otInstance *aInstance)
const otExtAddress *
Gets the Joiner ID.
otJoinerGetState(otInstance *aInstance)
Gets the Joiner State.
otJoinerSetDiscerner(otInstance *aInstance, otJoinerDiscerner *aDiscerner)
Sets the Joiner Discerner.
otJoinerStart(otInstance *aInstance, const char *aPskd, const char *aProvisioningUrl, const char *aVendorName, const char *aVendorModel, const char *aVendorSwVersion, const char *aVendorData, otJoinerCallback aCallback, void *aContext)
Enables the Thread Joiner role.
otJoinerStateToString(otJoinerState aState)
const char *
This function converts a given joiner state enumeration value to a human-readable string.
otJoinerStop(otInstance *aInstance)
void
Disables the Thread Joiner role.

Structs

otJoinerDiscerner

This structure represents a Joiner Discerner.

Enumerations

otJoinerState

 otJoinerState

This enumeration defines the Joiner State.

Typedefs

otJoinerCallback

void(* otJoinerCallback)(otError aError, void *aContext)

This function pointer is called to notify the completion of a join operation.

Details
Parameters
[in] aError
OT_ERROR_NONE if the join process succeeded. OT_ERROR_SECURITY if the join process failed due to security credentials. OT_ERROR_NOT_FOUND if no joinable network was discovered. OT_ERROR_RESPONSE_TIMEOUT if a response timed out.
[in] aContext
A pointer to application-specific context.

otJoinerDiscerner

struct otJoinerDiscerner otJoinerDiscerner

This structure represents a Joiner Discerner.

otJoinerState

enum otJoinerState otJoinerState

This enumeration defines the Joiner State.

Functions

otJoinerGetDiscerner

const otJoinerDiscerner * otJoinerGetDiscerner(
  otInstance *aInstance
)

Gets the Joiner Discerner.

For more information, refer to otJoinerSetDiscerner.

Details
Parameters
[in] aInstance
A pointer to the OpenThread instance.
Returns
A pointer to Joiner Discerner or NULL if none is set.

otJoinerGetId

const otExtAddress * otJoinerGetId(
  otInstance *aInstance
)

Gets the Joiner ID.

If a Joiner Discerner is not set, Joiner ID is the first 64 bits of the result of computing SHA-256 over factory-assigned IEEE EUI-64. Otherwise the Joiner ID is calculated from the Joiner Discerner value.

The Joiner ID is also used as the device's IEEE 802.15.4 Extended Address during the commissioning process.

Details
Parameters
[in] aInstance
A pointer to the OpenThread instance.
Returns
A pointer to the Joiner ID.

otJoinerGetState

otJoinerState otJoinerGetState(
  otInstance *aInstance
)

Gets the Joiner State.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
Return Values
OT_JOINER_STATE_IDLE
OT_JOINER_STATE_DISCOVER
OT_JOINER_STATE_CONNECT
OT_JOINER_STATE_CONNECTED
OT_JOINER_STATE_ENTRUST
OT_JOINER_STATE_JOINED

otJoinerSetDiscerner

otError otJoinerSetDiscerner(
  otInstance *aInstance,
  otJoinerDiscerner *aDiscerner
)

Sets the Joiner Discerner.

The Joiner Discerner is used to calculate the Joiner ID during the Thread Commissioning process. For more information, refer to otJoinerGetId.

Details
Parameters
[in] aInstance
A pointer to the OpenThread instance.
[in] aDiscerner
A pointer to a Joiner Discerner. If NULL clears any previously set discerner.
Return Values
OT_ERROR_NONE
The Joiner Discerner updated successfully.
OT_ERROR_INVALID_ARGS
aDiscerner is not valid (specified length is not within valid range).
OT_ERROR_INVALID_STATE
There is an ongoing Joining process so Joiner Discerner could not be changed.

otJoinerStart

otError otJoinerStart(
  otInstance *aInstance,
  const char *aPskd,
  const char *aProvisioningUrl,
  const char *aVendorName,
  const char *aVendorModel,
  const char *aVendorSwVersion,
  const char *aVendorData,
  otJoinerCallback aCallback,
  void *aContext
)

Enables the Thread Joiner role.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in] aPskd
A pointer to the PSKd.
[in] aProvisioningUrl
A pointer to the Provisioning URL (may be NULL).
[in] aVendorName
A pointer to the Vendor Name (may be NULL).
[in] aVendorModel
A pointer to the Vendor Model (may be NULL).
[in] aVendorSwVersion
A pointer to the Vendor SW Version (may be NULL).
[in] aVendorData
A pointer to the Vendor Data (may be NULL).
[in] aCallback
A pointer to a function that is called when the join operation completes.
[in] aContext
A pointer to application-specific context.
Return Values
OT_ERROR_NONE
Successfully started the Joiner role.
OT_ERROR_BUSY
The previous attempt is still on-going.
OT_ERROR_INVALID_ARGS
aPskd or aProvisioningUrl is invalid.
OT_ERROR_INVALID_STATE
The IPv6 stack is not enabled or Thread stack is fully enabled.

otJoinerStateToString

const char * otJoinerStateToString(
  otJoinerState aState
)

This function converts a given joiner state enumeration value to a human-readable string.

Details
Parameters
[in] aState
The joiner state.
Returns
A human-readable string representation of aState.

otJoinerStop

void otJoinerStop(
  otInstance *aInstance
)

Disables the Thread Joiner role.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.

Macros

OT_JOINER_MAX_DISCERNER_LENGTH

 OT_JOINER_MAX_DISCERNER_LENGTH 64

Maximum length of a Joiner Discerner in bits.

Resources

OpenThread API Reference topics originate from the source code, available on GitHub. For more information, or to contribute to our documentation, refer to Resources.