From d228b193fdf354022ca544ea527f168a0ae42ad7 Mon Sep 17 00:00:00 2001 From: Hugo Jean Ponsin Date: Thu, 30 Apr 2026 16:29:08 +0200 Subject: [PATCH] bug --- src/device/ePowerSwitchEquipment.cpp | 25 +++++++++++-------------- src/device/ePowerSwitchEquipment.h | 4 ++-- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/src/device/ePowerSwitchEquipment.cpp b/src/device/ePowerSwitchEquipment.cpp index 42ff785..889a617 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,13 +122,15 @@ void ePowerSwitchEquipment::updateSocketNumber() { std::string epicsSetRecordName = format(EPOWERSWITCH_SOCKET_SET_PREFIX, i); - this->outletSetRecords.push_back( - new mEpicsCa(epicsSetRecordName.c_str())); + mEpicsCa record = + mEpicsCa(epicsSetRecordName.c_str()); + + this->outletSetRecords.push_back(record); std::string epicsGetRecordName = format(EPOWERSWITCH_SOCKET_GET_PREFIX, i); - this->outletGetRecords.push_back( - new mEpicsCa(epicsGetRecordName.c_str())); + // this->outletGetRecords.push_back(); + // mEpicsCa(epicsGetRecordName.c_str())); } if (this->numberOfOutlet > epicsOutletNumber) @@ -137,10 +139,8 @@ void ePowerSwitchEquipment::updateSocketNumber() { this->numberOfOutlet - epicsOutletNumber); for (int i = epicsOutletNumber; i < this->numberOfOutlet; i++) { - mEpicsCa *setRecord = this->outletSetRecords.back(); - delete setRecord; - mEpicsCa *getRecord = this->outletGetRecords.back(); - delete getRecord; + this->outletSetRecords.pop_back(); + this->outletGetRecords.pop_back(); std::string requestedVarname = format("Socket ", i) + std::string(" requested"); @@ -156,9 +156,6 @@ 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 651732f..4fc1297 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;