siglent-sds: move model dependent request emission to after identification

Device or model or protocol variant specific commands should only be
used after the device reliably got identified. The "CHDR OFF" command
upsets other devices and needs to move after *IDN? and model checks.
This commit is contained in:
Gerhard Sittig 2021-05-22 12:26:18 +02:00
parent d008c0273f
commit 2f464b6c85
1 changed files with 4 additions and 4 deletions

View File

@ -257,10 +257,6 @@ static struct sr_dev_inst *probe_device(struct sr_scpi_dev_inst *scpi)
const struct siglent_sds_model *model; const struct siglent_sds_model *model;
gchar *channel_name; gchar *channel_name;
sr_dbg("Setting Communication Headers to off.");
if (sr_scpi_send(scpi, "CHDR OFF") != SR_OK)
return NULL;
if (sr_scpi_get_hw_id(scpi, &hw_info) != SR_OK) { if (sr_scpi_get_hw_id(scpi, &hw_info) != SR_OK) {
sr_info("Couldn't get IDN response, retrying."); sr_info("Couldn't get IDN response, retrying.");
sr_scpi_close(scpi); sr_scpi_close(scpi);
@ -284,6 +280,10 @@ static struct sr_dev_inst *probe_device(struct sr_scpi_dev_inst *scpi)
return NULL; return NULL;
} }
sr_dbg("Setting Communication Headers to off.");
if (sr_scpi_send(scpi, "CHDR OFF") != SR_OK)
return NULL;
sdi = g_malloc0(sizeof(struct sr_dev_inst)); sdi = g_malloc0(sizeof(struct sr_dev_inst));
sdi->vendor = g_strdup(model->series->vendor->name); sdi->vendor = g_strdup(model->series->vendor->name);
sdi->model = g_strdup(model->name); sdi->model = g_strdup(model->name);