diff --git a/RAMS7200LibFacade.cxx b/RAMS7200LibFacade.cxx index 68ce923..69bd05a 100644 --- a/RAMS7200LibFacade.cxx +++ b/RAMS7200LibFacade.cxx @@ -283,9 +283,11 @@ void RAMS7200LibFacade::doSmoothing(std::vector&& dpItems, std::vectorsecond; const auto dataSize = var._toDP.Amount * Common::S7Utils::DataSizeByte(var._toDP.WordLen); if(var._toDP.pdata == nullptr) { - var._toDP.pdata = new char[dataSize]; - } - if (std::memcmp(var._toDP.pdata, item.pdata, dataSize) != 0) { + Common::S7Utils::TS7AllocateDataItemForAddress(var._toDP); + std::memcpy(var._toDP.pdata, item.pdata, dataSize); + toDPItems.emplace_back(DPInfo.dpAddress.c_str(), dataSize, static_cast(item.pdata)); + Common::Logger::globalInfo(Common::Logger::L4, DPInfo.dpAddress.c_str(), "--> Smoothing initialized"); + } else if (std::memcmp(var._toDP.pdata, item.pdata, dataSize) != 0) { std::memcpy(var._toDP.pdata, item.pdata, dataSize); toDPItems.emplace_back(DPInfo.dpAddress.c_str(), dataSize, static_cast(item.pdata)); Common::Logger::globalInfo(Common::Logger::L4, DPInfo.dpAddress.c_str(), "--> Smoothing updated"); diff --git a/RAMS7200MS.cxx b/RAMS7200MS.cxx index b11e41b..8ab1f38 100644 --- a/RAMS7200MS.cxx +++ b/RAMS7200MS.cxx @@ -18,12 +18,7 @@ #include -RAMS7200MSVar::RAMS7200MSVar(std::string varName, int pollTime, TS7DataItem type) : varName(varName), pollTime(pollTime), _toPlc(type), _toDP(type) -{ - if(Common::Constants::getSmoothing()){ - Common::S7Utils::TS7AllocateDataItemForAddress(_toDP); - } -} +RAMS7200MSVar::RAMS7200MSVar(std::string varName, int pollTime, TS7DataItem type) : varName(varName), pollTime(pollTime), _toPlc(type), _toDP(type){} void RAMS7200MS::addVar(std::string varName, int pollTime) {