X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fradioshack-dmm%2Fapi.c;h=6388c4631744f2333acf3c28b4f107a2d6356e23;hb=38d326e879c6e1bb7d4a11682c262ca838a7dde5;hp=ecb4ad5c9ff1b51982e5ca5ccb787660059c846f;hpb=d375b3c3ec01c246dbf6f0827c33aafc0953431b;p=libsigrok.git diff --git a/hardware/radioshack-dmm/api.c b/hardware/radioshack-dmm/api.c index ecb4ad5c..6388c463 100644 --- a/hardware/radioshack-dmm/api.c +++ b/hardware/radioshack-dmm/api.c @@ -19,9 +19,8 @@ */ #include -#include "libsigrok/libsigrok.h" +#include "libsigrok.h" #include "libsigrok-internal.h" -#include "config.h" #include "radioshack-dmm.h" #include #include @@ -140,7 +139,7 @@ static GSList *rs_22_812_scan(const char *conn, const char *serialcomm) size_t len; char buf[128], *b; - if ((fd = serial_open(conn, O_RDWR|O_NONBLOCK)) == -1) { + if ((fd = serial_open(conn, O_RDONLY|O_NONBLOCK)) == -1) { sr_err("radioshack-dmm: unable to open %s: %s", conn, strerror(errno)); return NULL; @@ -150,6 +149,8 @@ static GSList *rs_22_812_scan(const char *conn, const char *serialcomm) return NULL; } + sr_info("radioshack-dmm: probing port %s readonly", conn); + drvc = di->priv; b = buf; retry = 0; @@ -196,6 +197,8 @@ static GSList *rs_22_812_scan(const char *conn, const char *serialcomm) if (good_packets == 0) continue; + sr_info("radioshack-dmm: found RS 22-812 on port %s", conn); + if (!(sdi = sr_dev_inst_new(0, SR_ST_INACTIVE, "Radioshack", "22-812", ""))) return NULL; @@ -273,7 +276,7 @@ static int hw_dev_open(struct sr_dev_inst *sdi) return SR_ERR_BUG; } - devc->serial->fd = serial_open(devc->serial->port, O_RDWR | O_NONBLOCK); + devc->serial->fd = serial_open(devc->serial->port, O_RDONLY); if (devc->serial->fd == -1) { sr_err("radioshack-dmm: Couldn't open serial port '%s'.", devc->serial->port); @@ -383,6 +386,11 @@ static int hw_dev_acquisition_start(const struct sr_dev_inst *sdi, devc->cb_data = cb_data; + /* Reset the number of samples to take. If we've already collected our + * quota, but we start a new session, and don't reset this, we'll just + * quit without aquiring any new samples */ + devc->num_samples = 0; + /* Send header packet to the session bus. */ sr_dbg("radioshack-dmm: Sending SR_DF_HEADER."); packet.type = SR_DF_HEADER;