Network Co-Processor

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

Summary

Typedefs

otNcpDelegateAllowPeekPoke)(uint32_t aAddress, uint16_t aCount) typedef
bool(*
Defines delegate (function pointer) type to control behavior of peek/poke operation.
otNcpHdlcSendCallback)(const uint8_t *aBuf, uint16_t aBufLength) typedef
int(*
Pointer is called to send HDLC encoded NCP data.

Functions

otNcpHdlcInit(otInstance *aInstance, otNcpHdlcSendCallback aSendCallback)
void
Initialize the NCP based on HDLC framing.
otNcpHdlcInitMulti(otInstance **aInstance, uint8_t aCount, otNcpHdlcSendCallback aSendCallback)
void
Initialize the NCP based on HDLC framing.
otNcpHdlcReceive(const uint8_t *aBuf, uint16_t aBufLength)
void
Is called after HDLC encoded NCP data received.
otNcpHdlcSendDone(void)
void
Is called after NCP send finished.
otNcpPlatLogv(otLogLevel aLogLevel, otLogRegion aLogRegion, const char *aFormat, va_list aArgs)
void
Writes OpenThread Log using otNcpStreamWrite.
otNcpRegisterPeekPokeDelegates(otNcpDelegateAllowPeekPoke aAllowPeekDelegate, otNcpDelegateAllowPeekPoke aAllowPokeDelegate)
void
Registers peek/poke delegate functions with NCP module.
otNcpSpiInit(otInstance *aInstance)
void
Initialize the NCP based on SPI framing.
otNcpStreamWrite(int aStreamId, const uint8_t *aDataPtr, int aDataLen)
Send data to the host via a specific stream.

Typedefs

otNcpDelegateAllowPeekPoke

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.

Details
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.

otNcpHdlcSendCallback

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

Pointer is called to send HDLC encoded NCP data.

Details
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.

Functions

otNcpHdlcInit

void otNcpHdlcInit(
  otInstance *aInstance,
  otNcpHdlcSendCallback aSendCallback
)

Initialize the NCP based on HDLC framing.

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

otNcpHdlcInitMulti

void otNcpHdlcInitMulti(
  otInstance **aInstance,
  uint8_t aCount,
  otNcpHdlcSendCallback aSendCallback
)

Initialize the NCP based on HDLC framing.

Details
Parameters
[in] aInstances
The OpenThread instance pointers array.
[in] aCount
Number of elements in the array.
[in] aSendCallback
The function pointer used to send NCP data.

otNcpHdlcReceive

void otNcpHdlcReceive(
  const uint8_t *aBuf,
  uint16_t aBufLength
)

Is called after HDLC encoded NCP data received.

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

otNcpHdlcSendDone

void otNcpHdlcSendDone(
  void
)

Is called after NCP send finished.

otNcpPlatLogv

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

Writes OpenThread Log using otNcpStreamWrite.

Details
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.

otNcpRegisterPeekPokeDelegates

void otNcpRegisterPeekPokeDelegates(
  otNcpDelegateAllowPeekPoke aAllowPeekDelegate,
  otNcpDelegateAllowPeekPoke aAllowPokeDelegate
)

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.

Details
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.

Details
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.

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.

Details
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.

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.