Exemplo n.º 1
0
def _create_variable_type(server,
                          parentnodeid,
                          nodeid,
                          qname,
                          datatype,
                          value=None):
    addnode = ua.AddNodesItem()
    addnode.RequestedNewNodeId = nodeid
    addnode.BrowseName = qname
    addnode.NodeClass = ua.NodeClass.VariableType
    addnode.ParentNodeId = parentnodeid
    addnode.ReferenceTypeId = ua.NodeId(ua.ObjectIds.HasSubtype)
    #addnode.TypeDefinition = ua.NodeId(ua.ObjectIds.BaseDataVariableType)
    attrs = ua.VariableTypeAttributes()
    attrs.Description = ua.LocalizedText(qname.Name)
    attrs.DisplayName = ua.LocalizedText(qname.Name)
    attrs.DataType = datatype
    attrs.IsAbstract = False
    if value:
        attrs.Value = value
        if isinstance(value, (list, tuple)):
            attrs.ValueRank = ua.ValueRank.OneDimension
        else:
            attrs.ValueRank = ua.ValueRank.Scalar
    #attrs.ArrayDimensions = None
    attrs.WriteMask = 0
    attrs.UserWriteMask = 0
    addnode.NodeAttributes = attrs
    results = server.add_nodes([addnode])
    results[0].StatusCode.check()
    return results[0].AddedNodeId
Exemplo n.º 2
0
def create_variable_type(parent, nodeid, bname, datatype):
    """
    Create a new variable type
    args are nodeid, browsename and datatype
    or idx, name and data type
    """
    nodeid, qname = _parse_nodeid_qname(nodeid, bname)
    if datatype and not isinstance(datatype, ua.NodeId):
        raise RuntimeError(
            "Data type should be nodeid, got {}".format(datatype))
    addnode = ua.AddNodesItem()
    addnode.RequestedNewNodeId = nodeid
    addnode.BrowseName = qname
    addnode.NodeClass = ua.NodeClass.Variable
    addnode.ParentNodeId = parent.nodeid
    addnode.ReferenceTypeId = ua.NodeId(ua.ObjectIds.HasSubtype)
    attrs = ua.VariableTypeAttributes()
    attrs.Description = ua.LocalizedText(qname.Name)
    attrs.DisplayName = ua.LocalizedText(qname.Name)
    attrs.DataType = datatype
    attrs.IsAbstract = False
    attrs.WriteMask = 0
    attrs.UserWriteMask = 0
    addnode.NodeAttributes = attrs
    results = parent.server.add_nodes([addnode])
    results[0].StatusCode.check()
    return results[0].AddedNodeId
Exemplo n.º 3
0
 def add_variable_type(self, obj):
     node = self._get_node(obj)
     attrs = ua.VariableTypeAttributes()
     if obj.desc:
         attrs.Description = ua.LocalizedText(obj.desc)
     attrs.DisplayName = ua.LocalizedText(obj.displayname)
     attrs.DataType = self.to_data_type(obj.datatype)
     if obj.value and len(obj.value) == 1:
         attrs.Value = obj.value[0]
     if obj.rank:
         attrs.ValueRank = obj.rank
     if obj.abstract:
         attrs.IsAbstract = obj.abstract
     if obj.dimensions:
         attrs.ArrayDimensions = obj.dimensions
     node.NodeAttributes = attrs
     self.server.add_nodes([node])
     self._add_refs(obj)
Exemplo n.º 4
0
 def add_variable_type(self, obj):
     node = self._get_node(obj)
     attrs = ua.VariableTypeAttributes()
     if obj.desc:
         attrs.Description = ua.LocalizedText(obj.desc)
     attrs.DisplayName = ua.LocalizedText(obj.displayname)
     attrs.DataType = self.to_nodeid(obj.datatype)
     if obj.value and len(obj.value) == 1:
         attrs.Value = obj.value[0]
     if obj.rank:
         attrs.ValueRank = obj.rank
     if obj.abstract:
         attrs.IsAbstract = obj.abstract
     if obj.dimensions:
         attrs.ArrayDimensions = obj.dimensions
     node.NodeAttributes = attrs
     res = self._add_node(node)
     self._add_refs(obj)
     res[0].StatusCode.check()
     return res[0].AddedNodeId
Exemplo n.º 5
0
def create_standard_address_space_Part19(server):
  
   
    node = ua.AddNodesItem()
    node.RequestedNewNodeId = NumericNodeId(19077, 0)
    node.BrowseName = QualifiedName('MultiStateDictionaryEntryDiscreteBaseType', 0)
    node.NodeClass = NodeClass.VariableType
    node.ParentNodeId = NumericNodeId(11238, 0)
    node.ReferenceTypeId = NumericNodeId(45, 0)
    attrs = ua.VariableTypeAttributes()
    attrs.DisplayName = LocalizedText("MultiStateDictionaryEntryDiscreteBaseType")
    attrs.DisplayName = LocalizedText("MultiStateDictionaryEntryDiscreteBaseType")
    attrs.DataType = ua.NodeId(ua.ObjectIds.Number)
    attrs.ValueRank = -1
    node.NodeAttributes = attrs
    server.add_nodes([node])
    refs = []
    ref = ua.AddReferencesItem()
    ref.IsForward = True
    ref.ReferenceTypeId = NumericNodeId(46, 0)
    ref.SourceNodeId = NumericNodeId(19077, 0)
    ref.TargetNodeClass = NodeClass.DataType
    ref.TargetNodeId = NumericNodeId(19082, 0)
    refs.append(ref)
    ref = ua.AddReferencesItem()
    ref.IsForward = True
    ref.ReferenceTypeId = NumericNodeId(46, 0)
    ref.SourceNodeId = NumericNodeId(19077, 0)
    ref.TargetNodeClass = NodeClass.DataType
    ref.TargetNodeId = NumericNodeId(19083, 0)
    refs.append(ref)
    ref = ua.AddReferencesItem()
    ref.IsForward = False
    ref.ReferenceTypeId = NumericNodeId(45, 0)
    ref.SourceNodeId = NumericNodeId(19077, 0)
    ref.TargetNodeClass = NodeClass.DataType
    ref.TargetNodeId = NumericNodeId(11238, 0)
    refs.append(ref)
    server.add_references(refs)
   
    node = ua.AddNodesItem()
    node.RequestedNewNodeId = NumericNodeId(19082, 0)
    node.BrowseName = QualifiedName('EnumDictionaryEntries', 0)
    node.NodeClass = NodeClass.Variable
    node.ParentNodeId = NumericNodeId(19077, 0)
    node.ReferenceTypeId = NumericNodeId(46, 0)
    node.TypeDefinition = NumericNodeId(68, 0)
    attrs = ua.VariableAttributes()
    attrs.DisplayName = LocalizedText("EnumDictionaryEntries")
    attrs.DataType = ua.NodeId(ua.ObjectIds.NodeId)
    attrs.ValueRank = 2
    attrs.ArrayDimensions = [0, 0]
    node.NodeAttributes = attrs
    server.add_nodes([node])
    refs = []
    ref = ua.AddReferencesItem()
    ref.IsForward = True
    ref.ReferenceTypeId = NumericNodeId(40, 0)
    ref.SourceNodeId = NumericNodeId(19082, 0)
    ref.TargetNodeClass = NodeClass.DataType
    ref.TargetNodeId = NumericNodeId(68, 0)
    refs.append(ref)
    ref = ua.AddReferencesItem()
    ref.IsForward = True
    ref.ReferenceTypeId = NumericNodeId(37, 0)
    ref.SourceNodeId = NumericNodeId(19082, 0)
    ref.TargetNodeClass = NodeClass.DataType
    ref.TargetNodeId = NumericNodeId(78, 0)
    refs.append(ref)
    ref = ua.AddReferencesItem()
    ref.IsForward = False
    ref.ReferenceTypeId = NumericNodeId(46, 0)
    ref.SourceNodeId = NumericNodeId(19082, 0)
    ref.TargetNodeClass = NodeClass.DataType
    ref.TargetNodeId = NumericNodeId(19077, 0)
    refs.append(ref)
    server.add_references(refs)
   
    node = ua.AddNodesItem()
    node.RequestedNewNodeId = NumericNodeId(19083, 0)
    node.BrowseName = QualifiedName('ValueAsDictionaryEntries', 0)
    node.NodeClass = NodeClass.Variable
    node.ParentNodeId = NumericNodeId(19077, 0)
    node.ReferenceTypeId = NumericNodeId(46, 0)
    node.TypeDefinition = NumericNodeId(68, 0)
    attrs = ua.VariableAttributes()
    attrs.DisplayName = LocalizedText("ValueAsDictionaryEntries")
    attrs.DataType = ua.NodeId(ua.ObjectIds.NodeId)
    attrs.ValueRank = 1
    attrs.ArrayDimensions = [0]
    node.NodeAttributes = attrs
    server.add_nodes([node])
    refs = []
    ref = ua.AddReferencesItem()
    ref.IsForward = True
    ref.ReferenceTypeId = NumericNodeId(40, 0)
    ref.SourceNodeId = NumericNodeId(19083, 0)
    ref.TargetNodeClass = NodeClass.DataType
    ref.TargetNodeId = NumericNodeId(68, 0)
    refs.append(ref)
    ref = ua.AddReferencesItem()
    ref.IsForward = True
    ref.ReferenceTypeId = NumericNodeId(37, 0)
    ref.SourceNodeId = NumericNodeId(19083, 0)
    ref.TargetNodeClass = NodeClass.DataType
    ref.TargetNodeId = NumericNodeId(80, 0)
    refs.append(ref)
    ref = ua.AddReferencesItem()
    ref.IsForward = False
    ref.ReferenceTypeId = NumericNodeId(46, 0)
    ref.SourceNodeId = NumericNodeId(19083, 0)
    ref.TargetNodeClass = NodeClass.DataType
    ref.TargetNodeId = NumericNodeId(19077, 0)
    refs.append(ref)
    server.add_references(refs)
   
    node = ua.AddNodesItem()
    node.RequestedNewNodeId = NumericNodeId(19084, 0)
    node.BrowseName = QualifiedName('MultiStateDictionaryEntryDiscreteType', 0)
    node.NodeClass = NodeClass.VariableType
    node.ParentNodeId = NumericNodeId(19077, 0)
    node.ReferenceTypeId = NumericNodeId(45, 0)
    attrs = ua.VariableTypeAttributes()
    attrs.DisplayName = LocalizedText("MultiStateDictionaryEntryDiscreteType")
    attrs.DisplayName = LocalizedText("MultiStateDictionaryEntryDiscreteType")
    attrs.DataType = ua.NodeId(ua.ObjectIds.Number)
    attrs.ValueRank = -1
    node.NodeAttributes = attrs
    server.add_nodes([node])
    refs = []
    ref = ua.AddReferencesItem()
    ref.IsForward = True
    ref.ReferenceTypeId = NumericNodeId(46, 0)
    ref.SourceNodeId = NumericNodeId(19084, 0)
    ref.TargetNodeClass = NodeClass.DataType
    ref.TargetNodeId = NumericNodeId(19090, 0)
    refs.append(ref)
    ref = ua.AddReferencesItem()
    ref.IsForward = False
    ref.ReferenceTypeId = NumericNodeId(45, 0)
    ref.SourceNodeId = NumericNodeId(19084, 0)
    ref.TargetNodeClass = NodeClass.DataType
    ref.TargetNodeId = NumericNodeId(19077, 0)
    refs.append(ref)
    server.add_references(refs)
   
    node = ua.AddNodesItem()
    node.RequestedNewNodeId = NumericNodeId(19090, 0)
    node.BrowseName = QualifiedName('ValueAsDictionaryEntries', 0)
    node.NodeClass = NodeClass.Variable
    node.ParentNodeId = NumericNodeId(19084, 0)
    node.ReferenceTypeId = NumericNodeId(46, 0)
    node.TypeDefinition = NumericNodeId(68, 0)
    attrs = ua.VariableAttributes()
    attrs.DisplayName = LocalizedText("ValueAsDictionaryEntries")
    attrs.DataType = ua.NodeId(ua.ObjectIds.NodeId)
    attrs.ValueRank = 1
    attrs.ArrayDimensions = [0]
    node.NodeAttributes = attrs
    server.add_nodes([node])
    refs = []
    ref = ua.AddReferencesItem()
    ref.IsForward = True
    ref.ReferenceTypeId = NumericNodeId(40, 0)
    ref.SourceNodeId = NumericNodeId(19090, 0)
    ref.TargetNodeClass = NodeClass.DataType
    ref.TargetNodeId = NumericNodeId(68, 0)
    refs.append(ref)
    ref = ua.AddReferencesItem()
    ref.IsForward = True
    ref.ReferenceTypeId = NumericNodeId(37, 0)
    ref.SourceNodeId = NumericNodeId(19090, 0)
    ref.TargetNodeClass = NodeClass.DataType
    ref.TargetNodeId = NumericNodeId(78, 0)
    refs.append(ref)
    ref = ua.AddReferencesItem()
    ref.IsForward = False
    ref.ReferenceTypeId = NumericNodeId(46, 0)
    ref.SourceNodeId = NumericNodeId(19090, 0)
    ref.TargetNodeClass = NodeClass.DataType
    ref.TargetNodeId = NumericNodeId(19084, 0)
    refs.append(ref)
    server.add_references(refs)