return sr_scpi_scan(di->context, options, probe_serial_device);
}
-static void clear_helper(void *priv)
+static void clear_helper(struct dev_context *devc)
{
- struct dev_context *devc;
-
- devc = priv;
-
lecroy_xstream_state_free(devc->model_state);
-
g_free(devc->analog_groups);
-
- g_free(devc);
}
static int dev_clear(const struct sr_dev_driver *di)
{
- return std_dev_clear(di, clear_helper);
+ return std_dev_clear_with_callback(di, (std_dev_clear_callback)clear_helper);
}
static int dev_open(struct sr_dev_inst *sdi)
static int dev_close(struct sr_dev_inst *sdi)
{
- sr_scpi_close(sdi->conn);
-
- sdi->status = SR_ST_INACTIVE;
-
- return SR_OK;
+ return sr_scpi_close(sdi->conn);
}
static int config_get(uint32_t key, GVariant **data,
const struct sr_dev_inst *sdi, const struct sr_channel_group *cg)
{
- int ret;
unsigned int i;
struct dev_context *devc;
const struct scope_config *model;
devc = sdi->priv;
- ret = SR_ERR_NA;
model = devc->model_config;
state = devc->model_state;
*data = NULL;
switch (key) {
case SR_CONF_NUM_HDIV:
*data = g_variant_new_int32(model->num_xdivs);
- ret = SR_OK;
break;
case SR_CONF_TIMEBASE:
*data = g_variant_new("(tt)",
model->timebases[state->timebase].p,
model->timebases[state->timebase].q);
- ret = SR_OK;
break;
case SR_CONF_NUM_VDIV:
for (i = 0; i < model->analog_channels; i++) {
if (cg != devc->analog_groups[i])
continue;
*data = g_variant_new_int32(model->num_ydivs);
- ret = SR_OK;
}
break;
case SR_CONF_VDIV:
*data = g_variant_new("(tt)",
model->vdivs[state->analog_channels[i].vdiv].p,
model->vdivs[state->analog_channels[i].vdiv].q);
- ret = SR_OK;
}
break;
case SR_CONF_TRIGGER_SOURCE:
*data = g_variant_new_string((*model->trigger_sources)[state->trigger_source]);
- ret = SR_OK;
break;
case SR_CONF_TRIGGER_SLOPE:
*data = g_variant_new_string((*model->trigger_slopes)[state->trigger_slope]);
- ret = SR_OK;
break;
case SR_CONF_HORIZ_TRIGGERPOS:
*data = g_variant_new_double(state->horiz_triggerpos);
- ret = SR_OK;
break;
case SR_CONF_COUPLING:
for (i = 0; i < model->analog_channels; i++) {
if (cg != devc->analog_groups[i])
continue;
*data = g_variant_new_string((*model->coupling_options)[state->analog_channels[i].coupling]);
- ret = SR_OK;
}
break;
case SR_CONF_SAMPLERATE:
*data = g_variant_new_uint64(state->sample_rate);
- ret = SR_OK;
break;
case SR_CONF_ENABLED:
*data = g_variant_new_boolean(FALSE);
- ret = SR_OK;
break;
default:
- ret = SR_ERR_NA;
+ return SR_ERR_NA;
}
- return ret;
+ return SR_OK;
}
static GVariant *build_tuples(const struct sr_rational *array, unsigned int n)