#ifndef MISSION_DEVICES_SCEXDEVICEHANDLER_H_ #define MISSION_DEVICES_SCEXDEVICEHANDLER_H_ #include #include #include class SdCardMountedIF; class ScexDeviceHandler : public DeviceHandlerBase { public: // ctor vervollständigen ScexDeviceHandler(object_id_t objectId, ScexUartReader &reader, CookieIF *cookie, SdCardMountedIF *sdcMan); virtual ~ScexDeviceHandler(); private: std::array cmdBuf = {}; std::string fileId = ""; std::string fileName = ""; bool fileNameSet = false; bool debugMode = true; scex::Cmds currCmd = scex::Cmds::PING; SdCardMountedIF *sdcMan = nullptr; Countdown finishCountdown = Countdown(180 * 1000); std::string random_string(std::string::size_type length); // DeviceHandlerBase private function implementation void doStartUp() override; void doShutDown() override; ScexHelper helper; ScexUartReader &reader; 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; void fillCommandAndReplyMap() 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 getSwitches(const uint8_t **switches, uint8_t *numberOfSwitches) override; ReturnValue_t initializeLocalDataPool(localpool::DataPool &localDataPoolMap, LocalDataPoolManager &poolManager) override; void modeChanged() override; }; #endif /* MISSION_DEVICES_SCEXDEVICEHANDLER_H_ */