X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fscpi%2Fscpi_visa.c;h=a8f50e4f65c71fde5451d19032e80a78e610d0e8;hb=6a25fa42388fa3ddf7f519c7d1f6b641b9d6cf6f;hp=fee25ba1cf7689027f5ac54287dc5815a0df81fa;hpb=6ec6c43b4738dbc7091f4a49a4ec80ea6102cb52;p=libsigrok.git diff --git a/src/scpi/scpi_visa.c b/src/scpi/scpi_visa.c index fee25ba1..a8f50e4f 100644 --- a/src/scpi/scpi_visa.c +++ b/src/scpi/scpi_visa.c @@ -51,9 +51,9 @@ static int scpi_visa_dev_inst_new(void *priv, struct drv_context *drvc, return SR_OK; } -static int scpi_visa_open(void *priv) +static int scpi_visa_open(struct sr_scpi_dev_inst *scpi) { - struct scpi_visa *vscpi = priv; + struct scpi_visa *vscpi = scpi->priv; if (viOpenDefaultRM(&vscpi->rmgr) != VI_SUCCESS) { sr_err("Cannot open default resource manager."); @@ -87,21 +87,16 @@ static int scpi_visa_source_remove(struct sr_session *session, void *priv) static int scpi_visa_send(void *priv, const char *command) { struct scpi_visa *vscpi = priv; - gchar *terminated_command; ViUInt32 written = 0; int len; - terminated_command = g_strconcat(command, "\n", NULL); - len = strlen(terminated_command); - if (viWrite(vscpi->vi, (ViBuf) (terminated_command + written), len, + len = strlen(command); + if (viWrite(vscpi->vi, (ViBuf) (command + written), len, &written) != VI_SUCCESS) { sr_err("Error while sending SCPI command: '%s'.", command); - g_free(terminated_command); return SR_ERR; } - g_free(terminated_command); - sr_spew("Successfully sent SCPI command: '%s'.", command); return SR_OK; @@ -140,9 +135,9 @@ static int scpi_visa_read_complete(void *priv) return !(status & 16); } -static int scpi_visa_close(void *priv) +static int scpi_visa_close(struct sr_scpi_dev_inst *scpi) { - struct scpi_visa *vscpi = priv; + struct scpi_visa *vscpi = scpi->priv; viClose(vscpi->vi); viClose(vscpi->rmgr);