From eb5db977fee2952f01274492a9710889d0e9c6ab Mon Sep 17 00:00:00 2001 From: Jan David Mol <mol@astron.nl> Date: Wed, 19 May 2021 16:50:05 +0200 Subject: [PATCH] L2SS-182: Fix writing of string arrays, which aren't sent as numpy arrays --- devices/clients/opcua_connection.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/devices/clients/opcua_connection.py b/devices/clients/opcua_connection.py index 85afdfa08..f6915250d 100644 --- a/devices/clients/opcua_connection.py +++ b/devices/clients/opcua_connection.py @@ -215,16 +215,15 @@ class ProtocolAttribute: """ write_RW function """ - # set_data_value(opcua.ua.uatypes.Variant(value = value.tolist(), varianttype=opcua.ua.VariantType.Int32)) if self.dim_y != 0: - v = numpy.concatenate(value) - self.node.set_data_value(opcua.ua.uatypes.Variant(value=v.tolist(), varianttype=self.ua_type)) - + # flatten array, convert to python array + value = numpy.concatenate(value).tolist() elif self.dim_x != 1: - self.node.set_data_value(opcua.ua.uatypes.Variant(value=value.tolist(), varianttype=self.ua_type)) - else: - self.node.set_data_value(opcua.ua.uatypes.Variant(value=value, varianttype=self.ua_type)) + # make sure it is a python array + value = value.tolist() if type(value) == numpy.ndarray else value + + self.node.set_data_value(opcua.ua.uatypes.Variant(value=value, varianttype=self.ua_type)) -- GitLab