Serial communication queue (ring buffer) management module.
More...
Serial communication queue (ring buffer) management module.
FIFO Array Based, data type is uint8_t, 8-bit unsigned integer Buffering is ring-based, i.e wrap-around is allowed to always allow maximum use of the buffer space.
- Version
- VERSION Released on RELEASE_DATE
§ tByteQueueError
tByteQueueError enumerates possible Byte Queue function errors.
Enumerator |
---|
eByteQueue_Success | eByteQueue_Success when returned indicates that the function completed successfully.
|
eByteQueue_QueueEmpty | eByteQueue_QueueEmpty when returned indicates that the function attempted to retrieve a byte but there was no data in the queue.
|
eByteQueue_QueueOverrun | eByteQueue_QueueOverrun indicates that the queue is full, and the oldest byte was dropped to make space for the newest byte.
|
§ CAPT_initByteQueue()
bool CAPT_initByteQueue |
( |
tByteQueue * |
pQueue, |
|
|
uint8_t * |
pBufferArray, |
|
|
uint16_t |
ui16BufferArraySize |
|
) |
| |
This is the basic "constructor" function for a queue. Call this once before a queue is used, or again to clear the queue and reset it. Function is public
- Parameters
-
*pQueue | is a pointer to the queue to initialize |
*pBufferArray | is a pointer to buffer space that can be used for this queue. |
ui16BufferArraySize | is an integer specifying the length of the memory (in bytes) pointed to by pBufferArray that can be used for the queue |
- Returns
- true if parameters were valid, else false.
§ CAPT_pushOntoByteQueue()
int8_t CAPT_pushOntoByteQueue |
( |
tByteQueue * |
pQueue, |
|
|
uint8_t |
ui8DataToAdd |
|
) |
| |
Push a new item onto the end of the queue Function is public
- Parameters
-
*pQueue | is a pointer to the queue of interest |
ui8DataToAdd | is the byte to add to the queue |
- Returns
- eByteQueue_QueueOverrun if queue was full and the oldest byte was dropped; else eByteQueue_Success.
§ CAPT_pullFromByteQueue()
int8_t CAPT_pullFromByteQueue |
( |
tByteQueue * |
pQueue, |
|
|
uint8_t * |
pDestination |
|
) |
| |
Remove the next item from the front of the queue Function is public
- Parameters
-
*pQueue | is a pointer to the queue of interest |
*pDestination | is a pointer to the destination |
- Returns
- eByteQueue_QueueEmpty if queue was empty (no bytes to pull), else eByteQueue_Success.
§ CAPT_getByteQueueSize()
uint16_t CAPT_getByteQueueSize |
( |
tByteQueue * |
pQueue | ) |
|
Get the active size of the queue. Function is public. This is a helpful function for finding out how many items are currently in the queue.
- Parameters
-
*pQueue | is a pointer to the queue of interest |
- Returns
- number of items in the queue if not empty, else 0.
§ CAPT_isByteQueueFull()
Check whether queue is full. Function is public. This is a helpful function for internal (private) use.
- Parameters
-
*pQueue | is a pointer to the queue of interest |
- Returns
- true if full, else false
§ CAPT_isByteQueueEmpty()
Check whether queue is empty. Function is public. This is a helpful function for internal (private) use.
- Parameters
-
*pQueue | is a pointer to the queue of interest |
- Returns
- true if empty, else false