#ifndef MISSION_CONTROLLER_THERMALCONTROLLER_H_
#define MISSION_CONTROLLER_THERMALCONTROLLER_H_

#include <fsfw/controller/ExtendedControllerBase.h>
#include "ctrldefinitions/ThermalCtrlPackets.h"


class ThermalController: public ExtendedControllerBase {
public:
	ThermalController(object_id_t objectId);
private:

	// TODO: Add stubs for thermal components. Each device / assembly with one
	// or multiple redundant sensors will have a thermal component.

	/** ExtendedControllerBase overrides */
    virtual ReturnValue_t handleCommandMessage(
            CommandMessage *message) override;

    virtual void performControlOperation() override;

    virtual ReturnValue_t checkModeCommand(Mode_t mode, Submode_t submode,
            uint32_t *msToReachTheMode) override;

    ReturnValue_t initializeAfterTaskCreation() override;

    void handleChangedDataset(sid_t sid, store_address_t storeId) override;

    ThermalCtrl::ThermalControllerTemperatureSet thermalControllerSet;
};


#endif /* MISSION_CONTROLLER_THERMALCONTROLLER_H_ */