SmartSnippets DA1459x SDK
Files | Functions | Variables

DGTL messages API. More...

Files

file  dgtl_msg.h
 Declarations for DGTL Messages API.
 

Functions

dgtl_msg_t * dgtl_msg_alloc (uint8_t pkt_type, size_t length)
 Allocate a DGTL message. More...
 
void dgtl_msg_free (dgtl_msg_t *msg)
 Free DGTL message. More...
 
void * dgtl_msg_get_param_ptr (dgtl_msg_t *msg, size_t *length)
 Get pointer to message contents parameters. More...
 
void * dgtl_msg_to_raw_ptr (dgtl_msg_t *msg)
 Get pointer for raw buffer of DGTL message. More...
 
dgtl_msg_t * dgtl_msg_from_raw_ptr (void *ptr, uint8_t pkt_type)
 Get DGTL message pointer from raw buffer. More...
 

Variables

typedef __PACKED_UNION
 DGTL message. More...
 

Detailed Description

DGTL messages API.

Function Documentation

◆ dgtl_msg_alloc()

dgtl_msg_t* dgtl_msg_alloc ( uint8_t  pkt_type,
size_t  length 
)

Allocate a DGTL message.

This function allocates an empty DGTL message.

The allocated message contents has following structure:

,– packet type indicator | ,– packet header (length depends on packet type indicator) | | ,– packet parameters | | | v v v ,—.-------—.------------—. | 1 | 2 .. X | X+1 .. length | '—'-------—'------------—' ^ ^ | | | | | -- message parameters pointer – message pointer

The message contents parameters pointer can be obtained using dgtl_msg_get_param_ptr() helper.

The allocated message has to be freed using dgtl_msg_free() after use.

Warning
The application shall not change packet type indicator for already allocated message, this may result in an undefined behavior.
Parameters
[in]pkt_typepacket type indicator
[in]lengthpacket length
Returns
DGTL message

◆ dgtl_msg_free()

void dgtl_msg_free ( dgtl_msg_t *  msg)

Free DGTL message.

This function should be used to free a DGTL message previously allocated using other DGTL APIs.

Parameters
[in]msgDGTL message

◆ dgtl_msg_from_raw_ptr()

dgtl_msg_t* dgtl_msg_from_raw_ptr ( void *  ptr,
uint8_t  pkt_type 
)

Get DGTL message pointer from raw buffer.

Warning
This function is intended for internal usage only and shall not be used by regular applications.
Parameters
[in]ptrbuffer pointer
[in]pkt_typepacket type, as stored in buffer
Returns
DGTL message

◆ dgtl_msg_get_param_ptr()

void* dgtl_msg_get_param_ptr ( dgtl_msg_t *  msg,
size_t *  length 
)

Get pointer to message contents parameters.

This function returns a pointer to message contents parameters. length parameter is optional and, if supplied, will be filled with message contents parameters length.

Warning
This function should only be called on an already initialized message which has proper packet header set. Calling it on a message which is not properly initialized may result in undefined behavior.
Parameters
[in]msgDGTL message
[out]lengthmessage contents parameters length
Returns
message contents pointer

◆ dgtl_msg_to_raw_ptr()

void* dgtl_msg_to_raw_ptr ( dgtl_msg_t *  msg)

Get pointer for raw buffer of DGTL message.

Warning
This function is intended for internal usage only and shall not be used by regular applications.
Parameters
[in]msgDGTL message
Returns
buffer pointer

Variable Documentation

◆ __PACKED_UNION

typedef __PACKED_UNION
Initial value:
{
const uint8_t pkt_type

DGTL message.