#include "SusDummy.h"

SusDummy::SusDummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie)
    : DeviceHandlerBase(objectId, comif, comCookie), susSet(this) {}

SusDummy::~SusDummy() {}

void SusDummy::doStartUp() { setMode(MODE_NORMAL); }

void SusDummy::doShutDown() { setMode(MODE_OFF); }

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

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

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

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

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

void SusDummy::fillCommandAndReplyMap() {}

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

ReturnValue_t SusDummy::initializeLocalDataPool(localpool::DataPool &localDataPoolMap,
                                                LocalDataPoolManager &poolManager) {
  localDataPoolMap.emplace(susMax1227::SusPoolIds::TEMPERATURE_C,
                           new PoolEntry<float>({0}, 1, true));
  localDataPoolMap.emplace(susMax1227::SusPoolIds::CHANNEL_VEC,
                           new PoolEntry<uint16_t>({2603, 781, 2760, 2048, 4056, 0}, true));

  return returnvalue::OK;
}