From: Aurelien Jacobs Date: Sun, 20 Sep 2015 14:43:43 +0000 (+0200) Subject: scpi-pps: cleaner rewriting of output regulation GVariant X-Git-Tag: libsigrok-0.4.0~272 X-Git-Url: https://sigrok.org/gitweb/?p=libsigrok.git;a=commitdiff_plain;h=069d9f25d9f63e35885a7e4c83e8587f0356d8f9 scpi-pps: cleaner rewriting of output regulation GVariant --- diff --git a/src/hardware/scpi-pps/api.c b/src/hardware/scpi-pps/api.c index 294c5a0e..fb6a36e2 100644 --- a/src/hardware/scpi-pps/api.c +++ b/src/hardware/scpi-pps/api.c @@ -262,7 +262,7 @@ static int config_get(uint32_t key, GVariant **data, const struct sr_dev_inst *s const GVariantType *gvtype; unsigned int i; int cmd, ret; - char *s; + const char *s; if (!sdi) return SR_ERR_ARG; @@ -366,17 +366,19 @@ static int config_get(uint32_t key, GVariant **data, const struct sr_dev_inst *s * the Rigol notation. */ s = g_variant_get_string(*data, NULL); - if (!strcmp(s, "CV") || !strcmp(s, "VOLT")) { + if (!strcmp(s, "VOLT")) { + g_variant_unref(*data); *data = g_variant_new_string("CV"); - } else if (!strcmp(s, "CC") || !strcmp(s, "CURR")) { + } else if (!strcmp(s, "CURR")) { + g_variant_unref(*data); *data = g_variant_new_string("CC"); - } else if (!strcmp(s, "UR")) { - *data = g_variant_new_string("UR"); - } else { + } + + s = g_variant_get_string(*data, NULL); + if (strcmp(s, "CV") && strcmp(s, "CC") && strcmp(s, "UR")) { sr_dbg("Unknown response to SCPI_CMD_GET_OUTPUT_REGULATION: %s", s); ret = SR_ERR_DATA; } - g_free(s); } return ret;