Network Time Synchronization

This module includes functions that control network time synchronization service.

Macros

#define OT_TIME_SYNC_INVALID_SEQ 0
zero is considered as invalid time synchronization sequence.

Typedefs

typedef enum otNetworkTimeStatus otNetworkTimeStatus
This enumeration represents OpenThread time synchronization status.
typedef void(* otNetworkTimeSyncCallbackFn ) (void *aCallbackContext)
This function pointer is called when a network time sync or status change occurs.

Enumerations

enum otNetworkTimeStatus {
OT_NETWORK_TIME_UNSYNCHRONIZED = -1,
OT_NETWORK_TIME_RESYNC_NEEDED = 0,
OT_NETWORK_TIME_SYNCHRONIZED = 1
}
This enumeration represents OpenThread time synchronization status.

Functions

otNetworkTimeStatus otNetworkTimeGet ( otInstance *aInstance, uint64_t *aNetworkTime)
Get the Thread network time.
otError otNetworkTimeSetSyncPeriod ( otInstance *aInstance, uint16_t aTimeSyncPeriod)
Set the time synchronization period.
uint16_t otNetworkTimeGetSyncPeriod ( otInstance *aInstance)
Get the time synchronization period.
otError otNetworkTimeSetXtalThreshold ( otInstance *aInstance, uint16_t aXTALThreshold)
Set the time synchronization XTAL accuracy threshold for Router-Capable device.
uint16_t otNetworkTimeGetXtalThreshold ( otInstance *aInstance)
Get the time synchronization XTAL accuracy threshold for Router.
void otNetworkTimeSyncSetCallback ( otInstance *aInstance, otNetworkTimeSyncCallbackFn aCallbackFn, void *aCallbackContext)
Set a callback to be called when a network time sync or status change occurs.

Detailed Description

This module includes functions that control network time synchronization service.

Enumeration Type Documentation

otNetworkTimeStatus

This enumeration represents OpenThread time synchronization status.

Enumerator
OT_NETWORK_TIME_UNSYNCHRONIZED

The device hasn't attached to a network.

OT_NETWORK_TIME_RESYNC_NEEDED

The device hasn’t received time sync for more than two periods time.

OT_NETWORK_TIME_SYNCHRONIZED

The device network time is synchronized.

Function Documentation

otNetworkTimeGet()

otNetworkTimeStatus otNetworkTimeGet ( otInstance * aInstance,
uint64_t * aNetworkTime
)

Get the Thread network time.

Parameters
[in] aInstance The OpenThread instance structure.
[in,out] aNetworkTime The Thread network time in microseconds.
Returns
The time synchronization status.

otNetworkTimeGetSyncPeriod()

uint16_t otNetworkTimeGetSyncPeriod ( otInstance * aInstance )

Get the time synchronization period.

Parameters
[in] aInstance The OpenThread instance structure.
Returns
The time synchronization period.

otNetworkTimeGetXtalThreshold()

uint16_t otNetworkTimeGetXtalThreshold ( otInstance * aInstance )

Get the time synchronization XTAL accuracy threshold for Router.

Parameters
[in] aInstance The OpenThread instance structure.
Returns
The XTAL accuracy threshold for Router, in PPM.

otNetworkTimeSetSyncPeriod()

otError otNetworkTimeSetSyncPeriod ( otInstance * aInstance,
uint16_t aTimeSyncPeriod
)

Set the time synchronization period.

This function can only be called while Thread protocols are disabled.

Parameters
[in] aInstance The OpenThread instance structure.
[in] aTimeSyncPeriod The time synchronization period, in seconds.
Return values
OT_ERROR_NONE Successfully set the time sync period.
OT_ERROR_INVALID_STATE Thread protocols are enabled.

otNetworkTimeSetXtalThreshold()

otError otNetworkTimeSetXtalThreshold ( otInstance * aInstance,
uint16_t aXTALThreshold
)

Set the time synchronization XTAL accuracy threshold for Router-Capable device.

This function can only be called while Thread protocols are disabled.

Parameters
[in] aInstance The OpenThread instance structure.
[in] aXTALThreshold The XTAL accuracy threshold for Router, in PPM.
Return values
OT_ERROR_NONE Successfully set the time sync period.
OT_ERROR_INVALID_STATE Thread protocols are enabled.

otNetworkTimeSyncSetCallback()

void otNetworkTimeSyncSetCallback ( otInstance * aInstance,
otNetworkTimeSyncCallbackFn aCallbackFn,
void * aCallbackContext
)

Set a callback to be called when a network time sync or status change occurs.

This callback shall be called only when the network time offset jumps by OPENTHREAD_CONFIG_TIME_SYNC_JUMP_NOTIF_MIN_US or when the status changes.

Parameters
[in] aInstance The OpenThread instance structure.
[in] aCallbackFn The callback function to be called
[in] aCallbackContext The context to be passed to the callback function upon invocation