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 int(* otNcpHdlcSendCallback ) (const uint8_t *aBuf, uint16_t aBufLength)
This function pointer is called to send HDLC encoded NCP data.
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 otNcpHdlcSendDone (void)
This function is called after NCP send finished.
void otNcpHdlcReceive (const uint8_t *aBuf, uint16_t aBufLength)
This function is called after HDLC encoded NCP data received.
void otNcpHdlcInit ( otInstance *aInstance, otNcpHdlcSendCallback aSendCallback)
Initialize the NCP based on HDLC framing.
void otNcpSpiInit ( otInstance *aInstance)
Initialize the NCP based on SPI framing.
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] aAddress Start address of memory region.
[in] aCount Number 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] aExtAddress A 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] aUlaPrefix A 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.

otNcpHdlcSendCallback

typedef int(* otNcpHdlcSendCallback) (const uint8_t *aBuf, uint16_t aBufLength)

This function pointer is called to send HDLC encoded NCP data.

Parameters
[in] aBuf A pointer to a buffer with an output.
[in] aBufLength A length of the output data stored in the buffer.
Returns
Number of bytes processed by the callback.

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] aUlaPrefix A 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] aExtAddr A pointer to the extended address of the joined node.

otNcpHdlcInit()

void otNcpHdlcInit ( otInstance * aInstance,
otNcpHdlcSendCallback aSendCallback
)

Initialize the NCP based on HDLC framing.

Parameters
[in] aInstance The OpenThread instance structure.
[in] aSendCallback The function pointer used to send NCP data.

otNcpHdlcReceive()

void otNcpHdlcReceive ( const uint8_t * aBuf,
uint16_t aBufLength
)

This function is called after HDLC encoded NCP data received.

Parameters
[in] aBuf A pointer to a buffer.
[in] aBufLength The length of the data stored in the buffer.

otNcpPlatLogv()

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

Writes OpenThread Log using otNcpStreamWrite .

Parameters
[in] aLogLevel The log level.
[in] aLogRegion The log region.
[in] aFormat A pointer to the format string.
[in] aArgs va_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] aHandlers A 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] aAllowPeekDelegate Delegate function pointer for peek operation.
[in] aAllowPokeDelegate Delegate function pointer for poke operation.

otNcpSpiInit()

void otNcpSpiInit ( otInstance * aInstance )

Initialize the NCP based on SPI framing.

Parameters
[in] aInstance The OpenThread instance structure.

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] aStreamId A numeric identifier for the stream to write to. If set to '0', will default to the debug stream.
[in] aDataPtr A pointer to the data to send on the stream. If aDataLen is non-zero, this param MUST NOT be NULL.
[in] aDataLen The number of bytes of data from aDataPtr to send.
Return values
OT_ERROR_NONE The data was queued for delivery to the host.
OT_ERROR_BUSY There are not enough resources to complete this request. This is usually a temporary condition.
OT_ERROR_INVALID_ARGS The given aStreamId was invalid.