|
px-fwlib 0.10.0
Cross-platform embedded library and documentation for 8/16/32-bit microcontrollers generated with Doxygen 1.9.2
|
A FIFO (First In First Out) queue of fixed sized items using zero based indexes.
File(s):
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... | |
| 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 uint8_t px_queue_idx_t |
Queue index size definition.
Definition at line 49 of file px_queue.h.
| typedef uint8_t px_queue_item_size_t |
Queue item size definition.
Definition at line 52 of file px_queue.h.
| 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.
| queue | Pointer to a queue object |
| buf | Buffer to hold items (must be at least item_size * items_max bytes) |
| item_size | Fixed size of each item |
| items_max | Maximum number of items that can be stored in array |
Definition at line 50 of file px_queue.c.
| bool px_queue_is_empty | ( | px_queue_t * | queue | ) |
See if the queue is empty.
| queue | Pointer to a queue object |
Definition at line 69 of file px_queue.c.
| bool px_queue_is_full | ( | px_queue_t * | queue | ) |
See if the queue is full.
| queue | Pointer to a queue object |
| true | The queue is full |
| false | The queue has one or more empty slots |
Definition at line 83 of file px_queue.c.
| px_queue_idx_t px_queue_get_item_count | ( | px_queue_t * | queue | ) |
Get the number of items in the queue.
| queue | Pointer to a queue object |
Definition at line 97 of file px_queue.c.
| 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.
| queue | Pointer to a queue object. |
| item_data | Pointer to item data. |
| true | Item added to the queue |
| false | Queue is full and item was not added |
Definition at line 105 of file px_queue.c.
| 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
| queue | Pointer to a queue object. |
| item_data | Pointer to item data buffer. |
| true | Item copied and removed from queue |
| false | Queue is empty |
Definition at line 125 of file px_queue.c.
| bool px_queue_discard_oldest | ( | px_queue_t * | queue | ) |
Remove oldest item from queue.
| queue | Pointer to a queue object. |
| true | Oldest item removed |
| false | Queue is empty |
Definition at line 145 of file px_queue.c.
| void px_queue_flush | ( | px_queue_t * | queue | ) |
Remove all items from queue.
| queue | Pointer to queue object. |
Definition at line 162 of file px_queue.c.