OpcUaCanOpen
CANopen OPC-UA server
UaProgramStartVariable.hpp
Go to the documentation of this file.
1 #ifndef __UAPROGRAMSTARTVARIABLE_H__
2 #define __UAPROGRAMSTARTVARIABLE_H__
3 
4 #include "uaobjecttypes.h"
5 #include "NmBuildingAutomation.h"
6 #include "uaobjecttypes.h"
7 #include "UaControlDeviceItem.h"
8 #include "UaProgramItem.h"
9 #include "CANOpenServerConfig.h"
10 #include "Ids.h"
11 
12 namespace AddressSpace
13 {
14  class UaProgramStartVariable:
15  public UaControlVariable
16  {
17  public:
27  const UaString& name,
28  const UaNodeId& newNodeId,
29  NmBuildingAutomation* pNodeManager,
30  UaVariant &dv,
31  UaProgramItem *prog,
32  UaMutexRefCounted* pSharedMutex
33  ) : UaControlVariable(name, newNodeId, pNodeManager, dv, pSharedMutex)
34  {
35  setTypeDefinition(UaNodeId(BA_STARTPROGRAM, pNodeManager->getNameSpaceIndex()));
36  m_pProg = prog;
37  setUserData(NULL);
38  }
39 
47  virtual UaStatus setValue(Session *pSession, const UaDataValue& dataValue, OpcUa_Boolean checkAccessLevel)
48  {
49  UaStatus ret;
50  ret = OpcUa::BaseDataVariableType::setValue(pSession, dataValue, checkAccessLevel);
51  // TRACE1_DATA(SERVER_CORE, UA_T"<-- UaCalcItem::callCalculation %s", this->browseName().toString().toUtf8());
52  valueChange(pSession, dataValue, checkAccessLevel); // send signal
54  return ret;
55  }
63  virtual UaStatus setValueOnChange(Session *pSession, const UaDataValue& dataValue, OpcUa_Boolean checkAccessLevel)
64  {
65  UaStatus ret;
66  ret = OpcUa::BaseDataVariableType::setValue(0, dataValue, false);
67  // TRACE1_DATA(SERVER_CORE, UA_T"<-- UaCalcItem::callCalculation %s", this->browseName().toString().toUtf8());
68  valueChange(pSession,dataValue, checkAccessLevel); // send signal
70  return ret;
71  }
72  private:
74 
75  };
76 
77 }
78 
79 #endif