X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fcommon%2Fscpi_usbtmc.c;h=298e3ab52012a7ade0ce810658dddc3c4372c56a;hb=3544f848e0d7f67af8e11ce7ec344b34cd797df3;hp=e4c10be67a0cf2e5592ad6f1f5aa5aeeed473dbc;hpb=31034792da84daa5163b7d72bb98664c65aa7cc0;p=libsigrok.git diff --git a/hardware/common/scpi_usbtmc.c b/hardware/common/scpi_usbtmc.c index e4c10be6..298e3ab5 100644 --- a/hardware/common/scpi_usbtmc.c +++ b/hardware/common/scpi_usbtmc.c @@ -26,13 +26,7 @@ #include #include -/* Message logging helpers with subsystem-specific prefix string. */ -#define LOG_PREFIX "scpi_usbtmc: " -#define sr_log(l, s, args...) sr_log(l, LOG_PREFIX s, ## args) -#define sr_spew(s, args...) sr_spew(LOG_PREFIX s, ## args) -#define sr_dbg(s, args...) sr_dbg(LOG_PREFIX s, ## args) -#define sr_info(s, args...) sr_info(LOG_PREFIX s, ## args) -#define sr_warn(s, args...) sr_warn(LOG_PREFIX s, ## args) +#define LOG_PREFIX "scpi_usbtmc" SR_PRIV int scpi_usbtmc_open(void *priv) { @@ -111,6 +105,21 @@ SR_PRIV int scpi_usbtmc_receive(void *priv, char **scpi_response) return SR_OK; } +SR_PRIV int scpi_usbtmc_read(void *priv, char *buf, int maxlen) +{ + struct sr_usbtmc_dev_inst *usbtmc = priv; + int len; + + len = read(usbtmc->fd, buf, maxlen); + + if (len < 0) { + sr_err("Read error: %s", strerror(errno)); + return SR_ERR; + } + + return len; +} + SR_PRIV int scpi_usbtmc_close(void *priv) { struct sr_usbtmc_dev_inst *usbtmc = priv; @@ -121,6 +130,11 @@ SR_PRIV int scpi_usbtmc_close(void *priv) return SR_OK; } +static void scpi_usbtmc_free(void *priv) +{ + return sr_usbtmc_dev_inst_free(priv); +} + SR_PRIV struct sr_scpi_dev_inst *scpi_usbtmc_dev_inst_new(const char *device) { struct sr_scpi_dev_inst *scpi; @@ -139,8 +153,9 @@ SR_PRIV struct sr_scpi_dev_inst *scpi_usbtmc_dev_inst_new(const char *device) scpi->source_remove = scpi_usbtmc_source_remove; scpi->send = scpi_usbtmc_send; scpi->receive = scpi_usbtmc_receive; + scpi->read = scpi_usbtmc_read; scpi->close = scpi_usbtmc_close; - scpi->free = sr_usbtmc_dev_inst_free; + scpi->free = scpi_usbtmc_free; scpi->priv = usbtmc; return scpi;