Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
opcua-asyncio
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nikola Balog
opcua-asyncio
Commits
9b946e22
Commit
9b946e22
authored
Feb 23, 2021
by
oroulet
Committed by
oroulet
Mar 10, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
client and server seems to work
parent
7d735413
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
1184 additions
and
93 deletions
+1184
-93
asyncua/client/ua_client.py
asyncua/client/ua_client.py
+2
-1
asyncua/common/instantiate_util.py
asyncua/common/instantiate_util.py
+3
-3
asyncua/common/manage_nodes.py
asyncua/common/manage_nodes.py
+2
-2
asyncua/common/xmlimporter.py
asyncua/common/xmlimporter.py
+30
-50
asyncua/ua/ua_binary.py
asyncua/ua/ua_binary.py
+6
-7
asyncua/ua/uaprotocol_auto.py
asyncua/ua/uaprotocol_auto.py
+1062
-8
asyncua/ua/uaprotocol_hand.py
asyncua/ua/uaprotocol_hand.py
+11
-10
asyncua/ua/uatypes.py
asyncua/ua/uatypes.py
+11
-4
examples/server-minimal.py
examples/server-minimal.py
+5
-4
schemas/generate_protocol_python.py
schemas/generate_protocol_python.py
+22
-4
tests/test_unit.py
tests/test_unit.py
+30
-0
No files found.
asyncua/client/ua_client.py
View file @
9b946e22
...
...
@@ -168,7 +168,8 @@ class UASocketProtocol(asyncio.Protocol):
try
:
self
.
_callbackmap
[
request_id
].
set_result
(
body
)
except
KeyError
:
raise
ua
.
UaError
(
f"No request found for request id:
{
request_id
}
, pending are
{
self
.
_callbackmap
.
keys
()
}
"
)
#raise ua.UaError(f"No request found for request id: {request_id}, pending are {self._callbackmap.keys()}, body was {body}")
pass
except
asyncio
.
InvalidStateError
:
if
not
self
.
closed
:
self
.
logger
.
warning
(
"Future for request id %s is already done"
,
request_id
)
...
...
asyncua/common/instantiate_util.py
View file @
9b946e22
...
...
@@ -23,7 +23,7 @@ async def instantiate(parent, node_type, nodeid=None, bname=None, dname=None, id
rdesc
.
TypeDefinition
=
node_type
.
nodeid
if
nodeid
is
None
:
nodeid
=
ua
.
NodeId
(
namespaceid
x
=
idx
)
# will trigger automatic node generation in namespace idx
nodeid
=
ua
.
NodeId
(
NamespaceInde
x
=
idx
)
# will trigger automatic node generation in namespace idx
if
bname
is
None
:
bname
=
rdesc
.
BrowseName
elif
isinstance
(
bname
,
str
):
...
...
@@ -112,7 +112,7 @@ async def _instantiate_node(server,
c_node_type
,
res
.
AddedNodeId
,
c_rdesc
,
nodeid
=
ua
.
NodeId
(
identifier
=
inst_nodeid
,
namespaceid
x
=
res
.
AddedNodeId
.
NamespaceIndex
),
nodeid
=
ua
.
NodeId
(
Identifier
=
inst_nodeid
,
NamespaceInde
x
=
res
.
AddedNodeId
.
NamespaceIndex
),
bname
=
c_rdesc
.
BrowseName
,
instantiate_optional
=
instantiate_optional
)
...
...
@@ -122,7 +122,7 @@ async def _instantiate_node(server,
c_node_type
,
res
.
AddedNodeId
,
c_rdesc
,
nodeid
=
ua
.
NodeId
(
namespaceid
x
=
res
.
AddedNodeId
.
NamespaceIndex
),
nodeid
=
ua
.
NodeId
(
NamespaceInde
x
=
res
.
AddedNodeId
.
NamespaceIndex
),
bname
=
c_rdesc
.
BrowseName
,
instantiate_optional
=
instantiate_optional
)
...
...
asyncua/common/manage_nodes.py
View file @
9b946e22
...
...
@@ -398,7 +398,7 @@ async def _create_method(parent, nodeid, qname, callback, inputs, outputs):
if
inputs
:
await
create_property
(
method
,
ua
.
NodeId
(
namespaceid
x
=
method
.
nodeid
.
NamespaceIndex
),
ua
.
NodeId
(
NamespaceInde
x
=
method
.
nodeid
.
NamespaceIndex
),
ua
.
QualifiedName
(
"InputArguments"
,
0
),
[
_vtype_to_argument
(
vtype
)
for
vtype
in
inputs
],
varianttype
=
ua
.
VariantType
.
ExtensionObject
,
...
...
@@ -407,7 +407,7 @@ async def _create_method(parent, nodeid, qname, callback, inputs, outputs):
if
outputs
:
await
create_property
(
method
,
ua
.
NodeId
(
namespaceid
x
=
method
.
nodeid
.
NamespaceIndex
),
ua
.
NodeId
(
NamespaceInde
x
=
method
.
nodeid
.
NamespaceIndex
),
ua
.
QualifiedName
(
"OutputArguments"
,
0
),
[
_vtype_to_argument
(
vtype
)
for
vtype
in
outputs
],
varianttype
=
ua
.
VariantType
.
ExtensionObject
,
...
...
asyncua/common/xmlimporter.py
View file @
9b946e22
...
...
@@ -5,13 +5,11 @@ format is the one from opc-ua specification
import
logging
import
uuid
from
typing
import
Union
,
Dict
from
copy
import
copy
from
asyncua
import
ua
from
.xmlparser
import
XMLParser
,
ua_type_to_python
from
..ua.uaerrors
import
UaError
_logger
=
logging
.
getLogger
(
__name__
)
...
...
@@ -53,15 +51,11 @@ class XmlImporter:
server_model_list
=
[]
server_namespaces_node
=
await
self
.
server
.
nodes
.
namespaces
.
get_children
()
for
model_node
in
server_namespaces_node
:
server_model_list
.
append
(
{
"ModelUri"
:
await
(
await
model_node
.
get_child
(
"NamespaceUri"
)).
read_value
(),
"Version"
:
await
(
await
model_node
.
get_child
(
"NamespaceVersion"
)).
read_value
(),
"PublicationDate"
:
(
await
(
await
model_node
.
get_child
(
"NamespacePublicationDate"
)).
read_value
()
).
strftime
(
"%Y-%m-%dT%H:%M:%SZ"
),
}
)
server_model_list
.
append
({
"ModelUri"
:
await
(
await
model_node
.
get_child
(
"NamespaceUri"
)).
read_value
(),
"Version"
:
await
(
await
model_node
.
get_child
(
"NamespaceVersion"
)).
read_value
(),
"PublicationDate"
:
(
await
(
await
model_node
.
get_child
(
"NamespacePublicationDate"
)).
read_value
()).
strftime
(
"%Y-%m-%dT%H:%M:%SZ"
),
})
return
server_model_list
async
def
_check_required_models
(
self
,
xmlpath
=
None
,
xmlstring
=
None
):
...
...
@@ -71,10 +65,7 @@ class XmlImporter:
server_model_list
=
await
self
.
_get_existing_model_in_namespace
()
for
model
in
server_model_list
:
for
req_model
in
req_models
:
if
(
model
[
"ModelUri"
]
==
req_model
[
"ModelUri"
]
and
model
[
"PublicationDate"
]
>=
req_model
[
"PublicationDate"
]
):
if
(
model
[
"ModelUri"
]
==
req_model
[
"ModelUri"
]
and
model
[
"PublicationDate"
]
>=
req_model
[
"PublicationDate"
]):
if
"Version"
in
model
and
"Version"
in
req_model
:
if
model
[
"Version"
]
>=
req_model
[
"Version"
]:
req_models
.
remove
(
req_model
)
...
...
@@ -123,15 +114,14 @@ class XmlImporter:
if
missing_nodes
:
_logger
.
warning
(
f"The following references exist, but the Nodes are missing:
{
missing_nodes
}
"
)
if
len
(
self
.
refs
):
_logger
.
warning
(
"The following references could not be imported and are probably broken: %s"
,
self
.
refs
,)
_logger
.
warning
(
"The following references could not be imported and are probably broken: %s"
,
self
.
refs
,
)
return
nodes
async
def
_add_missing_reverse_references
(
self
,
new_nodes
):
__unidirectional_types
=
{
ua
.
ObjectIds
.
GuardVariableType
,
ua
.
ObjectIds
.
HasGuard
,
ua
.
ObjectIds
.
TransitionVariableType
,
ua
.
ObjectIds
.
StateMachineType
,
ua
.
ObjectIds
.
StateVariableType
,
ua
.
ObjectIds
.
TwoStateVariableType
,
ua
.
ObjectIds
.
StateType
,
ua
.
ObjectIds
.
TransitionType
,
ua
.
ObjectIds
.
FiniteTransitionVariableType
,
ua
.
ObjectIds
.
HasInterface
}
__unidirectional_types
=
{
ua
.
ObjectIds
.
GuardVariableType
,
ua
.
ObjectIds
.
HasGuard
,
ua
.
ObjectIds
.
TransitionVariableType
,
ua
.
ObjectIds
.
StateMachineType
,
ua
.
ObjectIds
.
StateVariableType
,
ua
.
ObjectIds
.
TwoStateVariableType
,
ua
.
ObjectIds
.
StateType
,
ua
.
ObjectIds
.
TransitionType
,
ua
.
ObjectIds
.
FiniteTransitionVariableType
,
ua
.
ObjectIds
.
HasInterface
}
dangling_refs_to_missing_nodes
=
set
()
for
new_node_id
in
new_nodes
:
new_n
=
self
.
server
.
get_node
(
new_node_id
)
...
...
@@ -163,9 +153,9 @@ class XmlImporter:
for
ref
in
nd
.
refs
:
if
ref
.
forward
:
if
ref
.
reftype
in
[
self
.
server
.
nodes
.
HasComponent
.
nodeid
,
self
.
server
.
nodes
.
HasProperty
.
nodeid
,
self
.
server
.
nodes
.
Organizes
.
nodeid
,
self
.
server
.
nodes
.
HasComponent
.
nodeid
,
self
.
server
.
nodes
.
HasProperty
.
nodeid
,
self
.
server
.
nodes
.
Organizes
.
nodeid
,
]:
# if a node has several links, the last one will win
if
ref
.
target
in
childs
:
...
...
@@ -237,7 +227,7 @@ class XmlImporter:
field
.
datatype
=
self
.
_to_migrated_nodeid
(
field
.
datatype
)
return
new_nodes
def
_migrate_ns
(
self
,
nodeid
:
ua
.
NodeId
)
->
ua
.
NodeId
:
def
_migrate_ns
(
self
,
obj
:
Union
[
ua
.
NodeId
,
ua
.
QualifiedName
])
->
Union
[
ua
.
NodeId
,
ua
.
QualifiedName
]
:
"""
Check if the index of nodeid or browsename given in the xml model file
must be converted to a already existing namespace id based on the files
...
...
@@ -245,10 +235,13 @@ class XmlImporter:
:returns: NodeId (str)
"""
if
nodeid
.
NamespaceIndex
in
self
.
namespaces
:
nodeid
=
copy
(
nodeid
)
nodeid
.
NamespaceIndex
=
self
.
namespaces
[
nodeid
.
NamespaceIndex
]
return
nodeid
if
isinstance
(
obj
,
ua
.
NodeId
):
if
obj
.
NamespaceIndex
in
self
.
namespaces
:
obj
=
ua
.
NodeId
(
Identifier
=
obj
.
Identifier
,
NamespaceIndex
=
self
.
namespaces
[
obj
.
NamespaceIndex
],
NodeIdType
=
obj
.
NodeIdType
)
if
isinstance
(
obj
,
ua
.
QualifiedName
):
if
obj
.
NamespaceIndex
in
self
.
namespaces
:
obj
=
ua
.
QualifiedName
(
Name
=
obj
.
Name
,
NamespaceIndex
=
self
.
namespaces
[
obj
.
NamespaceIndex
])
return
obj
def
_get_add_node_item
(
self
,
obj
):
node
=
ua
.
AddNodesItem
()
...
...
@@ -322,9 +315,7 @@ class XmlImporter:
attrs
.
DisplayName
=
ua
.
LocalizedText
(
obj
.
displayname
)
attrs
.
DataType
=
obj
.
datatype
if
obj
.
value
is
not
None
:
attrs
.
Value
=
self
.
_add_variable_value
(
obj
,
)
attrs
.
Value
=
self
.
_add_variable_value
(
obj
,
)
if
obj
.
rank
:
attrs
.
ValueRank
=
obj
.
rank
if
obj
.
accesslevel
:
...
...
@@ -417,20 +408,13 @@ class XmlImporter:
values
.
append
(
extobj
)
return
ua
.
Variant
(
values
,
ua
.
VariantType
.
ExtensionObject
)
elif
obj
.
valuetype
==
"ListOfGuid"
:
return
ua
.
Variant
(
[
uuid
.
UUID
(
guid
)
for
guid
in
obj
.
value
],
getattr
(
ua
.
VariantType
,
obj
.
valuetype
[
6
:])
)
return
ua
.
Variant
([
uuid
.
UUID
(
guid
)
for
guid
in
obj
.
value
],
getattr
(
ua
.
VariantType
,
obj
.
valuetype
[
6
:]))
elif
obj
.
valuetype
.
startswith
(
"ListOf"
):
vtype
=
obj
.
valuetype
[
6
:]
if
hasattr
(
ua
.
ua_binary
.
Primitives
,
vtype
):
return
ua
.
Variant
(
obj
.
value
,
getattr
(
ua
.
VariantType
,
vtype
))
elif
vtype
==
"LocalizedText"
:
return
ua
.
Variant
(
[
getattr
(
ua
,
vtype
)(
text
=
item
[
"Text"
],
locale
=
item
[
"Locale"
])
for
item
in
obj
.
value
]
)
return
ua
.
Variant
([
getattr
(
ua
,
vtype
)(
Text
=
item
[
"Text"
],
Locale
=
item
[
"Locale"
])
for
item
in
obj
.
value
])
else
:
return
ua
.
Variant
([
getattr
(
ua
,
vtype
)(
v
)
for
v
in
obj
.
value
])
elif
obj
.
valuetype
==
"ExtensionObject"
:
...
...
@@ -570,11 +554,11 @@ class XmlImporter:
f
=
ua
.
EnumField
()
f
.
Name
=
field
.
name
if
field
.
dname
:
f
.
DisplayName
=
ua
.
LocalizedText
(
t
ext
=
field
.
dname
)
f
.
DisplayName
=
ua
.
LocalizedText
(
T
ext
=
field
.
dname
)
else
:
f
.
DisplayName
=
ua
.
LocalizedText
(
t
ext
=
field
.
name
)
f
.
DisplayName
=
ua
.
LocalizedText
(
T
ext
=
field
.
name
)
f
.
Value
=
field
.
value
f
.
Description
=
ua
.
LocalizedText
(
t
ext
=
field
.
desc
)
f
.
Description
=
ua
.
LocalizedText
(
T
ext
=
field
.
desc
)
edef
.
Fields
.
append
(
f
)
return
edef
...
...
@@ -599,7 +583,7 @@ class XmlImporter:
if
f
.
IsOptional
:
optional
=
True
f
.
ArrayDimensions
=
field
.
arraydim
f
.
Description
=
ua
.
LocalizedText
(
t
ext
=
field
.
desc
)
f
.
Description
=
ua
.
LocalizedText
(
T
ext
=
field
.
desc
)
sdef
.
Fields
.
append
(
f
)
if
optional
:
sdef
.
StructureType
=
ua
.
StructureType
.
StructureWithOptionalFields
...
...
@@ -621,11 +605,7 @@ class XmlImporter:
all_node_ids
=
[
data
.
nodeid
for
data
in
ndatas
]
while
ndatas
:
for
ndata
in
ndatas
[:]:
if
(
ndata
.
nodeid
.
NamespaceIndex
not
in
self
.
namespaces
.
values
()
or
ndata
.
parent
is
None
or
ndata
.
parent
not
in
all_node_ids
):
if
(
ndata
.
nodeid
.
NamespaceIndex
not
in
self
.
namespaces
.
values
()
or
ndata
.
parent
is
None
or
ndata
.
parent
not
in
all_node_ids
):
sorted_ndatas
.
append
(
ndata
)
sorted_nodes_ids
.
append
(
ndata
.
nodeid
)
ndatas
.
remove
(
ndata
)
...
...
asyncua/ua/ua_binary.py
View file @
9b946e22
...
...
@@ -350,12 +350,13 @@ def nodeid_to_binary(nodeid):
def
nodeid_from_binary
(
data
):
encoding
=
ord
(
data
.
read
(
1
))
nidtype
=
ua
.
NodeIdType
(
encoding
&
0b00111111
)
expanded
=
False
uri
=
None
server_idx
=
None
if
nidtype
==
ua
.
NodeIdType
.
TwoByte
:
identifier
=
ord
(
data
.
read
(
1
))
return
ua
.
TwoByteNodeId
(
identifier
)
if
nidtype
==
ua
.
NodeIdType
.
FourByte
:
nidx
=
0
el
if
nidtype
==
ua
.
NodeIdType
.
FourByte
:
nidx
,
identifier
=
struct
.
unpack
(
"<BH"
,
data
.
read
(
3
))
elif
nidtype
==
ua
.
NodeIdType
.
Numeric
:
nidx
,
identifier
=
struct
.
unpack
(
"<HI"
,
data
.
read
(
6
))
...
...
@@ -373,12 +374,10 @@ def nodeid_from_binary(data):
if
test_bit
(
encoding
,
7
):
uri
=
Primitives
.
String
.
unpack
(
data
)
expanded
=
True
if
test_bit
(
encoding
,
6
):
server_idx
=
Primitives
.
UInt32
.
unpack
(
data
)
expanded
=
True
if
expanded
:
if
uri
is
not
None
or
server_idx
is
not
None
:
return
ua
.
ExpandedNodeId
(
identifier
,
nidx
,
nidtype
,
uri
,
server_idx
)
return
ua
.
NodeId
(
identifier
,
nidx
,
nidtype
)
...
...
@@ -449,7 +448,7 @@ def extensionobject_from_binary(data):
body
=
data
.
copy
(
length
)
data
.
skip
(
length
)
if
typeid
.
Identifier
==
0
:
return
None
return
ua
.
ExtensionObject
()
elif
typeid
in
ua
.
extension_objects_by_typeid
:
cls
=
ua
.
extension_objects_by_typeid
[
typeid
]
if
body
is
None
:
...
...
asyncua/ua/uaprotocol_auto.py
View file @
9b946e22
"""
Autogenerate code from xml spec
Date:2021-02-2
2 19:54:27.985263
Date:2021-02-2
4 19:45:05.562631
"""
from
datetime
import
datetime
from
enum
import
IntEnum
from
typing
import
Union
,
List
from
typing
import
Union
,
List
,
Optional
from
dataclasses
import
dataclass
,
field
from
asyncua.ua.uatypes
import
FROZEN
...
...
@@ -1177,12 +1177,13 @@ class DiagnosticInfo:
data_type
=
NodeId
(
ObjectIds
.
DiagnosticInfo
)
Encoding
:
Byte
=
field
(
default
=
0
,
repr
=
False
,
init
=
False
)
SymbolicId
:
Int32
=
None
NamespaceURI
:
Int32
=
None
Locale
:
Int32
=
None
LocalizedText
:
Int32
=
None
AdditionalInfo
:
String
=
None
InnerStatusCode
:
StatusCode
=
None
SymbolicId
:
Optional
[
Int32
]
=
None
NamespaceURI
:
Optional
[
Int32
]
=
None
Locale
:
Optional
[
Int32
]
=
None
LocalizedText
:
Optional
[
Int32
]
=
None
AdditionalInfo
:
Optional
[
String
]
=
None
InnerStatusCode
:
Optional
[
StatusCode
]
=
None
InnerDiagnosticInfo
:
Optional
[
ExtensionObject
]
=
None
ua_switches
=
{
'SymbolicId'
:
(
'Encoding'
,
0
),
...
...
@@ -1625,6 +1626,14 @@ class DataSetWriterDataType:
TransportSettings
:
ExtensionObject
=
ExtensionObject
()
MessageSettings
:
ExtensionObject
=
ExtensionObject
()
@
property
def
DataSetFieldContentMask
(
self
):
return
self
.
DataSetFieldContentMask_
@
DataSetFieldContentMask
.
setter
def
DataSetFieldContentMask
(
self
,
val
):
self
.
DataSetFieldContentMask_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
DataSetWriterTransportDataType
:
...
...
@@ -1762,6 +1771,14 @@ class FieldTargetDataType:
OverrideValueHandling_
:
OverrideValueHandling
=
OverrideValueHandling
.
Disabled
OverrideValue
:
Variant
=
field
(
default_factory
=
Variant
)
@
property
def
OverrideValueHandling
(
self
):
return
self
.
OverrideValueHandling_
@
OverrideValueHandling
.
setter
def
OverrideValueHandling
(
self
,
val
):
self
.
OverrideValueHandling_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
TargetVariablesDataType
:
...
...
@@ -2104,6 +2121,14 @@ class StructureDefinition:
StructureType_
:
StructureType
=
StructureType
.
Structure
Fields
:
List
[
StructureField
]
=
field
(
default_factory
=
list
)
@
property
def
StructureType
(
self
):
return
self
.
StructureType_
@
StructureType
.
setter
def
StructureType
(
self
,
val
):
self
.
StructureType_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
StructureDescription
:
...
...
@@ -2122,6 +2147,14 @@ class StructureDescription:
Name
:
QualifiedName
=
field
(
default_factory
=
QualifiedName
)
StructureDefinition_
:
StructureDefinition
=
field
(
default_factory
=
StructureDefinition
)
@
property
def
StructureDefinition
(
self
):
return
self
.
StructureDefinition_
@
StructureDefinition
.
setter
def
StructureDefinition
(
self
,
val
):
self
.
StructureDefinition_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
Argument
:
...
...
@@ -2218,6 +2251,14 @@ class EnumDescription:
EnumDefinition_
:
EnumDefinition
=
field
(
default_factory
=
EnumDefinition
)
BuiltInType
:
Byte
=
0
@
property
def
EnumDefinition
(
self
):
return
self
.
EnumDefinition_
@
EnumDefinition
.
setter
def
EnumDefinition
(
self
,
val
):
self
.
EnumDefinition_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
DataTypeSchemaHeader
:
...
...
@@ -2397,6 +2438,14 @@ class ApplicationDescription:
DiscoveryProfileUri
:
String
=
None
DiscoveryUrls
:
List
[
String
]
=
field
(
default_factory
=
list
)
@
property
def
ApplicationType
(
self
):
return
self
.
ApplicationType_
@
ApplicationType
.
setter
def
ApplicationType
(
self
,
val
):
self
.
ApplicationType_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
RequestHeader
:
...
...
@@ -2469,6 +2518,14 @@ class ServiceFault:
TypeId
:
NodeId
=
FourByteNodeId
(
ObjectIds
.
ServiceFault_Encoding_DefaultBinary
)
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
SessionlessInvokeRequestType
:
...
...
@@ -2545,6 +2602,14 @@ class FindServersRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
FindServersParameters
=
field
(
default_factory
=
FindServersParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
FindServersResponse
:
...
...
@@ -2563,6 +2628,14 @@ class FindServersResponse:
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
Servers
:
List
[
ApplicationDescription
]
=
field
(
default_factory
=
list
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
ServerOnNetwork
:
...
...
@@ -2618,6 +2691,14 @@ class FindServersOnNetworkRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
FindServersOnNetworkParameters
=
field
(
default_factory
=
FindServersOnNetworkParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
FindServersOnNetworkResult
:
...
...
@@ -2649,6 +2730,14 @@ class FindServersOnNetworkResponse:
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
Parameters
:
FindServersOnNetworkResult
=
field
(
default_factory
=
FindServersOnNetworkResult
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
UserTokenPolicy
:
...
...
@@ -2853,6 +2942,14 @@ class DataSetReaderDataType:
MessageSettings
:
ExtensionObject
=
ExtensionObject
()
SubscribedDataSet
:
ExtensionObject
=
ExtensionObject
()
@
property
def
DataSetFieldContentMask
(
self
):
return
self
.
DataSetFieldContentMask_
@
DataSetFieldContentMask
.
setter
def
DataSetFieldContentMask
(
self
,
val
):
self
.
DataSetFieldContentMask_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
ReaderGroupDataType
:
...
...
@@ -2980,6 +3077,14 @@ class GetEndpointsRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
GetEndpointsParameters
=
field
(
default_factory
=
GetEndpointsParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
GetEndpointsResponse
:
...
...
@@ -2998,6 +3103,14 @@ class GetEndpointsResponse:
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
Endpoints
:
List
[
EndpointDescription
]
=
field
(
default_factory
=
list
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
RegisteredServer
:
...
...
@@ -3049,6 +3162,14 @@ class RegisterServerRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Server
:
RegisteredServer
=
field
(
default_factory
=
RegisteredServer
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
RegisterServerResponse
:
...
...
@@ -3064,6 +3185,14 @@ class RegisterServerResponse:
TypeId
:
NodeId
=
FourByteNodeId
(
ObjectIds
.
RegisterServerResponse_Encoding_DefaultBinary
)
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
DiscoveryConfiguration
:
...
...
@@ -3118,6 +3247,14 @@ class RegisterServer2Request:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
RegisterServer2Parameters
=
field
(
default_factory
=
RegisterServer2Parameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
RegisterServer2Response
:
...
...
@@ -3139,6 +3276,14 @@ class RegisterServer2Response:
ConfigurationResults
:
List
[
StatusCode
]
=
field
(
default_factory
=
list
)
DiagnosticInfos
:
List
[
DiagnosticInfo
]
=
field
(
default_factory
=
list
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
ChannelSecurityToken
:
...
...
@@ -3200,6 +3345,14 @@ class OpenSecureChannelRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
OpenSecureChannelParameters
=
field
(
default_factory
=
OpenSecureChannelParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
OpenSecureChannelResult
:
...
...
@@ -3234,6 +3387,14 @@ class OpenSecureChannelResponse:
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
Parameters
:
OpenSecureChannelResult
=
field
(
default_factory
=
OpenSecureChannelResult
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
CloseSecureChannelRequest
:
...
...
@@ -3249,6 +3410,14 @@ class CloseSecureChannelRequest:
TypeId
:
NodeId
=
FourByteNodeId
(
ObjectIds
.
CloseSecureChannelRequest_Encoding_DefaultBinary
)
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
CloseSecureChannelResponse
:
...
...
@@ -3264,6 +3433,14 @@ class CloseSecureChannelResponse:
TypeId
:
NodeId
=
FourByteNodeId
(
ObjectIds
.
CloseSecureChannelResponse_Encoding_DefaultBinary
)
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
SignedSoftwareCertificate
:
...
...
@@ -3343,6 +3520,14 @@ class CreateSessionRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
CreateSessionParameters
=
field
(
default_factory
=
CreateSessionParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
CreateSessionResult
:
...
...
@@ -3395,6 +3580,14 @@ class CreateSessionResponse:
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
Parameters
:
CreateSessionResult
=
field
(
default_factory
=
CreateSessionResult
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
UserIdentityToken
:
...
...
@@ -3513,6 +3706,14 @@ class ActivateSessionRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
ActivateSessionParameters
=
field
(
default_factory
=
ActivateSessionParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
ActivateSessionResult
:
...
...
@@ -3547,6 +3748,14 @@ class ActivateSessionResponse:
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
Parameters
:
ActivateSessionResult
=
field
(
default_factory
=
ActivateSessionResult
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
CloseSessionRequest
:
...
...
@@ -3565,6 +3774,14 @@ class CloseSessionRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
DeleteSubscriptions
:
Boolean
=
True
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
CloseSessionResponse
:
...
...
@@ -3580,6 +3797,14 @@ class CloseSessionResponse:
TypeId
:
NodeId
=
FourByteNodeId
(
ObjectIds
.
CloseSessionResponse_Encoding_DefaultBinary
)
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
CancelParameters
:
...
...
@@ -3608,6 +3833,14 @@ class CancelRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
CancelParameters
=
field
(
default_factory
=
CancelParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
CancelResult
:
...
...
@@ -3636,6 +3869,14 @@ class CancelResponse:
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
Parameters
:
CancelResult
=
field
(
default_factory
=
CancelResult
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
NodeAttributes
:
...
...
@@ -3993,6 +4234,14 @@ class AddNodesItem:
NodeAttributes
:
ExtensionObject
=
ExtensionObject
()
TypeDefinition
:
ExpandedNodeId
=
field
(
default_factory
=
ExpandedNodeId
)
@
property
def
NodeClass
(
self
):
return
self
.
NodeClass_
@
NodeClass
.
setter
def
NodeClass
(
self
,
val
):
self
.
NodeClass_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
AddNodesResult
:
...
...
@@ -4006,6 +4255,14 @@ class AddNodesResult:
StatusCode_
:
StatusCode
=
field
(
default_factory
=
StatusCode
)
AddedNodeId
:
NodeId
=
field
(
default_factory
=
NodeId
)
@
property
def
StatusCode
(
self
):
return
self
.
StatusCode_
@
StatusCode
.
setter
def
StatusCode
(
self
,
val
):
self
.
StatusCode_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
AddNodesParameters
:
...
...
@@ -4034,6 +4291,14 @@ class AddNodesRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
AddNodesParameters
=
field
(
default_factory
=
AddNodesParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
AddNodesResponse
:
...
...
@@ -4055,6 +4320,14 @@ class AddNodesResponse:
Results
:
List
[
AddNodesResult
]
=
field
(
default_factory
=
list
)
DiagnosticInfos
:
List
[
DiagnosticInfo
]
=
field
(
default_factory
=
list
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
AddReferencesItem
:
...
...
@@ -4110,6 +4383,14 @@ class AddReferencesRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
AddReferencesParameters
=
field
(
default_factory
=
AddReferencesParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
AddReferencesResponse
:
...
...
@@ -4131,6 +4412,14 @@ class AddReferencesResponse:
Results
:
List
[
StatusCode
]
=
field
(
default_factory
=
list
)
DiagnosticInfos
:
List
[
DiagnosticInfo
]
=
field
(
default_factory
=
list
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
DeleteNodesItem
:
...
...
@@ -4146,6 +4435,14 @@ class DeleteNodesItem:
NodeId_
:
NodeId
=
field
(
default_factory
=
NodeId
)
DeleteTargetReferences
:
Boolean
=
True
@
property
def
NodeId
(
self
):
return
self
.
NodeId_
@
NodeId
.
setter
def
NodeId
(
self
,
val
):
self
.
NodeId_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
DeleteNodesParameters
:
...
...
@@ -4174,6 +4471,14 @@ class DeleteNodesRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
DeleteNodesParameters
=
field
(
default_factory
=
DeleteNodesParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
DeleteNodesResponse
:
...
...
@@ -4195,6 +4500,14 @@ class DeleteNodesResponse:
Results
:
List
[
StatusCode
]
=
field
(
default_factory
=
list
)
DiagnosticInfos
:
List
[
DiagnosticInfo
]
=
field
(
default_factory
=
list
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
DeleteReferencesItem
:
...
...
@@ -4247,6 +4560,14 @@ class DeleteReferencesRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
DeleteReferencesParameters
=
field
(
default_factory
=
DeleteReferencesParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
DeleteReferencesResult
:
...
...
@@ -4278,6 +4599,14 @@ class DeleteReferencesResponse:
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
Parameters
:
DeleteReferencesResult
=
field
(
default_factory
=
DeleteReferencesResult
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
ViewDescription
:
...
...
@@ -4323,6 +4652,21 @@ class BrowseDescription:
NodeClassMask
:
UInt32
=
0
ResultMask
:
UInt32
=
0
@
property
def
NodeId
(
self
):
return
self
.
NodeId_
@
NodeId
.
setter
def
NodeId
(
self
,
val
):
self
.
NodeId_
=
val
@
property
def
BrowseDirection
(
self
):
return
self
.
BrowseDirection_
@
BrowseDirection
.
setter
def
BrowseDirection
(
self
,
val
):
self
.
BrowseDirection_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
ReferenceDescription
:
...
...
@@ -4353,6 +4697,14 @@ class ReferenceDescription:
NodeClass_
:
NodeClass
=
NodeClass
.
Unspecified
TypeDefinition
:
ExpandedNodeId
=
field
(
default_factory
=
ExpandedNodeId
)
@
property
def
NodeClass
(
self
):
return
self
.
NodeClass_
@
NodeClass
.
setter
def
NodeClass
(
self
,
val
):
self
.
NodeClass_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
BrowseResult
:
...
...
@@ -4369,6 +4721,14 @@ class BrowseResult:
ContinuationPoint
:
ByteString
=
None
References
:
List
[
ReferenceDescription
]
=
field
(
default_factory
=
list
)
@
property
def
StatusCode
(
self
):
return
self
.
StatusCode_
@
StatusCode
.
setter
def
StatusCode
(
self
,
val
):
self
.
StatusCode_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
BrowseParameters
:
...
...
@@ -4403,6 +4763,14 @@ class BrowseRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
BrowseParameters
=
field
(
default_factory
=
BrowseParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
BrowseResponse
:
...
...
@@ -4424,6 +4792,14 @@ class BrowseResponse:
Results
:
List
[
BrowseResult
]
=
field
(
default_factory
=
list
)
DiagnosticInfos
:
List
[
DiagnosticInfo
]
=
field
(
default_factory
=
list
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
BrowseNextParameters
:
...
...
@@ -4455,6 +4831,14 @@ class BrowseNextRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
BrowseNextParameters
=
field
(
default_factory
=
BrowseNextParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
BrowseNextResult
:
...
...
@@ -4486,6 +4870,14 @@ class BrowseNextResponse:
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
Parameters
:
BrowseNextResult
=
field
(
default_factory
=
BrowseNextResult
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
RelativePathElement
:
...
...
@@ -4534,6 +4926,14 @@ class BrowsePath:
StartingNode
:
NodeId
=
field
(
default_factory
=
NodeId
)
RelativePath_
:
RelativePath
=
field
(
default_factory
=
RelativePath
)
@
property
def
RelativePath
(
self
):
return
self
.
RelativePath_
@
RelativePath
.
setter
def
RelativePath
(
self
,
val
):
self
.
RelativePath_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
BrowsePathTarget
:
...
...
@@ -4562,6 +4962,14 @@ class BrowsePathResult:
StatusCode_
:
StatusCode
=
field
(
default_factory
=
StatusCode
)
Targets
:
List
[
BrowsePathTarget
]
=
field
(
default_factory
=
list
)
@
property
def
StatusCode
(
self
):
return
self
.
StatusCode_
@
StatusCode
.
setter
def
StatusCode
(
self
,
val
):
self
.
StatusCode_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
TranslateBrowsePathsToNodeIdsParameters
:
...
...
@@ -4590,6 +4998,14 @@ class TranslateBrowsePathsToNodeIdsRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
TranslateBrowsePathsToNodeIdsParameters
=
field
(
default_factory
=
TranslateBrowsePathsToNodeIdsParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
TranslateBrowsePathsToNodeIdsResponse
:
...
...
@@ -4611,6 +5027,14 @@ class TranslateBrowsePathsToNodeIdsResponse:
Results
:
List
[
BrowsePathResult
]
=
field
(
default_factory
=
list
)
DiagnosticInfos
:
List
[
DiagnosticInfo
]
=
field
(
default_factory
=
list
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
RegisterNodesParameters
:
...
...
@@ -4639,6 +5063,14 @@ class RegisterNodesRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
RegisterNodesParameters
=
field
(
default_factory
=
RegisterNodesParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
RegisterNodesResult
:
...
...
@@ -4667,6 +5099,14 @@ class RegisterNodesResponse:
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
Parameters
:
RegisterNodesResult
=
field
(
default_factory
=
RegisterNodesResult
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
UnregisterNodesParameters
:
...
...
@@ -4695,6 +5135,14 @@ class UnregisterNodesRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
UnregisterNodesParameters
=
field
(
default_factory
=
UnregisterNodesParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
UnregisterNodesResponse
:
...
...
@@ -4710,6 +5158,14 @@ class UnregisterNodesResponse:
TypeId
:
NodeId
=
FourByteNodeId
(
ObjectIds
.
UnregisterNodesResponse_Encoding_DefaultBinary
)
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
EndpointConfiguration
:
...
...
@@ -4764,6 +5220,14 @@ class QueryDataDescription:
AttributeId
:
UInt32
=
0
IndexRange
:
String
=
None
@
property
def
RelativePath
(
self
):
return
self
.
RelativePath_
@
RelativePath
.
setter
def
RelativePath
(
self
,
val
):
self
.
RelativePath_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
NodeTypeDescription
:
...
...
@@ -4821,6 +5285,14 @@ class NodeReference:
IsForward
:
Boolean
=
True
ReferencedNodeIds
:
List
[
NodeId
]
=
field
(
default_factory
=
list
)
@
property
def
NodeId
(
self
):
return
self
.
NodeId_
@
NodeId
.
setter
def
NodeId
(
self
,
val
):
self
.
NodeId_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
ContentFilterElement
:
...
...
@@ -4836,6 +5308,14 @@ class ContentFilterElement:
FilterOperator_
:
FilterOperator
=
FilterOperator
.
Equals
FilterOperands
:
List
[
ExtensionObject
]
=
field
(
default_factory
=
list
)
@
property
def
FilterOperator
(
self
):
return
self
.
FilterOperator_
@
FilterOperator
.
setter
def
FilterOperator
(
self
,
val
):
self
.
FilterOperator_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
ContentFilter
:
...
...
@@ -4896,6 +5376,14 @@ class AttributeOperand:
AttributeId
:
UInt32
=
0
IndexRange
:
String
=
None
@
property
def
NodeId
(
self
):
return
self
.
NodeId_
@
NodeId
.
setter
def
NodeId
(
self
,
val
):
self
.
NodeId_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
SimpleAttributeOperand
:
...
...
@@ -4951,6 +5439,14 @@ class ContentFilterElementResult:
OperandStatusCodes
:
List
[
StatusCode
]
=
field
(
default_factory
=
list
)
OperandDiagnosticInfos
:
List
[
DiagnosticInfo
]
=
field
(
default_factory
=
list
)
@
property
def
StatusCode
(
self
):
return
self
.
StatusCode_
@
StatusCode
.
setter
def
StatusCode
(
self
,
val
):
self
.
StatusCode_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
ContentFilterResult
:
...
...
@@ -4980,6 +5476,14 @@ class ParsingResult:
DataStatusCodes
:
List
[
StatusCode
]
=
field
(
default_factory
=
list
)
DataDiagnosticInfos
:
List
[
DiagnosticInfo
]
=
field
(
default_factory
=
list
)
@
property
def
StatusCode
(
self
):
return
self
.
StatusCode_
@
StatusCode
.
setter
def
StatusCode
(
self
,
val
):
self
.
StatusCode_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
QueryFirstParameters
:
...
...
@@ -5020,6 +5524,14 @@ class QueryFirstRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
QueryFirstParameters
=
field
(
default_factory
=
QueryFirstParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
QueryFirstResult
:
...
...
@@ -5060,6 +5572,14 @@ class QueryFirstResponse:
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
Parameters
:
QueryFirstResult
=
field
(
default_factory
=
QueryFirstResult
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
QueryNextParameters
:
...
...
@@ -5091,6 +5611,14 @@ class QueryNextRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
QueryNextParameters
=
field
(
default_factory
=
QueryNextParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
QueryNextResult
:
...
...
@@ -5122,6 +5650,14 @@ class QueryNextResponse:
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
Parameters
:
QueryNextResult
=
field
(
default_factory
=
QueryNextResult
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
ReadValueId
:
...
...
@@ -5143,6 +5679,14 @@ class ReadValueId:
IndexRange
:
String
=
None
DataEncoding
:
QualifiedName
=
field
(
default_factory
=
QualifiedName
)
@
property
def
NodeId
(
self
):
return
self
.
NodeId_
@
NodeId
.
setter
def
NodeId
(
self
,
val
):
self
.
NodeId_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
ReadParameters
:
...
...
@@ -5159,6 +5703,14 @@ class ReadParameters:
TimestampsToReturn_
:
TimestampsToReturn
=
TimestampsToReturn
.
Source
NodesToRead
:
List
[
ReadValueId
]
=
field
(
default_factory
=
list
)
@
property
def
TimestampsToReturn
(
self
):
return
self
.
TimestampsToReturn_
@
TimestampsToReturn
.
setter
def
TimestampsToReturn
(
self
,
val
):
self
.
TimestampsToReturn_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
ReadRequest
:
...
...
@@ -5177,6 +5729,14 @@ class ReadRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
ReadParameters
=
field
(
default_factory
=
ReadParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
ReadResponse
:
...
...
@@ -5198,6 +5758,14 @@ class ReadResponse:
Results
:
List
[
DataValue
]
=
field
(
default_factory
=
list
)
DiagnosticInfos
:
List
[
DiagnosticInfo
]
=
field
(
default_factory
=
list
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
HistoryReadValueId
:
...
...
@@ -5219,6 +5787,14 @@ class HistoryReadValueId:
DataEncoding
:
QualifiedName
=
field
(
default_factory
=
QualifiedName
)
ContinuationPoint
:
ByteString
=
None
@
property
def
NodeId
(
self
):
return
self
.
NodeId_
@
NodeId
.
setter
def
NodeId
(
self
,
val
):
self
.
NodeId_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
HistoryReadResult
:
...
...
@@ -5235,6 +5811,14 @@ class HistoryReadResult:
ContinuationPoint
:
ByteString
=
None
HistoryData
:
ExtensionObject
=
ExtensionObject
()
@
property
def
StatusCode
(
self
):
return
self
.
StatusCode_
@
StatusCode
.
setter
def
StatusCode
(
self
,
val
):
self
.
StatusCode_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
HistoryReadDetails
:
...
...
@@ -5358,6 +5942,14 @@ class HistoryReadParameters:
ReleaseContinuationPoints
:
Boolean
=
True
NodesToRead
:
List
[
HistoryReadValueId
]
=
field
(
default_factory
=
list
)
@
property
def
TimestampsToReturn
(
self
):
return
self
.
TimestampsToReturn_
@
TimestampsToReturn
.
setter
def
TimestampsToReturn
(
self
,
val
):
self
.
TimestampsToReturn_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
HistoryReadRequest
:
...
...
@@ -5376,6 +5968,14 @@ class HistoryReadRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
HistoryReadParameters
=
field
(
default_factory
=
HistoryReadParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
HistoryReadResponse
:
...
...
@@ -5397,6 +5997,14 @@ class HistoryReadResponse:
Results
:
List
[
HistoryReadResult
]
=
field
(
default_factory
=
list
)
DiagnosticInfos
:
List
[
DiagnosticInfo
]
=
field
(
default_factory
=
list
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
WriteValue
:
...
...
@@ -5418,6 +6026,14 @@ class WriteValue:
IndexRange
:
String
=
None
Value
:
DataValue
=
field
(
default_factory
=
DataValue
)
@
property
def
NodeId
(
self
):
return
self
.
NodeId_
@
NodeId
.
setter
def
NodeId
(
self
,
val
):
self
.
NodeId_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
WriteParameters
:
...
...
@@ -5446,6 +6062,14 @@ class WriteRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
WriteParameters
=
field
(
default_factory
=
WriteParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
WriteResponse
:
...
...
@@ -5467,6 +6091,14 @@ class WriteResponse:
Results
:
List
[
StatusCode
]
=
field
(
default_factory
=
list
)
DiagnosticInfos
:
List
[
DiagnosticInfo
]
=
field
(
default_factory
=
list
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
HistoryUpdateDetails
:
...
...
@@ -5479,6 +6111,14 @@ class HistoryUpdateDetails:
NodeId_
:
NodeId
=
field
(
default_factory
=
NodeId
)
@
property
def
NodeId
(
self
):
return
self
.
NodeId_
@
NodeId
.
setter
def
NodeId
(
self
,
val
):
self
.
NodeId_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
UpdateDataDetails
:
...
...
@@ -5497,6 +6137,14 @@ class UpdateDataDetails:
PerformInsertReplace
:
PerformUpdateType
=
PerformUpdateType
.
Insert
UpdateValues
:
List
[
DataValue
]
=
field
(
default_factory
=
list
)
@
property
def
NodeId
(
self
):
return
self
.
NodeId_
@
NodeId
.
setter
def
NodeId
(
self
,
val
):
self
.
NodeId_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
UpdateStructureDataDetails
:
...
...
@@ -5515,6 +6163,14 @@ class UpdateStructureDataDetails:
PerformInsertReplace
:
PerformUpdateType
=
PerformUpdateType
.
Insert
UpdateValues
:
List
[
DataValue
]
=
field
(
default_factory
=
list
)
@
property
def
NodeId
(
self
):
return
self
.
NodeId_
@
NodeId
.
setter
def
NodeId
(
self
,
val
):
self
.
NodeId_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
DeleteRawModifiedDetails
:
...
...
@@ -5536,6 +6192,14 @@ class DeleteRawModifiedDetails:
StartTime
:
DateTime
=
datetime
.
utcnow
()
EndTime
:
DateTime
=
datetime
.
utcnow
()
@
property
def
NodeId
(
self
):
return
self
.
NodeId_
@
NodeId
.
setter
def
NodeId
(
self
,
val
):
self
.
NodeId_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
DeleteAtTimeDetails
:
...
...
@@ -5551,6 +6215,14 @@ class DeleteAtTimeDetails:
NodeId_
:
NodeId
=
field
(
default_factory
=
NodeId
)
ReqTimes
:
List
[
DateTime
]
=
field
(
default_factory
=
list
)
@
property
def
NodeId
(
self
):
return
self
.
NodeId_
@
NodeId
.
setter
def
NodeId
(
self
,
val
):
self
.
NodeId_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
DeleteEventDetails
:
...
...
@@ -5566,6 +6238,14 @@ class DeleteEventDetails:
NodeId_
:
NodeId
=
field
(
default_factory
=
NodeId
)
EventIds
:
List
[
ByteString
]
=
field
(
default_factory
=
list
)
@
property
def
NodeId
(
self
):
return
self
.
NodeId_
@
NodeId
.
setter
def
NodeId
(
self
,
val
):
self
.
NodeId_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
HistoryUpdateResult
:
...
...
@@ -5582,6 +6262,14 @@ class HistoryUpdateResult:
OperationResults
:
List
[
StatusCode
]
=
field
(
default_factory
=
list
)
DiagnosticInfos
:
List
[
DiagnosticInfo
]
=
field
(
default_factory
=
list
)
@
property
def
StatusCode
(
self
):
return
self
.
StatusCode_
@
StatusCode
.
setter
def
StatusCode
(
self
,
val
):
self
.
StatusCode_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
HistoryUpdateParameters
:
...
...
@@ -5610,6 +6298,14 @@ class HistoryUpdateRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
HistoryUpdateParameters
=
field
(
default_factory
=
HistoryUpdateParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
HistoryUpdateResponse
:
...
...
@@ -5631,6 +6327,14 @@ class HistoryUpdateResponse:
Results
:
List
[
HistoryUpdateResult
]
=
field
(
default_factory
=
list
)
DiagnosticInfos
:
List
[
DiagnosticInfo
]
=
field
(
default_factory
=
list
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
CallMethodRequest
:
...
...
@@ -5668,6 +6372,14 @@ class CallMethodResult:
InputArgumentDiagnosticInfos
:
List
[
DiagnosticInfo
]
=
field
(
default_factory
=
list
)
OutputArguments
:
List
[
Variant
]
=
field
(
default_factory
=
list
)
@
property
def
StatusCode
(
self
):
return
self
.
StatusCode_
@
StatusCode
.
setter
def
StatusCode
(
self
,
val
):
self
.
StatusCode_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
CallParameters
:
...
...
@@ -5696,6 +6408,14 @@ class CallRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
CallParameters
=
field
(
default_factory
=
CallParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
CallResponse
:
...
...
@@ -5717,6 +6437,14 @@ class CallResponse:
Results
:
List
[
CallMethodResult
]
=
field
(
default_factory
=
list
)
DiagnosticInfos
:
List
[
DiagnosticInfo
]
=
field
(
default_factory
=
list
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
MonitoringFilter
:
...
...
@@ -5827,6 +6555,14 @@ class ReadProcessedDetails:
AggregateType
:
List
[
NodeId
]
=
field
(
default_factory
=
list
)
AggregateConfiguration_
:
AggregateConfiguration
=
field
(
default_factory
=
AggregateConfiguration
)
@
property
def
AggregateConfiguration
(
self
):
return
self
.
AggregateConfiguration_
@
AggregateConfiguration
.
setter
def
AggregateConfiguration
(
self
,
val
):
self
.
AggregateConfiguration_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
AggregateFilter
:
...
...
@@ -5848,6 +6584,14 @@ class AggregateFilter:
ProcessingInterval
:
Double
=
0
AggregateConfiguration_
:
AggregateConfiguration
=
field
(
default_factory
=
AggregateConfiguration
)
@
property
def
AggregateConfiguration
(
self
):
return
self
.
AggregateConfiguration_
@
AggregateConfiguration
.
setter
def
AggregateConfiguration
(
self
,
val
):
self
.
AggregateConfiguration_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
MonitoringFilterResult
:
...
...
@@ -5926,6 +6670,14 @@ class MonitoredItemCreateRequest:
MonitoringMode_
:
MonitoringMode
=
MonitoringMode
.
Disabled
RequestedParameters
:
MonitoringParameters
=
field
(
default_factory
=
MonitoringParameters
)
@
property
def
MonitoringMode
(
self
):
return
self
.
MonitoringMode_
@
MonitoringMode
.
setter
def
MonitoringMode
(
self
,
val
):
self
.
MonitoringMode_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
MonitoredItemCreateResult
:
...
...
@@ -5948,6 +6700,14 @@ class MonitoredItemCreateResult:
RevisedQueueSize
:
UInt32
=
0
FilterResult
:
ExtensionObject
=
ExtensionObject
()
@
property
def
StatusCode
(
self
):
return
self
.
StatusCode_
@
StatusCode
.
setter
def
StatusCode
(
self
,
val
):
self
.
StatusCode_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
CreateMonitoredItemsParameters
:
...
...
@@ -5964,6 +6724,14 @@ class CreateMonitoredItemsParameters:
TimestampsToReturn_
:
TimestampsToReturn
=
TimestampsToReturn
.
Source
ItemsToCreate
:
List
[
MonitoredItemCreateRequest
]
=
field
(
default_factory
=
list
)
@
property
def
TimestampsToReturn
(
self
):
return
self
.
TimestampsToReturn_
@
TimestampsToReturn
.
setter
def
TimestampsToReturn
(
self
,
val
):
self
.
TimestampsToReturn_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
CreateMonitoredItemsRequest
:
...
...
@@ -5982,6 +6750,14 @@ class CreateMonitoredItemsRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
CreateMonitoredItemsParameters
=
field
(
default_factory
=
CreateMonitoredItemsParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
CreateMonitoredItemsResponse
:
...
...
@@ -6003,6 +6779,14 @@ class CreateMonitoredItemsResponse:
Results
:
List
[
MonitoredItemCreateResult
]
=
field
(
default_factory
=
list
)
DiagnosticInfos
:
List
[
DiagnosticInfo
]
=
field
(
default_factory
=
list
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
MonitoredItemModifyRequest
:
...
...
@@ -6037,6 +6821,14 @@ class MonitoredItemModifyResult:
RevisedQueueSize
:
UInt32
=
0
FilterResult
:
ExtensionObject
=
ExtensionObject
()
@
property
def
StatusCode
(
self
):
return
self
.
StatusCode_
@
StatusCode
.
setter
def
StatusCode
(
self
,
val
):
self
.
StatusCode_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
ModifyMonitoredItemsParameters
:
...
...
@@ -6053,6 +6845,14 @@ class ModifyMonitoredItemsParameters:
TimestampsToReturn_
:
TimestampsToReturn
=
TimestampsToReturn
.
Source
ItemsToModify
:
List
[
MonitoredItemModifyRequest
]
=
field
(
default_factory
=
list
)
@
property
def
TimestampsToReturn
(
self
):
return
self
.
TimestampsToReturn_
@
TimestampsToReturn
.
setter
def
TimestampsToReturn
(
self
,
val
):
self
.
TimestampsToReturn_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
ModifyMonitoredItemsRequest
:
...
...
@@ -6071,6 +6871,14 @@ class ModifyMonitoredItemsRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
ModifyMonitoredItemsParameters
=
field
(
default_factory
=
ModifyMonitoredItemsParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
ModifyMonitoredItemsResponse
:
...
...
@@ -6092,6 +6900,14 @@ class ModifyMonitoredItemsResponse:
Results
:
List
[
MonitoredItemModifyResult
]
=
field
(
default_factory
=
list
)
DiagnosticInfos
:
List
[
DiagnosticInfo
]
=
field
(
default_factory
=
list
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
SetMonitoringModeParameters
:
...
...
@@ -6108,6 +6924,14 @@ class SetMonitoringModeParameters:
MonitoringMode_
:
MonitoringMode
=
MonitoringMode
.
Disabled
MonitoredItemIds
:
List
[
UInt32
]
=
field
(
default_factory
=
list
)
@
property
def
MonitoringMode
(
self
):
return
self
.
MonitoringMode_
@
MonitoringMode
.
setter
def
MonitoringMode
(
self
,
val
):
self
.
MonitoringMode_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
SetMonitoringModeRequest
:
...
...
@@ -6126,6 +6950,14 @@ class SetMonitoringModeRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
SetMonitoringModeParameters
=
field
(
default_factory
=
SetMonitoringModeParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
SetMonitoringModeResult
:
...
...
@@ -6157,6 +6989,14 @@ class SetMonitoringModeResponse:
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
Parameters
:
SetMonitoringModeResult
=
field
(
default_factory
=
SetMonitoringModeResult
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
SetTriggeringParameters
:
...
...
@@ -6194,6 +7034,14 @@ class SetTriggeringRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
SetTriggeringParameters
=
field
(
default_factory
=
SetTriggeringParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
SetTriggeringResult
:
...
...
@@ -6231,6 +7079,14 @@ class SetTriggeringResponse:
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
Parameters
:
SetTriggeringResult
=
field
(
default_factory
=
SetTriggeringResult
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
DeleteMonitoredItemsParameters
:
...
...
@@ -6262,6 +7118,14 @@ class DeleteMonitoredItemsRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
DeleteMonitoredItemsParameters
=
field
(
default_factory
=
DeleteMonitoredItemsParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
DeleteMonitoredItemsResponse
:
...
...
@@ -6283,6 +7147,14 @@ class DeleteMonitoredItemsResponse:
Results
:
List
[
StatusCode
]
=
field
(
default_factory
=
list
)
DiagnosticInfos
:
List
[
DiagnosticInfo
]
=
field
(
default_factory
=
list
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
CreateSubscriptionParameters
:
...
...
@@ -6326,6 +7198,14 @@ class CreateSubscriptionRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
CreateSubscriptionParameters
=
field
(
default_factory
=
CreateSubscriptionParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
CreateSubscriptionResult
:
...
...
@@ -6363,6 +7243,14 @@ class CreateSubscriptionResponse:
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
Parameters
:
CreateSubscriptionResult
=
field
(
default_factory
=
CreateSubscriptionResult
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
ModifySubscriptionParameters
:
...
...
@@ -6406,6 +7294,14 @@ class ModifySubscriptionRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
ModifySubscriptionParameters
=
field
(
default_factory
=
ModifySubscriptionParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
ModifySubscriptionResult
:
...
...
@@ -6440,6 +7336,14 @@ class ModifySubscriptionResponse:
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
Parameters
:
ModifySubscriptionResult
=
field
(
default_factory
=
ModifySubscriptionResult
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
SetPublishingModeParameters
:
...
...
@@ -6471,6 +7375,14 @@ class SetPublishingModeRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
SetPublishingModeParameters
=
field
(
default_factory
=
SetPublishingModeParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
SetPublishingModeResult
:
...
...
@@ -6502,6 +7414,14 @@ class SetPublishingModeResponse:
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
Parameters
:
SetPublishingModeResult
=
field
(
default_factory
=
SetPublishingModeResult
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
NotificationMessage
:
...
...
@@ -6630,6 +7550,14 @@ class UpdateEventDetails:
Filter
:
EventFilter
=
field
(
default_factory
=
EventFilter
)
EventData
:
List
[
HistoryEventFieldList
]
=
field
(
default_factory
=
list
)
@
property
def
NodeId
(
self
):
return
self
.
NodeId_
@
NodeId
.
setter
def
NodeId
(
self
,
val
):
self
.
NodeId_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
StatusChangeNotification
:
...
...
@@ -6645,6 +7573,14 @@ class StatusChangeNotification:
Status
:
StatusCode
=
field
(
default_factory
=
StatusCode
)
DiagnosticInfo_
:
DiagnosticInfo
=
field
(
default_factory
=
DiagnosticInfo
)
@
property
def
DiagnosticInfo
(
self
):
return
self
.
DiagnosticInfo_
@
DiagnosticInfo
.
setter
def
DiagnosticInfo
(
self
,
val
):
self
.
DiagnosticInfo_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
SubscriptionAcknowledgement
:
...
...
@@ -6688,6 +7624,14 @@ class PublishRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
PublishParameters
=
field
(
default_factory
=
PublishParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
PublishResult
:
...
...
@@ -6713,6 +7657,14 @@ class PublishResult:
Results
:
List
[
StatusCode
]
=
field
(
default_factory
=
list
)
DiagnosticInfos
:
List
[
DiagnosticInfo
]
=
field
(
default_factory
=
list
)
@
property
def
NotificationMessage
(
self
):
return
self
.
NotificationMessage_
@
NotificationMessage
.
setter
def
NotificationMessage
(
self
,
val
):
self
.
NotificationMessage_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
PublishResponse
:
...
...
@@ -6731,6 +7683,14 @@ class PublishResponse:
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
Parameters
:
PublishResult
=
field
(
default_factory
=
PublishResult
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
RepublishParameters
:
...
...
@@ -6762,6 +7722,14 @@ class RepublishRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
RepublishParameters
=
field
(
default_factory
=
RepublishParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
RepublishResponse
:
...
...
@@ -6780,6 +7748,21 @@ class RepublishResponse:
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
NotificationMessage_
:
NotificationMessage
=
field
(
default_factory
=
NotificationMessage
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
property
def
NotificationMessage
(
self
):
return
self
.
NotificationMessage_
@
NotificationMessage
.
setter
def
NotificationMessage
(
self
,
val
):
self
.
NotificationMessage_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
TransferResult
:
...
...
@@ -6793,6 +7776,14 @@ class TransferResult:
StatusCode_
:
StatusCode
=
field
(
default_factory
=
StatusCode
)
AvailableSequenceNumbers
:
List
[
UInt32
]
=
field
(
default_factory
=
list
)
@
property
def
StatusCode
(
self
):
return
self
.
StatusCode_
@
StatusCode
.
setter
def
StatusCode
(
self
,
val
):
self
.
StatusCode_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
TransferSubscriptionsParameters
:
...
...
@@ -6824,6 +7815,14 @@ class TransferSubscriptionsRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
TransferSubscriptionsParameters
=
field
(
default_factory
=
TransferSubscriptionsParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
TransferSubscriptionsResult
:
...
...
@@ -6855,6 +7854,14 @@ class TransferSubscriptionsResponse:
ResponseHeader_
:
ResponseHeader
=
field
(
default_factory
=
ResponseHeader
)
Parameters
:
TransferSubscriptionsResult
=
field
(
default_factory
=
TransferSubscriptionsResult
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
DeleteSubscriptionsParameters
:
...
...
@@ -6883,6 +7890,14 @@ class DeleteSubscriptionsRequest:
RequestHeader_
:
RequestHeader
=
field
(
default_factory
=
RequestHeader
)
Parameters
:
DeleteSubscriptionsParameters
=
field
(
default_factory
=
DeleteSubscriptionsParameters
)
@
property
def
RequestHeader
(
self
):
return
self
.
RequestHeader_
@
RequestHeader
.
setter
def
RequestHeader
(
self
,
val
):
self
.
RequestHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
DeleteSubscriptionsResponse
:
...
...
@@ -6904,6 +7919,14 @@ class DeleteSubscriptionsResponse:
Results
:
List
[
StatusCode
]
=
field
(
default_factory
=
list
)
DiagnosticInfos
:
List
[
DiagnosticInfo
]
=
field
(
default_factory
=
list
)
@
property
def
ResponseHeader
(
self
):
return
self
.
ResponseHeader_
@
ResponseHeader
.
setter
def
ResponseHeader
(
self
,
val
):
self
.
ResponseHeader_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
BuildInfo
:
...
...
@@ -6949,6 +7972,14 @@ class RedundantServerDataType:
ServiceLevel
:
Byte
=
0
ServerState_
:
ServerState
=
ServerState
.
Running
@
property
def
ServerState
(
self
):
return
self
.
ServerState_
@
ServerState
.
setter
def
ServerState
(
self
,
val
):
self
.
ServerState_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
EndpointUrlListDataType
:
...
...
@@ -7069,6 +8100,14 @@ class ServerStatusDataType:
SecondsTillShutdown
:
UInt32
=
0
ShutdownReason
:
LocalizedText
=
field
(
default_factory
=
LocalizedText
)
@
property
def
BuildInfo
(
self
):
return
self
.
BuildInfo_
@
BuildInfo
.
setter
def
BuildInfo
(
self
,
val
):
self
.
BuildInfo_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
SessionSecurityDiagnosticsDataType
:
...
...
@@ -7271,6 +8310,21 @@ class StatusResult:
StatusCode_
:
StatusCode
=
field
(
default_factory
=
StatusCode
)
DiagnosticInfo_
:
DiagnosticInfo
=
field
(
default_factory
=
DiagnosticInfo
)
@
property
def
StatusCode
(
self
):
return
self
.
StatusCode_
@
StatusCode
.
setter
def
StatusCode
(
self
,
val
):
self
.
StatusCode_
=
val
@
property
def
DiagnosticInfo
(
self
):
return
self
.
DiagnosticInfo_
@
DiagnosticInfo
.
setter
def
DiagnosticInfo
(
self
,
val
):
self
.
DiagnosticInfo_
=
val
@
dataclass
(
frozen
=
FROZEN
)
class
SubscriptionDiagnosticsDataType
:
...
...
asyncua/ua/uaprotocol_hand.py
View file @
9b946e22
...
...
@@ -11,16 +11,16 @@ OPC_TCP_SCHEME = 'opc.tcp'
@
dataclass
class
Hello
(
uatypes
.
FrozenClass
):
ProtocolVersion
:
uatypes
.
UInt32
=
0
# the following values couldbe set to 0 (meaning no limits)
# unfortunaltely many servers do not support it
# even newer version of prosys are broken
# so we set then to a high value known to work most places
ReceiveBufferSize
:
uatypes
.
UInt32
=
2
**
31
-
1
SendBufferSize
:
uatypes
.
UInt32
=
2
**
31
-
1
MaxMessageSize
:
uatypes
.
UInt32
=
2
**
31
-
1
MaxChunkCount
:
uatypes
.
UInt32
=
2
**
31
-
1
EndpointUrl
:
uatypes
.
String
=
""
ProtocolVersion
:
uatypes
.
UInt32
=
0
# the following values couldbe set to 0 (meaning no limits)
# unfortunaltely many servers do not support it
# even newer version of prosys are broken
# so we set then to a high value known to work most places
ReceiveBufferSize
:
uatypes
.
UInt32
=
2
**
31
-
1
SendBufferSize
:
uatypes
.
UInt32
=
2
**
31
-
1
MaxMessageSize
:
uatypes
.
UInt32
=
2
**
31
-
1
MaxChunkCount
:
uatypes
.
UInt32
=
2
**
31
-
1
EndpointUrl
:
uatypes
.
String
=
""
@
dataclass
...
...
@@ -49,6 +49,7 @@ class Header(uatypes.FrozenClass):
ChannelId
:
int
=
0
body_size
=
0
packet_size
=
0
header_size
=
8
def
add_size
(
self
,
size
):
self
.
body_size
+=
size
...
...
asyncua/ua/uatypes.py
View file @
9b946e22
...
...
@@ -263,7 +263,7 @@ class StatusCode:
:vartype doc: string
"""
value
:
UInt32
=
0
value
:
UInt32
=
status_codes
.
StatusCodes
.
Good
def
__post_init__
(
self
):
if
isinstance
(
self
.
value
,
str
):
...
...
@@ -385,7 +385,6 @@ class NodeId:
def
__lt__
(
self
,
other
):
if
not
isinstance
(
other
,
NodeId
):
raise
AttributeError
(
"Can only compare to NodeId"
)
print
(
"COMPARE"
,
self
,
other
)
print
(
self
.
NodeIdType
,
self
.
NamespaceIndex
,
self
.
Identifier
,
other
.
NodeIdType
,
other
.
NamespaceIndex
,
other
.
Identifier
)
return
(
self
.
NodeIdType
,
self
.
NamespaceIndex
,
self
.
Identifier
)
<
(
other
.
NodeIdType
,
other
.
NamespaceIndex
,
other
.
Identifier
)
...
...
@@ -643,7 +642,7 @@ class ExtensionObject:
TypeId: NodeId = NodeId()
Encoding: Byte = field(default=0, repr=False, init=False)
Body: Optional[ByteString] =
b""
Body: Optional[ByteString] =
None
def __bool__(self):
return self.Body is not None
...
...
@@ -910,7 +909,7 @@ class DataValue:
Encoding: Byte = field(default=0, repr=False, init=False)
Value: Optional[Variant] = None
StatusCode
: Optional[StatusCode] = None #
field(default_factory=StatusCode)
StatusCode
_: Optional[StatusCode] =
field(default_factory=StatusCode)
SourceTimestamp: Optional[DateTime] = None
SourcePicoseconds: Optional[UInt16] = None
ServerTimestamp: Optional[DateTime] = None
...
...
@@ -922,6 +921,14 @@ class DataValue:
if not isinstance(self.Value, Variant):
self.Value = Variant(self.Value)
@property
def StatusCode(self):
return self.StatusCode_
@StatusCode.setter
def StatusCode(self, val):
self.StatusCode_ = val
def datatype_to_varianttype(int_type):
"""
...
...
examples/server-minimal.py
View file @
9b946e22
...
...
@@ -7,9 +7,6 @@ from asyncua import ua, Server
from
asyncua.common.methods
import
uamethod
logging
.
basicConfig
(
level
=
logging
.
INFO
)
_logger
=
logging
.
getLogger
(
'asyncua'
)
@
uamethod
def
func
(
parent
,
value
):
...
...
@@ -17,6 +14,7 @@ def func(parent, value):
async
def
main
():
_logger
=
logging
.
getLogger
(
'asyncua'
)
# setup our server
server
=
Server
()
await
server
.
init
()
...
...
@@ -43,4 +41,7 @@ async def main():
if
__name__
==
'__main__'
:
asyncio
.
run
(
main
())
logging
.
basicConfig
(
level
=
logging
.
DEBUG
)
asyncio
.
run
(
main
(),
debug
=
True
)
schemas/generate_protocol_python.py
View file @
9b946e22
...
...
@@ -80,7 +80,7 @@ class CodeGenerator:
self
.
write
(
''
)
self
.
write
(
'from datetime import datetime'
)
self
.
write
(
'from enum import IntEnum'
)
self
.
write
(
'from typing import Union, List'
)
self
.
write
(
'from typing import Union, List
, Optional
'
)
self
.
write
(
'from dataclasses import dataclass, field'
)
self
.
write
(
''
)
# self.write('from asyncua.ua.uaerrors import UaError')
...
...
@@ -137,14 +137,21 @@ class CodeGenerator:
if
"BodyLength"
in
[
f
.
name
for
f
in
obj
.
fields
]:
extobj_hack
=
True
hack_names
=
[]
for
field
in
obj
.
fields
:
# FIXME; flag optional those that are optional
if
field
.
length
:
typestring
=
f"List[
{
field
.
uatype
}
]"
elif
field
.
switchfield
is
not
None
:
typestring
=
f"Optional[
{
field
.
uatype
}
]"
else
:
typestring
=
field
.
uatype
if
field
.
name
==
field
.
uatype
:
# help!!! selv referencing class
if
field
.
name
==
field
.
uatype
:
# variable name and type name are the same. Dataclass do not like it
print
(
"SELF REFENCING"
,
obj
,
field
)
hack_names
.
append
(
field
.
name
)
fieldname
=
field
.
name
+
"_"
else
:
fieldname
=
field
.
name
...
...
@@ -153,8 +160,8 @@ class CodeGenerator:
val
=
0
if
not
extobj_hack
else
1
self
.
write
(
f"
{
field
.
name
}
: Byte = field(default=
{
val
}
, repr=False, init=False)"
)
elif
field
.
uatype
==
obj
.
name
:
# help!!! selv referencing class
pass
#FIXME: handle
#FIXME: handle better
self
.
write
(
f"
{
fieldname
}
: Optional[ExtensionObject] = None"
)
elif
obj
.
name
not
in
(
"ExtensionObject"
,)
and
\
field
.
name
==
"TypeId"
:
# and ( obj.name.endswith("Request") or obj.name.endswith("Response")):
self
.
write
(
f"TypeId: NodeId = FourByteNodeId(ObjectIds.
{
obj
.
name
}
_Encoding_DefaultBinary)"
)
...
...
@@ -175,6 +182,17 @@ class CodeGenerator:
if
switch_written
:
self
.
write
(
"}"
)
if
hack_names
:
self
.
write
(
""
)
for
name
in
hack_names
:
self
.
write
(
"@property"
)
self
.
write
(
f"def
{
name
}
(self):"
)
self
.
write
(
f" return self.
{
name
}
_"
)
self
.
write
(
""
)
self
.
write
(
f"@
{
name
}
.setter"
)
self
.
write
(
f"def
{
name
}
(self, val):"
)
self
.
write
(
f" self.
{
name
}
_ = val"
)
self
.
iidx
=
0
def
write_unpack_enum
(
self
,
name
,
enum
):
...
...
tests/test_unit.py
View file @
9b946e22
...
...
@@ -441,6 +441,13 @@ def test_null_string():
assert
v
.
Value
==
v2
.
Value
def
test_empty_extension_object
():
obj
=
ua
.
ExtensionObject
()
obj2
=
extensionobject_from_binary
(
ua
.
utils
.
Buffer
(
extensionobject_to_binary
(
obj
)))
assert
type
(
obj
)
==
type
(
obj2
)
assert
obj
==
obj2
def
test_extension_object
():
obj
=
ua
.
UserNameIdentityToken
()
obj
.
UserName
=
"admin"
...
...
@@ -732,6 +739,8 @@ def test_bin_data_type_def():
dta
=
ua
.
DataTypeAttributes
()
dta
.
DisplayName
=
ua
.
LocalizedText
(
"titi"
)
ad
.
NodeAttributes
=
dta
from
IPython
import
embed
embed
()
data
=
struct_to_binary
(
ad
)
ad2
=
struct_from_binary
(
ua
.
AddNodesItem
,
ua
.
utils
.
Buffer
(
data
))
...
...
@@ -746,3 +755,24 @@ def test_bin_datattributes():
data
=
struct_to_binary
(
dta
)
dta2
=
struct_from_binary
(
ua
.
DataTypeAttributes
,
ua
.
utils
.
Buffer
(
data
))
assert
dta
.
DisplayName
==
dta2
.
DisplayName
def
test_browse
():
data
=
b'
\
x01
\
x00
\
x12
\
x02
\
xe0
S2
\
xb3
\
x8f
\
n
\
xd7
\
x01
\
x04
\
x00
\
x00
\
x00
\
x00
\
x00
\
x00
\
x00
\
x00
\
xff
\
xff
\
xff
\
xff
\
x00
\
x00
\
x00
\
x01
\
x00
\
x00
\
x00
\
x00
\
x00
\
x00
\
x00
\
xff
\
xff
\
xff
\
xff
\
x03
\
x00
\
x00
\
x00
\
x00
#
\
x01
@U
\
x00
\
x00
\
x00
\
x00
\
x00
\
x00
\
x07
\
x00
\
x00
\
x00
Objects
\
x02
\
x07
\
x00
\
x00
\
x00
Objects
\
x01
\
x00
\
x00
\
x00
@=
\
x00
\
x00
\
x00
\
x00
\
x00
#
\
x01
@V
\
x00
\
x00
\
x00
\
x00
\
x00
\
x00
\
x05
\
x00
\
x00
\
x00
Types
\
x02
\
x05
\
x00
\
x00
\
x00
Types
\
x01
\
x00
\
x00
\
x00
@=
\
x00
\
x00
\
x00
\
x00
\
x00
#
\
x01
@W
\
x00
\
x00
\
x00
\
x00
\
x00
\
x00
\
x05
\
x00
\
x00
\
x00
Views
\
x02
\
x05
\
x00
\
x00
\
x00
Views
\
x01
\
x00
\
x00
\
x00
@=
\
x00
\
x00
\
x00
\
x00
\
xff
\
xff
\
xff
\
xff
'
#data = b'\x01\x00\x12\x020)E\x11"\n\xd7\x01\x04\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x03\x00\x00\x00\x00#\x01@U\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00Objects\x02\x07\x00\x00\x00Objects\x01\x00\x00\x00@=\x00\x00\x00\x00\x00#\x01@V\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00Types\x02\x05\x00\x00\x00Types\x01\x00\x00\x00@=\x00\x00\x00\x00\x00#\x01@W\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00Views\x02\x05\x00\x00\x00Views\x01\x00\x00\x00@=\x00\x00\x00\x00\xff\xff\xff\xff'
res
=
struct_from_binary
(
ua
.
BrowseResponse
,
ua
.
utils
.
Buffer
(
data
))
def
test_bname
():
qn
=
ua
.
QualifiedName
(
"TOTO"
,
2
)
d
=
struct_to_binary
(
qn
)
qn2
=
struct_from_binary
(
ua
.
QualifiedName
,
ua
.
utils
.
Buffer
(
d
))
assert
qn
==
qn2
def
test_expandedNodeId
():
d
=
b"
\
x40
\
x55
\
x00
\
x00
\
x00
\
x00
"
nid
=
nodeid_from_binary
(
ua
.
utils
.
Buffer
(
d
))
assert
isinstance
(
nid
,
ua
.
ExpandedNodeId
)
assert
nid
.
ServerIndex
==
0
assert
nid
.
Identifier
==
85
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment