+ case SR_CONF_OUTPUT_CURRENT_MAX:
+ dval = g_variant_get_double(data);
+ if (dval < devc->model->current[0] || dval > devc->current_max_device)
+ return SR_ERR_ARG;
+
+ if ((hcs_send_cmd(sdi->conn, "CURR%03.0f\r",
+ (dval / devc->model->current[2])) < 0) ||
+ (hcs_read_reply(sdi->conn, 1, devc->buf, sizeof(devc->buf)) < 0))
+ return SR_ERR;
+ devc->current_max = dval;
+ break;
+ case SR_CONF_OUTPUT_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))
+ return SR_ERR;
+ devc->output_enabled = bval;
+ break;
+ case SR_CONF_OUTPUT_VOLTAGE_MAX:
+ dval = g_variant_get_double(data);
+ if (dval < devc->model->voltage[0] || dval > devc->voltage_max_device)
+ return SR_ERR_ARG;
+
+ if ((hcs_send_cmd(sdi->conn, "VOLT%03.0f\r",
+ (dval / devc->model->voltage[2])) < 0) ||
+ (hcs_read_reply(sdi->conn, 1, devc->buf, sizeof(devc->buf)) < 0))
+ return SR_ERR;
+ devc->voltage_max = dval;
+ break;