X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fscpi-pps%2Fapi.c;h=25bc7eed773424bd2f6ce2ef64e14530906bb54a;hb=e57057aee778e723da572a6b5e2bd01526cc7beb;hp=294c5a0e8e4617c8cb4f15715169347b7bcccf51;hpb=d66c93ccdafabffc0dda4f16bf3924a829cdb3bd;p=libsigrok.git diff --git a/src/hardware/scpi-pps/api.c b/src/hardware/scpi-pps/api.c index 294c5a0e..25bc7eed 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; @@ -400,7 +402,7 @@ static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sd select_channel(sdi, cg->channels->data); devc = sdi->priv; - ret = SR_OK; + switch (key) { case SR_CONF_ENABLED: if (g_variant_get_boolean(data))