#pragma once #include #include #include #include #include #include "fsfw/datapool/PoolEntry.h" #include "mock/MessageQueueMock.h" #include "tests/TestsConfig.h" namespace lpool { using namespace dp; using namespace serialize; static constexpr id_t uint8VarId = 0; static constexpr id_t floatVarId = 1; static constexpr id_t uint32VarId = 2; static constexpr id_t uint16Vec3Id = 3; static constexpr id_t int64Vec2Id = 4; static constexpr uint32_t testSetId0 = 0; static constexpr uint32_t testSetId1 = 1; static constexpr uint32_t testSetId2 = 2; static constexpr uint8_t dataSetMaxVariables = 10; static constexpr auto testSid0 = structure_id_t(objects::TEST_LOCAL_POOL_OWNER_BASE, testSetId0); static constexpr auto testSid1 = structure_id_t(objects::TEST_LOCAL_POOL_OWNER_BASE, testSetId1); static constexpr auto testSid2 = structure_id_t(objects::TEST_LOCAL_POOL_OWNER_BASE, testSetId2); static const g_id_t uint8VarGpid = g_id_t(objects::TEST_LOCAL_POOL_OWNER_BASE, uint8VarId); static const g_id_t floatVarGpid = g_id_t(objects::TEST_LOCAL_POOL_OWNER_BASE, floatVarId); static const g_id_t uint32Gpid = g_id_t(objects::TEST_LOCAL_POOL_OWNER_BASE, uint32VarId); static const g_id_t uint16Vec3Gpid = g_id_t(objects::TEST_LOCAL_POOL_OWNER_BASE, uint16Vec3Id); static const g_id_t uint64Vec2Id = g_id_t(objects::TEST_LOCAL_POOL_OWNER_BASE, int64Vec2Id); class Dataset : public List { public: LVar u8Element{*this}; LVar u16Element{*this}; LVec floatVec{*this}; }; class StaticTestDataset : public StaticSharedSet<3> { public: StaticTestDataset() : StaticSharedSet(lpool::testSid1) {} StaticTestDataset(SharedPool& sharedPool, uint32_t setId) : StaticSharedSet(sharedPool, setId) {} u8_t localPoolVarUint8{lpool::uint8VarGpid, this}; f32_t localPoolVarFloat{lpool::floatVarGpid, this}; vec_t localPoolUint16Vec{lpool::uint16Vec3Gpid, this}; private: }; class TestDataset : public SharedSet { public: TestDataset() : SharedSet(lpool::testSid2, lpool::dataSetMaxVariables) {} TestDataset(SharedPool& sharedPool, uint32_t setId) : SharedSet(sharedPool, setId, lpool::dataSetMaxVariables) {} u8_t localPoolVarUint8{lpool::uint8VarGpid, this}; f32_t localPoolVarFloat{lpool::floatVarGpid, this}; vec_t localPoolUint16Vec{lpool::uint16Vec3Gpid, this}; private: }; } // namespace lpool