px-fwlib 0.10.0
Cross-platform embedded library and documentation for 8/16/32-bit microcontrollers generated with Doxygen 1.9.2
px_queue.h : A FIFO item queue

Description

A FIFO (First In First Out) queue of fixed sized items using zero based indexes.

File(s):

See also
https://en.wikipedia.org/wiki/Queue_(abstract_data_type)

Data Structures

struct  px_queue_t
 Queue structure. More...
 

Typedefs

typedef uint8_t px_queue_idx_t
 Queue index size definition. More...
 
typedef uint8_t px_queue_item_size_t
 Queue item size definition. More...
 

Functions

void px_queue_init (px_queue_t *queue, void *buf, px_queue_idx_t items_max, px_queue_item_size_t item_size)
 Initialises a queue structure. More...
 
bool px_queue_is_empty (px_queue_t *queue)
 See if the queue is empty. More...
 
bool px_queue_is_full (px_queue_t *queue)
 See if the queue is full. More...
 
px_queue_idx_t px_queue_get_item_count (px_queue_t *queue)
 Get the number of items in the queue. More...
 
bool px_queue_wr (px_queue_t *queue, const void *item_data)
 Write a new item to the queue. More...
 
bool px_queue_rd (px_queue_t *queue, void *item_data)
 Read the oldest item from the queue. More...
 
bool px_queue_discard_oldest (px_queue_t *queue)
 Remove oldest item from queue. More...
 
void px_queue_flush (px_queue_t *queue)
 Remove all items from queue. More...
 

Data Structure Documentation

◆ px_queue_t

struct px_queue_t

Queue structure.

Definition at line 55 of file px_queue.h.

Data Fields
uint8_t * buf Buffer to hold item data.
px_queue_idx_t idx_rd Read index.
px_queue_idx_t idx_wr Write index.
px_queue_idx_t item_count Number of items stored in queue.
px_queue_idx_t items_max Maximum number of items that can be stored in queue.
px_queue_item_size_t item_size Size of each item.

Typedef Documentation

◆ px_queue_idx_t

typedef uint8_t px_queue_idx_t

Queue index size definition.

Definition at line 49 of file px_queue.h.

◆ px_queue_item_size_t

typedef uint8_t px_queue_item_size_t

Queue item size definition.

Definition at line 52 of file px_queue.h.

Function Documentation

◆ px_queue_init()

void px_queue_init ( px_queue_t queue,
void *  buf,
px_queue_idx_t  items_max,
px_queue_item_size_t  item_size 
)

Initialises a queue structure.

Parameters
queuePointer to a queue object
bufBuffer to hold items (must be at least item_size * items_max bytes)
item_sizeFixed size of each item
items_maxMaximum number of items that can be stored in array

Definition at line 50 of file px_queue.c.

◆ px_queue_is_empty()

bool px_queue_is_empty ( px_queue_t queue)

See if the queue is empty.

Parameters
queuePointer to a queue object
Returns
true Queue is empty
false Queue contains one or more items

Definition at line 69 of file px_queue.c.

◆ px_queue_is_full()

bool px_queue_is_full ( px_queue_t queue)

See if the queue is full.

Parameters
queuePointer to a queue object
Return values
trueThe queue is full
falseThe queue has one or more empty slots

Definition at line 83 of file px_queue.c.

◆ px_queue_get_item_count()

px_queue_idx_t px_queue_get_item_count ( px_queue_t queue)

Get the number of items in the queue.

Parameters
queuePointer to a queue object
Returns
px_queue_idx_t The number of items in the queue

Definition at line 97 of file px_queue.c.

◆ px_queue_wr()

bool px_queue_wr ( px_queue_t queue,
const void *  item_data 
)

Write a new item to the queue.

The item data is copied into the array.

Parameters
queuePointer to a queue object.
item_dataPointer to item data.
Return values
trueItem added to the queue
falseQueue is full and item was not added

Definition at line 105 of file px_queue.c.

◆ px_queue_rd()

bool px_queue_rd ( px_queue_t queue,
void *  item_data 
)

Read the oldest item from the queue.

The item data is copied into the specified buffer

Parameters
queuePointer to a queue object.
item_dataPointer to item data buffer.
Return values
trueItem copied and removed from queue
falseQueue is empty

Definition at line 125 of file px_queue.c.

◆ px_queue_discard_oldest()

bool px_queue_discard_oldest ( px_queue_t queue)

Remove oldest item from queue.

Parameters
queuePointer to a queue object.
Return values
trueOldest item removed
falseQueue is empty

Definition at line 145 of file px_queue.c.

◆ px_queue_flush()

void px_queue_flush ( px_queue_t queue)

Remove all items from queue.

Parameters
queuePointer to queue object.

Definition at line 162 of file px_queue.c.