"D15",
};
+static const char *trigger_slopes[] = {
+ "r",
+ "f",
+};
+
static const char *coupling[] = {
"AC",
"DC",
gchar *channel_name, **version;
if (sr_scpi_get_hw_id(scpi, &hw_info) != SR_OK) {
- sr_info("Couldn't get IDN response.");
+ sr_info("Couldn't get IDN response, retrying.");
sr_scpi_close(scpi);
- sr_scpi_free(scpi);
- return NULL;
+ sr_scpi_open(scpi);
+ if (sr_scpi_get_hw_id(scpi, &hw_info) != SR_OK) {
+ sr_info("Couldn't get IDN response.");
+ return NULL;
+ }
}
for (i = 0; i < ARRAY_SIZE(supported_models); i++) {
model->name,
hw_info->firmware_version))) {
sr_scpi_hw_info_free(hw_info);
- sr_scpi_close(scpi);
- sr_scpi_free(scpi);
return NULL;
}
- sr_scpi_close(scpi);
-
sdi->conn = scpi;
sdi->driver = di;
tmp_str = devc->trigger_source;
*data = g_variant_new_string(tmp_str);
break;
+ case SR_CONF_TRIGGER_SLOPE:
+ if (!strcmp(devc->trigger_slope, "POS"))
+ tmp_str = "r";
+ else if (!strcmp(devc->trigger_slope, "NEG"))
+ tmp_str = "f";
+ else
+ return SR_ERR_NA;
+ *data = g_variant_new_string(tmp_str);
+ break;
case SR_CONF_TIMEBASE:
for (i = 0; i < devc->num_timebases; i++) {
float tb = (float)devc->timebases[i][0] / devc->timebases[i][1];
*data = g_variant_new_strv(trigger_sources,
devc->model->has_digital ? ARRAY_SIZE(trigger_sources) : 4);
break;
+ case SR_CONF_TRIGGER_SLOPE:
+ *data = g_variant_new_strv(trigger_slopes, ARRAY_SIZE(trigger_slopes));
+ break;
case SR_CONF_DATA_SOURCE:
if (!devc)
/* Can't know this until we have the exact model. */
switch (devc->model->series->protocol) {
case PROTOCOL_V2:
- if (rigol_ds_config_set(sdi, ":ACQ:MDEP LONG") != SR_OK)
+ if (rigol_ds_config_set(sdi, ":ACQ:MEMD LONG") != SR_OK)
return SR_ERR;
break;
case PROTOCOL_V3:
if (rigol_ds_config_set(sdi, ":RUN") != SR_OK)
return SR_ERR;
- sr_scpi_source_add(scpi, G_IO_IN, 50, rigol_ds_receive, (void *)sdi);
+ sr_scpi_source_add(sdi->session, scpi, G_IO_IN, 50,
+ rigol_ds_receive, (void *)sdi);
/* Send header packet to the session bus. */
std_session_send_df_header(cb_data, LOG_PREFIX);
devc->enabled_analog_channels = NULL;
devc->enabled_digital_channels = NULL;
scpi = sdi->conn;
- sr_scpi_source_remove(scpi);
+ sr_scpi_source_remove(sdi->session, scpi);
return SR_OK;
}