#include "PlocSupervisorDummy.h"

PlocSupervisorDummy::PlocSupervisorDummy(object_id_t objectId, object_id_t comif,
                                         CookieIF *comCookie, PowerSwitchIF &pwrSwitcher)
    : DeviceHandlerBase(objectId, comif, comCookie) {
  setPowerSwitcher(&pwrSwitcher);
}

PlocSupervisorDummy::~PlocSupervisorDummy() {}

void PlocSupervisorDummy::doStartUp() { setMode(MODE_ON); }

void PlocSupervisorDummy::doShutDown() { setMode(_MODE_POWER_DOWN); }

ReturnValue_t PlocSupervisorDummy::buildNormalDeviceCommand(DeviceCommandId_t *id) {
  return NOTHING_TO_SEND;
}

ReturnValue_t PlocSupervisorDummy::buildTransitionDeviceCommand(DeviceCommandId_t *id) {
  return NOTHING_TO_SEND;
}

ReturnValue_t PlocSupervisorDummy::buildCommandFromCommand(DeviceCommandId_t deviceCommand,
                                                           const uint8_t *commandData,
                                                           size_t commandDataLen) {
  return returnvalue::OK;
}

ReturnValue_t PlocSupervisorDummy::scanForReply(const uint8_t *start, size_t len,
                                                DeviceCommandId_t *foundId, size_t *foundLen) {
  return returnvalue::OK;
}

ReturnValue_t PlocSupervisorDummy::interpretDeviceReply(DeviceCommandId_t id,
                                                        const uint8_t *packet) {
  return returnvalue::OK;
}

void PlocSupervisorDummy::fillCommandAndReplyMap() {}

uint32_t PlocSupervisorDummy::getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) { return 500; }

ReturnValue_t PlocSupervisorDummy::initializeLocalDataPool(localpool::DataPool &localDataPoolMap,
                                                           LocalDataPoolManager &poolManager) {
  return returnvalue::OK;
}

ReturnValue_t PlocSupervisorDummy::getSwitches(const uint8_t **switches,
                                               uint8_t *numberOfSwitches) {
  *numberOfSwitches = 1;
  *switches = reinterpret_cast<const uint8_t *>(&switchId);
  return returnvalue::OK;
}