+ if (ret != SR_OK)
+ return ret;
+
+ if (g_variant_type_equal(gvtype, G_VARIANT_TYPE_BOOLEAN)) {
+ if ((ret = sr_scpi_get_string(scpi, NULL, &s)) != SR_OK)
+ return ret;
+ if (!strcasecmp(s, "ON") || !strcasecmp(s, "1") || !strcasecmp(s, "YES"))
+ *gvar = g_variant_new_boolean(TRUE);
+ else if (!strcasecmp(s, "OFF") || !strcasecmp(s, "0") || !strcasecmp(s, "NO"))
+ *gvar = g_variant_new_boolean(FALSE);
+ else
+ ret = SR_ERR;
+ } if (g_variant_type_equal(gvtype, G_VARIANT_TYPE_DOUBLE)) {
+ if ((ret = sr_scpi_get_double(scpi, NULL, &d)) == SR_OK)
+ *gvar = g_variant_new_double(d);
+ } if (g_variant_type_equal(gvtype, G_VARIANT_TYPE_STRING)) {
+ if ((ret = sr_scpi_get_string(scpi, NULL, &s)) == SR_OK)
+ *gvar = g_variant_new_string(s);
+ }