SR_CONF_LOGIC_ANALYZER,
SR_CONF_SAMPLERATE,
SR_CONF_CAPTURE_RATIO,
+ SR_CONF_VOLTAGE_THRESHOLD,
SR_CONF_LIMIT_SAMPLES,
};
devc->cur_samplerate = SR_MHZ(1);
}
+ if (devc->cur_threshold == 0)
+ set_voltage_threshold(devc, 1.5);
+
return SR_OK;
}
sr_spew("Returning samplerate: %" PRIu64 "Hz.",
devc->cur_samplerate);
} else
- return SR_ERR;
+ return SR_ERR_ARG;
break;
case SR_CONF_CAPTURE_RATIO:
if (sdi) {
devc = sdi->priv;
*data = g_variant_new_uint64(devc->capture_ratio);
} else
- return SR_ERR;
+ return SR_ERR_ARG;
+ break;
+ case SR_CONF_VOLTAGE_THRESHOLD:
+ if (sdi) {
+ GVariant *range[2];
+ devc = sdi->priv;
+ range[0] = g_variant_new_double(devc->cur_threshold);
+ range[1] = g_variant_new_double(devc->cur_threshold);
+ *data = g_variant_new_tuple(range, 2);
+ } else
+ return SR_ERR_ARG;
break;
default:
return SR_ERR_NA;
const struct sr_probe_group *probe_group)
{
struct dev_context *devc;
+ gdouble low, high;
(void)probe_group;
return set_limit_samples(devc, g_variant_get_uint64(data));
case SR_CONF_CAPTURE_RATIO:
return set_capture_ratio(devc, g_variant_get_uint64(data));
+ case SR_CONF_VOLTAGE_THRESHOLD:
+ g_variant_get(data, "(dd)", &low, &high);
+ return set_voltage_threshold(devc, (low + high) / 2.0);
default:
return SR_ERR_NA;
}
const struct sr_probe_group *probe_group)
{
struct dev_context *devc;
- GVariant *gvar;
+ GVariant *gvar, *grange[2];
GVariantBuilder gvb;
+ double v;
+ GVariant *range[2];
(void)probe_group;
case SR_CONF_TRIGGER_TYPE:
*data = g_variant_new_string(TRIGGER_TYPE);
break;
+ case SR_CONF_VOLTAGE_THRESHOLD:
+ g_variant_builder_init(&gvb, G_VARIANT_TYPE_ARRAY);
+ for (v = -6.0; v <= 6.0; v += 0.1) {
+ range[0] = g_variant_new_double(v);
+ range[1] = g_variant_new_double(v);
+ gvar = g_variant_new_tuple(range, 2);
+ g_variant_builder_add_value(&gvb, gvar);
+ }
+ *data = g_variant_builder_end(&gvb);
+ break;
+ case SR_CONF_LIMIT_SAMPLES:
+ if (!sdi)
+ return SR_ERR_ARG;
+ devc = sdi->priv;
+ grange[0] = g_variant_new_uint64(0);
+ grange[1] = g_variant_new_uint64(devc->max_sample_depth);
+ *data = g_variant_new_tuple(grange, 2);
+ break;
default:
return SR_ERR_NA;
}