#include "RwDummy.h" #include RwDummy::RwDummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie) : DeviceHandlerBase(objectId, comif, comCookie), statusSet(this), lastResetStatusSet(this), tmDataset(this), rwSpeedActuationSet(*this) {} RwDummy::~RwDummy() {} void RwDummy::doStartUp() { statusSet.setReportingEnabled(true); setMode(MODE_ON); } void RwDummy::doShutDown() { statusSet.setReportingEnabled(false); setMode(MODE_OFF); } ReturnValue_t RwDummy::buildNormalDeviceCommand(DeviceCommandId_t *id) { return NOTHING_TO_SEND; } ReturnValue_t RwDummy::buildTransitionDeviceCommand(DeviceCommandId_t *id) { return NOTHING_TO_SEND; } ReturnValue_t RwDummy::buildCommandFromCommand(DeviceCommandId_t deviceCommand, const uint8_t *commandData, size_t commandDataLen) { return returnvalue::OK; } ReturnValue_t RwDummy::scanForReply(const uint8_t *start, size_t len, DeviceCommandId_t *foundId, size_t *foundLen) { return returnvalue::OK; } ReturnValue_t RwDummy::interpretDeviceReply(DeviceCommandId_t id, const uint8_t *packet) { return returnvalue::OK; } void RwDummy::fillCommandAndReplyMap() {} uint32_t RwDummy::getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) { return 500; } ReturnValue_t RwDummy::initializeLocalDataPool(localpool::DataPool &localDataPoolMap, LocalDataPoolManager &poolManager) { localDataPoolMap.emplace(rws::RW_SPEED, &rwSpeed); localDataPoolMap.emplace(rws::RAMP_TIME, &rampTime); localDataPoolMap.emplace(rws::TEMPERATURE_C, new PoolEntry({0})); localDataPoolMap.emplace(rws::CURR_SPEED, new PoolEntry({0})); localDataPoolMap.emplace(rws::REFERENCE_SPEED, new PoolEntry({0})); localDataPoolMap.emplace(rws::STATE, new PoolEntry({1}, true)); localDataPoolMap.emplace(rws::CLC_MODE, new PoolEntry({0})); localDataPoolMap.emplace(rws::LAST_RESET_STATUS, new PoolEntry({0})); localDataPoolMap.emplace(rws::CURRRENT_RESET_STATUS, new PoolEntry({0})); localDataPoolMap.emplace(rws::TM_LAST_RESET_STATUS, new PoolEntry({0})); localDataPoolMap.emplace(rws::TM_MCU_TEMPERATURE, new PoolEntry({0})); localDataPoolMap.emplace(rws::PRESSURE_SENSOR_TEMPERATURE, new PoolEntry({0})); localDataPoolMap.emplace(rws::PRESSURE, new PoolEntry({0})); localDataPoolMap.emplace(rws::TM_RW_STATE, new PoolEntry({0})); localDataPoolMap.emplace(rws::TM_CLC_MODE, new PoolEntry({0})); localDataPoolMap.emplace(rws::TM_RW_CURR_SPEED, new PoolEntry({0})); localDataPoolMap.emplace(rws::TM_RW_REF_SPEED, new PoolEntry({0})); localDataPoolMap.emplace(rws::INVALID_CRC_PACKETS, new PoolEntry({0})); localDataPoolMap.emplace(rws::INVALID_LEN_PACKETS, new PoolEntry({0})); localDataPoolMap.emplace(rws::INVALID_CMD_PACKETS, new PoolEntry({0})); localDataPoolMap.emplace(rws::EXECUTED_REPLIES, new PoolEntry({0})); localDataPoolMap.emplace(rws::COMMAND_REPLIES, new PoolEntry({0})); localDataPoolMap.emplace(rws::UART_BYTES_WRITTEN, new PoolEntry({0})); localDataPoolMap.emplace(rws::UART_BYTES_READ, new PoolEntry({0})); localDataPoolMap.emplace(rws::UART_PARITY_ERRORS, new PoolEntry({0})); localDataPoolMap.emplace(rws::UART_NOISE_ERRORS, new PoolEntry({0})); localDataPoolMap.emplace(rws::UART_FRAME_ERRORS, new PoolEntry({0})); localDataPoolMap.emplace(rws::UART_REG_OVERRUN_ERRORS, new PoolEntry({0})); localDataPoolMap.emplace(rws::UART_TOTAL_ERRORS, new PoolEntry({0})); localDataPoolMap.emplace(rws::SPI_BYTES_WRITTEN, new PoolEntry({0})); localDataPoolMap.emplace(rws::SPI_BYTES_READ, new PoolEntry({0})); localDataPoolMap.emplace(rws::SPI_REG_OVERRUN_ERRORS, new PoolEntry({0})); localDataPoolMap.emplace(rws::SPI_TOTAL_ERRORS, new PoolEntry({0})); poolManager.subscribeForDiagPeriodicPacket( subdp::DiagnosticsHkPeriodicParams(statusSet.getSid(), false, 12.0)); poolManager.subscribeForRegularPeriodicPacket( subdp::RegularHkPeriodicParams(tmDataset.getSid(), false, 30.0)); poolManager.subscribeForRegularPeriodicPacket( subdp::RegularHkPeriodicParams(lastResetStatusSet.getSid(), false, 30.0)); return returnvalue::OK; } LocalPoolDataSetBase *RwDummy::getDataSetHandle(sid_t sid) { switch (sid.ownerSetId) { case (rws::SetIds::STATUS_SET_ID): { return &statusSet; } case (rws::SetIds::LAST_RESET_ID): { return &lastResetStatusSet; } case (rws::SetIds::SPEED_CMD_SET): { return &rwSpeedActuationSet; } case (rws::SetIds::TM_SET_ID): { return &tmDataset; } } return nullptr; }