conrad-digi-35-cpu: Add SR_CONF_LIST for voltage_target and current_limit. Change current_limit lower limit.
diff --git a/src/hardware/conrad-digi-35-cpu/api.c b/src/hardware/conrad-digi-35-cpu/api.c
index 0548d50..1524df0 100644
--- a/src/hardware/conrad-digi-35-cpu/api.c
+++ b/src/hardware/conrad-digi-35-cpu/api.c
@@ -32,8 +32,8 @@
};
static const uint32_t devopts[] = {
- SR_CONF_VOLTAGE_TARGET | SR_CONF_SET,
- SR_CONF_CURRENT_LIMIT | SR_CONF_SET,
+ SR_CONF_VOLTAGE_TARGET | SR_CONF_SET | SR_CONF_LIST,
+ SR_CONF_CURRENT_LIMIT | SR_CONF_SET | SR_CONF_LIST,
SR_CONF_OVER_CURRENT_PROTECTION_ENABLED | SR_CONF_SET,
};
@@ -111,7 +111,7 @@
return send_msg1(sdi, 'V', (int) (dblval * 10 + 0.5));
case SR_CONF_CURRENT_LIMIT:
dblval = g_variant_get_double(data);
- if ((dblval < 0.01) || (dblval > 2.55)) {
+ if ((dblval < 0.00) || (dblval > 2.55)) {
sr_err("Current out of range (0 - 2.55)!");
return SR_ERR_ARG;
}
@@ -131,7 +131,21 @@
static int config_list(uint32_t key, GVariant **data,
const struct sr_dev_inst *sdi, const struct sr_channel_group *cg)
{
- return STD_CONFIG_LIST(key, data, sdi, cg, scanopts, drvopts, devopts);
+ switch (key) {
+ case SR_CONF_SCAN_OPTIONS:
+ case SR_CONF_DEVICE_OPTIONS:
+ return STD_CONFIG_LIST(key, data, sdi, cg, scanopts, drvopts, devopts);
+ case SR_CONF_VOLTAGE_TARGET:
+ *data = std_gvar_min_max_step(0.0, 35.0, 0.1);
+ break;
+ case SR_CONF_CURRENT_LIMIT:
+ *data = std_gvar_min_max_step(0.0, 2.55, 0.01);
+ break;
+ default:
+ return SR_ERR_NA;
+ }
+
+ return SR_OK;
}
static struct sr_dev_driver conrad_digi_35_cpu_driver_info = {