From 2a9dc518a0693bda9fdf0d863c7c551a47da864c Mon Sep 17 00:00:00 2001 From: Marius Eggert Date: Wed, 12 Oct 2022 15:04:19 +0200 Subject: [PATCH] added GpsDummy --- bsp_q7s/core/InitMission.cpp | 1 + dummies/CMakeLists.txt | 1 + dummies/GpsDummy.cpp | 56 ++++++++++++++++++++++++++++++++++++ dummies/GpsDummy.h | 33 +++++++++++++++++++++ dummies/helpers.cpp | 6 ++-- 5 files changed, 95 insertions(+), 2 deletions(-) create mode 100644 dummies/GpsDummy.cpp create mode 100644 dummies/GpsDummy.h diff --git a/bsp_q7s/core/InitMission.cpp b/bsp_q7s/core/InitMission.cpp index 9935f9c1..e3e26be9 100644 --- a/bsp_q7s/core/InitMission.cpp +++ b/bsp_q7s/core/InitMission.cpp @@ -161,6 +161,7 @@ void initmission::initTasks() { acsTask->addComponent(objects::GYRO_1_L3G_HANDLER); acsTask->addComponent(objects::GYRO_2_ADIS_HANDLER); acsTask->addComponent(objects::GYRO_3_L3G_HANDLER); + acsTask->addComponent(objects::GPS_CONTROLLER); acsTask->addComponent(objects::STAR_TRACKER); #endif diff --git a/dummies/CMakeLists.txt b/dummies/CMakeLists.txt index 4cb05289..3c46736f 100644 --- a/dummies/CMakeLists.txt +++ b/dummies/CMakeLists.txt @@ -12,6 +12,7 @@ target_sources( AcuDummy.cpp PduDummy.cpp P60DockDummy.cpp + GpsDummy.cpp GyroAdisDummy.cpp GyroL3GD20Dummy.cpp MgmLIS3MDLDummy.cpp diff --git a/dummies/GpsDummy.cpp b/dummies/GpsDummy.cpp new file mode 100644 index 00000000..d1f526d2 --- /dev/null +++ b/dummies/GpsDummy.cpp @@ -0,0 +1,56 @@ +#include "GpsDummy.h" + +#include + +GpsDummy::GpsDummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie) + : DeviceHandlerBase(objectId, comif, comCookie) {} + +GpsDummy::~GpsDummy() {} + +void GpsDummy::doStartUp() {} + +void GpsDummy::doShutDown() {} + +ReturnValue_t GpsDummy::buildNormalDeviceCommand(DeviceCommandId_t *id) { return NOTHING_TO_SEND; } + +ReturnValue_t GpsDummy::buildTransitionDeviceCommand(DeviceCommandId_t *id) { + return NOTHING_TO_SEND; +} + +ReturnValue_t GpsDummy::buildCommandFromCommand(DeviceCommandId_t deviceCommand, + const uint8_t *commandData, size_t commandDataLen) { + return returnvalue::OK; +} + +ReturnValue_t GpsDummy::scanForReply(const uint8_t *start, size_t len, DeviceCommandId_t *foundId, + size_t *foundLen) { + return returnvalue::OK; +} + +ReturnValue_t GpsDummy::interpretDeviceReply(DeviceCommandId_t id, const uint8_t *packet) { + return returnvalue::OK; +} + +void GpsDummy::fillCommandAndReplyMap() {} + +uint32_t GpsDummy::getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) { return 500; } + +ReturnValue_t GpsDummy::initializeLocalDataPool(localpool::DataPool &localDataPoolMap, + LocalDataPoolManager &poolManager) { + localDataPoolMap.emplace(GpsHyperion::LATITUDE, new PoolEntry({0.0})); + localDataPoolMap.emplace(GpsHyperion::LONGITUDE, new PoolEntry({0.0})); + localDataPoolMap.emplace(GpsHyperion::ALTITUDE, new PoolEntry({0.0})); + localDataPoolMap.emplace(GpsHyperion::SPEED, new PoolEntry({7684.2})); + localDataPoolMap.emplace(GpsHyperion::FIX_MODE, new PoolEntry({0})); + localDataPoolMap.emplace(GpsHyperion::SATS_IN_USE, new PoolEntry({0})); + localDataPoolMap.emplace(GpsHyperion::SATS_IN_VIEW, new PoolEntry({0})); + localDataPoolMap.emplace(GpsHyperion::YEAR, new PoolEntry({0})); + localDataPoolMap.emplace(GpsHyperion::MONTH, new PoolEntry({0})); + localDataPoolMap.emplace(GpsHyperion::DAY, new PoolEntry({0})); + localDataPoolMap.emplace(GpsHyperion::HOURS, new PoolEntry({0})); + localDataPoolMap.emplace(GpsHyperion::MINUTES, new PoolEntry({0})); + localDataPoolMap.emplace(GpsHyperion::SECONDS, new PoolEntry({0})); + localDataPoolMap.emplace(GpsHyperion::UNIX_SECONDS, new PoolEntry({0})); + + return returnvalue::OK; +} diff --git a/dummies/GpsDummy.h b/dummies/GpsDummy.h new file mode 100644 index 00000000..b32b7f17 --- /dev/null +++ b/dummies/GpsDummy.h @@ -0,0 +1,33 @@ +#ifndef DUMMIES_GPSDUMMY_H_ +#define DUMMIES_GPSDUMMY_H_ + +#include + +class GpsDummy : public DeviceHandlerBase { + public: + static const DeviceCommandId_t SIMPLE_COMMAND = 1; + static const DeviceCommandId_t PERIODIC_REPLY = 2; + + static const uint8_t SIMPLE_COMMAND_DATA = 1; + static const uint8_t PERIODIC_REPLY_DATA = 2; + + GpsDummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie); + virtual ~GpsDummy(); + + protected: + void doStartUp() override; + void doShutDown() override; + ReturnValue_t buildNormalDeviceCommand(DeviceCommandId_t *id) override; + ReturnValue_t buildTransitionDeviceCommand(DeviceCommandId_t *id) override; + ReturnValue_t buildCommandFromCommand(DeviceCommandId_t deviceCommand, const uint8_t *commandData, + size_t commandDataLen) override; + ReturnValue_t scanForReply(const uint8_t *start, size_t len, DeviceCommandId_t *foundId, + size_t *foundLen) override; + ReturnValue_t interpretDeviceReply(DeviceCommandId_t id, const uint8_t *packet) override; + void fillCommandAndReplyMap() override; + uint32_t getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) override; + ReturnValue_t initializeLocalDataPool(localpool::DataPool &localDataPoolMap, + LocalDataPoolManager &poolManager) override; +}; + +#endif /* DUMMIES_GPSDUMMY_H_ */ diff --git a/dummies/helpers.cpp b/dummies/helpers.cpp index 46cf207d..74410f56 100644 --- a/dummies/helpers.cpp +++ b/dummies/helpers.cpp @@ -1,10 +1,9 @@ -#include "helpers.h" - #include #include #include #include #include +#include #include #include #include @@ -18,6 +17,8 @@ #include #include +#include "helpers.h" + using namespace dummy; void dummy::createDummies(DummyCfg cfg) { @@ -51,6 +52,7 @@ void dummy::createDummies(DummyCfg cfg) { new MgmLIS3MDLDummy(objects::MGM_2_LIS3_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); new MgmRm3100Dummy(objects::MGM_1_RM3100_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); new MgmRm3100Dummy(objects::MGM_3_RM3100_HANDLER, objects::DUMMY_COM_IF, comCookieDummy); + new GpsDummy(objects::GPS_CONTROLLER, objects::DUMMY_COM_IF, comCookieDummy); } if (cfg.addSusDummies) {