diff --git a/Sts1CobcSw/Periphery/FramRingBuffer.hpp b/Sts1CobcSw/Periphery/FramRingArray.hpp similarity index 71% rename from Sts1CobcSw/Periphery/FramRingBuffer.hpp rename to Sts1CobcSw/Periphery/FramRingArray.hpp index 7903ca86..c4adc549 100644 --- a/Sts1CobcSw/Periphery/FramRingBuffer.hpp +++ b/Sts1CobcSw/Periphery/FramRingArray.hpp @@ -17,10 +17,10 @@ namespace sts1cobcsw::fram { template -class RingBuffer +class RingArray { public: - RingBuffer() : bufferSize_(size + 1U), offset_(sizeof(std::size_t) * 2) + RingArray() : bufferSize_(size + 1U), offset_(sizeof(std::size_t) * 2) { Initialize(); }; @@ -32,13 +32,13 @@ class RingBuffer auto Front() -> T; auto Back() -> T; - //! @brief Returns the current size of the ringbuffer + //! @brief Returns the current size of the ring array auto Size() -> std::size_t; - //! @brief Returns the capacity of the ringbuffer + //! @brief Returns the capacity of the ring array auto Capacity() -> std::size_t; - // @brief Initializes the ringbuffer by reading indices from FRAM + // @brief Initializes the ring array by reading indices from FRAM auto Initialize() -> void; private: @@ -53,4 +53,4 @@ class RingBuffer } -#include // IWYU pragma: keep +#include // IWYU pragma: keep diff --git a/Sts1CobcSw/Periphery/FramRingBuffer.ipp b/Sts1CobcSw/Periphery/FramRingArray.ipp similarity index 81% rename from Sts1CobcSw/Periphery/FramRingBuffer.ipp rename to Sts1CobcSw/Periphery/FramRingArray.ipp index 41bff372..a76c4386 100644 --- a/Sts1CobcSw/Periphery/FramRingBuffer.ipp +++ b/Sts1CobcSw/Periphery/FramRingArray.ipp @@ -1,13 +1,13 @@ #pragma once -#include +#include namespace sts1cobcsw::fram { template -void RingBuffer::Push(T const & newData) +void RingArray::Push(T const & newData) { auto const rawAddress = offset_ + value_of(startAddress) + (iEnd_ * serialSize); fram::WriteTo(fram::Address(rawAddress), Span(Serialize(newData)), 0); @@ -23,7 +23,7 @@ void RingBuffer::Push(T const & newData) template -auto RingBuffer::Front() -> T +auto RingArray::Front() -> T { auto const rawAddress = offset_ + value_of(startAddress) + (iBegin_ * serialSize); auto readData = fram::ReadFrom>(fram::Address(rawAddress), 0); @@ -34,7 +34,7 @@ auto RingBuffer::Front() -> T template -auto RingBuffer::Back() -> T +auto RingArray::Back() -> T { std::uint32_t readIndex = 0; if(iEnd_ == 0) @@ -55,7 +55,7 @@ auto RingBuffer::Back() -> T template -auto RingBuffer::operator[](std::size_t index) -> T +auto RingArray::operator[](std::size_t index) -> T { auto const rawAddress = offset_ + value_of(startAddress) + ((iBegin_ + index) % bufferSize_) * serialSize; @@ -67,7 +67,7 @@ auto RingBuffer::operator[](std::size_t index) -> T template -auto RingBuffer::Size() -> std::size_t +auto RingArray::Size() -> std::size_t { if(iEnd_ >= iBegin_) { @@ -77,19 +77,19 @@ auto RingBuffer::Size() -> std::size_t } template -auto RingBuffer::Capacity() -> std::size_t +auto RingArray::Capacity() -> std::size_t { return (bufferSize_ - 1U); } template -auto RingBuffer::Initialize() -> void +auto RingArray::Initialize() -> void { ReadIndices(); } template -auto RingBuffer::WriteIndices() -> void +auto RingArray::WriteIndices() -> void { auto beginAddress = value_of(startAddress); auto endAddress = beginAddress + sizeof(std::size_t); @@ -99,7 +99,7 @@ auto RingBuffer::WriteIndices() -> void } template -auto RingBuffer::ReadIndices() -> void +auto RingArray::ReadIndices() -> void { auto beginAddress = value_of(startAddress); auto endAddress = beginAddress + sizeof(std::size_t); diff --git a/Tests/UnitTests/CMakeLists.txt b/Tests/UnitTests/CMakeLists.txt index e87d875c..efd075d9 100644 --- a/Tests/UnitTests/CMakeLists.txt +++ b/Tests/UnitTests/CMakeLists.txt @@ -14,10 +14,10 @@ target_link_libraries( Sts1CobcSw_Utility ) -add_program(FramRingBuffer FramRingBuffer.test.cpp) +add_program(FramRingArray FramRingArray.test.cpp) target_link_libraries( - Sts1CobcSwTests_FramRingBuffer PRIVATE Catch2::Catch2WithMain Sts1CobcSw_Periphery - Sts1CobcSw_Serial Sts1CobcSw_Edu + Sts1CobcSwTests_FramRingArray PRIVATE Catch2::Catch2WithMain Sts1CobcSw_Periphery + Sts1CobcSw_Serial Sts1CobcSw_Edu ) add_program(LfsRam LfsRam.test.cpp) diff --git a/Tests/UnitTests/FramRingBuffer.test.cpp b/Tests/UnitTests/FramRingArray.test.cpp similarity index 83% rename from Tests/UnitTests/FramRingBuffer.test.cpp rename to Tests/UnitTests/FramRingArray.test.cpp index 7724afc7..601645bd 100644 --- a/Tests/UnitTests/FramRingBuffer.test.cpp +++ b/Tests/UnitTests/FramRingArray.test.cpp @@ -1,7 +1,7 @@ #include #include #include -#include +#include #include #include @@ -20,15 +20,15 @@ using sts1cobcsw::operator""_b; // NOLINT(misc-unused-using-decls) TEST_CASE("Initial State ringbuffer") { - fram::RingBuffer buffer; + fram::RingArray buffer; REQUIRE(buffer.Size() == 0); REQUIRE(buffer.Capacity() == 10); // Fixed from 0 to 10 to reflect actual buffer capacity } -TEST_CASE("FramRingBuffer Push function") +TEST_CASE("FramRingArray Push function") { - fram::RingBuffer buffer; + fram::RingArray buffer; buffer.Push(1); buffer.Push(2); @@ -37,7 +37,7 @@ TEST_CASE("FramRingBuffer Push function") REQUIRE(buffer.Size() == 3); } -TEMPLATE_TEST_CASE_SIG("FramRingBuffer Front Address", +TEMPLATE_TEST_CASE_SIG("FramRingArray Front Address", "", ((typename T, size_t S, fram::Address A), T, S, A), (int, 10U, fram::Address{0}), @@ -47,7 +47,7 @@ TEMPLATE_TEST_CASE_SIG("FramRingBuffer Front Address", fram::ram::memory.fill(0x00_b); fram::Initialize(); - fram::RingBuffer buffer; + fram::RingArray buffer; // FIXME: [] not working buffer.Push(10); @@ -63,13 +63,13 @@ TEMPLATE_TEST_CASE_SIG("FramRingBuffer Front Address", REQUIRE(buffer[2] == 30); } -TEST_CASE("FramRingBuffer Back() and Front() methods") +TEST_CASE("FramRingArray Back() and Front() methods") { fram::ram::SetAllDoFunctions(); fram::ram::memory.fill(0x00_b); fram::Initialize(); - auto buffer = fram::RingBuffer(); + auto buffer = fram::RingArray(); etl::circular_buffer etlBuffer; // NOLINTNEXTLINE (readability-container-size-empty) @@ -121,13 +121,13 @@ TEST_CASE("FramRingBuffer Back() and Front() methods") REQUIRE(buffer[2] == 4); } -TEST_CASE("FramRingBuffer Full and Empty conditions") +TEST_CASE("FramRingArray Full and Empty conditions") { fram::ram::SetAllDoFunctions(); fram::ram::memory.fill(0x00_b); fram::Initialize(); - auto buffer = fram::RingBuffer{}; + auto buffer = fram::RingArray{}; REQUIRE(buffer.Size() == 0); REQUIRE(buffer.Capacity() == 3); @@ -153,13 +153,13 @@ TEST_CASE("FramRingBuffer Full and Empty conditions") REQUIRE(buffer.Back() == 10); } -TEST_CASE("FramRingBuffer and ETL Circular Buffer") +TEST_CASE("FramRingArray and ETL Circular Buffer") { fram::ram::SetAllDoFunctions(); fram::ram::memory.fill(0x00_b); fram::Initialize(); - fram::RingBuffer framBuffer{}; + fram::RingArray framBuffer{}; etl::circular_buffer etlBuffer; for(int i = 0; i < 5; ++i) @@ -181,13 +181,13 @@ TEST_CASE("FramRingBuffer and ETL Circular Buffer") REQUIRE(framBuffer.Back() == etlBuffer.back()); } -TEST_CASE("FramRingBuffer Stress Test") +TEST_CASE("FramRingArray Stress Test") { fram::ram::SetAllDoFunctions(); fram::ram::memory.fill(0x00_b); fram::Initialize(); - auto buffer = fram::RingBuffer(); + auto buffer = fram::RingArray(); for(int i = 0; i < 10000; ++i) { @@ -209,7 +209,7 @@ TEST_CASE("Custom Type") fram::Initialize(); - fram::RingBuffer buffer; + fram::RingArray buffer; auto pshEntry = sts1cobcsw::edu::ProgramStatusHistoryEntry{ .programId = sts1cobcsw::ProgramId(0), @@ -230,14 +230,14 @@ TEST_CASE("Reset mechanism") fram::Initialize(); { - sts1cobcsw::fram::RingBuffer buffer; + sts1cobcsw::fram::RingArray buffer; buffer.Push(1); buffer.Push(2); buffer.Push(3); } // Simulate a reset by creating a new buffer instance - fram::RingBuffer buffer; + fram::RingArray buffer; REQUIRE(buffer.Size() == 3); REQUIRE(buffer.Front() == 1);