Avionics
Core avionics package for CURE flight computers
Loading...
Searching...
No Matches
CircularArray< T, Capacity > Class Template Reference

Fixed-size circular buffer with median helper and head tracking. More...

#include <CircularArray.h>

Collaboration diagram for CircularArray< T, Capacity >:
Collaboration graph

Public Member Functions

 CircularArray (uint8_t maxSize=Capacity)
void push (T data)
pop ()
getFromHead (uint8_t index)
bool isFull ()
bool isEmpty ()
uint8_t getHead ()
uint8_t getMaxSize ()
getMedian ()
void clear ()

Protected Attributes

std::array< T, Capacity > array
std::array< T, Capacity > scratchArray
uint8_t maxSize
uint8_t head
uint8_t currentSize

Detailed Description

template<typename T, std::size_t Capacity>
class CircularArray< T, Capacity >

Fixed-size circular buffer with median helper and head tracking.

Note
When to use: maintain a rolling window of recent samples for filters or detectors without reallocations.

Definition at line 55 of file CircularArray.h.

Constructor & Destructor Documentation

◆ CircularArray()

template<typename T, std::size_t Capacity>
CircularArray< T, Capacity >::CircularArray ( uint8_t maxSize = Capacity)
inline

Definition at line 64 of file CircularArray.h.

Member Function Documentation

◆ clear()

template<typename T, std::size_t Capacity>
void CircularArray< T, Capacity >::clear ( )
inline

Definition at line 134 of file CircularArray.h.

◆ getFromHead()

template<typename T, std::size_t Capacity>
T CircularArray< T, Capacity >::getFromHead ( uint8_t index)
inline

Definition at line 95 of file CircularArray.h.

◆ getHead()

template<typename T, std::size_t Capacity>
uint8_t CircularArray< T, Capacity >::getHead ( )
inline

Definition at line 108 of file CircularArray.h.

◆ getMaxSize()

template<typename T, std::size_t Capacity>
uint8_t CircularArray< T, Capacity >::getMaxSize ( )
inline

Definition at line 112 of file CircularArray.h.

◆ getMedian()

template<typename T, std::size_t Capacity>
T CircularArray< T, Capacity >::getMedian ( )
inline

Definition at line 116 of file CircularArray.h.

◆ isEmpty()

template<typename T, std::size_t Capacity>
bool CircularArray< T, Capacity >::isEmpty ( )
inline

Definition at line 104 of file CircularArray.h.

◆ isFull()

template<typename T, std::size_t Capacity>
bool CircularArray< T, Capacity >::isFull ( )
inline

Definition at line 100 of file CircularArray.h.

◆ pop()

template<typename T, std::size_t Capacity>
T CircularArray< T, Capacity >::pop ( )
inline

Definition at line 84 of file CircularArray.h.

◆ push()

template<typename T, std::size_t Capacity>
void CircularArray< T, Capacity >::push ( T data)
inline

Definition at line 72 of file CircularArray.h.

Member Data Documentation

◆ array

template<typename T, std::size_t Capacity>
std::array<T, Capacity> CircularArray< T, Capacity >::array
protected

Definition at line 57 of file CircularArray.h.

◆ currentSize

template<typename T, std::size_t Capacity>
uint8_t CircularArray< T, Capacity >::currentSize
protected

Definition at line 61 of file CircularArray.h.

◆ head

template<typename T, std::size_t Capacity>
uint8_t CircularArray< T, Capacity >::head
protected

Definition at line 60 of file CircularArray.h.

◆ maxSize

template<typename T, std::size_t Capacity>
uint8_t CircularArray< T, Capacity >::maxSize
protected

Definition at line 59 of file CircularArray.h.

◆ scratchArray

template<typename T, std::size_t Capacity>
std::array<T, Capacity> CircularArray< T, Capacity >::scratchArray
protected

Definition at line 58 of file CircularArray.h.


The documentation for this class was generated from the following file: