static const struct {
enum voltage_range range;
-} volt_thresholds_ranges[] = {
+} thresholds_ranges[] = {
{ VOLTAGE_RANGE_18_33_V, },
{ VOLTAGE_RANGE_5_V, },
};
-static const double volt_thresholds[][2] = {
+static const double thresholds[][2] = {
{ 0.7, 1.4 },
{ 1.4, 3.6 },
};
{
struct dev_context *devc;
struct sr_usb_dev_inst *usb;
- int ret;
unsigned int i;
(void)cg;
- ret = SR_OK;
switch (key) {
case SR_CONF_CONN:
if (!sdi || !sdi->conn)
if (!sdi)
return SR_ERR;
devc = sdi->priv;
- ret = SR_ERR;
- for (i = 0; i < ARRAY_SIZE(volt_thresholds); i++) {
- if (devc->selected_voltage_range !=
- volt_thresholds_ranges[i].range)
+ for (i = 0; i < ARRAY_SIZE(thresholds); i++) {
+ if (devc->selected_voltage_range != thresholds_ranges[i].range)
continue;
- *data = std_gvar_tuple_double(volt_thresholds[i][0], volt_thresholds[i][1]);
- ret = SR_OK;
- break;
+ *data = std_gvar_tuple_double(thresholds[i][0], thresholds[i][1]);
+ return SR_OK;
}
- break;
+ return SR_ERR;
default:
return SR_ERR_NA;
}
- return ret;
+ return SR_OK;
}
static int config_set(uint32_t key, GVariant *data,
const struct sr_dev_inst *sdi, const struct sr_channel_group *cg)
{
struct dev_context *devc;
- gdouble low, high;
- int ret;
- unsigned int i;
+ int idx;
(void)cg;
devc = sdi->priv;
- ret = SR_OK;
switch (key) {
case SR_CONF_SAMPLERATE:
devc->cur_samplerate = g_variant_get_uint64(data);
break;
case SR_CONF_CAPTURE_RATIO:
devc->capture_ratio = g_variant_get_uint64(data);
- ret = (devc->capture_ratio > 100) ? SR_ERR : SR_OK;
break;
case SR_CONF_VOLTAGE_THRESHOLD:
- g_variant_get(data, "(dd)", &low, &high);
- ret = SR_ERR_ARG;
- for (i = 0; i < ARRAY_SIZE(volt_thresholds); i++) {
- if (fabs(volt_thresholds[i][0] - low) < 0.1 &&
- fabs(volt_thresholds[i][1] - high) < 0.1) {
- devc->selected_voltage_range =
- volt_thresholds_ranges[i].range;
- ret = SR_OK;
- break;
- }
- }
+ if ((idx = std_double_tuple_idx(data, ARRAY_AND_SIZE(thresholds))) < 0)
+ return SR_ERR_ARG;
+ devc->selected_voltage_range = thresholds_ranges[idx].range;
break;
default:
- ret = SR_ERR_NA;
+ return SR_ERR_NA;
}
- return ret;
+ return SR_OK;
}
static int config_list(uint32_t key, GVariant **data,
*data = std_gvar_samplerates(ARRAY_AND_SIZE(samplerates));
break;
case SR_CONF_VOLTAGE_THRESHOLD:
- *data = std_gvar_thresholds(ARRAY_AND_SIZE(volt_thresholds));
+ *data = std_gvar_thresholds(ARRAY_AND_SIZE(thresholds));
break;
case SR_CONF_TRIGGER_MATCH:
*data = std_gvar_array_i32(ARRAY_AND_SIZE(trigger_matches));
if ((trigger = sr_session_trigger_get(sdi->session))) {
int pre_trigger_samples = 0;
if (devc->limit_samples > 0)
- pre_trigger_samples = devc->capture_ratio * devc->limit_samples/100;
+ pre_trigger_samples = (devc->capture_ratio * devc->limit_samples) / 100;
devc->stl = soft_trigger_logic_new(sdi, trigger, pre_trigger_samples);
if (!devc->stl)
return SR_ERR_MALLOC;