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,
#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
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. */
/**
* 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.
/**
* 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
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);