Example #1
0
    def from_binary(data):
        nid = NodeId()
        encoding = ord(data.read(1))
        nid.NodeIdType = NodeIdType(encoding & 0b00111111)

        if nid.NodeIdType == NodeIdType.TwoByte:
            nid.Identifier = ord(data.read(1))
        elif nid.NodeIdType == NodeIdType.FourByte:
            nid.NamespaceIndex, nid.Identifier = struct.unpack("<BH", data.read(3))
        elif nid.NodeIdType == NodeIdType.Numeric:
            nid.NamespaceIndex, nid.Identifier = struct.unpack("<HI", data.read(6))
        elif nid.NodeIdType == NodeIdType.String:
            nid.NamespaceIndex = uabin.Primitives.UInt16.unpack(data)
            nid.Identifier = uabin.Primitives.String.unpack(data)
        elif nid.NodeIdType == NodeIdType.ByteString:
            nid.NamespaceIndex = uabin.Primitives.UInt16.unpack(data)
            nid.Identifier = uabin.Primitives.Bytes.unpack(data)
        elif nid.NodeIdType == NodeIdType.Guid:
            nid.NamespaceIndex = uabin.Primitives.UInt16.unpack(data)
            nid.Identifier = uabin.Primitives.Guid.unpack(data)
        else:
            raise UaError("Unknown NodeId encoding: " + str(nid.NodeIdType))

        if uabin.test_bit(encoding, 7):
            nid.NamespaceUri = uabin.Primitives.String.unpack(data)
        if uabin.test_bit(encoding, 6):
            nid.ServerIndex = uabin.Primitives.UInt32.unpack(data)

        return nid
Example #2
0
    def from_binary(data):
        nid = NodeId()
        encoding = ord(data.read(1))
        nid.NodeIdType = NodeIdType(encoding & 0b00111111)

        if nid.NodeIdType == NodeIdType.TwoByte:
            nid.Identifier = ord(data.read(1))
        elif nid.NodeIdType == NodeIdType.FourByte:
            nid.NamespaceIndex, nid.Identifier = struct.unpack("<BH", data.read(3))
        elif nid.NodeIdType == NodeIdType.Numeric:
            nid.NamespaceIndex, nid.Identifier = struct.unpack("<HI", data.read(6))
        elif nid.NodeIdType == NodeIdType.String:
            nid.NamespaceIndex = uabin.Primitives.UInt16.unpack(data)
            nid.Identifier = uabin.Primitives.String.unpack(data)
        elif nid.NodeIdType == NodeIdType.ByteString:
            nid.NamespaceIndex = uabin.Primitives.UInt16.unpack(data)
            nid.Identifier = uabin.Primitives.Bytes.unpack(data)
        elif nid.NodeIdType == NodeIdType.Guid:
            nid.NamespaceIndex = uabin.Primitives.UInt16.unpack(data)
            nid.Identifier = uabin.Primitives.Guid.unpack(data)
        else:
            raise UaError("Unknown NodeId encoding: " + str(nid.NodeIdType))

        if uabin.test_bit(encoding, 7):
            nid.NamespaceUri = uabin.Primitives.String.unpack(data)
        if uabin.test_bit(encoding, 6):
            nid.ServerIndex = uabin.Primitives.UInt32.unpack(data)

        return nid
Example #3
0
def get_name_and_doc(val):
    if val in code_to_name_doc:
        return code_to_name_doc[val]
    else:
        if uabin.test_bit(val, 31):
            return 'Bad', 'Unknown StatusCode value: {}'.format(val)
        elif uabin.test_bit(val, 30):
            return 'UncertainIn', 'Unknown StatusCode value: {}'.format(val)
        else:
            return 'Good', 'Unknown StatusCode value: {}'.format(val)
Example #4
0
def get_name_and_doc(val):
    if val in code_to_name_doc:
        return code_to_name_doc[val]
    else:
        if uabin.test_bit(val, 31):
            return 'Bad', 'Unknown StatusCode value: {}'.format(val)
        elif uabin.test_bit(val, 30):
            return 'UncertainIn', 'Unknown StatusCode value: {}'.format(val)
        else:
            return 'Good', 'Unknown StatusCode value: {}'.format(val)
Example #5
0
 def from_binary(data):
     dimensions = None
     array = False
     encoding = ord(data.read(1))
     int_type = encoding & 0b00111111
     vtype = datatype_to_varianttype(int_type)
     if uabin.test_bit(encoding, 7):
         value = uabin.unpack_uatype_array(vtype, data)
         array = True
     else:
         value = uabin.unpack_uatype(vtype, data)
     if uabin.test_bit(encoding, 6):
         dimensions = uabin.unpack_uatype_array(VariantType.Int32, data)
         value = reshape(value, dimensions)
     return Variant(value, vtype, dimensions, is_array=array)
Example #6
0
 def from_binary(data):
     dimensions = None
     array = False
     encoding = ord(data.read(1))
     int_type = encoding & 0b00111111
     vtype = datatype_to_varianttype(int_type)
     if uabin.test_bit(encoding, 7):
         value = uabin.unpack_uatype_array(vtype, data)
         array = True
     else:
         value = uabin.unpack_uatype(vtype, data)
     if uabin.test_bit(encoding, 6):
         dimensions = uabin.unpack_uatype_array(VariantType.Int32, data)
         value = reshape(value, dimensions)
     return Variant(value, vtype, dimensions, is_array=array)
Example #7
0
    def from_binary(data):
        dimensions = None
        encoding = ord(data.read(1))
        int_type = encoding & 0b00111111
        vtype = DataType_to_VariantType(int_type)
        if vtype == VariantType.Null:
            return Variant(None, vtype, encoding)
        if uabin.test_bit(encoding, 7):
            value = uabin.unpack_uatype_array(vtype, data)
        else:
            value = uabin.unpack_uatype(vtype, data)
        if uabin.test_bit(encoding, 6):
            dimensions = uabin.unpack_uatype_array(VariantType.Int32, data)
            value = reshape(value, dimensions)

        return Variant(value, vtype, dimensions)
Example #8
0
    def from_binary(data):
        dimensions = None
        encoding = ord(data.read(1))
        int_type = encoding & 0b00111111
        vtype = DataType_to_VariantType(int_type)
        if vtype == VariantType.Null:
            return Variant(None, vtype, encoding)
        if uabin.test_bit(encoding, 7):
            value = uabin.unpack_uatype_array(vtype, data)
        else:
            value = uabin.unpack_uatype(vtype, data)
        if uabin.test_bit(encoding, 6):
            dimensions = uabin.unpack_uatype_array(VariantType.Int32, data)
            value = reshape(value, dimensions)

        return Variant(value, vtype, dimensions)