Commit Graph

2606 Commits

Author SHA1 Message Date
Daniel Thompson fbf07e0209 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.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2013-10-04 13:30:49 +02:00
Daniel Thompson 5715e84fe3 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.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2013-09-26 14:57:37 +02:00
Uwe Hermann 1b142b7827 README.devices: Various updates and additions. 2013-09-25 14:26:36 +02:00
Uwe Hermann ba26f45d1d configure.ac: Don't build uni-t-ut32x if libusb-1.0 is not found. 2013-09-25 14:26:35 +02:00
Uwe Hermann 45c0841b25 uni-t-ut32x: Shorten dev_list(). 2013-09-25 14:26:35 +02:00
Uwe Hermann 1ca48e29d4 Makefile.am: Add missing HACKING file. 2013-09-25 14:26:35 +02:00
Uwe Hermann d5c5ea2a29 libsigrok.h: Fix enum entries order.
New enum items must be added at the bottom of the respective "category"
within the enum in order to not change any numbers (i.e. break the ABI).
2013-09-25 14:26:35 +02:00
Bert Vermeulen 72a08bccff Minor documentation fixes 2013-09-25 11:51:54 +02:00
Bert Vermeulen 5451816fd1 When adding a device instance to a running session, start acquisition on it 2013-09-21 17:44:49 +02:00
Bert Vermeulen f438e0c923 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().
2013-09-18 13:28:07 +02:00
Matt Ranostay 6ebe003985 ols: fixed demux mode disable noise filter
Demux flag wasn't getting set off if one non-demux sample was ran
beforehand.

Signed-off-by: Matt Ranostay <mranostay@gmail.com>
2013-09-07 20:17:16 +02:00
Matt Ranostay 6a53bde671 ols: Moved FLAG_FILTER to demux check
Demux mode was having filter mode set which it doesn't
support per FPGA demon core docs.

Signed-off-by: Matt Ranostay <mranostay@gmail.com>
2013-09-06 11:42:25 +02:00
Uwe Hermann 4ac4595ad0 configure.ac: Properly use $HW_ENABLED_DEFAULT everywhere.
Otherwise --enable-all-drivers / --disable-all-drivers doesn't work
correctly.
2013-09-04 12:05:45 +02:00
Matt Ranostay c542391f82 proto: Add missing prototype in proto.h
Add missing prototype sr_session_dev_list that was
breaking the Pulseview build.

Signed-off-by: Matt Ranostay <mranostay@gmail.com>
2013-09-04 10:17:09 +02:00
Bert Vermeulen 2bb311b482 New API function sr_session_dev_list()
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.
2013-09-02 14:24:32 +02:00
Bert Vermeulen fa93154fe6 Properly initialize session 2013-09-02 14:23:42 +02:00
Uwe Hermann e52bb9be83 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".

This fixes #142.
2013-09-01 15:27:21 +02:00
Uwe Hermann a6ed50f405 es51922/fs9721/fs9922/metex14: Use diode MQFLAG.
This fixes #141.
2013-09-01 15:27:07 +02:00
Uwe Hermann 98494dc8a3 fs9922: Fix typo. 2013-09-01 13:41:13 +02:00
Uwe Hermann 045e9a9918 serial.c: Drop unneeded <glob.h>.
This is no longer used, and also it is not available on Android and thus
breaks cross-compilation for Android.

Thanks Marcus Comstedt <marcus@mc.pp.se> for reporting.
2013-08-30 16:35:56 +02:00
Uwe Hermann e6523173cf output/analog: Support all known MQFLAGs. 2013-08-30 16:11:33 +02:00
Matt Ranostay b1de040700 ols: fixed channel limit check
For demux mode we half the channels. Previous check method broke
the OLS randomly and but it in a bad state.

Signed-off-by: Matt Ranostay <mranostay@gmail.com>
2013-08-30 13:58:36 +02:00
Bert Vermeulen da970d24ec rigol-ds1xx2: newer Linux kernels have USBTMC in /sys/class/usbmisc 2013-08-30 13:57:45 +02:00
Matt Ranostay f51acd69d7 ols: combine demux samples
demux mode allows DDR sampling which disables group 2 & 3
and thus samples group 0 & 1 to sample on rising and falling of
the clock.

Signed-off-by: Matt Ranostay <mranostay@gmail.com>
2013-08-28 10:21:59 +02:00
Matt Ranostay 7b0a57fd1c ols: add swap channels feature
Allow channel groups to be swapped. This is useful
for demux at 200mhz with the unbuffered channels.

Signed-off-by: Matt Ranostay <mranostay@gmail.com>
2013-08-28 10:21:59 +02:00
Matt Ranostay de52409982 ols: Display noise filter flag
Show if noise filter is on. This is important to be
sure is off for demux mode.

Signed-off-by: Matt Ranostay <mranostay@gmail.com>
2013-08-28 10:21:59 +02:00
Bert Vermeulen 00d04d3b0e 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.
2013-08-27 00:33:20 +02:00
Bert Vermeulen abb39e6b8c 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.
2013-08-26 23:42:09 +02:00
Matt Ranostay eb1b610b12 ols: add external clock support
Add external clock support that allows you to use the tracing
targets bus clock line for sampling.

Signed-off-by: Matt Ranostay <mranostay@gmail.com>
2013-08-26 10:28:45 +02:00
Matt Ranostay 967760a893 ols: add test mode support
ols allows both external and internal test patterns at ~20khz
which are helpful for unit tests and demos.

pattern=internal -> route pattern internally to all 32 pins
                      (input otherwise disabled)

pattern=external -> generates pattern on unbuffered pins 16:31
                      (which can be looped back to the buffered pins 0:15)

Signed-off-by: Matt Ranostay <mranostay@gmail.com>
2013-08-26 09:52:24 +02:00
Matt Ranostay 503133bb5f 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.

Signed-off-by: Matt Ranostay <mranostay@gmail.com>
2013-08-26 09:48:41 +02:00
Uwe Hermann d0107565c1 saleae-logic16: Drop unneeded NUM_PROBES. 2013-08-21 11:41:21 +02:00
Uwe Hermann 87b537ced0 saleae-logic16: Shorten dev_list() implementation. 2013-08-21 11:37:40 +02:00
Uwe Hermann 96484e22b4 saleae-logic16: Whitespace fixes, cosmetics. 2013-08-21 11:33:37 +02:00
Marcus Comstedt 186dde8d72 saleae-logic16: Cleanup the prime_fpga function
The driver should now work on any Logic16.
2013-08-20 19:55:57 +02:00
Marcus Comstedt fec7aa6a44 saleae-logic16: Update copyright blurbs.
Copied copyright lines from fx2lafw driver, since much of the code is
taken from there.
2013-08-20 19:55:57 +02:00
Marcus Comstedt db11d7d2d0 saleae-logic16: Add voltage threshold conf. 2013-08-20 19:55:57 +02:00
Marcus Comstedt b117363ad7 saleae-logic16: Declare confs. 2013-08-20 19:55:57 +02:00
Marcus Comstedt 7b5daad45c saleae-logic16: Implemented acquisition. 2013-08-20 19:55:57 +02:00
Marcus Comstedt 15abcf0f58 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.
2013-08-20 19:55:57 +02:00
Marcus Comstedt 5eea4305ad saleae-logic16: Reworked scan/open to handle FW upload.
The new code is based on code from the fx2lafw driver.
2013-08-20 19:55:57 +02:00
Marcus Comstedt f6a21fa50c saleae-logic16: Detect the hardware. 2013-08-20 19:55:57 +02:00
Marcus Comstedt 6383365795 configure.ac: Fix build when libusb-1.0 not available.
The Saleae Logic16 needs libusb-1.0, thus disable this driver when
libusb-1.0 cannot be found.
2013-08-20 19:55:57 +02:00
Marcus Comstedt c463dcf06c saleae-logic16: Initial driver skeleton. 2013-08-20 19:55:22 +02:00
Bert Vermeulen 56e76981bc 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.
2013-08-11 10:52:43 +02:00
Bert Vermeulen d6ff054ae5 uni-t-ut32x: Full acquisition support 2013-08-11 10:46:36 +02:00
Bert Vermeulen 6513f97fbe uni-t-ut32x: Flesh out driver 2013-08-11 10:46:36 +02:00
Bert Vermeulen 3877dde43a uni-t-ut32x: Initial driver skeleton. 2013-08-11 10:46:36 +02:00
Uwe Hermann 4a8bbed76d center-3xx: Initial Center 309 / Voltcraft K204 support. 2013-08-08 19:59:49 +02:00
Uwe Hermann 4433145f48 center-3xx: Initial driver skeleton. 2013-08-08 19:58:48 +02:00