]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/manson-hcs-3xxx/api.c
input/logicport: Fix outdated format_match().
[libsigrok.git] / src / hardware / manson-hcs-3xxx / api.c
index c7991c31c2fdf21a52d09cb4f5997fc6b8c170fb..765d9abc78682a905cde53a680cab51ae7fd0414 100644 (file)
@@ -250,11 +250,15 @@ static int config_set(uint32_t key, GVariant *data,
                break;
        case SR_CONF_ENABLED:
                bval = g_variant_get_boolean(data);
-               if (bval == devc->output_enabled) /* Nothing to do. */
-                       break;
-               if ((hcs_send_cmd(sdi->conn, "SOUT%1d\r", !bval) < 0) ||
-                   (hcs_read_reply(sdi->conn, 1, devc->buf, sizeof(devc->buf)) < 0))
+
+               if (hcs_send_cmd(sdi->conn, "SOUT%1d\r", !bval) < 0) {
+                       sr_err("Could not send SR_CONF_ENABLED command.");
+                       return SR_ERR;
+               }
+               if (hcs_read_reply(sdi->conn, 1, devc->buf, sizeof(devc->buf)) < 0) {
+                       sr_err("Could not read SR_CONF_ENABLED reply.");
                        return SR_ERR;
+               }
                devc->output_enabled = bval;
                break;
        default:
@@ -277,10 +281,14 @@ static int config_list(uint32_t key, GVariant **data,
        case SR_CONF_DEVICE_OPTIONS:
                return STD_CONFIG_LIST(key, data, sdi, cg, scanopts, drvopts, devopts);
        case SR_CONF_VOLTAGE_TARGET:
+               if (!devc || !devc->model)
+                       return SR_ERR_ARG;
                a = devc->model->voltage;
                *data = std_gvar_min_max_step(a[0], devc->voltage_max_device, a[2]);
                break;
        case SR_CONF_CURRENT_LIMIT:
+               if (!devc || !devc->model)
+                       return SR_ERR_ARG;
                a = devc->model->current;
                *data = std_gvar_min_max_step(a[0], devc->current_max_device, a[2]);
                break;