This module includes functions for the Thread Joiner role.

Classes

struct otJoinerDiscerner
This structure represents a Joiner Discerner.

Macros

#define OT_JOINER_MAX_DISCERNER_LENGTH 64
Maximum length of a Joiner Discerner in bits.

Typedefs

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

Enumerations

enum otJoinerState {
OT_JOINER_STATE_IDLE = 0,
OT_JOINER_STATE_DISCOVER = 1,
OT_JOINER_STATE_CONNECT = 2,
OT_JOINER_STATE_CONNECTED = 3,
OT_JOINER_STATE_ENTRUST = 4,
OT_JOINER_STATE_JOINED = 5
}
This enumeration defines the Joiner State.

Functions

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)
This function enables the Thread Joiner role.
void otJoinerStop ( otInstance *aInstance)
This function disables the Thread Joiner role.
otJoinerState otJoinerGetState ( otInstance *aInstance)
This function returns the Joiner State.
const otExtAddress * otJoinerGetId ( otInstance *aInstance)
This method gets the Joiner ID.
otError otJoinerSetDiscerner ( otInstance *aInstance, otJoinerDiscerner *aDiscerner)
This method sets the Joiner Discerner.
const otJoinerDiscerner * otJoinerGetDiscerner ( otInstance *aInstance)
This method gets the Joiner Discerner.

Detailed Description

This module includes functions for the Thread Joiner role.

Note
The functions in this module require OPENTHREAD_CONFIG_JOINER_ENABLE=1 .

Typedef Documentation

otJoinerCallback

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

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

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.

Function Documentation

otJoinerGetDiscerner()

const otJoinerDiscerner * otJoinerGetDiscerner ( otInstance * aInstance )

This method gets the Joiner Discerner.

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 )

This method 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 commissioning process.

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

otJoinerGetState()

otJoinerState otJoinerGetState ( otInstance * aInstance )

This function returns the Joiner State.

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
)

This method sets the Joiner Discerner.

The Joiner Discerner is used to calculate the Joiner ID used during commissioning/joining process.

By default (when a discerner is not provided or set to NULL), Joiner ID is derived as first 64 bits of the result of computing SHA-256 over factory-assigned IEEE EUI-64. Note that this is the main behavior expected by Thread specification.

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
)

This function enables the Thread Joiner role.

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.

otJoinerStop()

void otJoinerStop ( otInstance * aInstance )

This function disables the Thread Joiner role.

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