#ifndef MISSION_DEVICES_MAX31865EIVEHANDLER_H_ #define MISSION_DEVICES_MAX31865EIVEHANDLER_H_ #include #include #include "devicedefinitions/Max31865Definitions.h" class Max31865EiveHandler : public DeviceHandlerBase { public: Max31865EiveHandler(object_id_t objectId, object_id_t comIF, CookieIF* comCookie); void setInstantNormal(bool instantNormal); void setDebugMode(bool enable, uint32_t divider); void setDeviceInfo(uint8_t idx, std::string location); private: void doStartUp() override; void doShutDown() override; void doTransition(Mode_t modeFrom, Submode_t subModeFrom) 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; ReturnValue_t initialize() override; void simpleCommand(EiveMax31855::RtdCommands cmd); std::array cmdBuf = {}; uint8_t idx = 0; std::string locString = "Unknown"; EiveMax31855::ReadOutStruct exchangeStruct; bool debugMode = false; size_t structLen = 0; bool instantNormal = false; MAX31865::Max31865Set sensorDataset; PeriodicOperationDivider debugDivider; enum class InternalState { NONE, ON, ACTIVE, INACTIVE } state = InternalState::NONE; bool transitionOk = false; }; #endif /* MISSION_DEVICES_MAX31865EIVEHANDLER_H_ */