#include <mission/system/power/EpsSubsystem.h>

#include "fsfw/devicehandlers/DeviceHandlerIF.h"

EpsSubsystem::EpsSubsystem(object_id_t objectId, uint32_t maxNumberOfSequences,
                           uint32_t maxNumberOfTables)
    : Subsystem(objectId, maxNumberOfSequences, maxNumberOfTables) {}

void EpsSubsystem::announceMode(bool recursive) {
  const char* modeStr = "UNKNOWN";
  switch (mode) {
    case (HasModesIF::MODE_OFF): {
      modeStr = "OFF";
      break;
    }
    case (HasModesIF::MODE_ON): {
      modeStr = "ON";
      break;
    }
    case (DeviceHandlerIF::MODE_NORMAL): {
      modeStr = "NORMAL";
      break;
    }
  }
  sif::info << "EPS subsystem is now in " << modeStr << " mode" << std::endl;
  return Subsystem::announceMode(recursive);
}