OpcUaCanOpen
CANopen OPC-UA server
UaCanNodeObject.h
Go to the documentation of this file.
1 #ifndef __UACANNODEOBJECT_H__
2 #define __UACANNODEOBJECT_H__
3 
4 #include "NmBuildingAutomation.h"
6 #include "iomanager.h"
7 #include "CANOpenServerConfig.h"
8 #include "UaDeviceNodeType.h"
9 
10 #include "CanObject.h"
11 
12 namespace CanOpen
13 {
14  class IOManagerSDO;
21  {
22  public:
29 // UaCanNodeObject(NODE *nd, const UaNodeId& newNodeId, NmBuildingAutomation *pNodeManager,UserDataBase* pcanbus );
30 
38  UaCanNodeObject(NODE *nd,UaObject *pNodeType , const UaNodeId& newNodeId, AddressSpace::NmBuildingAutomation *pNodeManager, UserDevice::pUserDeviceStruct* pcanbus);
39 
43  virtual ~UaCanNodeObject(void);
45  IOManager *getSDOIOManager()
46  {
47  pUserDeviceStruct *p = static_cast<pUserDeviceStruct *>(getUserData());
48  return static_cast<CanObject *>(p->getDevice())->getIOManager();
49  }
50  private:
51 
52 // void setInitValue(UaVariant &uav,OpcUa_BuiltInType nType);
53 
59  UaStatus createSDOs(NODE *sn, AddressSpace::NmBuildingAutomation *pNodeManager);
60 
66  UaStatus createSDOs(NODETYPE *sn, AddressSpace::NmBuildingAutomation *pNodeManager);
67 
73  UaStatus createSDOITEMs(NODE *sdoi, AddressSpace::NmBuildingAutomation *pNodeManager);
74 
80  UaStatus createSDOITEMs(NODETYPE *sdoi, AddressSpace::NmBuildingAutomation *pNodeManager);
81 
88  UaStatus createPDOs(PDO &pit, AddressSpace::NmBuildingAutomation *pNodeManager,bool type);
89 
95  UaStatus createPROGRAMs(NODE *sn, AddressSpace::NmBuildingAutomation *pNodeManager);
96 
97 // template<typename PDOITEMITERATOR>
98 // UaStatus createPDOs(const char *pdon, OpcUa_Byte nc, PDOITEMITERATOR &, NmBuildingAutomation *,bool);
99 
105  UaStatus createAllTypesPDOs(NODE *xsdObject, AddressSpace::NmBuildingAutomation *pNodeManager);
106 
113 
114  template<typename NODEDEF>
119  UaStatus createItems(NODEDEF *nd, AddressSpace::NmBuildingAutomation *pNodeManager);
120 
121 // IOManagerSDO *m_pIOManagerSDO; //! sdo operation manager
122  };
123 }
124 #endif