#ifndef DUMMIES_IMTQDUMMY_H_ #define DUMMIES_IMTQDUMMY_H_ #include <fsfw/devicehandlers/DeviceHandlerBase.h> #include "mission/acs/imtqHelpers.h" class ImtqDummy : 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; ImtqDummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie, power::Switch_t pwrSwitcher, bool enableHkSets); ~ImtqDummy() override; protected: ReturnValue_t getSwitches(const uint8_t **switches, uint8_t *numberOfSwitches) override; imtq::HkDatasetNoTorque setNoTorque; imtq::HkDatasetWithTorque setWithTorque; bool enableHkSets; PoolEntry<uint8_t> statusMode = PoolEntry<uint8_t>({0}); PoolEntry<uint8_t> statusError = PoolEntry<uint8_t>({0}); PoolEntry<uint8_t> statusConfig = PoolEntry<uint8_t>({0}); PoolEntry<uint32_t> statusUptime = PoolEntry<uint32_t>({0}); PoolEntry<int32_t> mgmCalEntry = PoolEntry<int32_t>(3); PoolEntry<int16_t> dipolesPoolEntry = PoolEntry<int16_t>({0, 0, 0}, false); PoolEntry<uint16_t> torqueDurationEntry = PoolEntry<uint16_t>({0}, false); PoolEntry<float> coilCurrentsMilliampsNoTorque = PoolEntry<float>(3); PoolEntry<float> coilCurrentsMilliampsWithTorque = PoolEntry<float>(3); PoolEntry<int16_t> coilTempsNoTorque = PoolEntry<int16_t>(3); PoolEntry<int16_t> coilTempsWithTorque = PoolEntry<int16_t>(3); PoolEntry<float> mtmRawNoTorque = PoolEntry<float>(3); PoolEntry<uint8_t> actStatusNoTorque = PoolEntry<uint8_t>(1); PoolEntry<float> mtmRawWithTorque = PoolEntry<float>(3); PoolEntry<uint8_t> actStatusWithTorque = PoolEntry<uint8_t>(1); power::Switch_t switcher = power::NO_SWITCH; 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; LocalPoolDataSetBase *getDataSetHandle(sid_t sid) override; }; #endif /* DUMMIES_IMTQDUMMY_H_ */