2022-06-16 08:26:40 +02:00
|
|
|
#ifndef DUMMIES_IMTQDUMMY_H_
|
|
|
|
#define DUMMIES_IMTQDUMMY_H_
|
|
|
|
|
|
|
|
#include <fsfw/devicehandlers/DeviceHandlerBase.h>
|
|
|
|
|
2023-05-24 11:04:07 +02:00
|
|
|
#include "mission/acs/imtqHelpers.h"
|
|
|
|
|
2022-06-16 08:26:40 +02:00
|
|
|
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;
|
|
|
|
|
2023-05-25 11:20:28 +02:00
|
|
|
ImtqDummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie,
|
|
|
|
power::Switch_t pwrSwitcher, bool enableHkSets);
|
2022-11-25 10:13:24 +01:00
|
|
|
~ImtqDummy() override;
|
2022-06-16 08:26:40 +02:00
|
|
|
|
|
|
|
protected:
|
2023-05-25 11:20:28 +02:00
|
|
|
ReturnValue_t getSwitches(const uint8_t **switches, uint8_t *numberOfSwitches) override;
|
2023-05-24 11:04:07 +02:00
|
|
|
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);
|
|
|
|
|
2023-05-25 11:20:28 +02:00
|
|
|
power::Switch_t switcher = power::NO_SWITCH;
|
|
|
|
|
2022-06-16 08:26:40 +02:00
|
|
|
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;
|
2023-05-24 11:04:07 +02:00
|
|
|
LocalPoolDataSetBase *getDataSetHandle(sid_t sid) override;
|
2022-06-16 08:26:40 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* DUMMIES_IMTQDUMMY_H_ */
|