X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fscpi%2Fscpi_visa.c;h=c4f5553a275debbf2e2227773b2c31ea44cf2e37;hb=ed787682255cdecbb3ba8cefc87c20182b97ce7b;hp=220ead4fd3e31db1a568ddeb62240cb69db960cd;hpb=04229f7bfc750f2b67e8dd54ac82ae6bb7eae1e4;p=libsigrok.git diff --git a/src/scpi/scpi_visa.c b/src/scpi/scpi_visa.c index 220ead4f..c4f5553a 100644 --- a/src/scpi/scpi_visa.c +++ b/src/scpi/scpi_visa.c @@ -68,6 +68,16 @@ static int scpi_visa_open(struct sr_scpi_dev_inst *scpi) return SR_OK; } +static int scpi_visa_connection_id(struct sr_scpi_dev_inst *scpi, + char **connection_id) +{ + struct scpi_visa *vscpi = scpi->priv; + + *connection_id = g_strdup_printf("%s/%s", scpi->prefix, vscpi->resource); + + return SR_OK; +} + static int scpi_visa_source_add(struct sr_session *session, void *priv, int events, int timeout, sr_receive_data_callback cb, void *cb_data) { @@ -87,21 +97,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; @@ -159,17 +164,19 @@ static void scpi_visa_free(void *priv) } SR_PRIV const struct sr_scpi_dev_inst scpi_visa_dev = { - .name = "VISA", - .prefix = "visa", - .priv_size = sizeof(struct scpi_visa), - .dev_inst_new = scpi_visa_dev_inst_new, - .open = scpi_visa_open, - .source_add = scpi_visa_source_add, + .name = "VISA", + .prefix = "visa", + .transport = SCPI_TRANSPORT_VISA, + .priv_size = sizeof(struct scpi_visa), + .dev_inst_new = scpi_visa_dev_inst_new, + .open = scpi_visa_open, + .connection_id = scpi_visa_connection_id, + .source_add = scpi_visa_source_add, .source_remove = scpi_visa_source_remove, - .send = scpi_visa_send, - .read_begin = scpi_visa_read_begin, - .read_data = scpi_visa_read_data, + .send = scpi_visa_send, + .read_begin = scpi_visa_read_begin, + .read_data = scpi_visa_read_data, .read_complete = scpi_visa_read_complete, - .close = scpi_visa_close, - .free = scpi_visa_free, + .close = scpi_visa_close, + .free = scpi_visa_free, };