Uwe Hermann [Mon, 28 Oct 2013 21:59:32 +0000 (22:59 +0100)]
Fix two FreeBSD build issues related to libusb-1.0.
FreeBSD's libusb-1.0 compatible library has a few differences compared
to the "normal" libusb-1.0 from libusb.org which we have to work around.
LIBUSB_CLASS_APPLICATION doesn't exist in FreeBSD's libusb, and
libusb_handle_events_timeout_completed() doesn't exist either.
The latter is basically libusb_handle_events_timeout() with an extra
(unused by us) parameter, so the workaround is relatively simple.
Uwe Hermann [Sun, 29 Sep 2013 15:43:28 +0000 (17:43 +0200)]
metex14: Support DMMs with whitespace differences.
Most Metex DMMs use e.g. " mV" as unit field, others use "mV ",
though. Support these (and other) whitespace variants by stripping all
spaces and only comparing non-space characters.
Uwe Hermann [Wed, 16 Oct 2013 16:10:29 +0000 (18:10 +0200)]
Bump libzip requirement to >= 0.10.
We now use zip_int64_t and zip_get_num_entries() for example, which
requires at least libzip 0.10. This version was released in 03/2012,
which is old enough that we don't necessarily have to do a work-around
for older versions. Thus, simply bump the requirement to >= 0.10.
Daniel Thompson [Fri, 4 Oct 2013 07:34:05 +0000 (08:34 +0100)]
agilent-dmm: Fix SEGV during incomplete reply from meter.
If buf contains exactly the string "Agilent Technologies" (for example if
there are bugs in the timeout logic or serial driver causing the reply from
the meter to be abridged) then this code will SEGV. This is because tokens[1]
is NULL but only tokens[2] and tokens[3] (both of which are undefined) are
NULL checked.
Can be trivially corrected by NULL checking tokens[1] as well.
Daniel Thompson [Thu, 19 Sep 2013 15:39:24 +0000 (16:39 +0100)]
serial: Only sleep when no characters are received.
g_usleep(XX) sleeps for *at least* XX microseconds but may sleep for
longers (on older kernels the sleep will typically be 10000us). Thus
byte receive loops containing an unconditional sleep will perform
very poorly (for example it causes the scan in agilent-dmm to timeout
prematurely).
Even on modern kernels serial_readline() has a 2ms sleep per byte which
means it will read at a maximum rate of half a character per millisecond
(~4800baud).
This is fixed by only sleeping when read() returns no data.
Add sr_session_append(): add captured data to an existing session file
This extends the session file format to contain logic data files named
either "logic-1" as before, or "logic-1-1", "logic-1-2", ...
representing chronologically ordered chunks of captured data.
The chunks are transparently concatenated together by sr_session_load().
This exposes the list of devices added to the session. In the case of
loading a session from file, these struct sr_dev_inst are otherwise
not exposed to the frontend. See bug 145.
Uwe Hermann [Sun, 1 Sep 2013 11:10:54 +0000 (13:10 +0200)]
Voltcraft VC-830: Fix diode mode handling.
This DMM is not using the standard bits in the FS9922 protocol/structure
to indicate the "volt" and "diode mode" flags. Instead, it only sets the
user-defined bit "z1" to indicate both "diode mode" and "volt".
Bert Vermeulen [Mon, 26 Aug 2013 22:33:20 +0000 (00:33 +0200)]
ols: Fix RLE count handling
The high bit of the sample, denoting this is a count, was not getting
properly cleared. This resulted in an inevitably negative count, and
corruption of the sample buffer before it was transferred to the
frontend.
Bert Vermeulen [Mon, 26 Aug 2013 21:42:09 +0000 (23:42 +0200)]
ols: Properly initialize entire single-sample buffer before start
The single sample buffer, up to 4 bytes long, was not getting initialized
on (every) acquisition start, only after the first full sample was in.
This caused the first sample to potentially hold garbage.
Matt Ranostay [Sat, 24 Aug 2013 04:42:51 +0000 (21:42 -0700)]
ols: fixed parallel stage triggers
Stage count was always getting incremented one more than
actual stages, and this caused a extra stage with zero'ed data
probe lines to have the start bit field.
Marcus Comstedt [Fri, 2 Aug 2013 22:35:44 +0000 (00:35 +0200)]
saleae-logic16: Initialize the FPGA.
The map_eeprom_data function is currently unknown. The map entries
provided were observed via bus-snooping of the vendor software on my
device. Other devices may need additional values.
Bert Vermeulen [Sun, 11 Aug 2013 08:52:43 +0000 (10:52 +0200)]
uni-t-dmm: Require conn parameter for scan
Since the uni-t-ut32x series handles devices with the same USB VID.PID,
which is linked to the WCH CH9325 USB/HID-UART interface chip, this
driver can no longer assume it can handle anything with this VID.PID.
Uwe Hermann [Tue, 6 Aug 2013 23:08:37 +0000 (01:08 +0200)]
Bump package version to 0.2.1, libtool version to 1:1:0.
The last release (0.2.0) had the libtool version (current:revision:age)
set to 1:0:0. Since this release doesn't add/change/remove any
interfaces, only 'revision' is increased, resulting in 1:1:0.
Uwe Hermann [Tue, 6 Aug 2013 22:03:14 +0000 (00:03 +0200)]
unittests: Comment out a testcase.
The boundary test-case with SR_GHZ(18446744073ULL) currently fails, but
that is not practically relevant so comment it out for now, until we add
a proper fix.