#ifndef MISSION_SYSTEM_SHAREDPOWERASSEMBLYBASE_H_ #define MISSION_SYSTEM_SHAREDPOWERASSEMBLYBASE_H_ #include #include #include /** * Base class which contains common functions for assemblies where the power line is shared * among the devices in the assembly. */ class SharedPowerAssemblyBase : public AssemblyBase { public: SharedPowerAssemblyBase(object_id_t objectId, PowerSwitchIF* pwrSwitcher, power::Switch_t switchId, uint16_t cmdQueueDepth = 8); protected: PowerSwitcher switcher; power::RecoveryCustomStates customRecoveryStates = power::RecoveryCustomStates::IDLE; void performChildOperation() override; void startTransition(Mode_t mode, Submode_t submode) override; void handleModeReached() override; virtual bool checkAndHandleRecovery() override; }; #endif /* MISSION_SYSTEM_SHAREDPOWERASSEMBLYBASE_H_ */