diff --git a/dummies/GpsCtrlDummy.cpp b/dummies/GpsCtrlDummy.cpp index e69261b4..4ae8dc6f 100644 --- a/dummies/GpsCtrlDummy.cpp +++ b/dummies/GpsCtrlDummy.cpp @@ -1,6 +1,7 @@ #include "GpsCtrlDummy.h" -GpsCtrlDummy::GpsCtrlDummy(object_id_t objectId) : ExtendedControllerBase(objectId, 20) {} +GpsCtrlDummy::GpsCtrlDummy(object_id_t objectId) + : ExtendedControllerBase(objectId, 20), gpsSet(this) {} ReturnValue_t GpsCtrlDummy::handleCommandMessage(CommandMessage* message) { return returnvalue::OK; @@ -13,9 +14,23 @@ ReturnValue_t GpsCtrlDummy::checkModeCommand(Mode_t mode, Submode_t submode, return returnvalue::OK; } +LocalPoolDataSetBase* GpsCtrlDummy::getDataSetHandle(sid_t sid) { return &gpsSet; } + ReturnValue_t GpsCtrlDummy::initializeLocalDataPool(localpool::DataPool& localDataPoolMap, LocalDataPoolManager& poolManager) { + localDataPoolMap.emplace(GpsHyperion::ALTITUDE, new PoolEntry({537222.3469}, true)); + localDataPoolMap.emplace(GpsHyperion::LONGITUDE, new PoolEntry({-8.8579}, true)); + localDataPoolMap.emplace(GpsHyperion::LATITUDE, new PoolEntry({49.5952}, true)); + localDataPoolMap.emplace(GpsHyperion::SPEED, new PoolEntry({0})); + localDataPoolMap.emplace(GpsHyperion::YEAR, new PoolEntry({2023}, true)); + localDataPoolMap.emplace(GpsHyperion::MONTH, new PoolEntry({5}, true)); + localDataPoolMap.emplace(GpsHyperion::DAY, new PoolEntry({16}, true)); + localDataPoolMap.emplace(GpsHyperion::HOURS, new PoolEntry({1}, true)); + localDataPoolMap.emplace(GpsHyperion::MINUTES, new PoolEntry({0}, true)); + localDataPoolMap.emplace(GpsHyperion::SECONDS, new PoolEntry({0}, true)); + localDataPoolMap.emplace(GpsHyperion::UNIX_SECONDS, new PoolEntry({1684191600}, true)); + localDataPoolMap.emplace(GpsHyperion::SATS_IN_USE, new PoolEntry()); + localDataPoolMap.emplace(GpsHyperion::SATS_IN_VIEW, new PoolEntry()); + localDataPoolMap.emplace(GpsHyperion::FIX_MODE, new PoolEntry()); return returnvalue::OK; } - -LocalPoolDataSetBase* GpsCtrlDummy::getDataSetHandle(sid_t sid) { return nullptr; } diff --git a/dummies/GpsCtrlDummy.h b/dummies/GpsCtrlDummy.h index 128a9a85..4b7fc1bf 100644 --- a/dummies/GpsCtrlDummy.h +++ b/dummies/GpsCtrlDummy.h @@ -2,12 +2,15 @@ #define DUMMIES_GPSCTRLDUMMY_H_ #include +#include class GpsCtrlDummy : public ExtendedControllerBase { public: GpsCtrlDummy(object_id_t objectId); private: + GpsPrimaryDataset gpsSet; + ReturnValue_t handleCommandMessage(CommandMessage* message) override; void performControlOperation() override; ReturnValue_t checkModeCommand(Mode_t mode, Submode_t submode, diff --git a/mission/devices/devicedefinitions/GPSDefinitions.h b/mission/devices/devicedefinitions/GPSDefinitions.h index 8acb77e9..80e2861a 100644 --- a/mission/devices/devicedefinitions/GPSDefinitions.h +++ b/mission/devices/devicedefinitions/GPSDefinitions.h @@ -67,6 +67,7 @@ class GpsPrimaryDataset : public StaticLocalDataSet<18> { private: friend class GpsHyperionLinuxController; + friend class GpsCtrlDummy; GpsPrimaryDataset(HasLocalDataPoolIF* hkOwner) : StaticLocalDataSet(hkOwner, GpsHyperion::DATASET_ID) {} };