X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fscpi%2Fscpi_visa.c;h=a8f50e4f65c71fde5451d19032e80a78e610d0e8;hb=21fe5dba36bd388ed271b78b80df980ab13a63fd;hp=4b9056665b1579f0d5109a322b71534fd6ccf60b;hpb=c1aae90038456a61d0f9313d34e6107c3440d3e7;p=libsigrok.git diff --git a/src/scpi/scpi_visa.c b/src/scpi/scpi_visa.c index 4b905666..a8f50e4f 100644 --- a/src/scpi/scpi_visa.c +++ b/src/scpi/scpi_visa.c @@ -17,10 +17,12 @@ * along with this program. If not, see . */ +#include #include #include #include #include "libsigrok-internal.h" +#include "scpi.h" #define LOG_PREFIX "scpi_visa" @@ -49,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."); @@ -85,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; @@ -138,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);