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
88d467cc
Commit
88d467cc
authored
Mar 17, 2016
by
olivier R-D
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
helper methods to set and array_dimensiosn and value rank
parent
c7ac1666
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
42 additions
and
4 deletions
+42
-4
opcua/common/node.py
opcua/common/node.py
+31
-0
tests/tests_common.py
tests/tests_common.py
+11
-4
No files found.
opcua/common/node.py
View file @
88d467cc
...
@@ -92,6 +92,35 @@ class Node(object):
...
@@ -92,6 +92,35 @@ class Node(object):
"""
"""
return
self
.
get_attribute
(
ua
.
AttributeIds
.
Value
)
return
self
.
get_attribute
(
ua
.
AttributeIds
.
Value
)
def
set_array_dimensions
(
self
,
value
):
"""
Set attribute ArrayDimensions of node
make sure it has the correct data type
"""
v
=
ua
.
Variant
(
value
,
ua
.
VariantType
.
UInt32
)
self
.
set_attribute
(
ua
.
AttributeIds
.
ArrayDimensions
,
ua
.
DataValue
(
v
))
def
get_array_dimensions
(
self
):
"""
Read and return ArrayDimensions attribute of node
"""
res
=
self
.
get_attribute
(
ua
.
AttributeIds
.
ArrayDimensions
)
return
res
.
Value
.
Value
def
set_value_rank
(
self
,
value
):
"""
Set attribute ArrayDimensions of node
"""
v
=
ua
.
Variant
(
value
,
ua
.
VariantType
.
Int32
)
self
.
set_attribute
(
ua
.
AttributeIds
.
ValueRank
,
ua
.
DataValue
(
v
))
def
get_value_rank
(
self
):
"""
Read and return ArrayDimensions attribute of node
"""
res
=
self
.
get_attribute
(
ua
.
AttributeIds
.
ValueRank
)
return
res
.
Value
.
Value
def
set_value
(
self
,
value
,
varianttype
=
None
):
def
set_value
(
self
,
value
,
varianttype
=
None
):
"""
"""
Set value of a node. Only variables(properties) have values.
Set value of a node. Only variables(properties) have values.
...
@@ -135,6 +164,8 @@ class Node(object):
...
@@ -135,6 +164,8 @@ class Node(object):
def
set_attribute
(
self
,
attributeid
,
datavalue
):
def
set_attribute
(
self
,
attributeid
,
datavalue
):
"""
"""
Set an attribute of a node
Set an attribute of a node
attributeid is a member of ua.AttributeIds
datavalue is a ua.DataValue object
"""
"""
attr
=
ua
.
WriteValue
()
attr
=
ua
.
WriteValue
()
attr
.
NodeId
=
self
.
nodeid
attr
.
NodeId
=
self
.
nodeid
...
...
tests/tests_common.py
View file @
88d467cc
...
@@ -118,6 +118,8 @@ class CommonTests(object):
...
@@ -118,6 +118,8 @@ class CommonTests(object):
'''
'''
# jyst to avoid editor warnings
# jyst to avoid editor warnings
opc
=
None
opc
=
None
assertEqual
=
lambda
x
,
y
:
True
assertIn
=
lambda
x
,
y
:
True
def
test_find_servers
(
self
):
def
test_find_servers
(
self
):
servers
=
self
.
opc
.
find_servers
()
servers
=
self
.
opc
.
find_servers
()
...
@@ -322,11 +324,19 @@ class CommonTests(object):
...
@@ -322,11 +324,19 @@ class CommonTests(object):
tid
=
v1
.
get_value
()
tid
=
v1
.
get_value
()
self
.
assertEqual
(
now
,
tid
)
self
.
assertEqual
(
now
,
tid
)
def
test_variant_array_dim
(
self
):
def
test_variant_array_dim
(
self
):
objects
=
self
.
opc
.
get_objects_node
()
objects
=
self
.
opc
.
get_objects_node
()
l
=
[[[
1.0
,
1.0
,
1.0
,
1.0
],
[
2.0
,
2.0
,
2.0
,
2.0
],
[
3.0
,
3.0
,
3.0
,
3.0
]],[[
5.0
,
5.0
,
5.0
,
5.0
],
[
7.0
,
8.0
,
9.0
,
01.0
],
[
1.0
,
1.0
,
1.0
,
1.0
]]]
l
=
[[[
1.0
,
1.0
,
1.0
,
1.0
],
[
2.0
,
2.0
,
2.0
,
2.0
],
[
3.0
,
3.0
,
3.0
,
3.0
]],[[
5.0
,
5.0
,
5.0
,
5.0
],
[
7.0
,
8.0
,
9.0
,
01.0
],
[
1.0
,
1.0
,
1.0
,
1.0
]]]
v
=
objects
.
add_variable
(
3
,
'variableWithDims'
,
l
)
v
=
objects
.
add_variable
(
3
,
'variableWithDims'
,
l
)
v
.
set_array_dimensions
([
0
,
0
,
0
])
dim
=
v
.
get_array_dimensions
()
self
.
assertEqual
(
dim
,
[
0
,
0
,
0
])
v
.
set_value_rank
(
0
)
rank
=
v
.
get_value_rank
()
self
.
assertEqual
(
rank
,
0
)
v2
=
v
.
get_value
()
v2
=
v
.
get_value
()
self
.
assertEqual
(
v2
,
l
)
self
.
assertEqual
(
v2
,
l
)
dv
=
v
.
get_data_value
()
dv
=
v
.
get_data_value
()
...
@@ -340,9 +350,6 @@ class CommonTests(object):
...
@@ -340,9 +350,6 @@ class CommonTests(object):
dv
=
v
.
get_data_value
()
dv
=
v
.
get_data_value
()
self
.
assertEqual
(
dv
.
Value
.
Dimensions
,
[
2
,
3
,
0
])
self
.
assertEqual
(
dv
.
Value
.
Dimensions
,
[
2
,
3
,
0
])
def
test_add_numeric_variable
(
self
):
def
test_add_numeric_variable
(
self
):
objects
=
self
.
opc
.
get_objects_node
()
objects
=
self
.
opc
.
get_objects_node
()
v
=
objects
.
add_variable
(
'ns=3;i=888;'
,
'3:numericnodefromstring'
,
99
)
v
=
objects
.
add_variable
(
'ns=3;i=888;'
,
'3:numericnodefromstring'
,
99
)
...
...
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