eive-obsw/linux/devices/PayloadPcduHandler.h
Robin Mueller 00f411eaca
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
added first startup code version
2022-02-10 16:05:36 +01:00

36 lines
1.3 KiB
C++

#ifndef LINUX_DEVICES_PLPCDUHANDLER_H_
#define LINUX_DEVICES_PLPCDUHANDLER_H_
#include <fsfw/devicehandlers/DeviceHandlerBase.h>
class PayloadPcduHandler : DeviceHandlerBase {
public:
PayloadPcduHandler(object_id_t objectId, object_id_t comIF, CookieIF* cookie);
private:
enum class States {
ADC_OFF_PL_OFF,
SWITCH_ON_RELAY,
ADC_ON_PL_OFF,
SWITCH_ON_HPA,
ADC_ON_PL_ON
};
States state;
void doStartUp() override;
void doShutDown() override;
ReturnValue_t buildNormalDeviceCommand(DeviceCommandId_t* id) override;
ReturnValue_t buildTransitionDeviceCommand(DeviceCommandId_t* id) override;
void fillCommandAndReplyMap() override;
ReturnValue_t buildCommandFromCommand(DeviceCommandId_t deviceCommand, const uint8_t* commandData,
size_t commandDataLen) override;
ReturnValue_t scanForReply(const uint8_t* start, size_t remainingSize, DeviceCommandId_t* foundId,
size_t* foundLen) override;
ReturnValue_t interpretDeviceReply(DeviceCommandId_t id, const uint8_t* packet) override;
uint32_t getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) override;
ReturnValue_t initializeLocalDataPool(localpool::DataPool& localDataPoolMap,
LocalDataPoolManager& poolManager) override;
};
#endif /* LINUX_DEVICES_PLPCDUHANDLER_H_ */