#include "AcuDummy.h" #include AcuDummy::AcuDummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie, bool enableHkSets) : DeviceHandlerBase(objectId, comif, comCookie), coreHk(this), auxHk(this), enableHkSets(enableHkSets) {} AcuDummy::~AcuDummy() {} void AcuDummy::doStartUp() { setMode(MODE_NORMAL); } void AcuDummy::doShutDown() { setMode(MODE_OFF); } ReturnValue_t AcuDummy::buildNormalDeviceCommand(DeviceCommandId_t *id) { return NOTHING_TO_SEND; } ReturnValue_t AcuDummy::buildTransitionDeviceCommand(DeviceCommandId_t *id) { return NOTHING_TO_SEND; } ReturnValue_t AcuDummy::buildCommandFromCommand(DeviceCommandId_t deviceCommand, const uint8_t *commandData, size_t commandDataLen) { return returnvalue::OK; } ReturnValue_t AcuDummy::scanForReply(const uint8_t *start, size_t len, DeviceCommandId_t *foundId, size_t *foundLen) { return returnvalue::OK; } ReturnValue_t AcuDummy::interpretDeviceReply(DeviceCommandId_t id, const uint8_t *packet) { return returnvalue::OK; } void AcuDummy::fillCommandAndReplyMap() {} uint32_t AcuDummy::getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) { return 500; } ReturnValue_t AcuDummy::initializeLocalDataPool(localpool::DataPool &localDataPoolMap, LocalDataPoolManager &poolManager) { using namespace ACU; localDataPoolMap.emplace(pool::ACU_CURRENT_IN_CHANNELS, new PoolEntry(6)); localDataPoolMap.emplace(pool::ACU_VOLTAGE_IN_CHANNELS, new PoolEntry(6)); localDataPoolMap.emplace(pool::ACU_VCC, new PoolEntry({0})); localDataPoolMap.emplace(pool::ACU_VBAT, new PoolEntry({0})); localDataPoolMap.emplace(ACU::pool::ACU_TEMPERATURES, new PoolEntry({10.0, 10.0, 10.0}, true)); localDataPoolMap.emplace(pool::ACU_MPPT_MODE, new PoolEntry({0})); localDataPoolMap.emplace(pool::ACU_VBOOST_IN_CHANNELS, new PoolEntry(6)); localDataPoolMap.emplace(pool::ACU_POWER_IN_CHANNELS, new PoolEntry(6)); localDataPoolMap.emplace(pool::ACU_DAC_ENABLES, new PoolEntry(3)); localDataPoolMap.emplace(pool::ACU_DAC_RAW_CHANNELS, new PoolEntry(6)); localDataPoolMap.emplace(pool::ACU_BOOTCAUSE, new PoolEntry({0})); localDataPoolMap.emplace(pool::ACU_BOOTCNT, new PoolEntry({0})); localDataPoolMap.emplace(pool::ACU_UPTIME, new PoolEntry({0})); localDataPoolMap.emplace(pool::ACU_RESET_CAUSE, new PoolEntry({0})); localDataPoolMap.emplace(pool::ACU_MPPT_TIME, new PoolEntry({0})); localDataPoolMap.emplace(pool::ACU_MPPT_PERIOD, new PoolEntry({0})); localDataPoolMap.emplace(pool::ACU_DEVICES, new PoolEntry(8)); localDataPoolMap.emplace(pool::ACU_DEVICES_STATUS, new PoolEntry(8)); localDataPoolMap.emplace(pool::ACU_WDT_CNT_GND, new PoolEntry({0})); localDataPoolMap.emplace(pool::ACU_WDT_GND_LEFT, new PoolEntry({0})); poolManager.subscribeForDiagPeriodicPacket( subdp::DiagnosticsHkPeriodicParams(coreHk.getSid(), enableHkSets, 30.0)); poolManager.subscribeForRegularPeriodicPacket( subdp::RegularHkPeriodicParams(auxHk.getSid(), enableHkSets, 6000.0)); return returnvalue::OK; } LocalPoolDataSetBase *AcuDummy::getDataSetHandle(sid_t sid) { if (sid == coreHk.getSid()) { return &coreHk; } else if (sid == auxHk.getSid()) { return &auxHk; } return nullptr; }