#include "MgmRm3100Dummy.h"

using namespace returnvalue;

MgmRm3100Dummy::MgmRm3100Dummy(object_id_t objectId, object_id_t comif, CookieIF* comCookie)
    : DeviceHandlerBase(objectId, comif, comCookie), dataset(this) {}

MgmRm3100Dummy::~MgmRm3100Dummy() = default;

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

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

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

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

ReturnValue_t MgmRm3100Dummy::buildCommandFromCommand(DeviceCommandId_t deviceCommand,
                                                      const uint8_t* commandData,
                                                      size_t commandDataLen) {
  return NOTHING_TO_SEND;
}

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

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

void MgmRm3100Dummy::fillCommandAndReplyMap() {}

uint32_t MgmRm3100Dummy::getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) { return 0; }

ReturnValue_t MgmRm3100Dummy::initializeLocalDataPool(localpool::DataPool& localDataPoolMap,
                                                      LocalDataPoolManager& poolManager) {
  localDataPoolMap.emplace(mgmRm3100::FIELD_STRENGTHS,
                           new PoolEntry<float>({0.87, -0.95, 0.11}, true));
  return returnvalue::OK;
}