From 6c63de1d842f29148fc1990ebafe3d186ea722f2 Mon Sep 17 00:00:00 2001 From: Hugo Jean Ponsin Date: Thu, 30 Apr 2026 16:43:25 +0200 Subject: [PATCH] Revert "bug" This reverts commit d228b193fdf354022ca544ea527f168a0ae42ad7. --- src/device/ePowerSwitchEquipment.cpp | 25 ++++++++++++++----------- src/device/ePowerSwitchEquipment.h | 4 ++-- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/device/ePowerSwitchEquipment.cpp b/src/device/ePowerSwitchEquipment.cpp index 889a617..42ff785 100644 --- a/src/device/ePowerSwitchEquipment.cpp +++ b/src/device/ePowerSwitchEquipment.cpp @@ -57,7 +57,7 @@ void ePowerSwitchEquipment::refreshSocket(int socketId) { std::string epicsCurrentSocketState; mepicscaReturnCode = - this->outletGetRecords.at(socketId).get(&epicsCurrentSocketState); + this->outletGetRecords.at(socketId)->get(&epicsCurrentSocketState); if (mepicscaReturnCode != CM_SUCCESS) { fMfe->Msg(MERROR, __FUNCTION__, @@ -68,8 +68,8 @@ void ePowerSwitchEquipment::refreshSocket(int socketId) { } if (epicsCurrentSocketState != midasRequestedSocketState) { - mepicscaReturnCode = - this->outletSetRecords.at(socketId).put(&midasRequestedSocketState); + mepicscaReturnCode = this->outletSetRecords.at(socketId)->put( + &midasRequestedSocketState); if (mepicscaReturnCode != CM_SUCCESS) { fMfe->Msg(MERROR, __FUNCTION__, @@ -122,15 +122,13 @@ void ePowerSwitchEquipment::updateSocketNumber() { std::string epicsSetRecordName = format(EPOWERSWITCH_SOCKET_SET_PREFIX, i); - mEpicsCa record = - mEpicsCa(epicsSetRecordName.c_str()); - - this->outletSetRecords.push_back(record); + this->outletSetRecords.push_back( + new mEpicsCa(epicsSetRecordName.c_str())); std::string epicsGetRecordName = format(EPOWERSWITCH_SOCKET_GET_PREFIX, i); - // this->outletGetRecords.push_back(); - // mEpicsCa(epicsGetRecordName.c_str())); + this->outletGetRecords.push_back( + new mEpicsCa(epicsGetRecordName.c_str())); } if (this->numberOfOutlet > epicsOutletNumber) @@ -139,8 +137,10 @@ void ePowerSwitchEquipment::updateSocketNumber() { this->numberOfOutlet - epicsOutletNumber); for (int i = epicsOutletNumber; i < this->numberOfOutlet; i++) { - this->outletSetRecords.pop_back(); - this->outletGetRecords.pop_back(); + mEpicsCa *setRecord = this->outletSetRecords.back(); + delete setRecord; + mEpicsCa *getRecord = this->outletGetRecords.back(); + delete getRecord; std::string requestedVarname = format("Socket ", i) + std::string(" requested"); @@ -156,6 +156,9 @@ void ePowerSwitchEquipment::updateSocketNumber() { fOdbEqVariables->Delete(currentVarname.c_str(), &ovbError); if (ovbError.fError) fMfe->Msg(MERROR, __FUNCTION__, ovbError.fErrorString); + + this->outletSetRecords.pop_back(); + this->outletGetRecords.pop_back(); } this->numberOfOutlet = epicsOutletNumber; diff --git a/src/device/ePowerSwitchEquipment.h b/src/device/ePowerSwitchEquipment.h index 4fc1297..651732f 100644 --- a/src/device/ePowerSwitchEquipment.h +++ b/src/device/ePowerSwitchEquipment.h @@ -23,8 +23,8 @@ class ePowerSwitchEquipment : public TMFeEquipment { void HandlePeriodic(); private: - std::vector> outletSetRecords; - std::vector> outletGetRecords; + std::vector *> outletSetRecords; + std::vector *> outletGetRecords; mEpicsCa outletNumberRecord; int numberOfOutlet;