MCPcopy Create free account
hub / github.com/FreeOpcUa/python-opcua / _address_space_fixes

Method _address_space_fixes

opcua/server/internal_server.py:115–156  ·  view source on GitHub ↗

Looks like the xml definition of address space has some error. This is a good place to fix them

(self)

Source from the content-addressed store, hash-verified

113 self.aspace.make_aspace_shelf(shelffile)
114
115 def _address_space_fixes(self):
116 """
117 Looks like the xml definition of address space has some error. This is a good place to fix them
118 """
119
120 it = ua.AddReferencesItem()
121 it.SourceNodeId = ua.NodeId(ua.ObjectIds.BaseObjectType)
122 it.ReferenceTypeId = ua.NodeId(ua.ObjectIds.Organizes)
123 it.IsForward = False
124 it.TargetNodeId = ua.NodeId(ua.ObjectIds.ObjectTypesFolder)
125 it.TargetNodeClass = ua.NodeClass.Object
126
127 it2 = ua.AddReferencesItem()
128 it2.SourceNodeId = ua.NodeId(ua.ObjectIds.BaseDataType)
129 it2.ReferenceTypeId = ua.NodeId(ua.ObjectIds.Organizes)
130 it2.IsForward = False
131 it2.TargetNodeId = ua.NodeId(ua.ObjectIds.DataTypesFolder)
132 it2.TargetNodeClass = ua.NodeClass.Object
133
134 results = self.isession.add_references([it, it2])
135
136 params = ua.WriteParameters()
137 for nodeid in (ua.ObjectIds.Server_ServerCapabilities_OperationLimits_MaxNodesPerRead,
138 ua.ObjectIds.Server_ServerCapabilities_OperationLimits_MaxNodesPerHistoryReadData,
139 ua.ObjectIds.Server_ServerCapabilities_OperationLimits_MaxNodesPerHistoryReadEvents,
140 ua.ObjectIds.Server_ServerCapabilities_OperationLimits_MaxNodesPerWrite,
141 ua.ObjectIds.Server_ServerCapabilities_OperationLimits_MaxNodesPerHistoryUpdateData,
142 ua.ObjectIds.Server_ServerCapabilities_OperationLimits_MaxNodesPerHistoryUpdateEvents,
143 ua.ObjectIds.Server_ServerCapabilities_OperationLimits_MaxNodesPerMethodCall,
144 ua.ObjectIds.Server_ServerCapabilities_OperationLimits_MaxNodesPerBrowse,
145 ua.ObjectIds.Server_ServerCapabilities_OperationLimits_MaxNodesPerRegisterNodes,
146 ua.ObjectIds.Server_ServerCapabilities_OperationLimits_MaxNodesPerTranslateBrowsePathsToNodeIds,
147 ua.ObjectIds.Server_ServerCapabilities_OperationLimits_MaxNodesPerNodeManagement,
148 ua.ObjectIds.Server_ServerCapabilities_OperationLimits_MaxMonitoredItemsPerCall):
149 attr = ua.WriteValue()
150 attr.NodeId = ua.NodeId(nodeid)
151 attr.AttributeId = ua.AttributeIds.Value
152 attr.Value = ua.DataValue(ua.Variant(10000, ua.VariantType.UInt32), ua.StatusCode(ua.StatusCodes.Good))
153 attr.Value.ServerTimestamp = datetime.utcnow()
154 params.NodesToWrite.append(attr)
155 result = self.isession.write(params)
156 result[0].check()
157
158
159 def load_address_space(self, path):

Callers 1

__init__Method · 0.95

Calls 3

checkMethod · 0.80
add_referencesMethod · 0.45
writeMethod · 0.45

Tested by

no test coverage detected