Exemplo n.º 1
0
 def test_string_to_variant_status_code(self):
     s_statuscode = "Good"
     statuscode = ua.StatusCode(ua.StatusCodes.Good)
     s_statuscode2 = "Uncertain"
     statuscode2 = ua.StatusCode(ua.StatusCodes.Uncertain)
     self.assertEqual(string_to_val(s_statuscode, ua.VariantType.StatusCode), statuscode)
     self.assertEqual(string_to_val(s_statuscode2, ua.VariantType.StatusCode), statuscode2)
Exemplo n.º 2
0
 def test_string_to_variant_status_code(self):
     s_statuscode = "Good"
     statuscode = ua.StatusCode(ua.StatusCodes.Good)
     s_statuscode2 = "Uncertain"
     statuscode2 = ua.StatusCode(ua.StatusCodes.Uncertain)
     self.assertEqual(string_to_val(s_statuscode, ua.VariantType.StatusCode), statuscode)
     self.assertEqual(string_to_val(s_statuscode2, ua.VariantType.StatusCode), statuscode2)
Exemplo n.º 3
0
 def test_string_to_variant_datetime_string(self):
     s_arr_datetime = "[2014-05-6, 2016-10-3]"
     arr_string = ['2014-05-6', '2016-10-3']
     arr_datetime = [datetime(2014, 5, 6), datetime(2016, 10, 3)]
     s_datetime = "2014-05-3"
     self.assertEqual(val_to_string(arr_string), s_arr_datetime)
     self.assertEqual(string_to_val(s_arr_datetime, ua.VariantType.String), arr_string)
     self.assertEqual(string_to_val(s_arr_datetime, ua.VariantType.DateTime), arr_datetime )
Exemplo n.º 4
0
 def test_string_to_variant_datetime_string(self):
     s_arr_datetime = "[2014-05-6, 2016-10-3]"
     arr_string = ['2014-05-6', '2016-10-3']
     arr_datetime = [datetime(2014, 5, 6), datetime(2016, 10, 3)]
     s_datetime = "2014-05-3"
     self.assertEqual(val_to_string(arr_string), s_arr_datetime)
     self.assertEqual(string_to_val(s_arr_datetime, ua.VariantType.String), arr_string)
     self.assertEqual(string_to_val(s_arr_datetime, ua.VariantType.DateTime), arr_datetime)
Exemplo n.º 5
0
    def test_string_to_variant_int(self):
        s_arr_uint = "[1, 2, 3, 4]"
        arr_uint = [1, 2, 3, 4]
        s_uint = "1"

        self.assertEqual(string_to_val(s_arr_uint, ua.VariantType.UInt32), arr_uint)
        self.assertEqual(string_to_val(s_arr_uint, ua.VariantType.UInt16), arr_uint)
        self.assertEqual(val_to_string(arr_uint), s_arr_uint)
Exemplo n.º 6
0
    def test_string_to_variant_int(self):
        s_arr_uint = "[1, 2, 3, 4]"
        arr_uint = [1, 2, 3, 4]
        s_uint = "1"

        self.assertEqual(string_to_val(s_arr_uint, ua.VariantType.UInt32), arr_uint)
        self.assertEqual(string_to_val(s_arr_uint, ua.VariantType.UInt16), arr_uint)
        self.assertEqual(val_to_string(arr_uint), s_arr_uint)
Exemplo n.º 7
0
 def _set_member_data(self, data, editor, model, idx):
     val = string_to_val(editor.text(), data.uatype)
     data.value = val
     model.setItemData(idx, {Qt.DisplayRole: editor.text(), Qt.UserRole: data})
     setattr(data.obj, data.name, val)
     attr_data = self._get_attr_data(idx, model)
     self._write_attr(attr_data)
Exemplo n.º 8
0
 def test_string_to_variant_localized_text(self):
     string = "_This is my string"
     # string = "_This is my nøåæ"FIXME: does not work with python2 ?!?!
     obj = ua.LocalizedText(string)
     self.assertEqual(string_to_val(string, ua.VariantType.LocalizedText),
                      obj)
     self.assertEqual(val_to_string(obj), string)
Exemplo n.º 9
0
 def _set_member_data(self, data, editor, model, idx):
     val = string_to_val(editor.text(), data.uatype)
     data.value = val
     model.setItemData(idx, {Qt.DisplayRole: editor.text(), Qt.UserRole: data})
     setattr(data.obj, data.name, val)
     attr_data = self._get_attr_data(idx, model)
     self._write_attr(attr_data)
Exemplo n.º 10
0
 def test_string_to_variant_nodeid(self):
     s_arr_nodeid = "[ns=2;i=56, i=45]"
     arr_nodeid = [
         ua.NodeId.from_string("ns=2;i=56"),
         ua.NodeId.from_string("i=45")
     ]
     s_nodeid = "i=45"
     self.assertEqual(string_to_val(s_arr_nodeid, ua.VariantType.NodeId),
                      arr_nodeid)
Exemplo n.º 11
0
 def write(self):
     try:
         uatype = self.node.get_data_type_as_variant_type()
         data = string_to_val(self.ui.writeValue.text(), uatype)
         dv = ua.DataValue(ua.Variant(data, varianttype=uatype))
         self.node.set_value(dv)
     except Exception as ex:
         self.log.append(str(ex))
     finally:
         self.accept()
Exemplo n.º 12
0
    def test_string_to_val_xml_element(self):
        string = "<p> titi toto </p>"
        obj = ua.XmlElement(string)

        self.assertEqual(string_to_val(string, ua.VariantType.XmlElement), obj)
        self.assertEqual(val_to_string(obj), string)

        b = obj.to_binary()
        obj2 = obj.from_binary(ua.utils.Buffer(b))
        self.assertEqual(obj, obj2)
Exemplo n.º 13
0
    def test_string_to_val_xml_element(self):
        string = "<p> titi toto </p>"
        obj = ua.XmlElement(string)

        self.assertEqual(string_to_val(string, ua.VariantType.XmlElement), obj)
        self.assertEqual(val_to_string(obj), string)

        b = struct_to_binary(obj)
        obj2 = struct_from_binary(ua.XmlElement, ua.utils.Buffer(b))
        self.assertEqual(obj, obj2)
Exemplo n.º 14
0
    def _set_attribute_data(self, data, editor, model, idx):
        if data.attr is ua.AttributeIds.Value:
            #for value we checkd data type from the variable data type
            # this is more robust
            try:
                data.uatype = self.attrs_widget.current_node.get_data_type_as_variant_type(
                )
            except Exception as ex:
                logger.exception("Could get primitive type of variable %s",
                                 self.attrs_widget.current_node)
                self.error.emit(ex)
                raise

        if data.attr == ua.AttributeIds.NodeClass:
            data.value = ua.NodeClass[editor.currentText()]
            text = editor.currentText()
        elif data.attr == ua.AttributeIds.ValueRank:
            data.value = ua.ValueRank[editor.currentText()]
            text = editor.currentText()
        elif data.attr == ua.AttributeIds.DataType:
            data.value = editor.get_node().nodeid
            text = data_type_to_string(data.value)
        elif data.attr in (ua.AttributeIds.AccessLevel,
                           ua.AttributeIds.UserAccessLevel,
                           ua.AttributeIds.WriteMask,
                           ua.AttributeIds.UserWriteMask,
                           ua.AttributeIds.EventNotifier):
            data.value = editor.get_byte()
            text = enum_to_string(data.attr, data.value)
        else:
            if isinstance(editor, QComboBox):
                text = editor.currentText()
            else:
                text = editor.text()
            data.value = string_to_val(text, data.uatype)
        model.setItemData(idx, {Qt.DisplayRole: text, Qt.UserRole: data})
        self._write_attr(data)
        if isinstance(data.value, list):
            # we need to refresh children
            item = self.attrs_widget.model.itemFromIndex(idx.sibling(0, 0))
            self.attrs_widget.refresh_list(item, data.value, data.uatype)
Exemplo n.º 15
0
    def _set_attribute_data(self, data, editor, model, idx):
        if data.attr is ua.AttributeIds.Value:
            #for value we checkd data type from the variable data type
            # this is more robust
            try:
                data.uatype = self.attrs_widget.current_node.get_data_type_as_variant_type()
            except Exception as ex:
                logger.exception("Could get primitive type of variable %s", self.attrs_widget.current_node)
                self.error.emit(ex)
                raise

        if data.attr == ua.AttributeIds.NodeClass:
            data.value = ua.NodeClass[editor.currentText()]
            text = editor.currentText()
        elif data.attr == ua.AttributeIds.ValueRank:
            data.value = ua.ValueRank[editor.currentText()]
            text = editor.currentText()
        elif data.attr == ua.AttributeIds.DataType:
            data.value = editor.get_node().nodeid
            text = data_type_to_string(data.value)
        elif data.attr in (ua.AttributeIds.AccessLevel,
                           ua.AttributeIds.UserAccessLevel,
                           ua.AttributeIds.WriteMask,
                           ua.AttributeIds.UserWriteMask,
                           ua.AttributeIds.EventNotifier):
            data.value = editor.get_byte()
            text = enum_to_string(data.attr, data.value)
        else:
            if isinstance(editor, QComboBox):
                text = editor.currentText()
            else:
                text = editor.text()
            data.value = string_to_val(text, data.uatype)
        model.setItemData(idx, {Qt.DisplayRole: text, Qt.UserRole: data})
        self._write_attr(data)
        if isinstance(data.value, list):
            # we need to refresh children
            item = self.attrs_widget.model.itemFromIndex(idx.sibling(0, 0))
            self.attrs_widget.refresh_list(item, data.value, data.uatype)
Exemplo n.º 16
0
 def _set_list_data(self, data, editor, model, idx):
     text = editor.text()
     data.mylist[data.idx] = string_to_val(text, data.uatype)
     model.setItemData(idx, {Qt.DisplayRole: text, Qt.UserRole: data})
     attr_data = self._get_attr_data(idx, model)
     self._write_attr(attr_data)
Exemplo n.º 17
0
 def test_string_to_variant_qname(self):
     string = "2:name"
     obj = ua.QualifiedName("name", 2)
     self.assertEqual(string_to_val(string, ua.VariantType.QualifiedName),
                      obj)
     self.assertEqual(val_to_string(obj), string)
Exemplo n.º 18
0
 def test_string_to_variant_float(self):
     s_arr_float = "[1.1, 2.1, 3, 4.0]"
     arr_float = [1.1, 2.1, 3, 4.0]
     s_float = "1.9"
     self.assertEqual(string_to_val(s_float, ua.VariantType.Float), 1.9)
     self.assertEqual(val_to_string(arr_float), s_arr_float)
Exemplo n.º 19
0
 def test_string_to_variant_localized_text(self):
     string = "_This is my string"
     #string = "_This is my nøåæ"FIXME: does not work with python2 ?!?!
     obj = ua.LocalizedText(string)
     self.assertEqual(string_to_val(string, ua.VariantType.LocalizedText), obj)
     self.assertEqual(val_to_string(obj), string)
Exemplo n.º 20
0
def ua_type_to_python(val, uatype_as_str):
    """
    Converts a string value to a python value according to ua_utils.
    """
    return ua_utils.string_to_val(val, getattr(ua.VariantType, uatype_as_str))
Exemplo n.º 21
0
 def test_string_to_variant_qname(self):
     string = "2:name"
     obj = ua.QualifiedName("name", 2)
     self.assertEqual(string_to_val(string, ua.VariantType.QualifiedName), obj)
     self.assertEqual(val_to_string(obj), string)
Exemplo n.º 22
0
 def _set_list_data(self, data, editor, model, idx):
     text = editor.text()
     data.mylist[data.idx] = string_to_val(text, data.uatype)
     model.setItemData(idx, {Qt.DisplayRole: text, Qt.UserRole: data})
     attr_data = self._get_attr_data(idx, model)
     self._write_attr(attr_data)
Exemplo n.º 23
0
 def test_string_to_variant_nodeid(self):
     s_arr_nodeid = "[ns=2;i=56, i=45]"
     arr_nodeid = [ua.NodeId.from_string("ns=2;i=56"), ua.NodeId.from_string("i=45")]
     s_nodeid = "i=45"
     self.assertEqual(string_to_val(s_arr_nodeid, ua.VariantType.NodeId), arr_nodeid)
Exemplo n.º 24
0
def ua_type_to_python(val, uatype_as_str):
    """
    Converts a string value to a python value according to ua_utils.
    """
    return ua_utils.string_to_val(val, getattr(ua.VariantType, uatype_as_str))
Exemplo n.º 25
0
 def test_string_to_variant_float(self):
     s_arr_float = "[1.1, 2.1, 3, 4.0]"
     arr_float = [1.1, 2.1, 3, 4.0]
     s_float = "1.9"
     self.assertEqual(string_to_val(s_float, ua.VariantType.Float), 1.9)
     self.assertEqual(val_to_string(arr_float), s_arr_float)