Skip to content

Commit 19ee547

Browse files
bitkeeperoroulet
authored andcommitted
Fixed (S)Byte string_to_val
1 parent fddb72d commit 19ee547

2 files changed

Lines changed: 17 additions & 3 deletions

File tree

opcua/common/ua_utils.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,15 +78,15 @@ def string_to_val(string, vtype):
7878
val = True
7979
else:
8080
val = False
81-
elif vtype in (ua.VariantType.Int16, ua.VariantType.Int32, ua.VariantType.Int64):
81+
elif vtype in (ua.VariantType.SByte, ua.VariantType.Int16, ua.VariantType.Int32, ua.VariantType.Int64):
8282
val = int(string)
83-
elif vtype in (ua.VariantType.UInt16, ua.VariantType.UInt32, ua.VariantType.UInt64):
83+
elif vtype in (ua.VariantType.Byte, ua.VariantType.UInt16, ua.VariantType.UInt32, ua.VariantType.UInt64):
8484
val = int(string)
8585
elif vtype in (ua.VariantType.Float, ua.VariantType.Double):
8686
val = float(string)
8787
elif vtype in (ua.VariantType.String, ua.VariantType.XmlElement):
8888
val = string
89-
elif vtype in (ua.VariantType.Byte, ua.VariantType.SByte, ua.VariantType.ByteString):
89+
elif vtype == ua.VariantType.ByteString:
9090
val = string.encode("utf-8")
9191
elif vtype in (ua.VariantType.NodeId, ua.VariantType.ExpandedNodeId):
9292
val = ua.NodeId.from_string(string)

tests/tests_xml.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,3 +380,17 @@ def _test_xml_var_type(self, node, typename, test_equality=True):
380380
self.assertEqual(dim, node2.get_array_dimensions())
381381
self.assertEqual(nclass, node2.get_node_class())
382382
return node2
383+
384+
def test_xml_byte(self):
385+
o = self.opc.nodes.objects.add_variable(2, "byte", 255, ua.VariantType.Byte)
386+
dtype = o.get_data_type()
387+
dv = o.get_data_value()
388+
389+
self.opc.export_xml([o], "export-byte.xml")
390+
self.opc.delete_nodes([o])
391+
new_nodes = self.opc.import_xml("export-byte.xml")
392+
o2 = self.opc.get_node(new_nodes[0])
393+
394+
self.assertEqual(o, o2)
395+
self.assertEqual(dtype, o2.get_data_type())
396+
self.assertEqual(dv.Value, o2.get_data_value().Value)

0 commit comments

Comments
 (0)