MCPcopy Create free account
hub / github.com/FreeOpcUa/python-opcua / nodeid_from_binary

Function nodeid_from_binary

opcua/ua/ua_binary.py:333–361  ·  view source on GitHub ↗
(data)

Source from the content-addressed store, hash-verified

331
332
333def nodeid_from_binary(data):
334 nid = ua.NodeId()
335 encoding = ord(data.read(1))
336 nid.NodeIdType = ua.NodeIdType(encoding & 0b00111111)
337
338 if nid.NodeIdType == ua.NodeIdType.TwoByte:
339 nid.Identifier = ord(data.read(1))
340 elif nid.NodeIdType == ua.NodeIdType.FourByte:
341 nid.NamespaceIndex, nid.Identifier = struct.unpack("<BH", data.read(3))
342 elif nid.NodeIdType == ua.NodeIdType.Numeric:
343 nid.NamespaceIndex, nid.Identifier = struct.unpack("<HI", data.read(6))
344 elif nid.NodeIdType == ua.NodeIdType.String:
345 nid.NamespaceIndex = Primitives.UInt16.unpack(data)
346 nid.Identifier = Primitives.String.unpack(data)
347 elif nid.NodeIdType == ua.NodeIdType.ByteString:
348 nid.NamespaceIndex = Primitives.UInt16.unpack(data)
349 nid.Identifier = Primitives.Bytes.unpack(data)
350 elif nid.NodeIdType == ua.NodeIdType.Guid:
351 nid.NamespaceIndex = Primitives.UInt16.unpack(data)
352 nid.Identifier = Primitives.Guid.unpack(data)
353 else:
354 raise UaError("Unknown NodeId encoding: " + str(nid.NodeIdType))
355
356 if test_bit(encoding, 7):
357 nid.NamespaceUri = Primitives.String.unpack(data)
358 if test_bit(encoding, 6):
359 nid.ServerIndex = Primitives.UInt32.unpack(data)
360
361 return nid
362
363
364def variant_to_binary(var):

Callers 8

check_answerMethod · 0.90
process_messageMethod · 0.90
test_nodeid_nsuMethod · 0.90
test_nodeidMethod · 0.90
test_expandednodeidMethod · 0.90
unpack_uatypeFunction · 0.85

Calls 4

UaErrorClass · 0.90
test_bitFunction · 0.85
readMethod · 0.45
unpackMethod · 0.45

Tested by 4

test_nodeid_nsuMethod · 0.72
test_nodeidMethod · 0.72
test_expandednodeidMethod · 0.72