X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fscpi%2Fscpi_visa.c;h=a8f50e4f65c71fde5451d19032e80a78e610d0e8;hb=f62c2ad65d3c2e20eba512d6460c9c48e17cca08;hp=34ac9455d09038e97f21570df16634d655f5ac0b;hpb=515ab0889ebde4b373d620044a1a98da37153056;p=libsigrok.git
diff --git a/src/scpi/scpi_visa.c b/src/scpi/scpi_visa.c
index 34ac9455..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 "libsigrok.h"
+#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);