Network Co-Processor

This module includes functions that control the Thread stack's execution.

Classes

struct  otNcpLegacyHandlers
 Defines a struct containing all the legacy handlers (function pointers).

Macros

#define OT_NCP_LEGACY_ULA_PREFIX_LENGTH   8
 Legacy ULA size (in bytes)

Typedefs

typedef bool(* otNcpDelegateAllowPeekPoke) (uint32_t aAddress, uint16_t aCount)
 Defines delegate (function pointer) type to control behavior of peek/poke operation.
 
typedef void(* otNcpHandlerStartLegacy) (void)
 Defines handler (function pointer) type for starting legacy network.
 
typedef void(* otNcpHandlerStopLegacy) (void)
 Defines handler (function pointer) type for stopping legacy network.
 
typedef void(* otNcpHandlerJoinLegacyNode) (const otExtAddress *aExtAddress)
 Defines handler (function pointer) type for initiating joining process.
 
typedef void(* otNcpHandlerSetLegacyUlaPrefix) (const uint8_t *aUlaPrefix)
 Defines handler (function pointer) type for setting the legacy ULA prefix.
 
typedef struct otNcpLegacyHandlers otNcpLegacyHandlers
 Defines a struct containing all the legacy handlers (function pointers).

Functions

void otNcpInit (otInstance *aInstance)
 Initialize the NCP.
 
otError otNcpStreamWrite (int aStreamId, const uint8_t *aDataPtr, int aDataLen)
 Send data to the host via a specific stream.
 
void otNcpPlatLogv (otLogLevel aLogLevel, otLogRegion aLogRegion, const char *aFormat, va_list aArgs)
 Writes OpenThread Log using otNcpStreamWrite.
 
void otNcpRegisterPeekPokeDelagates (otNcpDelegateAllowPeekPoke aAllowPeekDelegate, otNcpDelegateAllowPeekPoke aAllowPokeDelegate)
 This method registers peek/poke delegate functions with NCP module.
 
void otNcpHandleLegacyNodeDidJoin (const otExtAddress *aExtAddr)
 This callback is invoked by the legacy stack to notify that a new legacy node did join the network.
 
void otNcpHandleDidReceiveNewLegacyUlaPrefix (const uint8_t *aUlaPrefix)
 This callback is invoked by the legacy stack to notify that the legacy ULA prefix has changed.
 
void otNcpRegisterLegacyHandlers (const otNcpLegacyHandlers *aHandlers)
 This method registers a set of legacy handlers with NCP.

Detailed Description

This module includes functions that control the Thread stack's execution.

Typedef Documentation

◆ otNcpDelegateAllowPeekPoke

typedef bool(* otNcpDelegateAllowPeekPoke) (uint32_t aAddress, uint16_t aCount)

Defines delegate (function pointer) type to control behavior of peek/poke operation.

This delegate function is called to decide whether to allow peek or poke of a specific memory region. It is used if NCP support for peek/poke commands is enabled.

Parameters
[in]aAddressStart address of memory region.
[in]aCountNumber of bytes to peek or poke.
Returns
TRUE to allow peek/poke of the given memory region, FALSE otherwise.

◆ otNcpHandlerJoinLegacyNode

typedef void(* otNcpHandlerJoinLegacyNode) (const otExtAddress *aExtAddress)

Defines handler (function pointer) type for initiating joining process.

Parameters
[in]aExtAddressA pointer to the extended address for the node to join or NULL if desired to join any neighboring node.

Invoked to initiate a legacy join procedure to any or a specific node.

◆ otNcpHandlerSetLegacyUlaPrefix

typedef void(* otNcpHandlerSetLegacyUlaPrefix) (const uint8_t *aUlaPrefix)

Defines handler (function pointer) type for setting the legacy ULA prefix.

Parameters
[in]aUlaPrefixA pointer to buffer containing the legacy ULA prefix.

Invoked to set the legacy ULA prefix.

◆ otNcpHandlerStartLegacy

typedef void(* otNcpHandlerStartLegacy) (void)

Defines handler (function pointer) type for starting legacy network.

Invoked to start the legacy network.

◆ otNcpHandlerStopLegacy

typedef void(* otNcpHandlerStopLegacy) (void)

Defines handler (function pointer) type for stopping legacy network.

Invoked to stop the legacy network.

Function Documentation

◆ otNcpHandleDidReceiveNewLegacyUlaPrefix()

void otNcpHandleDidReceiveNewLegacyUlaPrefix ( const uint8_t *  aUlaPrefix)

This callback is invoked by the legacy stack to notify that the legacy ULA prefix has changed.

Parameters
[in]aUlaPrefixA pointer to the received ULA prefix.

◆ otNcpHandleLegacyNodeDidJoin()

void otNcpHandleLegacyNodeDidJoin ( const otExtAddress aExtAddr)

This callback is invoked by the legacy stack to notify that a new legacy node did join the network.

Parameters
[in]aExtAddrA pointer to the extended address of the joined node.

◆ otNcpInit()

void otNcpInit ( otInstance aInstance)

Initialize the NCP.

Parameters
[in]aInstanceThe OpenThread instance structure.

◆ otNcpPlatLogv()

void otNcpPlatLogv ( otLogLevel  aLogLevel,
otLogRegion  aLogRegion,
const char *  aFormat,
va_list  aArgs 
)

Writes OpenThread Log using otNcpStreamWrite.

Parameters
[in]aLogLevelThe log level.
[in]aLogRegionThe log region.
[in]aFormatA pointer to the format string.
[in]aArgsva_list matching aFormat.

◆ otNcpRegisterLegacyHandlers()

void otNcpRegisterLegacyHandlers ( const otNcpLegacyHandlers aHandlers)

This method registers a set of legacy handlers with NCP.

The set of handlers provided by the struct aHandlers are used by NCP code to start/stop legacy network. The aHandlers can be NULL to disable legacy support on NCP. Individual handlers in the given handlers struct can also be NULL.

Parameters
[in]aHandlersA pointer to a handler struct.

◆ otNcpRegisterPeekPokeDelagates()

void otNcpRegisterPeekPokeDelagates ( otNcpDelegateAllowPeekPoke  aAllowPeekDelegate,
otNcpDelegateAllowPeekPoke  aAllowPokeDelegate 
)

This method registers peek/poke delegate functions with NCP module.

The delegate functions are called by NCP module to decide whether to allow peek or poke of a specific memory region. If the delegate pointer is set to NULL, it allows peek/poke operation for any address.

Parameters
[in]aAllowPeekDelegateDelegate function pointer for peek operation.
[in]aAllowPokeDelegateDelegate function pointer for poke operation.

◆ otNcpStreamWrite()

otError otNcpStreamWrite ( int  aStreamId,
const uint8_t *  aDataPtr,
int  aDataLen 
)

Send data to the host via a specific stream.

This function attempts to send the given data to the host using the given aStreamId. This is useful for reporting error messages, implementing debug/diagnostic consoles, and potentially other types of datastreams.

The write either is accepted in its entirety or rejected. Partial writes are not attempted.

Parameters
[in]aStreamIdA numeric identifier for the stream to write to. If set to '0', will default to the debug stream.
[in]aDataPtrA pointer to the data to send on the stream. If aDataLen is non-zero, this param MUST NOT be NULL.
[in]aDataLenThe number of bytes of data from aDataPtr to send.
Return values
OT_ERROR_NONEThe data was queued for delivery to the host.
OT_ERROR_BUSYThere are not enough resources to complete this request. This is usually a temporary condition.
OT_ERROR_INVALID_ARGSThe given aStreamId was invalid.