fsfw/unittests/mock/poolDefinitions.h

73 lines
2.5 KiB
C
Raw Permalink Normal View History

#pragma once
#include <fsfw/datapool.h>
#include <fsfw/ipc/QueueFactory.h>
#include <fsfw/objectmanager/SystemObject.h>
#include <fsfw/serialize/SerializableList.h>
#include <fsfw/serialize/SerializableListElement.h>
#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<uint8_t> u8Element{*this};
LVar<uint16_t> u16Element{*this};
LVec<float, 3> 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<uint16_t, 3> 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<uint16_t, 3> localPoolUint16Vec{lpool::uint16Vec3Gpid, this};
private:
};
} // namespace lpool