Commit 7542cbbd authored by ORD's avatar ORD Committed by GitHub

Merge pull request #296 from FreeOpcUa/bin

better support for extension object from xml, split binary code
parents 5df77dab 96559351
......@@ -201,12 +201,12 @@ class Node(object):
def set_attr_bit(self, attr, bit):
val = self.get_attribute(attr)
val.Value.Value = ua.set_bit(val.Value.Value, bit)
val.Value.Value = ua.ua_binary.set_bit(val.Value.Value, bit)
self.set_attribute(attr, val)
def unset_attr_bit(self, attr, bit):
val = self.get_attribute(attr)
val.Value.Value = ua.unset_bit(val.Value.Value, bit)
val.Value.Value = ua.ua_binary.unset_bit(val.Value.Value, bit)
self.set_attribute(attr, val)
def set_read_only(self):
......@@ -326,7 +326,7 @@ class Node(object):
desc.NodeId = self.nodeid
params = ua.BrowseParameters()
params.View.Timestamp = ua.win_epoch_to_datetime(0)
params.View.Timestamp = ua.get_win_epoch()
params.NodesToBrowse.append(desc)
results = self.server.browse(params)
return results[0].References
......@@ -434,11 +434,11 @@ class Node(object):
if starttime:
details.StartTime = starttime
else:
details.StartTime = ua.DateTimeMinValue
details.StartTime = ua.get_win_epoch()
if endtime:
details.EndTime = endtime
else:
details.EndTime = ua.DateTimeMinValue
details.EndTime = ua.get_win_epoch()
details.NumValuesPerNode = numvalues
details.ReturnBounds = True
result = self.history_read(details)
......@@ -473,11 +473,11 @@ class Node(object):
if starttime:
details.StartTime = starttime
else:
details.StartTime = ua.DateTimeMinValue
details.StartTime = ua.get_win_epoch()
if endtime:
details.EndTime = endtime
else:
details.EndTime = ua.DateTimeMinValue
details.EndTime = ua.get_win_epoch()
details.NumValuesPerNode = numvalues
if not isinstance(evtypes, (list, tuple)):
......
......@@ -125,7 +125,7 @@ def get_node_subtypes(node, nodes=None):
return nodes
def get_node_supertypes(node, includeitself = False, skipbase = True):
def get_node_supertypes(node, includeitself=False, skipbase=True):
"""
return get all subtype parents of node recursive
:param server: used in case node is nodeid
......@@ -134,12 +134,12 @@ def get_node_supertypes(node, includeitself = False, skipbase = True):
:param skipbase don't include the toplevel one
:returns list of ua.Node, top parent first
"""
parents =[]
parents = []
if includeitself:
parents.append(node)
parents.extend(_get_node_supertypes(node))
if skipbase and len(parents) > 1:
parents = parents [:-1]
parents = parents[:-1]
return parents
......@@ -151,12 +151,13 @@ def _get_node_supertypes(node):
basetypes = []
parents = node.get_referenced_nodes(refs=ua.ObjectIds.HasSubtype, direction=ua.BrowseDirection.Inverse, includesubtypes=True)
if len(parents) != 0:
#TODO: Is it possible to have multiple subtypes ? If so extended support for it
# TODO: Is it possible to have multiple subtypes ? If so extended support for it
basetypes.append(parents[0])
basetypes.extend( _get_node_supertypes(parents[0]) )
basetypes.extend(_get_node_supertypes(parents[0]))
return basetypes
def is_child_present(node, browsename):
"""
return if a browsename is present a child from the provide node
......@@ -170,3 +171,33 @@ def is_child_present(node, browsename):
return True
return False
def dtype_to_vtype(server, dtype_node):
"""
Given a node datatype, find out the variant type to encode
data. This is not exactly straightforward...
"""
# first check if datatype is a simple built in type
identifier = dtype_node.nodeid.Identifier
if isinstance(identifier, int) and identifier <= 22:
return ua.VariantType(identifier)
# now handle some special cases
parents = _get_node_supertypes(dtype_node)
if not parents:
raise ua.UaError("Datatype must be a subtype of builtin types")
parent = parents[0]
if parent.nodeid.Identifier == 29:
# we have an enumeration, we need to llok at child to find type
descs = dtype_node.get_children_descriptions()
bnames = [d.BrowseName.Name for d in descs]
if "EnumStrings" in bnames:
return ua.VariantType.LocalizedText
elif "EnumValues" in bnames:
return ua.VariantType.ExtensionObject
else:
raise ua.UaError("Enumeration must have a child node describing its type and values")
return dtype_to_vtype(server, parents[0])
......@@ -112,9 +112,7 @@ class XmlExporter(object):
parent = node.get_parent()
displayname = node.get_display_name().Text.decode(encoding='UTF8')
desc = node.get_description().Text
if desc is None:
desc = ""
print("NODE COMMON", node, desc)
print("NODE COMMON", node)
node_el = Et.SubElement(self.etree.getroot(),
nodetype,
BrowseName=browsename,
......@@ -122,7 +120,7 @@ class XmlExporter(object):
if parent is not None:
node_el.attrib["ParentNodeId"] = parent.nodeid.to_string()
if desc not in (None, ""):
node_el.attrib["Description"] = desc
node_el.attrib["Description"] = str(desc)
disp_el = Et.SubElement(node_el, 'DisplayName', )
disp_el.text = displayname
return node_el
......@@ -146,14 +144,14 @@ class XmlExporter(object):
def add_variable_common(self, node, el):
dtype = node.get_data_type()
if dtype.Identifier in o_ids.ObjectIdNames:
datatype = o_ids.ObjectIdNames[dtype.Identifier]
self.aliases[datatype] = dtype.to_string()
dtype_name = o_ids.ObjectIdNames[dtype.Identifier]
self.aliases[dtype_name] = dtype.to_string()
else:
datatype = dtype.to_string()
dtype_name = dtype.to_string()
rank = node.get_value_rank()
el.attrib["DataType"] = datatype
el.attrib["ValueRank"] = str(rank)
variant_to_etree(el, node.get_data_value().Value)
el.attrib["DataType"] = dtype_name
el.attrib["ValueRank"] = str(int(rank))
value_to_etree(el, dtype_name, dtype, node)
def add_etree_variable(self, node):
"""
......@@ -238,10 +236,32 @@ class XmlExporter(object):
self.aliases[ref_name] = ref_nodeid
def variant_to_etree(el, var):
def value_to_etree(el, dtype_name, dtype, node):
var = node.get_data_value().Value
val_el = Et.SubElement(el, 'Value')
valx_el = Et.SubElement(val_el, var.VariantType.name)
valx_el.attrib["xmnls"] = "http://opcfoundation.org/UA/2008/02/Types.xsd"
valx_el.text = str(var.Value)
_value_to_etree(val_el, dtype_name, dtype, var.Value)
def _value_to_etree(el, dtype_name, dtype, val):
if isinstance(val, (list, tuple)):
list_el = Et.SubElement(el, "uax:ListOf" + dtype_name)
for nval in val:
_value_to_etree(list_el, dtype_name, dtype, nval)
else:
if dtype.Identifier is int and dtype.Identifier > 21: # this is an extentionObject:
_extobj_to_etree(el, dtype_name, dtype)
else:
val_el = Et.SubElement(el, "uax:" + dtype_name)
val_el.text = str(val)
def _extobj_to_etree(val_el, dtype_name, dtype, val):
obj_el = Et.SubElement(val_el, "uax:ExtensionObject")
type_el = Et.SubElement(obj_el, "uax:TypeId")
id_el = Et.SubElement(type_el, "uax:Identifier")
id_el.text = val.TypeId.to_string()
body_el = Et.SubElement(obj_el, "uax:Body")
struct_el = Et.SubElement(body_el, "uax:" + dtype_name)
# FIXME: finish
......@@ -3,12 +3,34 @@ add node defined in XML to address space
format is the one from opc-ua specification
"""
import logging
import sys
from opcua import ua
from opcua.common import xmlparser
def ua_type_to_python(val, uatype):
if uatype.startswith("Int") or uatype.startswith("UInt"):
return int(val)
elif uatype in ("String"):
return val
elif uatype in ("Bytes", "Bytes", "ByteString", "ByteArray"):
if sys.version_info.major > 2:
return bytes(val, 'utf8')
else:
return val
else:
raise Exception("uatype nopt handled", uatype, " for val ", val)
def to_python(val, obj, attname):
if isinstance(obj, ua.NodeId) and attname == "Identifier":
return ua.NodeId.from_string(val)
else:
return ua_type_to_python(val, obj.ua_types[attname])
class XmlImporter(object):
def __init__(self, server):
......@@ -120,36 +142,37 @@ class XmlImporter(object):
self._add_refs(obj)
return res[0].AddedNodeId
def _make_ext_obj(sefl, obj):
ext = getattr(ua, obj.objname)()
for name, val in obj.body.items():
if type(val) is str:
raise Exception("Error val should a dict", name, val)
else:
for attname, v in val.items():
if type(v) is str:
setattr(ext, attname, to_python(v, ext, attname))
else:
for attname2, v2 in v.items():
obj2 = getattr(ext, attname)
setattr(obj2, attname2, to_python(v2, obj2, attname2))
return ext
def _add_variable_value(self, obj):
"""
Returns the value for a Variable based on the objects valuetype.
"""
if obj.valuetype == 'ListOfLocalizedText':
return ua.Variant([ua.LocalizedText(txt) for txt in obj.value], None)
elif obj.valuetype == 'EnumValueType':
values = []
for ev in obj.value:
enum_value = ua.EnumValueType()
enum_value.DisplayName = ua.LocalizedText(ev['DisplayName'])
enum_value.Description = ua.LocalizedText(ev['Description'])
enum_value.Value = int(ev['Value'])
values.append(enum_value)
return values
elif obj.valuetype == 'Argument':
if obj.valuetype == 'ListOfExtensionObject':
values = []
for arg in obj.value:
argument = ua.Argument()
argument.Name = arg['Name']
argument.Description = ua.LocalizedText(arg['Description'])
argument.DataType = self.to_nodeid(arg['DataType'])
argument.ValueRank = int(arg['ValueRank'])
argument.ArrayDimensions = arg['ArrayDimensions']
values.append(argument)
for ext in obj.value:
extobj = self._make_ext_obj(ext)
values.append(extobj)
return values
elif obj.valuetype.startswith("ListOf"):
vtype = obj.valuetype[6:]
return [getattr(ua, vtype)(v) for v in obj.value]
else:
return ua.Variant(obj.value, getattr(ua.VariantType, obj.valuetype))
def add_variable_type(self, obj):
node = self._get_node(obj)
attrs = ua.VariableTypeAttributes()
......
......@@ -8,6 +8,14 @@ import sys
import xml.etree.ElementTree as ET
def _to_bool(val):
if val in ("True", "true", "on", "On", "1"):
return True
else:
return False
class NodeData(object):
def __init__(self):
......@@ -36,8 +44,8 @@ class NodeData(object):
# referencetype
self.inversename = ""
self.abstract = "false"
self.symmetric = "false"
self.abstract = False
self.symmetric = False
# datatype
self.definition = []
......@@ -51,6 +59,15 @@ class RefStruct(object):
self.target = None
class ExtObj(object):
def __init__(self):
self.typeid = None
self.objname = None
self.bodytype = None
self.body = {}
class XMLParser(object):
def __init__(self, xmlpath, server):
......@@ -194,6 +211,7 @@ class XMLParser(object):
obj.nodetype = name
for key, val in child.attrib.items():
self._set_attr(key, val, obj)
self.logger.info("\n Parsing node: %s %s", obj.nodeid, obj.browsename)
obj.displayname = obj.browsename # give a default value to display name
for el in child:
self._parse_tag(el, obj)
......@@ -202,6 +220,7 @@ class XMLParser(object):
def _set_attr(self, key, val, obj):
if key == "NodeId":
obj.nodeid = self._get_node_id(val)
print("PARSING", obj.nodeid)
elif key == "BrowseName":
obj.browsename = val
elif key == "SymbolicName":
......@@ -211,9 +230,11 @@ class XMLParser(object):
elif key == "DataType":
obj.datatype = val
elif key == "IsAbstract":
obj.abstract = val
obj.abstract = _to_bool(val)
elif key == "Executable":
obj.executable = _to_bool(val)
elif key == "EventNotifier":
obj.eventnotifier = 1 if val == "1" else 0
obj.eventnotifier = int(val)
elif key == "ValueRank":
obj.rank = int(val)
elif key == "ArrayDimensions":
......@@ -225,7 +246,7 @@ class XMLParser(object):
elif key == "UserAccessLevel":
obj.useraccesslevel = int(val)
elif key == "Symmetric":
obj.symmetric = True if val == "true" else False
obj.symmetric = _to_bool(val)
else:
self.logger.info("Attribute not implemented: %s:%s", key, val)
......@@ -249,7 +270,9 @@ class XMLParser(object):
self.logger.info("Not implemented tag: %s", el)
def _parse_value(self, el, obj):
self.logger.info("Parsing value")
for val in el:
self.logger.info("tag %s", val.tag)
ntag = self._retag.match(val.tag).groups()[1]
obj.valuetype = ntag
if ntag in ("Int8", "UInt8", "Int16", "UInt16", "Int32", "UInt32", "Int64", "UInt64"):
......@@ -257,10 +280,7 @@ class XMLParser(object):
elif ntag in ("Float", "Double"):
obj.value = float(val.text)
elif ntag in ("Boolean"):
if val.text in ("True", "true", "1", "on", "On"):
obj.value = bool(1)
else:
obj.value = bool(0)
obj.value = _to_bool(val.text)
elif ntag in ("ByteString", "String"):
mytext = val.text
if mytext is None: # support importing null strings
......@@ -271,17 +291,15 @@ class XMLParser(object):
elif ntag in ("Guid"):
self._parse_value(val, obj)
elif ntag == "ListOfExtensionObject":
obj.value, obj.valuetype = self._parse_list_of_extension_object(el)
obj.value = self._parse_list_of_extension_object(el)
elif ntag == "ListOfLocalizedText":
obj.value = self._parse_list_of_localized_text(el)
else:
self.logger.info("Value type not implemented: %s", ntag)
self.logger.info("Value type not implemented: '%s', %s", ntag)
def _get_text(self, el):
txt = ""
for text in el.itertext():
txt += text
return txt
txtlist = [txt.strip() for txt in el.itertext()]
return "".join(txtlist)
def _parse_list_of_localized_text(self, el):
value = []
......@@ -297,31 +315,43 @@ class XMLParser(object):
def _parse_list_of_extension_object(self, el):
'''
Parse a uax:ListOfExtensionObject Value
Return an array with a value of each uax:ExtensionObject/*/* (each element is convert to a netry in a dict.
also the valuetype is returned. The valuetype is uax:ExtensionObject/*/tag()
Return an list of ExtObj
'''
value = []
valuetype = None
for extension_object_list in el:
for extension_object in extension_object_list:
extension_object.find('Body')
for extension_object_part in extension_object:
ext_obj = self._parse_ext_obj(extension_object)
value.append(ext_obj)
return value
def _parse_ext_obj(self, el):
ext = ExtObj()
for extension_object_part in el:
ntag = self._retag.match(extension_object_part.tag).groups()[1]
if ntag == 'Body':
data = {}
if ntag == 'TypeId':
ntag = self._retag.match(extension_object_part.find('*').tag).groups()[1]
valuetype = ntag
for body_item in extension_object_part.findall('*/*'):
ntag = self._retag.match(body_item.tag).groups()[1]
child = body_item.find('*')
if child is not None:
data[ntag] = self._get_text(child)
ext.typeid = self._get_text(extension_object_part)
elif ntag == 'Body':
ext.objname = self._retag.match(extension_object_part.find('*').tag).groups()[1]
ext.body = self._parse_body(extension_object_part)
print("body", ext.body)
else:
print("Uknoen ndtag", ntag)
print("ext_obj", ext.objname, ext.typeid, ext.body)
return ext
def _parse_body(self, el):
body = {}
for body_item in el:
otag = self._retag.match(body_item.tag).groups()[1]
childs = [i for i in body_item]
if not childs:
val = self._get_text(body_item)
else:
data[ntag] = self._get_text(body_item)
value.append(data)
return value, valuetype
val = self._parse_body(body_item)
if val:
body[otag] = val
return body
def _parse_refs(self, el, obj):
for ref in el:
......
......@@ -60,7 +60,7 @@ class AttributeService(object):
continue
al = self._aspace.get_attribute_value(writevalue.NodeId, ua.AttributeIds.AccessLevel)
ual = self._aspace.get_attribute_value(writevalue.NodeId, ua.AttributeIds.UserAccessLevel)
if not ua.test_bit(al.Value.Value, ua.AccessLevel.CurrentWrite) or not ua.test_bit(ual.Value.Value, ua.AccessLevel.CurrentWrite):
if not ua.ua_binary.test_bit(al.Value.Value, ua.AccessLevel.CurrentWrite) or not ua.ua_binary.test_bit(ual.Value.Value, ua.AccessLevel.CurrentWrite):
res.append(ua.StatusCode(ua.StatusCodes.BadUserAccessDenied))
continue
res.append(self._aspace.set_attribute_value(writevalue.NodeId, writevalue.AttributeId, writevalue.Value))
......
......@@ -109,12 +109,12 @@ class HistoryDict(HistoryStorageInterface):
return [], cont
else:
if start is None:
start = ua.DateTimeMinValue
start = ua.get_win_epoch()
if end is None:
end = ua.DateTimeMinValue
if start == ua.DateTimeMinValue:
end = ua.get_win_epoch()
if start == ua.get_win_epoch():
results = [dv for dv in reversed(self._datachanges[node_id]) if start <= dv.ServerTimestamp]
elif end == ua.DateTimeMinValue:
elif end == ua.get_win_epoch():
results = [dv for dv in self._datachanges[node_id] if start <= dv.ServerTimestamp]
elif start > end:
results = [dv for dv in reversed(self._datachanges[node_id]) if end <= dv.ServerTimestamp <= start]
......@@ -150,12 +150,12 @@ class HistoryDict(HistoryStorageInterface):
return [], cont
else:
if start is None:
start = ua.DateTimeMinValue
start = ua.get_win_epoch()
if end is None:
end = ua.DateTimeMinValue
if start == ua.DateTimeMinValue:
end = ua.get_win_epoch()
if start == ua.get_win_epoch():
results = [ev for ev in reversed(self._events[source_id]) if start <= ev.Time]
elif end == ua.DateTimeMinValue:
elif end == ua.get_win_epoch():
results = [ev for ev in self._events[source_id] if start <= ev.Time]
elif start > end:
results = [ev for ev in reversed(self._events[source_id]) if end <= ev.Time <= start]
......@@ -305,14 +305,14 @@ class HistoryManager(object):
# but they also say we can use cont point as timestamp to enable stateless
# implementation. This is contradictory, so we assume details is
# send correctly with continuation point
starttime = ua.unpack_datetime(utils.Buffer(rv.ContinuationPoint))
starttime = ua.ua_binary.Primitives.DateTime.unpack(utils.Buffer(rv.ContinuationPoint))
dv, cont = self.storage.read_node_history(rv.NodeId,
starttime,
details.EndTime,
details.NumValuesPerNode)
if cont:
cont = ua.pack_datetime(cont)
cont = ua.ua_binary.Primitives.DateTime.pack(cont)
# rv.IndexRange
# rv.DataEncoding # xml or binary, seems spec say we can ignore that one
return dv, cont
......@@ -324,7 +324,7 @@ class HistoryManager(object):
# but they also say we can use cont point as timestamp to enable stateless
# implementation. This is contradictory, so we assume details is
# send correctly with continuation point
starttime = ua.unpack_datetime(utils.Buffer(rv.ContinuationPoint))
starttime = ua.ua_binary.Primitives.DateTime.unpack(utils.Buffer(rv.ContinuationPoint))
evts, cont = self.storage.read_event_history(rv.NodeId,
starttime,
......@@ -337,7 +337,7 @@ class HistoryManager(object):
field_list.EventFields = ev.to_event_fields(details.Filter.SelectClauses)
results.append(field_list)
if cont:
cont = ua.pack_datetime(cont)
cont = ua.ua_binary.Primitives.DateTime.pack(cont)
return results, cont
def update_history(self, params):
......
......@@ -225,7 +225,7 @@ class HistorySQLite(HistoryStorageInterface):
self.logger.error('Historizing SQL Read Error events for node %s: %s', source_id, e)
if nb_values:
if len(results) > nb_values: # start > ua.DateTimeMinValue and
if len(results) > nb_values: # start > ua.get_win_epoch() and
cont = cont_timestamps[nb_values]
results = results[:nb_values]
......@@ -258,11 +258,11 @@ class HistorySQLite(HistoryStorageInterface):
def _get_bounds(start, end, nb_values):
order = "ASC"
if start is None or start == ua.DateTimeMinValue:
if start is None or start == ua.get_win_epoch():
order = "DESC"
start = ua.DateTimeMinValue
start = ua.get_win_epoch()
if end is None or end == ua.DateTimeMinValue:
if end is None or end == ua.get_win_epoch():
end = datetime.utcnow() + timedelta(days=1)
if start < end:
......
......@@ -127,7 +127,7 @@ class MonitoredItemService(object):
ev_notify_byte = self.aspace.get_attribute_value(
params.ItemToMonitor.NodeId, ua.AttributeIds.EventNotifier).Value.Value
if ev_notify_byte is None or not ua.test_bit(ev_notify_byte, ua.EventNotifier.SubscribeToEvents):
if ev_notify_byte is None or not ua.ua_binary.test_bit(ev_notify_byte, ua.EventNotifier.SubscribeToEvents):
result.StatusCode = ua.StatusCode(ua.StatusCodes.BadServiceUnsupported)
return result
# result.FilterResult = ua.EventFilterResult() # spec says we can ignore if not error
......
......@@ -6,8 +6,6 @@ It is automatically generated from opcfoundation.org schemas.
from opcua import ua
false = False #FIXME
true = True #FIXME
def create_standard_address_space_Part10(server):
......@@ -21,208 +19,208 @@ def create_standard_address_space_Part10(server):
attrs = ua.ObjectTypeAttributes()
attrs.Description = ua.LocalizedText("A state machine for a program.")
attrs.DisplayName = ua.LocalizedText("ProgramStateMachineType")
attrs.IsAbstract = false
attrs.IsAbstract = False
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3830")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3835")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2392")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2393")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2394")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2395")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2396")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2397")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2398")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2399")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3850")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2400")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2402")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2404")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2406")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2408")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2410")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2412")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2414")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2416")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2418")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2420")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2422")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2424")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2426")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2427")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2428")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2429")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2391")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -245,21 +243,21 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3830")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3831")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3830")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3833")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3830")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -282,7 +280,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3831")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -305,7 +303,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3833")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -328,28 +326,28 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3835")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3836")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3835")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3838")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3835")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3839")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3835")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -372,7 +370,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3836")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -395,7 +393,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3838")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -418,7 +416,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3839")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -455,7 +453,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2393")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -478,7 +476,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2394")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -501,7 +499,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2395")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -566,77 +564,77 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2399")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3840")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2399")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3841")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2399")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3842")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2399")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3843")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2399")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3844")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2399")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3845")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2399")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3846")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2399")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3847")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2399")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3848")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2399")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3849")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2399")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -659,7 +657,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3840")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -682,7 +680,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3841")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -705,7 +703,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3842")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -728,7 +726,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3843")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -751,7 +749,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3844")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -774,7 +772,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3845")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -797,7 +795,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3846")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -820,7 +818,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3847")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -843,7 +841,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3848")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -866,7 +864,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3849")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -888,7 +886,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3850")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -911,7 +909,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2400")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -935,7 +933,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2401")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -958,7 +956,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2402")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -982,7 +980,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2403")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1005,7 +1003,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2404")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1029,7 +1027,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2405")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1052,7 +1050,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2406")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1076,7 +1074,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2407")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1098,35 +1096,35 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2408")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2409")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=51")
ref.SourceNodeId = ua.NodeId.from_string("i=2408")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2406")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=52")
ref.SourceNodeId = ua.NodeId.from_string("i=2408")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2400")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=53")
ref.SourceNodeId = ua.NodeId.from_string("i=2408")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2430")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=54")
ref.SourceNodeId = ua.NodeId.from_string("i=2408")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1150,7 +1148,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2409")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1172,35 +1170,35 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2410")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2411")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=51")
ref.SourceNodeId = ua.NodeId.from_string("i=2410")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2400")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=52")
ref.SourceNodeId = ua.NodeId.from_string("i=2410")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2402")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=53")
ref.SourceNodeId = ua.NodeId.from_string("i=2410")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2426")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=54")
ref.SourceNodeId = ua.NodeId.from_string("i=2410")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1224,7 +1222,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2411")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1246,35 +1244,35 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2412")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2413")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=51")
ref.SourceNodeId = ua.NodeId.from_string("i=2412")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2402")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=52")
ref.SourceNodeId = ua.NodeId.from_string("i=2412")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2406")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=53")
ref.SourceNodeId = ua.NodeId.from_string("i=2412")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2429")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=54")
ref.SourceNodeId = ua.NodeId.from_string("i=2412")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1298,7 +1296,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2413")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1320,28 +1318,28 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2414")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2415")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=51")
ref.SourceNodeId = ua.NodeId.from_string("i=2414")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2402")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=52")
ref.SourceNodeId = ua.NodeId.from_string("i=2414")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2400")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=54")
ref.SourceNodeId = ua.NodeId.from_string("i=2414")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1365,7 +1363,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2415")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1387,35 +1385,35 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2416")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2417")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=51")
ref.SourceNodeId = ua.NodeId.from_string("i=2416")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2402")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=52")
ref.SourceNodeId = ua.NodeId.from_string("i=2416")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2404")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=53")
ref.SourceNodeId = ua.NodeId.from_string("i=2416")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2427")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=54")
ref.SourceNodeId = ua.NodeId.from_string("i=2416")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1439,7 +1437,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2417")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1461,35 +1459,35 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2418")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2419")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=51")
ref.SourceNodeId = ua.NodeId.from_string("i=2418")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2404")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=52")
ref.SourceNodeId = ua.NodeId.from_string("i=2418")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2402")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=53")
ref.SourceNodeId = ua.NodeId.from_string("i=2418")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2428")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=54")
ref.SourceNodeId = ua.NodeId.from_string("i=2418")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1513,7 +1511,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2419")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1535,35 +1533,35 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2420")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2421")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=51")
ref.SourceNodeId = ua.NodeId.from_string("i=2420")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2404")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=52")
ref.SourceNodeId = ua.NodeId.from_string("i=2420")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2406")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=53")
ref.SourceNodeId = ua.NodeId.from_string("i=2420")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2429")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=54")
ref.SourceNodeId = ua.NodeId.from_string("i=2420")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1587,7 +1585,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2421")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1609,28 +1607,28 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2422")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2423")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=51")
ref.SourceNodeId = ua.NodeId.from_string("i=2422")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2404")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=52")
ref.SourceNodeId = ua.NodeId.from_string("i=2422")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2400")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=54")
ref.SourceNodeId = ua.NodeId.from_string("i=2422")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1654,7 +1652,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2423")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1676,35 +1674,35 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2424")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2425")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=51")
ref.SourceNodeId = ua.NodeId.from_string("i=2424")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2400")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=52")
ref.SourceNodeId = ua.NodeId.from_string("i=2424")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2406")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=53")
ref.SourceNodeId = ua.NodeId.from_string("i=2424")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2429")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=54")
ref.SourceNodeId = ua.NodeId.from_string("i=2424")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1728,7 +1726,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2425")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1749,7 +1747,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2426")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1770,7 +1768,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2427")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1791,7 +1789,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2428")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1812,7 +1810,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2429")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1833,7 +1831,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2430")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1849,12 +1847,12 @@ def create_standard_address_space_Part10(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.ObjectTypeAttributes()
attrs.DisplayName = ua.LocalizedText("ProgramTransitionEventType")
attrs.IsAbstract = false
attrs.IsAbstract = False
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2378")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1877,7 +1875,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2379")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1893,12 +1891,12 @@ def create_standard_address_space_Part10(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.ObjectTypeAttributes()
attrs.DisplayName = ua.LocalizedText("AuditProgramTransitionEventType")
attrs.IsAbstract = false
attrs.IsAbstract = False
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11856")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1921,7 +1919,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11875")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1937,12 +1935,12 @@ def create_standard_address_space_Part10(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.ObjectTypeAttributes()
attrs.DisplayName = ua.LocalizedText("ProgramTransitionAuditEventType")
attrs.IsAbstract = false
attrs.IsAbstract = False
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=3806")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1965,14 +1963,14 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3825")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3826")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3825")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1995,7 +1993,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3826")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2011,77 +2009,77 @@ def create_standard_address_space_Part10(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.VariableTypeAttributes()
attrs.DisplayName = ua.LocalizedText("ProgramDiagnosticType")
attrs.DisplayName = ua.LocalizedText("ProgramDiagnosticType")
attrs.DataType = ua.NodeId.from_string("i=894")
attrs.ValueRank = -1
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2380")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2381")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2380")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2382")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2380")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2383")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2380")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2384")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2380")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2385")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2380")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2386")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2380")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2387")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2380")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2388")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2380")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2389")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2380")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2104,7 +2102,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2381")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2127,7 +2125,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2382")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2150,7 +2148,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2383")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2173,7 +2171,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2384")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2196,7 +2194,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2385")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2219,7 +2217,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2386")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2242,7 +2240,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2387")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2265,7 +2263,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2388")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2288,7 +2286,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2389")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2311,7 +2309,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2390")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2327,7 +2325,6 @@ def create_standard_address_space_Part10(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("ProgramDiagnosticDataType")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -2345,7 +2342,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=895")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2367,7 +2364,7 @@ def create_standard_address_space_Part10(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=896")
ref.TargetNodeClass = ua.NodeClass.DataType
......
......@@ -6,8 +6,6 @@ It is automatically generated from opcfoundation.org schemas.
from opcua import ua
false = False #FIXME
true = True #FIXME
def create_standard_address_space_Part11(server):
......@@ -22,8 +20,6 @@ def create_standard_address_space_Part11(server):
attrs.Description = ua.LocalizedText("The type for a reference to the historical configuration for a data variable.")
attrs.DisplayName = ua.LocalizedText("HasHistoricalConfiguration")
attrs.InverseName = ua.LocalizedText("HistoricalConfigurationOf")
attrs.IsAbstract = false
attrs.Symmetric = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -41,105 +37,105 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11192")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11193")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11192")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11242")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11192")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11273")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11192")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11274")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11192")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11196")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11192")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11197")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11192")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11198")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11192")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11199")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11192")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11200")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11192")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11281")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11192")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11282")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11192")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11283")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11192")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11502")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11192")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11275")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=11192")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -376,75 +372,75 @@ def create_standard_address_space_Part11(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.ObjectTypeAttributes()
attrs.DisplayName = ua.LocalizedText("HistoricalDataConfigurationType")
attrs.IsAbstract = false
attrs.IsAbstract = False
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2318")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3059")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2318")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11876")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2318")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2323")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2318")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2324")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2318")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2325")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2318")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2326")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2318")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2327")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2318")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2328")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2318")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11499")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2318")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -466,35 +462,35 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3059")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11168")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3059")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11169")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3059")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11170")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3059")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11171")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3059")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -517,7 +513,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11168")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -540,7 +536,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11169")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -563,7 +559,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11170")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -586,7 +582,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11171")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -608,7 +604,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11876")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -631,7 +627,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2323")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -654,7 +650,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2324")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -677,7 +673,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2325")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -700,7 +696,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2326")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -723,7 +719,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2327")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -746,7 +742,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2328")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -769,7 +765,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11499")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -792,7 +788,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11500")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -812,14 +808,14 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=11202")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11203")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11202")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -841,28 +837,28 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11203")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11204")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11203")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11205")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11203")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11206")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11203")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -960,110 +956,110 @@ def create_standard_address_space_Part11(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.ObjectTypeAttributes()
attrs.DisplayName = ua.LocalizedText("HistoryServerCapabilitiesType")
attrs.IsAbstract = false
attrs.IsAbstract = False
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2330")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2331")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2330")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2332")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2330")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11268")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2330")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11269")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2330")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2334")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2330")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2335")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2330")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2336")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2330")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2337")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2330")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2338")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2330")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11278")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2330")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11279")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2330")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11280")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2330")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11501")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2330")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11270")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=47")
ref.SourceNodeId = ua.NodeId.from_string("i=2330")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1086,7 +1082,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2331")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1109,7 +1105,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2332")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1132,7 +1128,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11268")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1155,7 +1151,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11269")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1178,7 +1174,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2334")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1201,7 +1197,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2335")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1224,7 +1220,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2336")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1247,7 +1243,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2337")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1270,7 +1266,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2338")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1293,7 +1289,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11278")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1316,7 +1312,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11279")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1339,7 +1335,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11280")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1362,7 +1358,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11501")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1385,7 +1381,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11270")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1407,7 +1403,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11172")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1423,40 +1419,40 @@ def create_standard_address_space_Part11(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.ObjectTypeAttributes()
attrs.DisplayName = ua.LocalizedText("AuditHistoryEventUpdateEventType")
attrs.IsAbstract = true
attrs.IsAbstract = True
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2999")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3025")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2999")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3028")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2999")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3003")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2999")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3029")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2999")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1479,7 +1475,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3025")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1502,7 +1498,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3028")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1525,7 +1521,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3003")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1548,7 +1544,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3029")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1571,7 +1567,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3030")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1587,33 +1583,33 @@ def create_standard_address_space_Part11(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.ObjectTypeAttributes()
attrs.DisplayName = ua.LocalizedText("AuditHistoryValueUpdateEventType")
attrs.IsAbstract = true
attrs.IsAbstract = True
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3006")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3026")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3006")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3031")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3006")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3032")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3006")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1636,7 +1632,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3026")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1659,7 +1655,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3031")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1682,7 +1678,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3032")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1705,7 +1701,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3033")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1721,12 +1717,12 @@ def create_standard_address_space_Part11(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.ObjectTypeAttributes()
attrs.DisplayName = ua.LocalizedText("AuditHistoryDeleteEventType")
attrs.IsAbstract = true
attrs.IsAbstract = True
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3012")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1749,7 +1745,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3027")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1765,33 +1761,33 @@ def create_standard_address_space_Part11(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.ObjectTypeAttributes()
attrs.DisplayName = ua.LocalizedText("AuditHistoryRawModifyDeleteEventType")
attrs.IsAbstract = true
attrs.IsAbstract = True
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3014")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3015")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3014")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3016")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3014")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3017")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3014")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1814,7 +1810,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3015")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1837,7 +1833,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3016")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1860,7 +1856,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3017")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1883,7 +1879,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3034")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1899,19 +1895,19 @@ def create_standard_address_space_Part11(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.ObjectTypeAttributes()
attrs.DisplayName = ua.LocalizedText("AuditHistoryAtTimeDeleteEventType")
attrs.IsAbstract = true
attrs.IsAbstract = True
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3019")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3020")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3019")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1934,7 +1930,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3020")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1957,7 +1953,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3021")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1973,19 +1969,19 @@ def create_standard_address_space_Part11(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.ObjectTypeAttributes()
attrs.DisplayName = ua.LocalizedText("AuditHistoryEventDeleteEventType")
attrs.IsAbstract = true
attrs.IsAbstract = True
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3022")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=3023")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=3022")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2008,7 +2004,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3023")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2031,7 +2027,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=3024")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2047,7 +2043,6 @@ def create_standard_address_space_Part11(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("Annotation")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -2059,12 +2054,11 @@ def create_standard_address_space_Part11(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("ExceptionDeviationFormat")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=890")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2082,12 +2076,13 @@ def create_standard_address_space_Part11(server):
attrs = ua.VariableAttributes()
attrs.DisplayName = ua.LocalizedText("EnumStrings")
attrs.DataType = ua.NodeId(ua.ObjectIds.LocalizedText)
attrs.Value = ua.Variant(['AbsoluteValue', 'PercentOfValue', 'PercentOfRange', 'PercentOfEURange', 'Unknown'], ua.VariantType.LocalizedText)
attrs.ValueRank = 1
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=7614")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2109,7 +2104,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=892")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2131,7 +2126,7 @@ def create_standard_address_space_Part11(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=893")
ref.TargetNodeClass = ua.NodeClass.DataType
......
......@@ -6,8 +6,6 @@ It is automatically generated from opcfoundation.org schemas.
from opcua import ua
false = False #FIXME
true = True #FIXME
def create_standard_address_space_Part13(server):
......@@ -20,33 +18,33 @@ def create_standard_address_space_Part13(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.ObjectTypeAttributes()
attrs.DisplayName = ua.LocalizedText("AggregateConfigurationType")
attrs.IsAbstract = false
attrs.IsAbstract = False
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11187")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11188")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11187")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11189")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11187")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11190")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11187")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -69,7 +67,7 @@ def create_standard_address_space_Part13(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11188")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -92,7 +90,7 @@ def create_standard_address_space_Part13(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11189")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -115,7 +113,7 @@ def create_standard_address_space_Part13(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11190")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -138,7 +136,7 @@ def create_standard_address_space_Part13(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11191")
ref.TargetNodeClass = ua.NodeClass.DataType
......
......@@ -6,8 +6,6 @@ It is automatically generated from opcfoundation.org schemas.
from opcua import ua
false = False #FIXME
true = True #FIXME
def create_standard_address_space_Part3(server):
......@@ -43,7 +41,7 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that can have any valid DataType.'")
attrs.DisplayName = ua.LocalizedText("BaseDataType")
attrs.IsAbstract = true
attrs.IsAbstract = True
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -56,7 +54,7 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that can have any numeric DataType.'")
attrs.DisplayName = ua.LocalizedText("Number")
attrs.IsAbstract = true
attrs.IsAbstract = True
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -69,7 +67,7 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that can have any integer DataType.'")
attrs.DisplayName = ua.LocalizedText("Integer")
attrs.IsAbstract = true
attrs.IsAbstract = True
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -82,7 +80,7 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that can have any unsigned integer DataType.'")
attrs.DisplayName = ua.LocalizedText("UInteger")
attrs.IsAbstract = true
attrs.IsAbstract = True
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -95,7 +93,7 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is an enumerated DataType.'")
attrs.DisplayName = ua.LocalizedText("Enumeration")
attrs.IsAbstract = true
attrs.IsAbstract = True
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -108,7 +106,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is either TRUE or FALSE.'")
attrs.DisplayName = ua.LocalizedText("Boolean")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -121,7 +118,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is an integer between -128 and 127.'")
attrs.DisplayName = ua.LocalizedText("SByte")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -134,7 +130,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is an integer between 0 and 255.'")
attrs.DisplayName = ua.LocalizedText("Byte")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -147,7 +142,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is an integer between ?32,768 and 32,767.'")
attrs.DisplayName = ua.LocalizedText("Int16")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -160,7 +154,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is an integer between 0 and 65535.'")
attrs.DisplayName = ua.LocalizedText("UInt16")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -173,7 +166,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is an integer between ?2,147,483,648 and 2,147,483,647.'")
attrs.DisplayName = ua.LocalizedText("Int32")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -186,7 +178,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is an integer between 0 and 4,294,967,295.'")
attrs.DisplayName = ua.LocalizedText("UInt32")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -199,7 +190,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is an integer between ?9,223,372,036,854,775,808 and 9,223,372,036,854,775,807.'")
attrs.DisplayName = ua.LocalizedText("Int64")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -212,7 +202,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is an integer between 0 and 18,446,744,073,709,551,615.'")
attrs.DisplayName = ua.LocalizedText("UInt64")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -225,7 +214,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is an IEEE 754-1985 single precision floating point number.'")
attrs.DisplayName = ua.LocalizedText("Float")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -238,7 +226,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is an IEEE 754-1985 double precision floating point number.'")
attrs.DisplayName = ua.LocalizedText("Double")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -251,7 +238,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is a sequence of printable Unicode characters.'")
attrs.DisplayName = ua.LocalizedText("String")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -264,7 +250,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is a Gregorian calender date and time.'")
attrs.DisplayName = ua.LocalizedText("DateTime")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -277,7 +262,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is a 128-bit globally unique identifier.'")
attrs.DisplayName = ua.LocalizedText("Guid")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -290,7 +274,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is a sequence of bytes.'")
attrs.DisplayName = ua.LocalizedText("ByteString")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -303,7 +286,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is an XML element.'")
attrs.DisplayName = ua.LocalizedText("XmlElement")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -316,7 +298,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is an identifier for a node within a Server address space.'")
attrs.DisplayName = ua.LocalizedText("NodeId")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -329,7 +310,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is a name qualified by a namespace.'")
attrs.DisplayName = ua.LocalizedText("QualifiedName")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -342,7 +322,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is human readable Unicode text with a locale identifier.'")
attrs.DisplayName = ua.LocalizedText("LocalizedText")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -355,7 +334,7 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is any type of structure that can be described with a data encoding.'")
attrs.DisplayName = ua.LocalizedText("Structure")
attrs.IsAbstract = true
attrs.IsAbstract = True
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -368,7 +347,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is an image encoded as a string of bytes.'")
attrs.DisplayName = ua.LocalizedText("Image")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -381,7 +359,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a 128-bit decimal value.'")
attrs.DisplayName = ua.LocalizedText("Decimal128")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -393,7 +370,7 @@ def create_standard_address_space_Part3(server):
attrs.Description = ua.LocalizedText("The abstract base type for all references.")
attrs.DisplayName = ua.LocalizedText("References")
attrs.InverseName = ua.LocalizedText("References")
attrs.IsAbstract = true
attrs.IsAbstract = True
attrs.Symmetric = True
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -408,8 +385,7 @@ def create_standard_address_space_Part3(server):
attrs.Description = ua.LocalizedText("The abstract base type for all non-hierarchical references.")
attrs.DisplayName = ua.LocalizedText("NonHierarchicalReferences")
attrs.InverseName = ua.LocalizedText("NonHierarchicalReferences")
attrs.IsAbstract = true
attrs.Symmetric = false
attrs.IsAbstract = True
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -423,8 +399,7 @@ def create_standard_address_space_Part3(server):
attrs.Description = ua.LocalizedText("The abstract base type for all hierarchical references.")
attrs.DisplayName = ua.LocalizedText("HierarchicalReferences")
attrs.InverseName = ua.LocalizedText("HierarchicalReferences")
attrs.IsAbstract = true
attrs.Symmetric = false
attrs.IsAbstract = True
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -438,8 +413,6 @@ def create_standard_address_space_Part3(server):
attrs.Description = ua.LocalizedText("The abstract base type for all non-looping hierarchical references.")
attrs.DisplayName = ua.LocalizedText("HasChild")
attrs.InverseName = ua.LocalizedText("ChildOf")
attrs.IsAbstract = false
attrs.Symmetric = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -453,8 +426,6 @@ def create_standard_address_space_Part3(server):
attrs.Description = ua.LocalizedText("The type for hierarchical references that are used to organize nodes.")
attrs.DisplayName = ua.LocalizedText("Organizes")
attrs.InverseName = ua.LocalizedText("OrganizedBy")
attrs.IsAbstract = false
attrs.Symmetric = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -468,8 +439,6 @@ def create_standard_address_space_Part3(server):
attrs.Description = ua.LocalizedText("The type for non-looping hierarchical references that are used to organize event sources.")
attrs.DisplayName = ua.LocalizedText("HasEventSource")
attrs.InverseName = ua.LocalizedText("EventSourceOf")
attrs.IsAbstract = false
attrs.Symmetric = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -483,8 +452,6 @@ def create_standard_address_space_Part3(server):
attrs.Description = ua.LocalizedText("The type for references from instance declarations to modelling rule nodes.")
attrs.DisplayName = ua.LocalizedText("HasModellingRule")
attrs.InverseName = ua.LocalizedText("ModellingRuleOf")
attrs.IsAbstract = false
attrs.Symmetric = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -498,8 +465,6 @@ def create_standard_address_space_Part3(server):
attrs.Description = ua.LocalizedText("The type for references from data type nodes to to data type encoding nodes.")
attrs.DisplayName = ua.LocalizedText("HasEncoding")
attrs.InverseName = ua.LocalizedText("EncodingOf")
attrs.IsAbstract = false
attrs.Symmetric = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -513,8 +478,6 @@ def create_standard_address_space_Part3(server):
attrs.Description = ua.LocalizedText("The type for references from data type encoding nodes to data type description nodes.")
attrs.DisplayName = ua.LocalizedText("HasDescription")
attrs.InverseName = ua.LocalizedText("DescriptionOf")
attrs.IsAbstract = false
attrs.Symmetric = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -528,8 +491,6 @@ def create_standard_address_space_Part3(server):
attrs.Description = ua.LocalizedText("The type for references from a instance node its type defintion node.")
attrs.DisplayName = ua.LocalizedText("HasTypeDefinition")
attrs.InverseName = ua.LocalizedText("TypeDefinitionOf")
attrs.IsAbstract = false
attrs.Symmetric = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -543,8 +504,6 @@ def create_standard_address_space_Part3(server):
attrs.Description = ua.LocalizedText("The type for references from a node to an event type that is raised by node.")
attrs.DisplayName = ua.LocalizedText("GeneratesEvent")
attrs.InverseName = ua.LocalizedText("GeneratesEvent")
attrs.IsAbstract = false
attrs.Symmetric = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -558,8 +517,6 @@ def create_standard_address_space_Part3(server):
attrs.Description = ua.LocalizedText("The type for references from a node to an event type that is always raised by node.")
attrs.DisplayName = ua.LocalizedText("AlwaysGeneratesEvent")
attrs.InverseName = ua.LocalizedText("AlwaysGeneratesEvent")
attrs.IsAbstract = false
attrs.Symmetric = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -573,8 +530,6 @@ def create_standard_address_space_Part3(server):
attrs.Description = ua.LocalizedText("The type for non-looping hierarchical references that are used to aggregate nodes into complex types.")
attrs.DisplayName = ua.LocalizedText("Aggregates")
attrs.InverseName = ua.LocalizedText("AggregatedBy")
attrs.IsAbstract = false
attrs.Symmetric = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -588,8 +543,6 @@ def create_standard_address_space_Part3(server):
attrs.Description = ua.LocalizedText("The type for non-looping hierarchical references that are used to define sub types.")
attrs.DisplayName = ua.LocalizedText("HasSubtype")
attrs.InverseName = ua.LocalizedText("HasSupertype")
attrs.IsAbstract = false
attrs.Symmetric = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -603,8 +556,6 @@ def create_standard_address_space_Part3(server):
attrs.Description = ua.LocalizedText("The type for non-looping hierarchical reference from a node to its property.")
attrs.DisplayName = ua.LocalizedText("HasProperty")
attrs.InverseName = ua.LocalizedText("PropertyOf")
attrs.IsAbstract = false
attrs.Symmetric = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -618,8 +569,6 @@ def create_standard_address_space_Part3(server):
attrs.Description = ua.LocalizedText("The type for non-looping hierarchical reference from a node to its component.")
attrs.DisplayName = ua.LocalizedText("HasComponent")
attrs.InverseName = ua.LocalizedText("ComponentOf")
attrs.IsAbstract = false
attrs.Symmetric = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -633,8 +582,6 @@ def create_standard_address_space_Part3(server):
attrs.Description = ua.LocalizedText("The type for non-looping hierarchical references that are used to indicate how events propagate from node to node.")
attrs.DisplayName = ua.LocalizedText("HasNotifier")
attrs.InverseName = ua.LocalizedText("NotifierOf")
attrs.IsAbstract = false
attrs.Symmetric = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -648,8 +595,6 @@ def create_standard_address_space_Part3(server):
attrs.Description = ua.LocalizedText("The type for non-looping hierarchical reference from a node to its component when the order of references matters.")
attrs.DisplayName = ua.LocalizedText("HasOrderedComponent")
attrs.InverseName = ua.LocalizedText("OrderedComponentOf")
attrs.IsAbstract = false
attrs.Symmetric = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -662,12 +607,11 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that specifies the significance of the BrowseName for an instance declaration.'")
attrs.DisplayName = ua.LocalizedText("NamingRuleType")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=120")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -685,12 +629,29 @@ def create_standard_address_space_Part3(server):
attrs = ua.VariableAttributes()
attrs.DisplayName = ua.LocalizedText("EnumValues")
attrs.DataType = ua.NodeId.from_string("i=7594")
value = []
extobj = ua.EnumValueType()
extobj.Description.Text = b'The BrowseName must appear in all instances of the type.'
extobj.DisplayName.Text = b'Mandatory'
extobj.Value = 1
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The BrowseName may appear in an instance of the type.'
extobj.DisplayName.Text = b'Optional'
extobj.Value = 2
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The modelling rule defines a constraint and the BrowseName is not used in an instance of the type.'
extobj.DisplayName.Text = b'Constraint'
extobj.Value = 3
value.append(extobj)
attrs.Value = ua.Variant(value, ua.VariantType.ExtensionObject)
attrs.ValueRank = 1
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=12169")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -902,7 +863,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'An image encoded in BMP format.'")
attrs.DisplayName = ua.LocalizedText("ImageBMP")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -915,7 +875,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'An image encoded in GIF format.'")
attrs.DisplayName = ua.LocalizedText("ImageGIF")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -928,7 +887,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'An image encoded in JPEG format.'")
attrs.DisplayName = ua.LocalizedText("ImageJPG")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -941,7 +899,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'An image encoded in PNG format.'")
attrs.DisplayName = ua.LocalizedText("ImagePNG")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -954,12 +911,11 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'The type of identifier used in a node id.'")
attrs.DisplayName = ua.LocalizedText("IdType")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=256")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -977,12 +933,13 @@ def create_standard_address_space_Part3(server):
attrs = ua.VariableAttributes()
attrs.DisplayName = ua.LocalizedText("EnumStrings")
attrs.DataType = ua.NodeId(ua.ObjectIds.LocalizedText)
attrs.Value = ua.Variant(['Numeric', 'String', 'Guid', 'Opaque'], ua.VariantType.LocalizedText)
attrs.ValueRank = 1
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=7591")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -999,12 +956,11 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A mask specifying the class of the node.'")
attrs.DisplayName = ua.LocalizedText("NodeClass")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=257")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1022,12 +978,59 @@ def create_standard_address_space_Part3(server):
attrs = ua.VariableAttributes()
attrs.DisplayName = ua.LocalizedText("EnumValues")
attrs.DataType = ua.NodeId.from_string("i=7594")
value = []
extobj = ua.EnumValueType()
extobj.Description.Text = b'No classes are selected.'
extobj.DisplayName.Text = b'Unspecified'
extobj.Value = 0
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The node is an object.'
extobj.DisplayName.Text = b'Object'
extobj.Value = 1
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The node is a variable.'
extobj.DisplayName.Text = b'Variable'
extobj.Value = 2
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The node is a method.'
extobj.DisplayName.Text = b'Method'
extobj.Value = 4
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The node is an object type.'
extobj.DisplayName.Text = b'ObjectType'
extobj.Value = 8
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The node is an variable type.'
extobj.DisplayName.Text = b'VariableType'
extobj.Value = 16
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The node is a reference type.'
extobj.DisplayName.Text = b'ReferenceType'
extobj.Value = 32
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The node is a data type.'
extobj.DisplayName.Text = b'DataType'
extobj.Value = 64
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The node is a view.'
extobj.DisplayName.Text = b'View'
extobj.Value = 128
value.append(extobj)
attrs.Value = ua.Variant(value, ua.VariantType.ExtensionObject)
attrs.ValueRank = 1
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11878")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1044,7 +1047,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'An argument for a method.'")
attrs.DisplayName = ua.LocalizedText("Argument")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -1057,7 +1059,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A mapping between a value of an enumerated type and a name and description.'")
attrs.DisplayName = ua.LocalizedText("EnumValueType")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -1070,7 +1071,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'This abstract Structured DataType is the base DataType for all DataTypes representing a bit mask.'")
attrs.DisplayName = ua.LocalizedText("OptionSet")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -1083,7 +1083,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'This abstract DataType is the base DataType for all union DataTypes.'")
attrs.DisplayName = ua.LocalizedText("Union")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -1096,7 +1095,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A string normalized based on the rules in the unicode specification.'")
attrs.DisplayName = ua.LocalizedText("NormalizedString")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -1109,7 +1107,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'An arbitraty numeric value.'")
attrs.DisplayName = ua.LocalizedText("DecimalString")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -1122,7 +1119,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A period of time formatted as defined in ISO 8601-2000.'")
attrs.DisplayName = ua.LocalizedText("DurationString")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -1135,7 +1131,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A time formatted as defined in ISO 8601-2000.'")
attrs.DisplayName = ua.LocalizedText("TimeString")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -1148,7 +1143,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A date formatted as defined in ISO 8601-2000.'")
attrs.DisplayName = ua.LocalizedText("DateString")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -1161,7 +1155,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A period of time measured in milliseconds.'")
attrs.DisplayName = ua.LocalizedText("Duration")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -1174,7 +1167,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A date/time value specified in Universal Coordinated Time (UTC).'")
attrs.DisplayName = ua.LocalizedText("UtcTime")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -1187,7 +1179,6 @@ def create_standard_address_space_Part3(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'An identifier for a user locale.'")
attrs.DisplayName = ua.LocalizedText("LocaleId")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -1199,7 +1190,6 @@ def create_standard_address_space_Part3(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("TimeZoneDataType")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -1217,7 +1207,7 @@ def create_standard_address_space_Part3(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=297")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1239,7 +1229,7 @@ def create_standard_address_space_Part3(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=7616")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1261,7 +1251,7 @@ def create_standard_address_space_Part3(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=12757")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1283,7 +1273,7 @@ def create_standard_address_space_Part3(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=12758")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1305,7 +1295,7 @@ def create_standard_address_space_Part3(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=8913")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1327,7 +1317,7 @@ def create_standard_address_space_Part3(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=298")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1349,7 +1339,7 @@ def create_standard_address_space_Part3(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=8251")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1371,7 +1361,7 @@ def create_standard_address_space_Part3(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=12765")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1393,7 +1383,7 @@ def create_standard_address_space_Part3(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=12766")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1415,7 +1405,7 @@ def create_standard_address_space_Part3(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=8917")
ref.TargetNodeClass = ua.NodeClass.DataType
......
......@@ -6,8 +6,6 @@ It is automatically generated from opcfoundation.org schemas.
from opcua import ua
false = False #FIXME
true = True #FIXME
def create_standard_address_space_Part4(server):
......@@ -21,7 +19,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is an absolute identifier for a node.'")
attrs.DisplayName = ua.LocalizedText("ExpandedNodeId")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -34,7 +31,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is a code representing the outcome of an operation by a Server.'")
attrs.DisplayName = ua.LocalizedText("StatusCode")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -47,7 +43,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is a structure containing a value, a status code and timestamps.'")
attrs.DisplayName = ua.LocalizedText("DataValue")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -60,7 +55,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a value that is a structure containing diagnostics associated with a StatusCode.'")
attrs.DisplayName = ua.LocalizedText("DiagnosticInfo")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -73,7 +67,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A numeric identifier for an object.'")
attrs.DisplayName = ua.LocalizedText("IntegerId")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -86,12 +79,11 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'The types of applications.'")
attrs.DisplayName = ua.LocalizedText("ApplicationType")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=307")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -109,12 +101,13 @@ def create_standard_address_space_Part4(server):
attrs = ua.VariableAttributes()
attrs.DisplayName = ua.LocalizedText("EnumStrings")
attrs.DataType = ua.NodeId(ua.ObjectIds.LocalizedText)
attrs.Value = ua.Variant(['Server', 'Client', 'ClientAndServer', 'DiscoveryServer'], ua.VariantType.LocalizedText)
attrs.ValueRank = 1
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=7597")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -131,7 +124,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes an application and how to find it.'")
attrs.DisplayName = ua.LocalizedText("ApplicationDescription")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -143,7 +135,6 @@ def create_standard_address_space_Part4(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("ServerOnNetwork")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -156,7 +147,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A certificate for an instance of an application.'")
attrs.DisplayName = ua.LocalizedText("ApplicationInstanceCertificate")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -169,12 +159,11 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'The type of security to use on a message.'")
attrs.DisplayName = ua.LocalizedText("MessageSecurityMode")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=302")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -192,12 +181,13 @@ def create_standard_address_space_Part4(server):
attrs = ua.VariableAttributes()
attrs.DisplayName = ua.LocalizedText("EnumStrings")
attrs.DataType = ua.NodeId(ua.ObjectIds.LocalizedText)
attrs.Value = ua.Variant(['Invalid', 'None', 'Sign', 'SignAndEncrypt'], ua.VariantType.LocalizedText)
attrs.ValueRank = 1
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=7595")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -214,12 +204,11 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'The possible user token types.'")
attrs.DisplayName = ua.LocalizedText("UserTokenType")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=303")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -237,12 +226,13 @@ def create_standard_address_space_Part4(server):
attrs = ua.VariableAttributes()
attrs.DisplayName = ua.LocalizedText("EnumStrings")
attrs.DataType = ua.NodeId(ua.ObjectIds.LocalizedText)
attrs.Value = ua.Variant(['Anonymous', 'UserName', 'Certificate', 'IssuedToken', 'Kerberos'], ua.VariantType.LocalizedText)
attrs.ValueRank = 1
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=7596")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -259,7 +249,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Describes a user token that can be used with a server.'")
attrs.DisplayName = ua.LocalizedText("UserTokenPolicy")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -272,7 +261,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'The description of a endpoint that can be used to access a server.'")
attrs.DisplayName = ua.LocalizedText("EndpointDescription")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -285,7 +273,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'The information required to register a server with a discovery server.'")
attrs.DisplayName = ua.LocalizedText("RegisteredServer")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -298,7 +285,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A base type for discovery configuration information.'")
attrs.DisplayName = ua.LocalizedText("DiscoveryConfiguration")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -311,7 +297,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'The discovery information needed for mDNS registration.'")
attrs.DisplayName = ua.LocalizedText("MdnsDiscoveryConfiguration")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -324,12 +309,11 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Indicates whether a token if being created or renewed.'")
attrs.DisplayName = ua.LocalizedText("SecurityTokenRequestType")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=315")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -347,12 +331,13 @@ def create_standard_address_space_Part4(server):
attrs = ua.VariableAttributes()
attrs.DisplayName = ua.LocalizedText("EnumStrings")
attrs.DataType = ua.NodeId(ua.ObjectIds.LocalizedText)
attrs.Value = ua.Variant(['Issue', 'Renew'], ua.VariantType.LocalizedText)
attrs.ValueRank = 1
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=7598")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -369,7 +354,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A software certificate with a digital signature.'")
attrs.DisplayName = ua.LocalizedText("SignedSoftwareCertificate")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -382,7 +366,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A unique identifier for a session used to authenticate requests.'")
attrs.DisplayName = ua.LocalizedText("SessionAuthenticationToken")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -395,7 +378,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A base type for a user identity token.'")
attrs.DisplayName = ua.LocalizedText("UserIdentityToken")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -408,7 +390,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A token representing an anonymous user.'")
attrs.DisplayName = ua.LocalizedText("AnonymousIdentityToken")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -421,7 +402,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A token representing a user identified by a user name and password.'")
attrs.DisplayName = ua.LocalizedText("UserNameIdentityToken")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -434,7 +414,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A token representing a user identified by an X509 certificate.'")
attrs.DisplayName = ua.LocalizedText("X509IdentityToken")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -446,7 +425,6 @@ def create_standard_address_space_Part4(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("KerberosIdentityToken")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -459,7 +437,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A token representing a user identified by a WS-Security XML token.'")
attrs.DisplayName = ua.LocalizedText("IssuedIdentityToken")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -472,12 +449,11 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'The bits used to specify default attributes for a new node.'")
attrs.DisplayName = ua.LocalizedText("NodeAttributesMask")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=348")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -495,12 +471,174 @@ def create_standard_address_space_Part4(server):
attrs = ua.VariableAttributes()
attrs.DisplayName = ua.LocalizedText("EnumValues")
attrs.DataType = ua.NodeId.from_string("i=7594")
value = []
extobj = ua.EnumValueType()
extobj.Description.Text = b'No attribuites provided.'
extobj.DisplayName.Text = b'None'
extobj.Value = 0
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The access level attribute is specified.'
extobj.DisplayName.Text = b'AccessLevel'
extobj.Value = 1
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The array dimensions attribute is specified.'
extobj.DisplayName.Text = b'ArrayDimensions'
extobj.Value = 2
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The browse name attribute is specified.'
extobj.DisplayName.Text = b'BrowseName'
extobj.Value = 4
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The contains no loops attribute is specified.'
extobj.DisplayName.Text = b'ContainsNoLoops'
extobj.Value = 8
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The data type attribute is specified.'
extobj.DisplayName.Text = b'DataType'
extobj.Value = 16
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The description attribute is specified.'
extobj.DisplayName.Text = b'Description'
extobj.Value = 32
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The display name attribute is specified.'
extobj.DisplayName.Text = b'DisplayName'
extobj.Value = 64
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The event notifier attribute is specified.'
extobj.DisplayName.Text = b'EventNotifier'
extobj.Value = 128
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The executable attribute is specified.'
extobj.DisplayName.Text = b'Executable'
extobj.Value = 256
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The historizing attribute is specified.'
extobj.DisplayName.Text = b'Historizing'
extobj.Value = 512
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The inverse name attribute is specified.'
extobj.DisplayName.Text = b'InverseName'
extobj.Value = 1024
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The is abstract attribute is specified.'
extobj.DisplayName.Text = b'IsAbstract'
extobj.Value = 2048
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The minimum sampling interval attribute is specified.'
extobj.DisplayName.Text = b'MinimumSamplingInterval'
extobj.Value = 4096
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The node class attribute is specified.'
extobj.DisplayName.Text = b'NodeClass'
extobj.Value = 8192
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The node id attribute is specified.'
extobj.DisplayName.Text = b'NodeId'
extobj.Value = 16384
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The symmetric attribute is specified.'
extobj.DisplayName.Text = b'Symmetric'
extobj.Value = 32768
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The user access level attribute is specified.'
extobj.DisplayName.Text = b'UserAccessLevel'
extobj.Value = 65536
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The user executable attribute is specified.'
extobj.DisplayName.Text = b'UserExecutable'
extobj.Value = 131072
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The user write mask attribute is specified.'
extobj.DisplayName.Text = b'UserWriteMask'
extobj.Value = 262144
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The value rank attribute is specified.'
extobj.DisplayName.Text = b'ValueRank'
extobj.Value = 524288
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The write mask attribute is specified.'
extobj.DisplayName.Text = b'WriteMask'
extobj.Value = 1048576
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The value attribute is specified.'
extobj.DisplayName.Text = b'Value'
extobj.Value = 2097152
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'All attributes are specified.'
extobj.DisplayName.Text = b'All'
extobj.Value = 4194303
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'All base attributes are specified.'
extobj.DisplayName.Text = b'BaseNode'
extobj.Value = 1335396
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'All object attributes are specified.'
extobj.DisplayName.Text = b'Object'
extobj.Value = 1335524
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'All object type or data type attributes are specified.'
extobj.DisplayName.Text = b'ObjectTypeOrDataType'
extobj.Value = 1337444
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'All variable attributes are specified.'
extobj.DisplayName.Text = b'Variable'
extobj.Value = 4026999
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'All variable type attributes are specified.'
extobj.DisplayName.Text = b'VariableType'
extobj.Value = 3958902
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'All method attributes are specified.'
extobj.DisplayName.Text = b'Method'
extobj.Value = 1466724
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'All reference type attributes are specified.'
extobj.DisplayName.Text = b'ReferenceType'
extobj.Value = 1371236
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'All view attributes are specified.'
extobj.DisplayName.Text = b'View'
extobj.Value = 1335532
value.append(extobj)
attrs.Value = ua.Variant(value, ua.VariantType.ExtensionObject)
attrs.ValueRank = 1
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11881")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -517,7 +655,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A request to add a node to the server address space.'")
attrs.DisplayName = ua.LocalizedText("AddNodesItem")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -530,7 +667,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A request to add a reference to the server address space.'")
attrs.DisplayName = ua.LocalizedText("AddReferencesItem")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -543,7 +679,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A request to delete a node to the server address space.'")
attrs.DisplayName = ua.LocalizedText("DeleteNodesItem")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -556,7 +691,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A request to delete a node from the server address space.'")
attrs.DisplayName = ua.LocalizedText("DeleteReferencesItem")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -569,12 +703,11 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Define bits used to indicate which attributes are writable.'")
attrs.DisplayName = ua.LocalizedText("AttributeWriteMask")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=347")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -592,12 +725,129 @@ def create_standard_address_space_Part4(server):
attrs = ua.VariableAttributes()
attrs.DisplayName = ua.LocalizedText("EnumValues")
attrs.DataType = ua.NodeId.from_string("i=7594")
value = []
extobj = ua.EnumValueType()
extobj.Description.Text = b'No attributes are writable.'
extobj.DisplayName.Text = b'None'
extobj.Value = 0
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The access level attribute is writable.'
extobj.DisplayName.Text = b'AccessLevel'
extobj.Value = 1
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The array dimensions attribute is writable.'
extobj.DisplayName.Text = b'ArrayDimensions'
extobj.Value = 2
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The browse name attribute is writable.'
extobj.DisplayName.Text = b'BrowseName'
extobj.Value = 4
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The contains no loops attribute is writable.'
extobj.DisplayName.Text = b'ContainsNoLoops'
extobj.Value = 8
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The data type attribute is writable.'
extobj.DisplayName.Text = b'DataType'
extobj.Value = 16
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The description attribute is writable.'
extobj.DisplayName.Text = b'Description'
extobj.Value = 32
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The display name attribute is writable.'
extobj.DisplayName.Text = b'DisplayName'
extobj.Value = 64
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The event notifier attribute is writable.'
extobj.DisplayName.Text = b'EventNotifier'
extobj.Value = 128
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The executable attribute is writable.'
extobj.DisplayName.Text = b'Executable'
extobj.Value = 256
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The historizing attribute is writable.'
extobj.DisplayName.Text = b'Historizing'
extobj.Value = 512
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The inverse name attribute is writable.'
extobj.DisplayName.Text = b'InverseName'
extobj.Value = 1024
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The is abstract attribute is writable.'
extobj.DisplayName.Text = b'IsAbstract'
extobj.Value = 2048
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The minimum sampling interval attribute is writable.'
extobj.DisplayName.Text = b'MinimumSamplingInterval'
extobj.Value = 4096
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The node class attribute is writable.'
extobj.DisplayName.Text = b'NodeClass'
extobj.Value = 8192
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The node id attribute is writable.'
extobj.DisplayName.Text = b'NodeId'
extobj.Value = 16384
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The symmetric attribute is writable.'
extobj.DisplayName.Text = b'Symmetric'
extobj.Value = 32768
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The user access level attribute is writable.'
extobj.DisplayName.Text = b'UserAccessLevel'
extobj.Value = 65536
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The user executable attribute is writable.'
extobj.DisplayName.Text = b'UserExecutable'
extobj.Value = 131072
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The user write mask attribute is writable.'
extobj.DisplayName.Text = b'UserWriteMask'
extobj.Value = 262144
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The value rank attribute is writable.'
extobj.DisplayName.Text = b'ValueRank'
extobj.Value = 524288
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The write mask attribute is writable.'
extobj.DisplayName.Text = b'WriteMask'
extobj.Value = 1048576
value.append(extobj)
extobj = ua.EnumValueType()
extobj.Description.Text = b'The value attribute is writable.'
extobj.DisplayName.Text = b'ValueForVariableType'
extobj.Value = 2097152
value.append(extobj)
attrs.Value = ua.Variant(value, ua.VariantType.ExtensionObject)
attrs.ValueRank = 1
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11882")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -614,7 +864,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'An identifier for a suspended query or browse operation.'")
attrs.DisplayName = ua.LocalizedText("ContinuationPoint")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -627,7 +876,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'An element in a relative path.'")
attrs.DisplayName = ua.LocalizedText("RelativePathElement")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -640,7 +888,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A relative path constructed from reference types and browse names.'")
attrs.DisplayName = ua.LocalizedText("RelativePath")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -653,7 +900,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A monotonically increasing value.'")
attrs.DisplayName = ua.LocalizedText("Counter")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -666,7 +912,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'Specifies a range of array indexes.'")
attrs.DisplayName = ua.LocalizedText("NumericRange")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -679,7 +924,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A time value specified as HH:MM:SS.SSS.'")
attrs.DisplayName = ua.LocalizedText("Time")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -692,7 +936,6 @@ def create_standard_address_space_Part4(server):
attrs = ua.DataTypeAttributes()
attrs.Description = ua.LocalizedText("b'A date value.'")
attrs.DisplayName = ua.LocalizedText("Date")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -704,7 +947,6 @@ def create_standard_address_space_Part4(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("EndpointConfiguration")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -716,12 +958,11 @@ def create_standard_address_space_Part4(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("ComplianceLevel")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=334")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -739,12 +980,13 @@ def create_standard_address_space_Part4(server):
attrs = ua.VariableAttributes()
attrs.DisplayName = ua.LocalizedText("EnumStrings")
attrs.DataType = ua.NodeId(ua.ObjectIds.LocalizedText)
attrs.Value = ua.Variant(['Untested', 'Partial', 'SelfTested', 'Certified'], ua.VariantType.LocalizedText)
attrs.ValueRank = 1
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=7599")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -760,7 +1002,6 @@ def create_standard_address_space_Part4(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("SupportedProfile")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -772,7 +1013,6 @@ def create_standard_address_space_Part4(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("SoftwareCertificate")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -784,12 +1024,11 @@ def create_standard_address_space_Part4(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("FilterOperator")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=576")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -807,12 +1046,13 @@ def create_standard_address_space_Part4(server):
attrs = ua.VariableAttributes()
attrs.DisplayName = ua.LocalizedText("EnumStrings")
attrs.DataType = ua.NodeId(ua.ObjectIds.LocalizedText)
attrs.Value = ua.Variant(['Equals', 'IsNull', 'GreaterThan', 'LessThan', 'GreaterThanOrEqual', 'LessThanOrEqual', 'Like', 'Not', 'Between', 'InList', 'And', 'Or', 'Cast', 'InView', 'OfType', 'RelatedTo', 'BitwiseAnd', 'BitwiseOr'], ua.VariantType.LocalizedText)
attrs.ValueRank = 1
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=7605")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -828,7 +1068,6 @@ def create_standard_address_space_Part4(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("ContentFilterElement")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -840,7 +1079,6 @@ def create_standard_address_space_Part4(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("ContentFilter")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -852,7 +1090,6 @@ def create_standard_address_space_Part4(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("FilterOperand")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -864,7 +1101,6 @@ def create_standard_address_space_Part4(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("ElementOperand")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -876,7 +1112,6 @@ def create_standard_address_space_Part4(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("LiteralOperand")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -888,7 +1123,6 @@ def create_standard_address_space_Part4(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("AttributeOperand")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -900,7 +1134,6 @@ def create_standard_address_space_Part4(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("SimpleAttributeOperand")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -912,7 +1145,6 @@ def create_standard_address_space_Part4(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("HistoryEvent")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -924,12 +1156,11 @@ def create_standard_address_space_Part4(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("HistoryUpdateType")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11234")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -947,12 +1178,30 @@ def create_standard_address_space_Part4(server):
attrs = ua.VariableAttributes()
attrs.DisplayName = ua.LocalizedText("EnumValues")
attrs.DataType = ua.NodeId.from_string("i=7594")
value = []
extobj = ua.EnumValueType()
extobj.DisplayName.Text = b'Insert'
extobj.Value = 1
value.append(extobj)
extobj = ua.EnumValueType()
extobj.DisplayName.Text = b'Replace'
extobj.Value = 2
value.append(extobj)
extobj = ua.EnumValueType()
extobj.DisplayName.Text = b'Update'
extobj.Value = 3
value.append(extobj)
extobj = ua.EnumValueType()
extobj.DisplayName.Text = b'Delete'
extobj.Value = 4
value.append(extobj)
attrs.Value = ua.Variant(value, ua.VariantType.ExtensionObject)
attrs.ValueRank = 1
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11884")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -968,12 +1217,11 @@ def create_standard_address_space_Part4(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("PerformUpdateType")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11293")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -991,12 +1239,30 @@ def create_standard_address_space_Part4(server):
attrs = ua.VariableAttributes()
attrs.DisplayName = ua.LocalizedText("EnumValues")
attrs.DataType = ua.NodeId.from_string("i=7594")
value = []
extobj = ua.EnumValueType()
extobj.DisplayName.Text = b'Insert'
extobj.Value = 1
value.append(extobj)
extobj = ua.EnumValueType()
extobj.DisplayName.Text = b'Replace'
extobj.Value = 2
value.append(extobj)
extobj = ua.EnumValueType()
extobj.DisplayName.Text = b'Update'
extobj.Value = 3
value.append(extobj)
extobj = ua.EnumValueType()
extobj.DisplayName.Text = b'Remove'
extobj.Value = 4
value.append(extobj)
attrs.Value = ua.Variant(value, ua.VariantType.ExtensionObject)
attrs.ValueRank = 1
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11885")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1012,7 +1278,6 @@ def create_standard_address_space_Part4(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("MonitoringFilter")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -1024,7 +1289,6 @@ def create_standard_address_space_Part4(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("EventFilter")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -1036,7 +1300,6 @@ def create_standard_address_space_Part4(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("AggregateConfiguration")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -1048,7 +1311,6 @@ def create_standard_address_space_Part4(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("HistoryEventFieldList")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -1066,7 +1328,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=309")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1088,7 +1350,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=12195")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1110,7 +1372,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=305")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1132,7 +1394,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=313")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1154,7 +1416,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=433")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1176,7 +1438,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=12892")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1198,7 +1460,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=12893")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1220,7 +1482,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=345")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1242,7 +1504,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=317")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1264,7 +1526,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=320")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1286,7 +1548,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=323")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1308,7 +1570,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=326")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1330,7 +1592,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=12505")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1352,7 +1614,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=939")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1374,7 +1636,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=377")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1396,7 +1658,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=380")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1418,7 +1680,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=383")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1440,7 +1702,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=386")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1462,7 +1724,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=538")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1484,7 +1746,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=541")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1506,7 +1768,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=332")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1528,7 +1790,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=336")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1550,7 +1812,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=342")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1572,7 +1834,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=584")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1594,7 +1856,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=587")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1616,7 +1878,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=590")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1638,7 +1900,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=593")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1660,7 +1922,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=596")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1682,7 +1944,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=599")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1704,7 +1966,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=602")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1726,7 +1988,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=660")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1748,7 +2010,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=720")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1770,7 +2032,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=726")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1792,7 +2054,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=949")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1814,7 +2076,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=921")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1836,7 +2098,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=310")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1858,7 +2120,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=12207")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1880,7 +2142,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=306")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1902,7 +2164,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=314")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1924,7 +2186,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=434")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1946,7 +2208,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=12900")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1968,7 +2230,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=12901")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1990,7 +2252,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=346")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2012,7 +2274,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=318")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2034,7 +2296,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=321")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2056,7 +2318,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=324")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2078,7 +2340,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=327")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2100,7 +2362,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=12509")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2122,7 +2384,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=940")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2144,7 +2406,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=378")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2166,7 +2428,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=381")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2188,7 +2450,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=384")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2210,7 +2472,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=387")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2232,7 +2494,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=539")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2254,7 +2516,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=542")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2276,7 +2538,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=333")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2298,7 +2560,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=337")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2320,7 +2582,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=343")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2342,7 +2604,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=585")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2364,7 +2626,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=588")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2386,7 +2648,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=591")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2408,7 +2670,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=594")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2430,7 +2692,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=597")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2452,7 +2714,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=600")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2474,7 +2736,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=603")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2496,7 +2758,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=661")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2518,7 +2780,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=721")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2540,7 +2802,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=727")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2562,7 +2824,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=950")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -2584,7 +2846,7 @@ def create_standard_address_space_Part4(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=922")
ref.TargetNodeClass = ua.NodeClass.DataType
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -6,8 +6,6 @@ It is automatically generated from opcfoundation.org schemas.
from opcua import ua
false = False #FIXME
true = True #FIXME
def create_standard_address_space_Part8(server):
......@@ -21,21 +19,22 @@ def create_standard_address_space_Part8(server):
attrs = ua.VariableTypeAttributes()
attrs.Description = ua.LocalizedText("A variable that contains live automation data.")
attrs.DisplayName = ua.LocalizedText("DataItemType")
attrs.Description = ua.LocalizedText("A variable that contains live automation data.")
attrs.DisplayName = ua.LocalizedText("DataItemType")
attrs.DataType = ua.NodeId(ua.ObjectIds.String)
attrs.ValueRank = -2
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2365")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2366")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2365")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -59,7 +58,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2366")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -83,7 +82,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2367")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -99,28 +98,28 @@ def create_standard_address_space_Part8(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.VariableTypeAttributes()
attrs.DisplayName = ua.LocalizedText("AnalogItemType")
attrs.DisplayName = ua.LocalizedText("AnalogItemType")
attrs.DataType = ua.NodeId(ua.ObjectIds.Number)
attrs.ValueRank = -2
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2368")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2370")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2368")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2369")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2368")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -143,7 +142,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2370")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -166,7 +165,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2369")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -189,7 +188,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2371")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -205,9 +204,10 @@ def create_standard_address_space_Part8(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.VariableTypeAttributes()
attrs.DisplayName = ua.LocalizedText("DiscreteItemType")
attrs.IsAbstract = True
attrs.DisplayName = ua.LocalizedText("DiscreteItemType")
attrs.DataType = ua.NodeId(ua.ObjectIds.String)
attrs.ValueRank = -2
attrs.IsAbstract = true
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -219,21 +219,21 @@ def create_standard_address_space_Part8(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.VariableTypeAttributes()
attrs.DisplayName = ua.LocalizedText("TwoStateDiscreteType")
attrs.DisplayName = ua.LocalizedText("TwoStateDiscreteType")
attrs.DataType = ua.NodeId(ua.ObjectIds.Boolean)
attrs.ValueRank = -2
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2373")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=2374")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2373")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -256,7 +256,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2374")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -279,7 +279,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2375")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -295,14 +295,14 @@ def create_standard_address_space_Part8(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.VariableTypeAttributes()
attrs.DisplayName = ua.LocalizedText("MultiStateDiscreteType")
attrs.DisplayName = ua.LocalizedText("MultiStateDiscreteType")
attrs.DataType = ua.NodeId(ua.ObjectIds.UInteger)
attrs.ValueRank = -2
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=2376")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -325,7 +325,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=2377")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -341,21 +341,21 @@ def create_standard_address_space_Part8(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.VariableTypeAttributes()
attrs.DisplayName = ua.LocalizedText("MultiStateValueDiscreteType")
attrs.DisplayName = ua.LocalizedText("MultiStateValueDiscreteType")
attrs.DataType = ua.NodeId(ua.ObjectIds.Number)
attrs.ValueRank = -2
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11238")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=11241")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=11238")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -378,7 +378,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11241")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -401,7 +401,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=11461")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -417,41 +417,42 @@ def create_standard_address_space_Part8(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.VariableTypeAttributes()
attrs.DisplayName = ua.LocalizedText("ArrayItemType")
attrs.IsAbstract = True
attrs.DisplayName = ua.LocalizedText("ArrayItemType")
attrs.DataType = ua.NodeId(ua.ObjectIds.String)
attrs.IsAbstract = true
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=12021")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=12024")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=12021")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=12025")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=12021")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=12026")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=12021")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=12027")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=12021")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -474,7 +475,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=12024")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -497,7 +498,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=12025")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -520,7 +521,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=12026")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -543,7 +544,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=12027")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -566,7 +567,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=12028")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -582,15 +583,15 @@ def create_standard_address_space_Part8(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.VariableTypeAttributes()
attrs.DisplayName = ua.LocalizedText("YArrayItemType")
attrs.DisplayName = ua.LocalizedText("YArrayItemType")
attrs.DataType = ua.NodeId(ua.ObjectIds.String)
attrs.ValueRank = 1
attrs.IsAbstract = false
attrs.ArrayDimensions = [0]
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=12029")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -613,7 +614,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=12037")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -629,15 +630,15 @@ def create_standard_address_space_Part8(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.VariableTypeAttributes()
attrs.DisplayName = ua.LocalizedText("XYArrayItemType")
attrs.DisplayName = ua.LocalizedText("XYArrayItemType")
attrs.DataType = ua.NodeId.from_string("i=12080")
attrs.ValueRank = 1
attrs.IsAbstract = false
attrs.ArrayDimensions = [0]
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=12038")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -660,7 +661,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=12046")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -676,22 +677,22 @@ def create_standard_address_space_Part8(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.VariableTypeAttributes()
attrs.DisplayName = ua.LocalizedText("ImageItemType")
attrs.DisplayName = ua.LocalizedText("ImageItemType")
attrs.DataType = ua.NodeId(ua.ObjectIds.String)
attrs.ValueRank = 2
attrs.IsAbstract = false
attrs.ArrayDimensions = [0, 0]
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=12047")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=12055")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=12047")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -714,7 +715,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=12055")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -737,7 +738,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=12056")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -753,29 +754,29 @@ def create_standard_address_space_Part8(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.VariableTypeAttributes()
attrs.DisplayName = ua.LocalizedText("CubeItemType")
attrs.DisplayName = ua.LocalizedText("CubeItemType")
attrs.DataType = ua.NodeId(ua.ObjectIds.String)
attrs.ValueRank = 3
attrs.IsAbstract = false
attrs.ArrayDimensions = [0, 0, 0]
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=12057")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=12065")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=12057")
ref.TargetNodeClass = ua.NodeClass.DataType
ref.TargetNodeId = ua.NodeId.from_string("i=12066")
refs.append(ref)
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=12057")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -798,7 +799,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=12065")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -821,7 +822,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=12066")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -844,7 +845,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=12067")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -860,13 +861,13 @@ def create_standard_address_space_Part8(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.VariableTypeAttributes()
attrs.DisplayName = ua.LocalizedText("NDimensionArrayItemType")
attrs.DisplayName = ua.LocalizedText("NDimensionArrayItemType")
attrs.DataType = ua.NodeId(ua.ObjectIds.String)
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=12068")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -889,7 +890,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=12076")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -905,7 +906,6 @@ def create_standard_address_space_Part8(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("Range")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -917,7 +917,6 @@ def create_standard_address_space_Part8(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("EUInformation")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -929,12 +928,11 @@ def create_standard_address_space_Part8(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("AxisScaleEnumeration")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=46")
ref.SourceNodeId = ua.NodeId.from_string("i=12077")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -952,12 +950,13 @@ def create_standard_address_space_Part8(server):
attrs = ua.VariableAttributes()
attrs.DisplayName = ua.LocalizedText("EnumStrings")
attrs.DataType = ua.NodeId(ua.ObjectIds.LocalizedText)
attrs.Value = ua.Variant(['Linear', 'Log', 'Ln'], ua.VariantType.LocalizedText)
attrs.ValueRank = 1
node.NodeAttributes = attrs
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=37")
ref.SourceNodeId = ua.NodeId.from_string("i=12078")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -973,7 +972,6 @@ def create_standard_address_space_Part8(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("ComplexNumberType")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -985,7 +983,6 @@ def create_standard_address_space_Part8(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("DoubleComplexNumberType")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -997,7 +994,6 @@ def create_standard_address_space_Part8(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("AxisInformation")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -1009,7 +1005,6 @@ def create_standard_address_space_Part8(server):
node.ReferenceTypeId = ua.NodeId.from_string("i=45")
attrs = ua.DataTypeAttributes()
attrs.DisplayName = ua.LocalizedText("XVType")
attrs.IsAbstract = false
node.NodeAttributes = attrs
server.add_nodes([node])
......@@ -1027,7 +1022,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=885")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1049,7 +1044,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=888")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1071,7 +1066,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=12173")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1093,7 +1088,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=12174")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1115,7 +1110,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=12081")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1137,7 +1132,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=12082")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1159,7 +1154,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=886")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1181,7 +1176,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=889")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1203,7 +1198,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=12181")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1225,7 +1220,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=12182")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1247,7 +1242,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=12089")
ref.TargetNodeClass = ua.NodeClass.DataType
......@@ -1269,7 +1264,7 @@ def create_standard_address_space_Part8(server):
server.add_nodes([node])
refs = []
ref = ua.AddReferencesItem()
ref.IsForward = true
ref.IsForward = True
ref.ReferenceTypeId = ua.NodeId.from_string("i=39")
ref.SourceNodeId = ua.NodeId.from_string("i=12090")
ref.TargetNodeClass = ua.NodeClass.DataType
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -141,7 +141,7 @@ class UaProcessor(object):
elif typeid == ua.NodeId(ua.ObjectIds.CloseSessionRequest_Encoding_DefaultBinary):
self.logger.info("Close session request")
deletesubs = ua.unpack_uatype('Boolean', body)
deletesubs = ua.ua_binary.Primitives.Boolean.unpack(body)
self.session.close_session(deletesubs)
......
"""
Binary protocol specific functions and constants
"""
import sys
import struct
import logging
from datetime import datetime, timedelta, tzinfo, MAXYEAR
from calendar import timegm
from opcua.common.uaerrors import UaError
if sys.version_info.major > 2:
unicode = str
logger = logging.getLogger('__name__')
EPOCH_AS_FILETIME = 116444736000000000 # January 1, 1970 as MS file time
HUNDREDS_OF_NANOSECONDS = 10000000
FILETIME_EPOCH_AS_DATETIME = datetime(1601, 1, 1)
def test_bit(data, offset):
mask = 1 << offset
return data & mask
def set_bit(data, offset):
mask = 1 << offset
return data | mask
def unset_bit(data, offset):
mask = 1 << offset
return data & ~mask
class UTC(tzinfo):
"""UTC"""
def utcoffset(self, dt):
return timedelta(0)
def tzname(self, dt):
return "UTC"
def dst(self, dt):
return timedelta(0)
# method copied from David Buxton <david@gasmark6.com> sample code
def datetime_to_win_epoch(dt):
if (dt.tzinfo is None) or (dt.tzinfo.utcoffset(dt) is None):
dt = dt.replace(tzinfo=UTC())
ft = EPOCH_AS_FILETIME + (timegm(dt.timetuple()) * HUNDREDS_OF_NANOSECONDS)
return ft + (dt.microsecond * 10)
def win_epoch_to_datetime(epch):
try:
return FILETIME_EPOCH_AS_DATETIME + timedelta(microseconds=epch // 10)
except OverflowError:
# FILETIMEs after 31 Dec 9999 can't be converted to datetime
logger.warning("datetime overflow: %s", epch)
return datetime(MAXYEAR, 12, 31, 23, 59, 59, 999999)
def build_array_format_py2(prefix, length, fmtchar):
return prefix + str(length) + fmtchar
def build_array_format_py3(prefix, length, fmtchar):
return prefix + str(length) + chr(fmtchar)
if sys.version_info.major < 3:
build_array_format = build_array_format_py2
else:
build_array_format = build_array_format_py3
class _Primitive(object):
def pack_array(self, array):
if array is None:
return b'\xff\xff\xff\xff'
length = len(array)
b = [self.pack(val) for val in array]
b.insert(0, Primitives.Int32.pack(length))
def unpack_array(self, data):
length = Primitives.Int32.unpack(data)
if length == -1:
return None
elif length == 0:
return []
else:
return [self.unpack(data) for _ in range(length)]
class _DateTime(_Primitive):
@staticmethod
def pack(dt):
epch = datetime_to_win_epoch(dt)
return Primitives.Int64.pack(epch)
@staticmethod
def unpack(data):
epch = Primitives.Int64.unpack(data)
return win_epoch_to_datetime(epch)
class _String(_Primitive):
@staticmethod
def pack(string):
if string is None:
return Primitives.Int32.pack(-1)
if isinstance(string, unicode):
string = string.encode('utf-8')
length = len(string)
return Primitives.Int32.pack(length) + string
@staticmethod
def unpack(data):
b = _Bytes.unpack(data)
if sys.version_info.major < 3:
return b
else:
if b is None:
return b
return b.decode("utf-8")
class _Bytes(_Primitive):
@staticmethod
def pack(data):
return _String.pack(data)
@staticmethod
def unpack(data):
length = Primitives.Int32.unpack(data)
if length == -1:
return None
return data.read(length)
class _Null(_Primitive):
@staticmethod
def pack(data):
return b""
@staticmethod
def unpack(data):
return None
class _Primitive1(_Primitive):
def __init__(self, fmt):
self.struct = struct.Struct(fmt)
self.size = self.struct.size
self.format = self.struct.format
def pack(self, data):
return struct.pack(self.format, data)
def unpack(self, data):
return struct.unpack(self.format, data.read(self.size))[0]
#def pack_array(self, array):
#"""
#Basically the same as the method in _Primitive but MAYBE a bit more efficitent....
#"""
#if array is None:
#return b'\xff\xff\xff\xff'
#length = len(array)
#if length == 0:
#return b'\x00\x00\x00\x00'
#if length == 1:
#return b'\x01\x00\x00\x00' + self.pack(array[0])
#return struct.pack(build_array_format("<i", length, self.format[1]), length, *array)
class Primitives1(object):
Int8 = _Primitive1("<b")
SByte = Int8
Int16 = _Primitive1("<h")
Int32 = _Primitive1("<i")
Int64 = _Primitive1("<q")
UInt8 = _Primitive1("<B")
Char = UInt8
Byte = UInt8
UInt16 = _Primitive1("<H")
UInt32 = _Primitive1("<I")
UInt64 = _Primitive1("<Q")
Boolean = _Primitive1("<?")
Double = _Primitive1("<d")
Float = _Primitive1("<f")
class Primitives(Primitives1):
Null = _Null()
String = _String()
Bytes = _Bytes()
ByteString = _Bytes()
CharArray = _Bytes()
DateTime = _DateTime()
def pack_uatype_array(vtype, array):
if array is None:
return b'\xff\xff\xff\xff'
length = len(array)
b = [pack_uatype(vtype, val) for val in array]
b.insert(0, Primitives.Int32.pack(length))
return b"".join(b)
def pack_uatype(vtype, value):
if hasattr(Primitives, vtype.name):
return getattr(Primitives, vtype.name).pack(value)
elif vtype.value > 25:
return Primitives.Bytes.pack(value)
elif vtype.name == "ExtensionObject":
# dependency loop: classes in uaprotocol_auto use Variant defined in this file,
# but Variant can contain any object from uaprotocol_auto as ExtensionObject.
# Using local import to avoid import loop
from opcua.ua.uaprotocol_auto import extensionobject_to_binary
return extensionobject_to_binary(value)
else:
try:
return value.to_binary()
except AttributeError:
raise UaError("{} could not be packed with value {}".format(vtype, value))
def unpack_uatype(vtype, data):
if hasattr(Primitives, vtype.name):
st = getattr(Primitives, vtype.name)
return st.unpack(data)
elif vtype.value > 25:
return Primitives.Bytes.unpack(data)
elif vtype.name == "ExtensionObject":
# dependency loop: classes in uaprotocol_auto use Variant defined in this file,
# but Variant can contain any object from uaprotocol_auto as ExtensionObject.
# Using local import to avoid import loop
from opcua.ua.uaprotocol_auto import extensionobject_from_binary
return extensionobject_from_binary(data)
else:
from opcua.ua import uatypes
if hasattr(uatypes, vtype.name):
klass = getattr(uatypes, vtype.name)
return klass.from_binary(data)
else:
raise UaError("can not unpack unknown vtype %s" % vtype)
def unpack_uatype_array(vtype, data):
if hasattr(Primitives, vtype.name):
st = getattr(Primitives, vtype.name)
return st.unpack_array(data)
else:
length = Primitives.Int32.unpack(data)
if length == -1:
return None
else:
return [unpack_uatype(vtype, data) for _ in range(length)]
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -5,8 +5,8 @@ from datetime import datetime
from opcua.ua import uaprotocol_auto as auto
from opcua.ua import uatypes
from opcua.ua import ua_binary as uabin
from opcua.ua import UaError
from opcua.ua.uatypes import uatype_UInt32
from opcua.common import utils
logger = logging.getLogger('opcua.uaprotocol')
......@@ -27,23 +27,23 @@ class Hello(uatypes.FrozenClass):
def to_binary(self):
b = []
b.append(uatype_UInt32.pack(self.ProtocolVersion))
b.append(uatype_UInt32.pack(self.ReceiveBufferSize))
b.append(uatype_UInt32.pack(self.SendBufferSize))
b.append(uatype_UInt32.pack(self.MaxMessageSize))
b.append(uatype_UInt32.pack(self.MaxChunkCount))
b.append(uatypes.pack_string(self.EndpointUrl))
b.append(uabin.Primitives.UInt32.pack(self.ProtocolVersion))
b.append(uabin.Primitives.UInt32.pack(self.ReceiveBufferSize))
b.append(uabin.Primitives.UInt32.pack(self.SendBufferSize))
b.append(uabin.Primitives.UInt32.pack(self.MaxMessageSize))
b.append(uabin.Primitives.UInt32.pack(self.MaxChunkCount))
b.append(uabin.Primitives.String.pack(self.EndpointUrl))
return b"".join(b)
@staticmethod
def from_binary(data):
hello = Hello()
hello.ProtocolVersion = uatype_UInt32.unpack(data.read(4))[0]
hello.ReceiveBufferSize = uatype_UInt32.unpack(data.read(4))[0]
hello.SendBufferSize = uatype_UInt32.unpack(data.read(4))[0]
hello.MaxMessageSize = uatype_UInt32.unpack(data.read(4))[0]
hello.MaxChunkCount = uatype_UInt32.unpack(data.read(4))[0]
hello.EndpointUrl = uatypes.unpack_string(data)
hello.ProtocolVersion = uabin.Primitives.UInt32.unpack(data)
hello.ReceiveBufferSize = uabin.Primitives.UInt32.unpack(data)
hello.SendBufferSize = uabin.Primitives.UInt32.unpack(data)
hello.MaxMessageSize = uabin.Primitives.UInt32.unpack(data)
hello.MaxChunkCount = uabin.Primitives.UInt32.unpack(data)
hello.EndpointUrl = uabin.Primitives.String.unpack(data)
return hello
......@@ -83,9 +83,9 @@ class Header(uatypes.FrozenClass):
size = self.body_size + 8
if self.MessageType in (MessageType.SecureOpen, MessageType.SecureClose, MessageType.SecureMessage):
size += 4
b.append(uatype_UInt32.pack(size))
b.append(uabin.Primitives.UInt32.pack(size))
if self.MessageType in (MessageType.SecureOpen, MessageType.SecureClose, MessageType.SecureMessage):
b.append(uatype_UInt32.pack(self.ChannelId))
b.append(uabin.Primitives.UInt32.pack(self.ChannelId))
return b"".join(b)
@staticmethod
......@@ -95,7 +95,7 @@ class Header(uatypes.FrozenClass):
hdr.body_size = hdr.packet_size - 8
if hdr.MessageType in (MessageType.SecureOpen, MessageType.SecureClose, MessageType.SecureMessage):
hdr.body_size -= 4
hdr.ChannelId = uatype_UInt32.unpack(data.read(4))[0]
hdr.ChannelId = uabin.Primitives.UInt32.unpack(data)
return hdr
@staticmethod
......@@ -118,14 +118,14 @@ class ErrorMessage(uatypes.FrozenClass):
def to_binary(self):
b = []
b.append(self.Error.to_binary())
b.append(uatypes.pack_string(self.Reason))
b.append(uabin.Primitives.String.pack(self.Reason))
return b"".join(b)
@staticmethod
def from_binary(data):
ack = ErrorMessage()
ack.Error = uatypes.StatusCode.from_binary(data)
ack.Reason = uatypes.unpack_string(data)
ack.Reason = uabin.Primitives.String.unpack(data)
return ack
def __str__(self):
......@@ -170,17 +170,17 @@ class AsymmetricAlgorithmHeader(uatypes.FrozenClass):
def to_binary(self):
b = []
b.append(uatypes.pack_string(self.SecurityPolicyURI))
b.append(uatypes.pack_string(self.SenderCertificate))
b.append(uatypes.pack_string(self.ReceiverCertificateThumbPrint))
b.append(uabin.Primitives.String.pack(self.SecurityPolicyURI))
b.append(uabin.Primitives.String.pack(self.SenderCertificate))
b.append(uabin.Primitives.String.pack(self.ReceiverCertificateThumbPrint))
return b"".join(b)
@staticmethod
def from_binary(data):
hdr = AsymmetricAlgorithmHeader()
hdr.SecurityPolicyURI = uatypes.unpack_string(data)
hdr.SenderCertificate = uatypes.unpack_bytes(data)
hdr.ReceiverCertificateThumbPrint = uatypes.unpack_bytes(data)
hdr.SecurityPolicyURI = uabin.Primitives.String.unpack(data)
hdr.SenderCertificate = uabin.Primitives.Bytes.unpack(data)
hdr.ReceiverCertificateThumbPrint = uabin.Primitives.Bytes.unpack(data)
return hdr
def __str__(self):
......@@ -199,11 +199,11 @@ class SymmetricAlgorithmHeader(uatypes.FrozenClass):
@staticmethod
def from_binary(data):
obj = SymmetricAlgorithmHeader()
obj.TokenId = uatype_UInt32.unpack(data.read(4))[0]
obj.TokenId = uabin.Primitives.UInt32.unpack(data)
return obj
def to_binary(self):
return uatype_UInt32.pack(self.TokenId)
return uabin.Primitives.UInt32.pack(self.TokenId)
@staticmethod
def max_size():
......@@ -224,14 +224,14 @@ class SequenceHeader(uatypes.FrozenClass):
@staticmethod
def from_binary(data):
obj = SequenceHeader()
obj.SequenceNumber = uatype_UInt32.unpack(data.read(4))[0]
obj.RequestId = uatype_UInt32.unpack(data.read(4))[0]
obj.SequenceNumber = uabin.Primitives.UInt32.unpack(data)
obj.RequestId = uabin.Primitives.UInt32.unpack(data)
return obj
def to_binary(self):
b = []
b.append(uatype_UInt32.pack(self.SequenceNumber))
b.append(uatype_UInt32.pack(self.RequestId))
b.append(uabin.Primitives.UInt32.pack(self.SequenceNumber))
b.append(uabin.Primitives.UInt32.pack(self.RequestId))
return b"".join(b)
@staticmethod
......
......@@ -2,19 +2,20 @@
implement ua datatypes
"""
import logging
import struct
from enum import Enum, IntEnum, EnumMeta
from datetime import datetime, timedelta, tzinfo, MAXYEAR
from calendar import timegm
from datetime import datetime
import sys
import os
import uuid
import struct
import re
import itertools
if sys.version_info.major > 2:
unicode = str
from opcua.ua import ua_binary as uabin
from opcua.ua import status_codes
from opcua.ua import ObjectIds
from opcua.common.uaerrors import UaError
from opcua.common.uaerrors import UaStatusCodeError
from opcua.common.uaerrors import UaStringParsingError
......@@ -23,245 +24,8 @@ from opcua.common.uaerrors import UaStringParsingError
logger = logging.getLogger('opcua.uaprotocol')
# types that will packed and unpacked directly using struct (string, bytes and datetime are handles as special cases
UaTypes = ("Boolean", "SByte", "Byte", "Int8", "UInt8", "Int16", "UInt16", "Int32", "UInt32", "Int64", "UInt64", "Float", "Double")
EPOCH_AS_FILETIME = 116444736000000000 # January 1, 1970 as MS file time
HUNDREDS_OF_NANOSECONDS = 10000000
FILETIME_EPOCH_AS_DATETIME = datetime(1601, 1, 1)
class UTC(tzinfo):
"""UTC"""
def utcoffset(self, dt):
return timedelta(0)
def tzname(self, dt):
return "UTC"
def dst(self, dt):
return timedelta(0)
# method copied from David Buxton <david@gasmark6.com> sample code
def datetime_to_win_epoch(dt):
if (dt.tzinfo is None) or (dt.tzinfo.utcoffset(dt) is None):
dt = dt.replace(tzinfo=UTC())
ft = EPOCH_AS_FILETIME + (timegm(dt.timetuple()) * HUNDREDS_OF_NANOSECONDS)
return ft + (dt.microsecond * 10)
def win_epoch_to_datetime(epch):
try:
return FILETIME_EPOCH_AS_DATETIME + timedelta(microseconds=epch // 10)
except OverflowError:
# FILETIMEs after 31 Dec 9999 can't be converted to datetime
logger.warning("datetime overflow: {}".format(epch))
return datetime(MAXYEAR, 12, 31, 23, 59, 59, 999999)
# minimum datetime as in ua spec, used for history
DateTimeMinValue = datetime(1606, 1, 1, 12, 0, 0)
def build_array_format_py2(prefix, length, fmtchar):
return prefix + str(length) + fmtchar
def build_array_format_py3(prefix, length, fmtchar):
return prefix + str(length) + chr(fmtchar)
if sys.version_info.major < 3:
build_array_format = build_array_format_py2
else:
build_array_format = build_array_format_py3
def pack_uatype_array_primitive(st, value, length):
if length == 1:
return b'\x01\x00\x00\x00' + st.pack(value[0])
else:
return struct.pack(build_array_format("<i", length, st.format[1]), length, *value)
def pack_uatype_array(uatype, value):
if value is None:
return b'\xff\xff\xff\xff'
length = len(value)
if length == 0:
return b'\x00\x00\x00\x00'
if uatype in uatype2struct:
return pack_uatype_array_primitive(uatype2struct[uatype], value, length)
b = []
b.append(uatype_Int32.pack(length))
for val in value:
b.append(pack_uatype(uatype, val))
return b"".join(b)
def pack_uatype(uatype, value):
if uatype in uatype2struct:
if value is None:
value = 0
return uatype2struct[uatype].pack(value)
elif uatype == "Null":
return b''
elif uatype == "String":
return pack_string(value)
elif uatype in ("CharArray", "ByteString", "Custom"):
return pack_bytes(value)
elif uatype == "DateTime":
return pack_datetime(value)
elif uatype == "LocalizedText":
if isinstance(value, LocalizedText):
return value.to_binary()
else:
return LocalizedText(value).to_binary()
elif uatype == "ExtensionObject":
# dependency loop: classes in uaprotocol_auto use Variant defined in this file,
# but Variant can contain any object from uaprotocol_auto as ExtensionObject.
# Using local import to avoid import loop
from opcua.ua.uaprotocol_auto import extensionobject_to_binary
return extensionobject_to_binary(value)
else:
return value.to_binary()
uatype_Int8 = struct.Struct("<b")
uatype_SByte = uatype_Int8
uatype_Int16 = struct.Struct("<h")
uatype_Int32 = struct.Struct("<i")
uatype_Int64 = struct.Struct("<q")
uatype_UInt8 = struct.Struct("<B")
uatype_Char = uatype_UInt8
uatype_Byte = uatype_UInt8
uatype_UInt16 = struct.Struct("<H")
uatype_UInt32 = struct.Struct("<I")
uatype_UInt64 = struct.Struct("<Q")
uatype_Boolean = struct.Struct("<?")
uatype_Double = struct.Struct("<d")
uatype_Float = struct.Struct("<f")
uatype2struct = {
"Int8": uatype_Int8,
"SByte": uatype_SByte,
"Int16": uatype_Int16,
"Int32": uatype_Int32,
"Int64": uatype_Int64,
"UInt8": uatype_UInt8,
"Char": uatype_Char,
"Byte": uatype_Byte,
"UInt16": uatype_UInt16,
"UInt32": uatype_UInt32,
"UInt64": uatype_UInt64,
"Boolean": uatype_Boolean,
"Double": uatype_Double,
"Float": uatype_Float,
}
def unpack_uatype(uatype, data):
if uatype in uatype2struct:
st = uatype2struct[uatype]
return st.unpack(data.read(st.size))[0]
elif uatype == "String":
return unpack_string(data)
elif uatype in ("CharArray", "ByteString", "Custom"):
return unpack_bytes(data)
elif uatype == "DateTime":
return unpack_datetime(data)
elif uatype == "ExtensionObject":
# dependency loop: classes in uaprotocol_auto use Variant defined in this file,
# but Variant can contain any object from uaprotocol_auto as ExtensionObject.
# Using local import to avoid import loop
from opcua.ua.uaprotocol_auto import extensionobject_from_binary
return extensionobject_from_binary(data)
else:
glbs = globals()
if uatype in glbs:
klass = glbs[uatype]
if hasattr(klass, 'from_binary'):
return klass.from_binary(data)
raise UaError("can not unpack unknown uatype %s" % uatype)
def unpack_uatype_array(uatype, data):
length = uatype_Int32.unpack(data.read(4))[0]
if length == -1:
return None
elif length == 0:
return []
elif uatype in uatype2struct:
st = uatype2struct[uatype]
if length == 1:
return list(st.unpack(data.read(st.size)))
else:
arrst = struct.Struct(build_array_format("<", length, st.format[1]))
return list(arrst.unpack(data.read(arrst.size)))
else:
result = []
for _ in range(0, length):
result.append(unpack_uatype(uatype, data))
return result
def pack_datetime(value):
epch = datetime_to_win_epoch(value)
return uatype_Int64.pack(epch)
def unpack_datetime(data):
epch = uatype_Int64.unpack(data.read(8))[0]
return win_epoch_to_datetime(epch)
def pack_string(string):
if string is None:
return uatype_Int32.pack(-1)
if isinstance(string, unicode):
string = string.encode('utf-8')
length = len(string)
return uatype_Int32.pack(length) + string
pack_bytes = pack_string
def unpack_bytes(data):
length = uatype_Int32.unpack(data.read(4))[0]
if length == -1:
return None
return data.read(length)
def py3_unpack_string(data):
b = unpack_bytes(data)
if b is None:
return b
return b.decode("utf-8")
if sys.version_info.major < 3:
unpack_string = unpack_bytes
else:
unpack_string = py3_unpack_string
def test_bit(data, offset):
mask = 1 << offset
return data & mask
def set_bit(data, offset):
mask = 1 << offset
return data | mask
def unset_bit(data, offset):
mask = 1 << offset
return data & ~mask
def get_win_epoch():
return uabin.win_epoch_to_datetime(0)
class _FrozenClass(object):
......@@ -343,6 +107,7 @@ class _MaskEnum(IntEnum):
n = n // 2
pos += 1
class AccessLevel(_MaskEnum):
"""
Bit index to indicate what the access level is.
......@@ -357,6 +122,7 @@ class AccessLevel(_MaskEnum):
StatusWrite = 5
TimestampWrite = 6
class WriteMask(_MaskEnum):
"""
Bit index to indicate which attribute of a node is writable
......@@ -442,11 +208,11 @@ class StatusCode(FrozenClass):
self._freeze = True
def to_binary(self):
return uatype_UInt32.pack(self.value)
return uabin.Primitives.UInt32.pack(self.value)
@staticmethod
def from_binary(data):
val = uatype_UInt32.unpack(data.read(4))[0]
val = uabin.Primitives.UInt32.unpack(data)
sc = StatusCode(val)
return sc
......@@ -641,14 +407,14 @@ class NodeId(FrozenClass):
return struct.pack("<BHI", self.NodeIdType.value, self.NamespaceIndex, self.Identifier)
elif self.NodeIdType == NodeIdType.String:
return struct.pack("<BH", self.NodeIdType.value, self.NamespaceIndex) + \
pack_string(self.Identifier)
uabin.Primitives.String.pack(self.Identifier)
elif self.NodeIdType == NodeIdType.ByteString:
return struct.pack("<BH", self.NodeIdType.value, self.NamespaceIndex) + \
pack_bytes(self.Identifier)
uabin.Primitives.Bytes.pack(self.Identifier)
else:
return struct.pack("<BH", self.NodeIdType.value, self.NamespaceIndex) + \
self.Identifier.to_binary()
#FIXME: Missing NNamespaceURI and ServerIndex
# FIXME: Missing NNamespaceURI and ServerIndex
@staticmethod
def from_binary(data):
......@@ -663,21 +429,21 @@ class NodeId(FrozenClass):
elif nid.NodeIdType == NodeIdType.Numeric:
nid.NamespaceIndex, nid.Identifier = struct.unpack("<HI", data.read(6))
elif nid.NodeIdType == NodeIdType.String:
nid.NamespaceIndex = uatype_UInt16.unpack(data.read(2))[0]
nid.Identifier = unpack_string(data)
nid.NamespaceIndex = uabin.Primitives.UInt16.unpack(data)
nid.Identifier = uabin.Primitives.String.unpack(data)
elif nid.NodeIdType == NodeIdType.ByteString:
nid.NamespaceIndex = uatype_UInt16.unpack(data.read(2))[0]
nid.Identifier = unpack_bytes(data)
nid.NamespaceIndex = uabin.Primitives.UInt16.unpack(data)
nid.Identifier = uabin.Primitives.Bytes.unpack(data)
elif nid.NodeIdType == NodeIdType.Guid:
nid.NamespaceIndex = uatype_UInt16.unpack(data.read(2))[0]
nid.NamespaceIndex = uabin.Primitives.UInt16.unpack(data)
nid.Identifier = Guid.from_binary(data)
else:
raise UaError("Unknown NodeId encoding: " + str(nid.NodeIdType))
if test_bit(encoding, 7):
nid.NamespaceUri = unpack_string(data)
if test_bit(encoding, 6):
nid.ServerIndex = uatype_UInt32.unpack(data.read(4))[0]
if uabin.test_bit(encoding, 7):
nid.NamespaceUri = uabin.Primitives.String.unpack(data)
if uabin.test_bit(encoding, 6):
nid.ServerIndex = uabin.Primitives.UInt32.unpack(data)
return nid
......@@ -752,15 +518,15 @@ class QualifiedName(FrozenClass):
def to_binary(self):
packet = []
packet.append(uatype_UInt16.pack(self.NamespaceIndex))
packet.append(pack_string(self.Name))
packet.append(uabin.Primitives.UInt16.pack(self.NamespaceIndex))
packet.append(uabin.Primitives.String.pack(self.Name))
return b''.join(packet)
@staticmethod
def from_binary(data):
obj = QualifiedName()
obj.NamespaceIndex = uatype_UInt16.unpack(data.read(2))[0]
obj.Name = unpack_string(data)
obj.NamespaceIndex = uabin.Primitives.UInt16.unpack(data)
obj.Name = uabin.Primitives.String.unpack(data)
return obj
def __eq__(self, bname):
......@@ -789,6 +555,11 @@ class LocalizedText(FrozenClass):
A string qualified with a namespace index.
'''
ua_types = {
"Text": "Bytes",
"Locale": "Bytes"
}
def __init__(self, text=None):
self.Encoding = 0
self.Text = text
......@@ -805,11 +576,11 @@ class LocalizedText(FrozenClass):
self.Encoding |= (1 << 0)
if self.Text:
self.Encoding |= (1 << 1)
packet.append(uatype_UInt8.pack(self.Encoding))
packet.append(uabin.Primitives.UInt8.pack(self.Encoding))
if self.Locale:
packet.append(pack_bytes(self.Locale))
packet.append(uabin.Primitives.Bytes.pack(self.Locale))
if self.Text:
packet.append(pack_bytes(self.Text))
packet.append(uabin.Primitives.Bytes.pack(self.Text))
return b''.join(packet)
@staticmethod
......@@ -817,9 +588,9 @@ class LocalizedText(FrozenClass):
obj = LocalizedText()
obj.Encoding = ord(data.read(1))
if obj.Encoding & (1 << 0):
obj.Locale = unpack_bytes(data)
obj.Locale = uabin.Primitives.Bytes.unpack(data)
if obj.Encoding & (1 << 1):
obj.Text = unpack_bytes(data)
obj.Text = uabin.Primitives.Bytes.unpack(data)
return obj
def to_string(self):
......@@ -868,18 +639,18 @@ class ExtensionObject(FrozenClass):
if self.Body:
self.Encoding |= (1 << 0)
packet.append(self.TypeId.to_binary())
packet.append(pack_uatype('UInt8', self.Encoding))
packet.append(uabin.Primitives.UInt8.pack(self.Encoding))
if self.Body:
packet.append(pack_uatype('ByteString', self.Body))
packet.append(uabin.Primitives.ByteString.pack(self.Body))
return b''.join(packet)
@staticmethod
def from_binary(data):
obj = ExtensionObject()
obj.TypeId = NodeId.from_binary(data)
obj.Encoding = unpack_uatype('UInt8', data)
obj.Encoding = uabin.Primitives.UInt8.unpack(data)
if obj.Encoding & (1 << 0):
obj.Body = unpack_uatype('ByteString', data)
obj.Body = uabin.Primitives.ByteString.unpack(data)
return obj
@staticmethod
......@@ -961,6 +732,13 @@ class VariantType(Enum):
class VariantTypeCustom(object):
"""
Looks like sometime we get variant with other values than those
defined in VariantType.
FIXME: We should not need this class, as far as I iunderstand the spec
variants can only be of VariantType
"""
def __init__(self, val):
self.name = "Custom"
self.value = val
......@@ -1051,15 +829,15 @@ class Variant(FrozenClass):
encoding = self.VariantType.value & 0b111111
if type(self.Value) in (list, tuple):
if self.Dimensions is not None:
encoding = set_bit(encoding, 6)
encoding = set_bit(encoding, 7)
b.append(uatype_UInt8.pack(encoding))
b.append(pack_uatype_array(self.VariantType.name, flatten(self.Value)))
encoding = uabin.set_bit(encoding, 6)
encoding = uabin.set_bit(encoding, 7)
b.append(uabin.Primitives.UInt8.pack(encoding))
b.append(uabin.pack_uatype_array(self.VariantType, flatten(self.Value)))
if self.Dimensions is not None:
b.append(pack_uatype_array("Int32", self.Dimensions))
b.append(uabin.pack_uatype_array(VariantType.Int32, self.Dimensions))
else:
b.append(uatype_UInt8.pack(encoding))
b.append(pack_uatype(self.VariantType.name, self.Value))
b.append(uabin.Primitives.UInt8.pack(encoding))
b.append(uabin.pack_uatype(self.VariantType, self.Value))
return b"".join(b)
......@@ -1071,12 +849,12 @@ class Variant(FrozenClass):
vtype = DataType_to_VariantType(int_type)
if vtype == VariantType.Null:
return Variant(None, vtype, encoding)
if test_bit(encoding, 7):
value = unpack_uatype_array(vtype.name, data)
if uabin.test_bit(encoding, 7):
value = uabin.unpack_uatype_array(vtype, data)
else:
value = unpack_uatype(vtype.name, data)
if test_bit(encoding, 6):
dimensions = unpack_uatype_array("Int32", data)
value = uabin.unpack_uatype(vtype, data)
if uabin.test_bit(encoding, 6):
dimensions = uabin.unpack_uatype_array(VariantType.Int32, data)
value = reshape(value, dimensions)
return Variant(value, vtype, dimensions)
......@@ -1136,6 +914,7 @@ class XmlElement(FrozenClass):
'''
An XML element encoded as an UTF-8 string.
'''
def __init__(self, binary=None):
if binary is not None:
self._binary_init(binary)
......@@ -1145,14 +924,14 @@ class XmlElement(FrozenClass):
self._freeze = True
def to_binary(self):
return pack_string(self.Value)
return uabin.Primitives.String.pack(self.Value)
@staticmethod
def from_binary(data):
return XmlElement(data)
def _binary_init(self, data):
self.Value = unpack_string(data)
self.Value = uabin.Primitives.String.unpack(data)
def __str__(self):
return 'XmlElement(Value:' + str(self.Value) + ')'
......@@ -1210,19 +989,19 @@ class DataValue(FrozenClass):
self.Encoding |= (1 << 4)
if self.ServerPicoseconds:
self.Encoding |= (1 << 5)
packet.append(uatype_UInt8.pack(self.Encoding))
packet.append(uabin.Primitives.UInt8.pack(self.Encoding))
if self.Value:
packet.append(self.Value.to_binary())
if self.StatusCode:
packet.append(self.StatusCode.to_binary())
if self.SourceTimestamp:
packet.append(pack_datetime(self.SourceTimestamp)) # self.SourceTimestamp.to_binary())
packet.append(uabin.Primitives.DateTime.pack(self.SourceTimestamp)) # self.SourceTimestamp.to_binary())
if self.ServerTimestamp:
packet.append(pack_datetime(self.ServerTimestamp)) # self.ServerTimestamp.to_binary())
packet.append(uabin.Primitives.DateTime.pack(self.ServerTimestamp)) # self.ServerTimestamp.to_binary())
if self.SourcePicoseconds:
packet.append(uatype_UInt16.pack(self.SourcePicoseconds))
packet.append(uabin.Primitives.UInt16.pack(self.SourcePicoseconds))
if self.ServerPicoseconds:
packet.append(uatype_UInt16.pack(self.ServerPicoseconds))
packet.append(uabin.Primitives.UInt16.pack(self.ServerPicoseconds))
return b''.join(packet)
@staticmethod
......@@ -1239,13 +1018,13 @@ class DataValue(FrozenClass):
obj = DataValue(value, status)
obj.Encoding = encoding
if obj.Encoding & (1 << 2):
obj.SourceTimestamp = unpack_datetime(data) # DateTime.from_binary(data)
obj.SourceTimestamp = uabin.Primitives.DateTime.unpack(data) # DateTime.from_binary(data)
if obj.Encoding & (1 << 3):
obj.ServerTimestamp = unpack_datetime(data) # DateTime.from_binary(data)
obj.ServerTimestamp = uabin.Primitives.DateTime.unpack(data) # DateTime.from_binary(data)
if obj.Encoding & (1 << 4):
obj.SourcePicoseconds = uatype_UInt16.unpack(data.read(2))[0]
obj.SourcePicoseconds = uabin.Primitives.UInt16.unpack(data)
if obj.Encoding & (1 << 5):
obj.ServerPicoseconds = uatype_UInt16.unpack(data.read(2))[0]
obj.ServerPicoseconds = uabin.Primitives.UInt16.unpack(data)
return obj
def __str__(self):
......@@ -1270,6 +1049,8 @@ def DataType_to_VariantType(int_type):
"""
Takes a NodeId or int and return a VariantType
This is only supported if int_type < 63 due to VariantType encoding
At low level we do not have access to address space thus decodig is limited
a better version of this method can be find in ua_utils.py
"""
if isinstance(int_type, NodeId):
int_type = int_type.Identifier
......
......@@ -3,11 +3,32 @@ Generate address space c++ code from xml file specification
xmlparser.py is a requirement. it is in opcua folder but to avoid importing all code, developer can link xmlparser.py in current directory
"""
import sys
import logging
# sys.path.insert(0, "..") # load local freeopcua implementation
#from opcua import xmlparser
import xmlparser
def _to_val(objs, attr, val):
from opcua import ua
print("got ", objs, attr, val)
cls = getattr(ua, objs[0])
for o in objs[1:]:
cls = getattr(ua, cls.ua_types[o])
if cls == ua.NodeId:
return "ua.NodeId.from_string('val')"
return ua_type_to_python(val, cls.ua_types[attr])
def ua_type_to_python(val, uatype):
if uatype in ("String"):
return "'{}'".format(val)
elif uatype in ("Bytes", "Bytes", "ByteString", "ByteArray"):
return "b'{}'".format(val)
else:
return val
class CodeGenerator(object):
def __init__(self, input_path, output_path):
......@@ -21,7 +42,7 @@ class CodeGenerator(object):
sys.stderr.write("Generating Python code {} for XML file {}".format(self.output_path, self.input_path) + "\n")
self.output_file = open(self.output_path, "w")
self.make_header()
self.parser = xmlparser.XMLParser(self.input_path)
self.parser = xmlparser.XMLParser(self.input_path, None)
for node in self.parser:
if node.nodetype == 'UAObject':
self.make_object_code(node)
......@@ -53,8 +74,6 @@ It is automatically generated from opcfoundation.org schemas.
from opcua import ua
false = False #FIXME
true = True #FIXME
def create_standard_address_space_%s(server):
''' % (self.part))
......@@ -110,16 +129,25 @@ def create_standard_address_space_%s(server):
self.writecode(indent, 'server.add_nodes([node])')
self.make_refs_code(obj, indent)
def make_variable_code(self, obj):
indent = " "
self.writecode(indent)
self.make_node_code(obj, indent)
self.writecode(indent, 'attrs = ua.VariableAttributes()')
def make_common_variable_code(self, indent, obj):
if obj.desc:
self.writecode(indent, 'attrs.Description = ua.LocalizedText("{}")'.format(obj.desc))
self.writecode(indent, 'attrs.DisplayName = ua.LocalizedText("{}")'.format(obj.displayname))
self.writecode(indent, 'attrs.DataType = {}'.format(self.to_data_type(obj.datatype)))
if obj.value:
if obj.value is not None:
if obj.valuetype == "ListOfExtensionObject":
self.writecode(indent, 'value = []')
for ext in obj.value:
self.make_ext_obj_code(indent, ext)
self.writecode(indent, 'value.append(extobj)')
self.writecode(indent, 'attrs.Value = ua.Variant(value, ua.VariantType.ExtensionObject)')
elif obj.valuetype == "ExtensionObject":
self.make_ext_obj_code(indent, obj.value)
self.writecode(indent, 'value = extobj')
self.writecode(indent, 'attrs.Value = ua.Variant(value, ua.VariantType.ExtensionObject)')
else:
if obj.valuetype.startswith("ListOf"):
obj.valuetype = obj.valuetype[6:]
self.writecode(indent, 'attrs.Value = ua.Variant({}, ua.VariantType.{})'.format(self.to_value(obj.value), obj.valuetype))
if obj.rank:
self.writecode(indent, 'attrs.ValueRank = {}'.format(obj.rank))
......@@ -127,10 +155,33 @@ def create_standard_address_space_%s(server):
self.writecode(indent, 'attrs.AccessLevel = {}'.format(obj.accesslevel))
if obj.useraccesslevel:
self.writecode(indent, 'attrs.UserAccessLevel = {}'.format(obj.useraccesslevel))
if obj.dimensions:
self.writecode(indent, 'attrs.ArrayDimensions = {}'.format(obj.dimensions))
def make_ext_obj_code(self, indent, extobj):
print("makeing code for ", extobj.objname)
self.writecode(indent, 'extobj = ua.{}()'.format(extobj.objname))
for name, val in extobj.body.items():
for k, v in val.items():
if type(v) is str:
val = _to_val([extobj.objname], k, v)
self.writecode(indent, 'extobj.{} = {}'.format(k, val))
else:
if k == "DataType": #hack for strange nodeid xml format
self.writecode(indent, 'extobj.{} = ua.NodeId.from_string("{}")'.format(k, v["Identifier"]))
continue
for k2, v2 in v.items():
val2 = _to_val([extobj.objname, k], k2, v2)
self.writecode(indent, 'extobj.{}.{} = {}'.format(k, k2, val2))
def make_variable_code(self, obj):
indent = " "
self.writecode(indent)
self.make_node_code(obj, indent)
self.writecode(indent, 'attrs = ua.VariableAttributes()')
if obj.minsample:
self.writecode(indent, 'attrs.MinimumSamplingInterval = {}'.format(obj.minsample))
if obj.dimensions:
self.writecode(indent, 'attrs.ArrayDimensions = '.format(obj.dimensions))
self.make_common_variable_code(indent, obj)
self.writecode(indent, 'node.NodeAttributes = attrs')
self.writecode(indent, 'server.add_nodes([node])')
self.make_refs_code(obj, indent)
......@@ -143,18 +194,9 @@ def create_standard_address_space_%s(server):
if obj.desc:
self.writecode(indent, 'attrs.Description = ua.LocalizedText("{}")'.format(obj.desc))
self.writecode(indent, 'attrs.DisplayName = ua.LocalizedText("{}")'.format(obj.displayname))
self.writecode(indent, 'attrs.DataType = {}'.format(self.to_data_type(obj.datatype)))
if obj.value:
self.writecode(indent, 'attrs.Value = {}'.format(self.to_value(obj.value)))
if obj.value:
self.writecode(indent, 'attrs.Value = {}'.format(self.to_value(obj.value)))
if obj.rank:
self.writecode(indent, 'attrs.ValueRank = {}'.format(obj.rank))
if obj.abstract:
self.writecode(indent, 'attrs.IsAbstract = {}'.format(obj.abstract))
print(obj.dimensions)
if obj.dimensions:
self.writecode(indent, 'attrs.ArrayDimensions = {}'.format(obj.dimensions))
self.make_common_variable_code(indent, obj)
self.writecode(indent, 'node.NodeAttributes = attrs')
self.writecode(indent, 'server.add_nodes([node])')
self.make_refs_code(obj, indent)
......@@ -174,14 +216,6 @@ def create_standard_address_space_%s(server):
if obj.desc:
self.writecode(indent, 'attrs.Description = ua.LocalizedText("{}")'.format(obj.desc))
self.writecode(indent, 'attrs.DisplayName = ua.LocalizedText("{}")'.format(obj.displayname))
if obj.accesslevel:
self.writecode(indent, 'attrs.AccessLevel = {}'.format(obj.accesslevel))
if obj.useraccesslevel:
self.writecode(indent, 'attrs.UserAccessLevel = {}'.format(obj.useraccesslevel))
if obj.minsample:
self.writecode(indent, 'attrs.MinimumSamplingInterval = {}'.format(obj.minsample))
if obj.dimensions:
self.writecode(indent, 'attrs.ArrayDimensions = {}'.format(obj.dimensions))
self.writecode(indent, 'node.NodeAttributes = attrs')
self.writecode(indent, 'server.add_nodes([node])')
self.make_refs_code(obj, indent)
......@@ -224,7 +258,7 @@ def create_standard_address_space_%s(server):
self.writecode(indent, "refs = []")
for ref in obj.refs:
self.writecode(indent, 'ref = ua.AddReferencesItem()')
self.writecode(indent, 'ref.IsForward = true')
self.writecode(indent, 'ref.IsForward = True')
self.writecode(indent, 'ref.ReferenceTypeId = {}'.format(self.to_ref_type(ref.reftype)))
self.writecode(indent, 'ref.SourceNodeId = ua.NodeId.from_string("{}")'.format(obj.nodeid))
self.writecode(indent, 'ref.TargetNodeClass = ua.NodeClass.DataType')
......@@ -245,6 +279,7 @@ def save_aspace_to_disk():
aspace.dump(path)
if __name__ == "__main__":
logging.basicConfig(level=logging.WARN)
for i in (3, 4, 5, 8, 9, 10, 11, 13):
xmlpath = "Opc.Ua.NodeSet2.Part{}.xml".format(str(i))
cpppath = "../opcua/server/standard_address_space/standard_address_space_part{}.py".format(str(i))
......
......@@ -3,7 +3,32 @@ import generate_model as gm
IgnoredEnums = ["NodeIdType"]
IgnoredStructs = ["QualifiedName", "NodeId", "ExpandedNodeId", "FilterOperand", "Variant", "DataValue", "LocalizedText", "ExtensionObject", "XmlElement"]
numerics = ("Int8", "UInt8", "Sbyte", "Byte", "Char", "Boolean", "Int16", "UInt16", "Int32", "UInt32", "Float", "Int64", "UInt64", "Double")
class Primitives1(object):
Int8 = 0
SByte = 0
Int16 = 0
Int32 = 0
Int64 = 0
UInt8 = 0
Char = 0
Byte = 0
UInt16 = 0
UInt32 = 0
UInt64 = 0
Boolean = 0
Double = 0
Float = 0
class Primitives(Primitives1):
Null = 0
String = 0
Bytes = 0
ByteString = 0
CharArray = 0
DateTime = 0
class CodeGenerator(object):
......@@ -61,6 +86,7 @@ class CodeGenerator(object):
self.write("from opcua.common.utils import Buffer")
self.write("from opcua.common.uaerrors import UaError")
self.write("from opcua.ua.uatypes import *")
self.write("from opcua.ua import ua_binary as uabin")
self.write("from opcua.ua.object_ids import ObjectIds")
def generate_enum_code(self, enum):
......@@ -95,6 +121,13 @@ class CodeGenerator(object):
self.write(":vartype {}: {}".format(field.name, field.uatype))
self.write("'''")
self.write("")
self.write("ua_types = {")
for field in obj.fields:
self.write(" '{}': '{}',".format(field.name, field.uatype))
self.write(" }")
self.write("")
self.write("def __init__(self, binary=None):")
self.iidx += 1
self.write("if binary is not None:")
......@@ -161,7 +194,7 @@ class CodeGenerator(object):
self.write("if self.{}: ".format(field.name))
self.iidx += 1
if field.length:
self.write("{}.append(uatype_Int32.pack(len(self.{})))".format(listname, field.name))
self.write("{}.append(uabin.Primitives.Int32.pack(len(self.{})))".format(listname, field.name))
self.write("for fieldname in self.{}:".format(field.name))
fname = "fieldname"
self.iidx += 1
......@@ -199,7 +232,7 @@ class CodeGenerator(object):
for idx, field in enumerate(obj.fields):
self.iidx = iidx
# if field.name == "Body" and idx <= (len(obj.fields)-1):
#self.write("bodylength = struct.unpack('<i', data.read(4))[0]")
#self.write("bodylength = struct.unpack('<i', data)[0]")
# continue
if field.switchfield:
bit = obj.bits[field.switchfield]
......@@ -210,10 +243,9 @@ class CodeGenerator(object):
else:
self.write("if self.{} & (1 << {}):".format(bit.container, bit.idx))
self.iidx += 1
array = False
if field.is_native_type():
if field.length:
self.write("self.{} = unpack_uatype_array('{}', data)".format(field.name, field.uatype))
self.write("self.{} = uabin.Primitives.{}.unpack_array(data)".format(field.name, field.uatype))
else:
self.write_unpack_uatype(field.name, field.uatype)
elif field.uatype in self.model.enum_list:
......@@ -227,7 +259,7 @@ class CodeGenerator(object):
else:
frombinary = "{}.from_binary(data)".format(field.uatype)
if field.length:
self.write("length = uatype_Int32.unpack(data.read(4))[0]")
self.write("length = uabin.Primitives.Int32.unpack(data)")
self.write("array = []")
self.write("if length != -1:")
self.iidx += 1
......@@ -270,7 +302,7 @@ class CodeGenerator(object):
self.iix = 0
def write_unpack_enum(self, name, enum):
self.write("self.{} = {}(uatype_{}.unpack(data.read({}))[0])".format(name, enum.name, enum.uatype, self.get_size_from_uatype(enum.uatype)))
self.write("self.{} = {}(uabin.Primitives.{}.unpack(data))".format(name, enum.name, enum.uatype))
def get_size_from_uatype(self, uatype):
if uatype in ("Int8", "UInt8", "Sbyte", "Byte", "Char", "Boolean"):
......@@ -285,40 +317,19 @@ class CodeGenerator(object):
raise Exception("Cannot get size from type {}".format(uatype))
def write_unpack_uatype(self, name, uatype):
if uatype in numerics:
size = self.get_size_from_uatype(uatype)
self.write("self.{} = uatype_{}.unpack(data.read({}))[0]".format(name, uatype, size))
elif uatype == "String":
self.write("self.{} = unpack_string(data)".format(name))
return
elif uatype in ("CharArray", "ByteString"):
self.write("self.{} = unpack_bytes(data)".format(name))
return
elif uatype == "DateTime":
self.write("self.{} = unpack_datetime(data)".format(name))
return
if hasattr(Primitives, uatype):
self.write("self.{} = uabin.Primitives.{}.unpack(data)".format(name, uatype))
else:
self.write("self.{} = unpack_uatype('{}', data)".format(name, uatype))
return
self.write("self.{} = {}.from_binary(data))".format(name, uatype))
def write_pack_enum(self, listname, name, enum):
self.write("{}.append(uatype_{}.pack({}.value))".format(listname, enum.uatype, name))
self.write("{}.append(uabin.Primitives.{}.pack({}.value))".format(listname, enum.uatype, name))
def write_pack_uatype(self, listname, name, uatype):
if uatype in numerics:
self.write("{}.append(uatype_{}.pack({}))".format(listname, uatype, name))
return
elif uatype == "String":
self.write("{}.append(pack_string({}))".format(listname, name))
return
elif uatype in ("CharArray", "ByteString"):
self.write("{}.append(pack_bytes({}))".format(listname, name))
return
elif uatype == "DateTime":
self.write("{}.append(pack_datetime({}))".format(listname, name))
return
if hasattr(Primitives, uatype):
self.write("{}.append(uabin.Primitives.{}.pack({}))".format(listname, uatype, name))
else:
self.write("{}.append(pack_uatype('{}', {}))".format(listname, uatype, name))
self.write("{}.append({}.to_binary(}))".format(listname, name))
return
def get_default_value(self, field):
......
......@@ -8,7 +8,7 @@ def extensionobject_from_binary(data):
Encoding = ord(data.read(1))
body = None
if Encoding & (1 << 0):
length = uatype_Int32.unpack(data.read(4))[0]
length = uabin.Primitives.Int32.unpack(data)
if length < 1:
body = Buffer(b"")
else:
......@@ -46,7 +46,7 @@ def extensionobject_to_binary(obj):
Body = obj.to_binary()
packet = []
packet.append(TypeId.to_binary())
packet.append(uatype_UInt8.pack(Encoding))
packet.append(uabin.Primitives.UInt8.pack(Encoding))
if Body:
packet.append(pack_bytes(Body))
packet.append(uabin.Primitives.Bytes.pack(Body))
return b''.join(packet)
......@@ -122,7 +122,7 @@
</Definition>
</UADataType>
<UAVariable DataType="EnumValueType" ParentNodeId="ns=1;i=3011" ValueRank="1" NodeId="ns=1;i=6002" ArrayDimensions="3" BrowseName="EnumValues">
<UAVariable DataType="EnumValueType" ParentNodeId="i=120" ValueRank="1" NodeId="ns=1;i=99002" ArrayDimensions="3" BrowseName="EnumValues">
<DisplayName>EnumValues</DisplayName>
<References>
<Reference ReferenceType="HasModellingRule">i=78</Reference>
......@@ -177,6 +177,81 @@
</Value>
</UAVariable>
<!-- Test the other xml format-->
<UAVariable NodeId="i=99003" BrowseName="EnumValues" ParentNodeId="i=120" DataType="i=7594" ValueRank="1">
<DisplayName>EnumValues</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
<Reference ReferenceType="HasModellingRule">i=78</Reference>
<Reference ReferenceType="HasProperty" IsForward="false">i=120</Reference>
</References>
<Value>
<ListOfExtensionObject xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">
<ExtensionObject>
<TypeId>
<Identifier>i=7616</Identifier>
</TypeId>
<Body>
<EnumValueType>
<Value>1</Value>
<DisplayName>
<Locale>
</Locale>
<Text>Mandatory</Text>
</DisplayName>
<Description>
<Locale>
</Locale>
<Text>The BrowseName must appear in all instances of the type.</Text>
</Description>
</EnumValueType>
</Body>
</ExtensionObject>
<ExtensionObject>
<TypeId>
<Identifier>i=7616</Identifier>
</TypeId>
<Body>
<EnumValueType>
<Value>2</Value>
<DisplayName>
<Locale>
</Locale>
<Text>Optional</Text>
</DisplayName>
<Description>
<Locale>
</Locale>
<Text>The BrowseName may appear in an instance of the type.</Text>
</Description>
</EnumValueType>
</Body>
</ExtensionObject>
<ExtensionObject>
<TypeId>
<Identifier>i=7616</Identifier>
</TypeId>
<Body>
<EnumValueType>
<Value>3</Value>
<DisplayName>
<Locale>
</Locale>
<Text>Constraint</Text>
</DisplayName>
<Description>
<Locale>
</Locale>
<Text>The modelling rule defines a constraint and the BrowseName is not used in an instance of the type.</Text>
</Description>
</EnumValueType>
</Body>
</ExtensionObject>
</ListOfExtensionObject>
</Value>
</UAVariable>
<!-- test data Object with Method and MethodArguments -->
<UAObjectType NodeId="ns=1;i=1050" BrowseName="1:MyObjectType">
<DisplayName>MyObjectType</DisplayName>
......
......@@ -624,14 +624,14 @@ class CommonTests(object):
# create enum type
enums = self.opc.get_root_node().get_child(["0:Types", "0:DataTypes", "0:BaseDataType", "0:Enumeration"])
myenum_type = enums.add_data_type(0, "MyEnum")
es = myenum_type.add_variable(0, "EnumStrings", ["String0", "String1", "String2"], ua.VariantType.LocalizedText)
es = myenum_type.add_variable(0, "EnumStrings", [ua.LocalizedText("String0"), ua.LocalizedText("String1"), ua.LocalizedText("String2")], ua.VariantType.LocalizedText)
#es.set_value_rank(1)
# instantiate
o = self.opc.get_objects_node()
myvar = o.add_variable(2, "MyEnumVar", "String1", ua.VariantType.LocalizedText, datatype=myenum_type.nodeid)
myvar = o.add_variable(2, "MyEnumVar", ua.LocalizedText("String1"), datatype=myenum_type.nodeid)
#myvar.set_writable(True)
# tests
self.assertEqual(myvar.get_data_type(), myenum_type.nodeid)
myvar.set_value("String2", ua.VariantType.LocalizedText)
myvar.set_value(ua.LocalizedText("String2"))
......@@ -237,25 +237,25 @@ class TestUnit(unittest.TestCase):
def test_datetime(self):
now = datetime.utcnow()
epch = ua.datetime_to_win_epoch(now)
dt = ua.win_epoch_to_datetime(epch)
epch = ua.ua_binary.datetime_to_win_epoch(now)
dt = ua.ua_binary.win_epoch_to_datetime(epch)
self.assertEqual(now, dt)
# python's datetime has a range from Jan 1, 0001 to the end of year 9999
# windows' filetime has a range from Jan 1, 1601 to approx. year 30828
# let's test an overlapping range [Jan 1, 1601 - Dec 31, 9999]
dt = datetime(1601, 1, 1)
self.assertEqual(ua.win_epoch_to_datetime(ua.datetime_to_win_epoch(dt)), dt)
self.assertEqual(ua.ua_binary.win_epoch_to_datetime(ua.ua_binary.datetime_to_win_epoch(dt)), dt)
dt = datetime(9999, 12, 31, 23, 59, 59)
self.assertEqual(ua.win_epoch_to_datetime(ua.datetime_to_win_epoch(dt)), dt)
self.assertEqual(ua.ua_binary.win_epoch_to_datetime(ua.ua_binary.datetime_to_win_epoch(dt)), dt)
epch = 128930364000001000
dt = ua.win_epoch_to_datetime(epch)
epch2 = ua.datetime_to_win_epoch(dt)
dt = ua.ua_binary.win_epoch_to_datetime(epch)
epch2 = ua.ua_binary.datetime_to_win_epoch(dt)
self.assertEqual(epch, epch2)
epch = 0
self.assertEqual(ua.datetime_to_win_epoch(ua.win_epoch_to_datetime(epch)), epch)
self.assertEqual(ua.ua_binary.datetime_to_win_epoch(ua.ua_binary.win_epoch_to_datetime(epch)), epch)
def test_equal_nodeid(self):
nid1 = ua.NodeId(999, 2)
......@@ -514,5 +514,4 @@ class TestMaskEnum(unittest.TestCase):
if __name__ == '__main__':
logging.basicConfig(level=logging.WARN)
sclt = SubHandler()
unittest.main(verbosity=3)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment