eive-obsw/mission/devices/P60DockHandler.h

46 lines
1.5 KiB
C++

#ifndef MISSION_DEVICES_P60DOCKHANDLER_H_
#define MISSION_DEVICES_P60DOCKHANDLER_H_
#include <fsfw/devicehandlers/DeviceHandlerBase.h>
#include <bsp_linux/comIF/cookies/P60DockCookie.h>
class P60DockHandler: public DeviceHandlerBase {
public:
P60DockHandler(object_id_t objectId, object_id_t comIF,
CookieIF * comCookie);
virtual ~P60DockHandler();
protected:
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;
void setNormalDatapoolEntriesInvalid() override;
private:
static const DeviceCommandId_t PING = 0x1; //!< [EXPORT] : [COMMAND]
static const DeviceCommandId_t READ_MODULE_CFG = 0x71; //!< [EXPORT] : [COMMAND]
static const DeviceCommandId_t READ_HK = 0x72; //!< [EXPORT] : [COMMAND]
enum class InternalStates {
STATE_NONE,
READ_MODULE_CFG,
READ_HK
};
InternalStates internalState = InternalStates::STATE_NONE;
uint8_t moduleCfgTableSize = 188;
uint8_t hkTableSize = 188;
P60DockCookie* p60DockCookie;
};
#endif /* MISSION_DEVICES_P60DOCKHANDLER_H_ */