eive-obsw/mission/devices/BpxBatteryHandler.h

45 lines
1.8 KiB
C
Raw Normal View History

2022-01-17 15:03:46 +01:00
#ifndef MISSION_DEVICES_BPXBATTERYHANDLER_H_
#define MISSION_DEVICES_BPXBATTERYHANDLER_H_
#include <fsfw/devicehandlers/DeviceHandlerBase.h>
2022-01-17 16:44:20 +01:00
#include "devicedefinitions/BpxBatteryDefinitions.h"
2022-01-17 15:35:46 +01:00
class BpxBatteryHandler : public DeviceHandlerBase {
public:
2022-01-17 15:03:46 +01:00
BpxBatteryHandler(object_id_t objectId, object_id_t comIF, CookieIF* comCookie);
virtual ~BpxBatteryHandler();
2022-01-17 15:35:46 +01:00
protected:
2022-02-02 16:07:28 +01:00
enum class States {
CHECK_COM = 0,
IDLE = 1,
};
States state = States::CHECK_COM;
bool commandExecuted = false;
bool goToNormalModeImmediately = false;
uint8_t sentPingByte = BpxBattery::DEFAULT_PING_SENT_BYTE;
2022-01-17 17:11:27 +01:00
BpxBatteryHk hkSet;
2022-02-02 16:07:28 +01:00
DeviceCommandId_t lastCmd = DeviceHandlerIF::NO_COMMAND_ID;
2022-01-17 17:11:27 +01:00
BpxBatteryCfg cfgSet;
2022-02-02 16:07:28 +01:00
std::array<uint8_t, 8> cmdBuf = {};
2022-01-17 17:11:27 +01:00
2022-01-17 15:03:46 +01:00
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,
2022-01-17 15:35:46 +01:00
size_t commandDataLen) override;
2022-01-17 15:03:46 +01:00
ReturnValue_t scanForReply(const uint8_t* start, size_t remainingSize, DeviceCommandId_t* foundId,
2022-01-17 15:35:46 +01:00
size_t* foundLen) override;
2022-02-02 16:07:28 +01:00
ReturnValue_t interpretDeviceReply(DeviceCommandId_t id, const uint8_t* packet) override;
2022-01-17 15:03:46 +01:00
virtual LocalPoolDataSetBase* getDataSetHandle(sid_t sid) override;
uint32_t getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) override;
ReturnValue_t initializeLocalDataPool(localpool::DataPool& localDataPoolMap,
2022-01-17 15:35:46 +01:00
LocalDataPoolManager& poolManager) override;
2022-01-17 15:03:46 +01:00
};
#endif /* MISSION_DEVICES_BPXBATTERYHANDLER_H_ */