Commit 8c02b88b authored by Andreas Heine's avatar Andreas Heine Committed by GitHub

server read_attribute_value (#524)

* init

* Update internal_server.py

* cleanup

* Update internal_server.py

* Update server.py

* add test

* Update test_server.py
parent a5ac0170
......@@ -291,6 +291,12 @@ class InternalServer:
"""
await self.aspace.write_attribute_value(nodeid, attr, datavalue)
def read_attribute_value(self, nodeid, attr=ua.AttributeIds.Value):
"""
directly read datavalue of the Attribute
"""
return self.aspace.read_attribute_value(nodeid, attr)
def set_user_manager(self, user_manager):
"""
set up a function which that will check for authorize users. Input function takes username
......
......@@ -669,3 +669,9 @@ class Server:
so it is a little faster
"""
return await self.iserver.write_attribute_value(nodeid, datavalue, attr)
def read_attribute_value(self, nodeid, attr=ua.AttributeIds.Value):
"""
directly read datavalue of the Attribute
"""
return self.iserver.read_attribute_value(nodeid, attr)
......@@ -653,6 +653,15 @@ async def check_custom_type(ntype, base_type, server: Server, node_class=None):
assert await ntype.get_child("2:PropertyString") in properties
assert (await(await ntype.get_child("2:PropertyString")).read_data_value()).Value.VariantType == ua.VariantType.String
async def test_server_read_write_attribute_value(server: Server):
node = await server.get_objects_node().add_variable(0, "0:TestVar", 0, varianttype=ua.VariantType.Int64)
dv = server.read_attribute_value(node.nodeid, attr=ua.AttributeIds.Value)
assert dv.Value.Value == 0
dv = ua.DataValue(Value=ua.Variant(Value=5, VariantType=ua.VariantType.Int64))
await server.write_attribute_value(node.nodeid, dv, attr=ua.AttributeIds.Value)
dv = server.read_attribute_value(node.nodeid, attr=ua.AttributeIds.Value)
assert dv.Value.Value == 5
await server.delete_nodes([node])
"""
class TestServerCaching(unittest.TestCase):
......
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