1 #ifndef __UACALCITEM_H__ 2 #define __UACALCITEM_H__ 6 #include <opcua_basedatavariabletype.h> 10 #include "uadatetime.h" 11 #include "uadatavalue.h" 18 #define isnan(x) std::isnan(x) 22 #define isinf(x) std::isinf(x) 52 inline double operator()(
const double& a1,
const double& a2)
54 return std::fmod(a1, a2);
76 virtual void calculateOnChange(Session *pSession,
const UaDataValue& dataValue, OpcUa_Boolean checkAccessLevel);
94 UaCalcItem(
const UaString&
name, UaNodeId& uaId,
const UaNode *parent,
114 m_var.insert(pair<string, UaControlVariable *>(
name, obd));
134 m_whenVar.insert(pair<string, UaControlVariable *>(
name, obd));
162 size_t start_pos = 0;
163 while((start_pos = str.find(from, start_pos)) != std::string::npos) {
164 str.replace(start_pos, from.length(), to);
165 start_pos += to.length();
173 res = stod(str,&indx);
179 if (str.size() > indx)
204 OpcUa_StatusCode ret = OpcUa_Good;
205 for (
auto const &vit : vs)
208 ret = uac->value(0).statusCode();
210 if (ret != OpcUa_Good)