scpi-pps: Don't use SCPI_CMD_REMOTE and SCPI_CMD_LOCAL for HP 66xxB devices when in GPIB mode.

This commit is contained in:
Frank Stettner 2019-04-11 13:04:22 +02:00 committed by Uwe Hermann
parent 5ce427c71b
commit 26e96658ab
2 changed files with 19 additions and 3 deletions

View File

@ -173,7 +173,10 @@ static struct sr_dev_inst *probe_device(struct sr_scpi_dev_inst *scpi,
sr_scpi_hw_info_free(hw_info);
hw_info = NULL;
sr_scpi_cmd(sdi, devc->device->commands, 0, NULL, SCPI_CMD_LOCAL);
/* Don't send SCPI_CMD_LOCAL for HP 66xxB devices using SCPI over GPIB */
if (!(devc->device->dialect == SCPI_DIALECT_HP_66XXB &&
scpi->transport == SCPI_TRANSPORT_LIBGPIB))
sr_scpi_cmd(sdi, devc->device->commands, 0, NULL, SCPI_CMD_LOCAL);
return sdi;
}
@ -265,7 +268,12 @@ static int dev_open(struct sr_dev_inst *sdi)
return SR_ERR;
devc = sdi->priv;
sr_scpi_cmd(sdi, devc->device->commands, 0, NULL, SCPI_CMD_REMOTE);
/* Don't send SCPI_CMD_REMOTE for HP 66xxB devices using SCPI over GPIB */
if (!(devc->device->dialect == SCPI_DIALECT_HP_66XXB &&
scpi->transport == SCPI_TRANSPORT_LIBGPIB))
sr_scpi_cmd(sdi, devc->device->commands, 0, NULL, SCPI_CMD_REMOTE);
devc->beeper_was_set = FALSE;
if (sr_scpi_cmd_resp(sdi, devc->device->commands, 0, NULL,
&beeper, G_VARIANT_TYPE_BOOLEAN, SCPI_CMD_BEEPER) == SR_OK) {
@ -294,7 +302,11 @@ static int dev_close(struct sr_dev_inst *sdi)
if (devc->beeper_was_set)
sr_scpi_cmd(sdi, devc->device->commands,
0, NULL, SCPI_CMD_BEEPER_ENABLE);
sr_scpi_cmd(sdi, devc->device->commands, 0, NULL, SCPI_CMD_LOCAL);
/* Don't send SCPI_CMD_LOCAL for HP 66xxB devices using SCPI over GPIB */
if (!(devc->device->dialect == SCPI_DIALECT_HP_66XXB &&
scpi->transport == SCPI_TRANSPORT_LIBGPIB))
sr_scpi_cmd(sdi, devc->device->commands, 0, NULL, SCPI_CMD_LOCAL);
return sr_scpi_close(scpi);
}

View File

@ -638,6 +638,10 @@ static const struct channel_group_spec hp_6630b_cg[] = {
};
static const struct scpi_command hp_6630b_cmd[] = {
/*
* SCPI_CMD_REMOTE and SCPI_CMD_LOCAL are not used when GPIB is used,
* otherwise the device will report (non critical) error 602.
*/
{ SCPI_CMD_REMOTE, "SYST:REM" },
{ SCPI_CMD_LOCAL, "SYST:LOC" },
{ SCPI_CMD_GET_OUTPUT_ENABLED, "OUTP:STAT?" },