From 1e020024e825e43269ef826fe271d95d296251f4 Mon Sep 17 00:00:00 2001 From: Noel Graf Date: Mon, 1 Nov 2021 13:17:00 +0100 Subject: [PATCH] fix(nc): Inherit the valueRank correctly --- .../check_nodeset_compiler_testnodeset.c | 4 +--- tools/nodeset_compiler/backend_open62541_nodes.py | 10 ++++------ 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/tests/nodeset-compiler/check_nodeset_compiler_testnodeset.c b/tests/nodeset-compiler/check_nodeset_compiler_testnodeset.c index e6deb1201..798f915c8 100644 --- a/tests/nodeset-compiler/check_nodeset_compiler_testnodeset.c +++ b/tests/nodeset-compiler/check_nodeset_compiler_testnodeset.c @@ -109,9 +109,7 @@ START_TEST(readValueRank) { UA_Variant dims; // scalar UA_Server_readValueRank(server, UA_NODEID_NUMERIC(testNamespaceIndex, 10002), &rank); - ck_assert_int_eq(rank, -1); - UA_Server_readValueRank(server, UA_NODEID_NUMERIC(testNamespaceIndex, 10002), &rank); - ck_assert_int_eq(rank, -1); + ck_assert_int_eq(rank, -2); UA_Variant_init(&dims); UA_Server_readArrayDimensions(server, UA_NODEID_NUMERIC(testNamespaceIndex, 10002), &dims); ck_assert_int_eq(dims.arrayLength, 0); diff --git a/tools/nodeset_compiler/backend_open62541_nodes.py b/tools/nodeset_compiler/backend_open62541_nodes.py index d0f433d2f..1818f9ba5 100644 --- a/tools/nodeset_compiler/backend_open62541_nodes.py +++ b/tools/nodeset_compiler/backend_open62541_nodes.py @@ -148,11 +148,10 @@ def setNodeValueRankRecursive(node, nodeset): setNodeValueRankRecursive(typeDefNode, nodeset) - if typeDefNode.valueRank is not None and typeDefNode.valueRank > -1: + if typeDefNode.valueRank is not None: node.valueRank = typeDefNode.valueRank else: - # Default value - node.valueRank = -1 + raise RuntimeError("Node {}: the ValueRank of the parent node is None.".format(str(node.id))) else: if node.parent is None: raise RuntimeError("Node {}: does not have a parent. Probably the parent node was blacklisted?".format(str(node.id))) @@ -161,11 +160,10 @@ def setNodeValueRankRecursive(node, nodeset): setNodeValueRankRecursive(node.parent, nodeset) - if node.parent.valueRank is not None and node.parent.valueRank > -1: + if node.parent.valueRank is not None: node.valueRank = node.parent.valueRank else: - # Default value - node.valueRank = -1 + raise RuntimeError("Node {}: the ValueRank of the parent node is None.".format(str(node.id))) def generateCommonVariableCode(node, nodeset):