X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fscpi%2Fscpi.c;h=fbb57472b3301bb4510a622e6295d04bc0438b58;hb=5305266a28c1af09267f43f8941b6012be3d954f;hp=829a4c8cf1828bb141ce13c159767173cc12c151;hpb=155b680da482cea2381becb73c51cfb838bff31e;p=libsigrok.git diff --git a/src/scpi/scpi.c b/src/scpi/scpi.c index 829a4c8c..fbb57472 100644 --- a/src/scpi/scpi.c +++ b/src/scpi/scpi.c @@ -71,6 +71,7 @@ SR_PRIV extern const struct sr_scpi_dev_inst scpi_tcp_rigol_dev; SR_PRIV extern const struct sr_scpi_dev_inst scpi_usbtmc_libusb_dev; SR_PRIV extern const struct sr_scpi_dev_inst scpi_vxi_dev; SR_PRIV extern const struct sr_scpi_dev_inst scpi_visa_dev; +SR_PRIV extern const struct sr_scpi_dev_inst scpi_libgpib_dev; static const struct sr_scpi_dev_inst *scpi_devs[] = { &scpi_tcp_raw_dev, @@ -84,6 +85,9 @@ static const struct sr_scpi_dev_inst *scpi_devs[] = { #ifdef HAVE_LIBREVISA &scpi_visa_dev, #endif +#ifdef HAVE_LIBGPIB + &scpi_libgpib_dev, +#endif #ifdef HAVE_LIBSERIALPORT &scpi_serial_dev, /* must be last as it matches any resource */ #endif @@ -153,7 +157,8 @@ SR_PRIV GSList *sr_scpi_scan(struct drv_context *drvc, GSList *options, if (!devices && resource) { sdi = sr_scpi_scan_resource(drvc, resource, serialcomm, probe_device); - devices = g_slist_append(NULL, sdi); + if (sdi) + devices = g_slist_append(NULL, sdi); } /* Tack a copy of the newly found devices onto the driver list. */ @@ -207,6 +212,7 @@ SR_PRIV int sr_scpi_open(struct sr_scpi_dev_inst *scpi) /** * Add an event source for an SCPI device. * + * @param session The session to add the event source to. * @param scpi Previously initialized SCPI device structure. * @param events Events to check for. * @param timeout Max time to wait before the callback is called, ignored if 0. @@ -226,6 +232,7 @@ SR_PRIV int sr_scpi_source_add(struct sr_session *session, /** * Remove event source for an SCPI device. * + * @param session The session to remove the event source from. * @param scpi Previously initialized SCPI device structure. * * @return SR_OK upon success, SR_ERR_ARG upon invalid arguments, or @@ -398,6 +405,10 @@ SR_PRIV int sr_scpi_get_string(struct sr_scpi_dev_inst *scpi, if (response->len >= 1 && response->str[response->len - 1] == '\n') g_string_truncate(response, response->len - 1); + /* Get rid of trailing carriage return if present */ + if (response->len >= 1 && response->str[response->len - 1] == '\r') + g_string_truncate(response, response->len - 1); + *scpi_response = response->str; g_string_free(response, FALSE);