Zephyr Project API 3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
serial.h File Reference
#include <zephyr/types.h>

Go to the source code of this file.

Data Structures

struct  mcumgr_serial_rx_ctxt
 Maintains state for an incoming mcumgr request packet. More...
 

Macros

#define MCUMGR_SERIAL_HDR_PKT   0x0609
 
#define MCUMGR_SERIAL_HDR_FRAG   0x0414
 
#define MCUMGR_SERIAL_MAX_FRAME   127
 
#define MCUMGR_SERIAL_HDR_PKT_1   (MCUMGR_SERIAL_HDR_PKT >> 8)
 
#define MCUMGR_SERIAL_HDR_PKT_2   (MCUMGR_SERIAL_HDR_PKT & 0xff)
 
#define MCUMGR_SERIAL_HDR_FRAG_1   (MCUMGR_SERIAL_HDR_FRAG >> 8)
 
#define MCUMGR_SERIAL_HDR_FRAG_2   (MCUMGR_SERIAL_HDR_FRAG & 0xff)
 

Typedefs

typedef int(* mcumgr_serial_tx_cb) (const void *data, int len)
 Transmits a chunk of raw response data.
 

Functions

struct net_bufmcumgr_serial_process_frag (struct mcumgr_serial_rx_ctxt *rx_ctxt, const uint8_t *frag, int frag_len)
 Processes an mcumgr request fragment received over a serial transport.
 
int mcumgr_serial_tx_pkt (const uint8_t *data, int len, mcumgr_serial_tx_cb cb)
 Encodes and transmits an mcumgr packet over serial.
 

Macro Definition Documentation

◆ MCUMGR_SERIAL_HDR_FRAG

#define MCUMGR_SERIAL_HDR_FRAG   0x0414

◆ MCUMGR_SERIAL_HDR_FRAG_1

#define MCUMGR_SERIAL_HDR_FRAG_1   (MCUMGR_SERIAL_HDR_FRAG >> 8)

◆ MCUMGR_SERIAL_HDR_FRAG_2

#define MCUMGR_SERIAL_HDR_FRAG_2   (MCUMGR_SERIAL_HDR_FRAG & 0xff)

◆ MCUMGR_SERIAL_HDR_PKT

#define MCUMGR_SERIAL_HDR_PKT   0x0609

◆ MCUMGR_SERIAL_HDR_PKT_1

#define MCUMGR_SERIAL_HDR_PKT_1   (MCUMGR_SERIAL_HDR_PKT >> 8)

◆ MCUMGR_SERIAL_HDR_PKT_2

#define MCUMGR_SERIAL_HDR_PKT_2   (MCUMGR_SERIAL_HDR_PKT & 0xff)

◆ MCUMGR_SERIAL_MAX_FRAME

#define MCUMGR_SERIAL_MAX_FRAME   127

Typedef Documentation

◆ mcumgr_serial_tx_cb

mcumgr_serial_tx_cb

Transmits a chunk of raw response data.

Parameters
dataThe data to transmit.
lenThe number of bytes to transmit.
Returns
0 on success; negative error code on failure.

Function Documentation

◆ mcumgr_serial_process_frag()

struct net_buf * mcumgr_serial_process_frag ( struct mcumgr_serial_rx_ctxt rx_ctxt,
const uint8_t frag,
int  frag_len 
)

Processes an mcumgr request fragment received over a serial transport.

Processes an mcumgr request fragment received over a serial transport. If the fragment is the end of a valid mcumgr request, this function returns a net_buf containing the decoded request. It is the caller's responsibility to free the net_buf after it has been processed.

Parameters
rx_ctxtThe receive context associated with the serial transport being used.
fragThe incoming fragment to process.
frag_lenThe length of the fragment, in bytes.
Returns
A net_buf containing the decoded request if a complete and valid request has been received. NULL if the packet is incomplete or invalid.

◆ mcumgr_serial_tx_pkt()

int mcumgr_serial_tx_pkt ( const uint8_t data,
int  len,
mcumgr_serial_tx_cb  cb 
)

Encodes and transmits an mcumgr packet over serial.

Parameters
dataThe mcumgr packet data to send.
lenThe length of the unencoded mcumgr packet.
cbA callback used to transmit raw bytes.
Returns
0 on success; negative error code on failure.