Commit Graph

2263 Commits

Author SHA1 Message Date
Bert Vermeulen a769b9f357 Add sr_session_save_init().
This allows a frontend to initialize a session file, providing the
required samplerate and probe names, without having a proper
struct sr_dev_inst handy.

sr_session_append() is then used to add captured data to the session
file, as usual.

The existing sr_session_save() function works the same way as always.
2014-01-07 12:55:02 +01:00
Uwe Hermann 311622f69e serial-dmm: Drop unused DMM_COUNT. 2014-01-06 20:54:00 +01:00
Uwe Hermann ec5186f936 hardware/common/dmm: Fix debug output level.
Most messages from the DMM parsers are not hard errors, lower to
sr_dbg() so that the sigrok-cli output doesn't get cluttered (by default)
with debug output such as:

 P1: 0.001100 V DC AUTO
 sr: fs9721: Sync nibble in byte 0 (0x00) is invalid.
 P1: 0.001100 V DC AUTO

(using -l 4 or -l 5 will still allow the user to see such messages)
2014-01-06 20:44:44 +01:00
Uwe Hermann 2710cb53fd serial-dmm: Support the Tenma 72-7745 via UT-D02 cable.
(it was already supported in uni-t-dmm via UT-D04 cable)
2014-01-06 20:30:56 +01:00
Uwe Hermann d9e79c5122 Add support for the Tenma 72-7750 (UNI-T UT60G rebadge). 2014-01-06 20:30:35 +01:00
Uwe Hermann 4104ef810e Add initial support for the UNI-T UT60G. 2014-01-06 19:06:51 +01:00
Uwe Hermann 1267f128ac README.devices: Cosmetics, consistency fixes, updates. 2014-01-04 00:19:09 +01:00
Matthias Heidbrink 48d3238e66 serial: Improved docs. 2014-01-03 20:08:04 +01:00
Aurelien Jacobs 8ae157d976 scpi_usbtmc: fix reading of blocks bigger than the 2048 bytes buffer 2014-01-03 17:54:47 +01:00
Aurelien Jacobs a53278de01 rigol-ds: fix waveform reception on DS2000 series
The ":WAV:DATA?" scpi command must be sent before calling
sr_scpi_read_begin().
2014-01-03 17:54:47 +01:00
Aurelien Jacobs 036d378a62 rigol-ds: add a few more DS2000 models to the supported list 2014-01-03 17:54:47 +01:00
Russ Dill 7142d6b9d5 zeroplus: Add voltage threshold support
It doesn't currently mesh well with libsigrok, but at least the support is there.
2014-01-03 15:09:11 +01:00
Russ Dill 42ceb77726 zeroplus: Major rework of sample buffer processing
The sample buffer is a still a bit of a mystery, but this should help.
The variables in play:

triggerbar/ramsize_trigger - These two variables added together indicate
how many samples we want captured. ramsize_trigger - triggerbar
indicades how many samples must be captured. The ratio between the two
is determined by capture ratio.

memory_size - This indicates the number of samples in the circular
capture buffer. stop_address, now_address, and trigger_address are
pointers within the zeroplus that wrap based on this size.

now_address - The address that the zeroplus was about to write to when
it finished capturing, and now the address that will be read from when
reads are done from the capture buffer

stop_address - The address that the zeroplus last wrote to when it
completed capture.

trigger_address - The sample address for which the trigger occured.

status - This one is a bit tricky. Some testing has shown that if the
zeroplus has captured memory_size or less samples, the STATUS_READY bit
is set. For all captures generated with more samples than this,
STATUS_READY was cleared. However, boundary conditions are difficult to
test and values such as, memory_size + 1 have not been tested. We use
this to determine if the capture has wrapped through the sample buffer.

More testing is required, but this improves behavior in a number of
cases, specifically capturing sample amounts that are not a power of 2
of the sample buffer size. Before, random data was passed to libsigrok.

Signed-off-by: Russ Dill <Russ.Dill@gmail.com>
2014-01-03 15:09:11 +01:00
Russ Dill a864a05b25 zeroplus: Add getters for memory configuration
This is needed at capture readback time to determine how many samples to read
in.

Signed-off-by: Russ Dill <Russ.Dill@gmail.com>
2014-01-03 15:09:10 +01:00
Russ Dill aad031928e zeroplus: Modify analyzer_read_start to just prep for bulk reads.
Let the capture loop manage which samples are thrown out rather
than throwing out two here.

Signed-off-by: Russ Dill <Russ.Dill@gmail.com>
2014-01-03 15:09:10 +01:00
Russ Dill bc059b42a2 zeroplus: Always set DONT_CARE_TRIGGERBAR to 1
Experimentation with the windows driver has found no situation where
this is set to anything other than 1. The zerominus software also never
sets this to anything other than one. Revert the code change made in
0ab0cb942f.

Signed-off-by: Russ Dill <Russ.Dill@gmail.com>
2014-01-03 15:09:10 +01:00
Russ Dill 4c1433d172 zeroplus: Ignore capture ratio if there is no trigger
If there is no trigger, don't try to capture anything before it. There
won't be any because we trigger immediately.

Signed-off-by: Russ Dill <Russ.Dill@gmail.com>
2014-01-03 15:09:10 +01:00
Russ Dill 05f853b5c3 zeroplus: Add missing config_get for SR_CONF_CAPTURE_RATIO
Without this, latest pulseview gets an assert and dies.

Signed-off-by: Russ Dill <Russ.Dill@gmail.com>
2014-01-03 15:09:10 +01:00
Russ Dill 5db0c668fa zeroplus: Support all 32 channels of 32 channel models
This will need some additional work when support is added for compression
modes since group D is disabled for RLE compression and C and D are
disabled for "double" compression.

Signed-off-by: Russ Dill <Russ.Dill@gmail.com>
2014-01-03 15:09:10 +01:00
Matthias Heidbrink 1d4a283928 gmc_mh_1x_2x: Fixed sign and AC/DC for current measurements with Metrahit <= 16. 2014-01-02 19:38:52 +01:00
Uwe Hermann 124c548de8 serial-dmm: Increase timeout when scanning for DMMs.
We have to wait a bit longer than 1s for a valid DMM packet to arrive,
since for various DMMs some modes (Hz/% for example) the packets will
arrive a lot less often than in other modes. If the waiting period is
too short detection of the DMM will fail.
2014-01-02 14:25:06 +01:00
Uwe Hermann 7fb5f0a0f5 serial-dmm: Drop obsolete function prototypes. 2014-01-02 02:48:13 +01:00
Uwe Hermann d327972b97 Add initial support for the V&A VA40B multimeter. 2014-01-02 01:46:15 +01:00
Uwe Hermann 641d8f276c output/analog: Add missing space (consistency). 2014-01-01 17:38:05 +01:00
Uwe Hermann 79bc9924d7 uni-t-dmm: Fix incorrect order which breaks UT61B/C. 2014-01-01 16:40:36 +01:00
Uwe Hermann 7cb69b1870 Add support for the UNI-T UT61B multimeter. 2014-01-01 15:28:44 +01:00
Uwe Hermann 162a48bfc7 teleinfo: Fix a compiler warning (clang).
CC       libsigrok_hw_teleinfo_la-protocol.lo
protocol.c:62:41: warning: missing field 'num_samples' initializer
      [-Wmissing-field-initializers]
        struct sr_datafeed_analog analog = { 0 };
                                               ^
2013-12-31 19:22:16 +01:00
Uwe Hermann 42f2f8a533 gmc-mh-1x-2x: Fix compiler warning (clang).
CC       libsigrok_hw_gmc_mh_1x_2x_la-protocol.lo
protocol.c:133:32: warning: equality comparison with extraneous
parentheses
      [-Wparentheses-equality]
                        } else if ((devc->scale1000 == 2)) {
                                    ~~~~~~~~~~~~~~~~^~~~
protocol.c:133:32: note: remove extraneous parentheses around the
comparison to
      silence this warning
                        } else if ((devc->scale1000 == 2)) {
                                   ~                ^   ~
2013-12-31 19:21:04 +01:00
Uwe Hermann 35b904a792 es519xx.c: Fix a few compiler warnings (clang).
CC       libsigrok_hw_common_dmm_la-es519xx.lo
es519xx.c:632:33: warning: missing field 'is_voltage' initializer
      [-Wmissing-field-initializers]
        struct es519xx_info info = { 0 };
                                       ^
es519xx.c:659:33: warning: missing field 'is_voltage' initializer
      [-Wmissing-field-initializers]
        struct es519xx_info info = { 0 };
                                       ^
es519xx.c:688:33: warning: missing field 'is_voltage' initializer
      [-Wmissing-field-initializers]
        struct es519xx_info info = { 0 };
                                       ^
es519xx.c:717:33: warning: missing field 'is_voltage' initializer
      [-Wmissing-field-initializers]
        struct es519xx_info info = { 0 };
                                       ^
es519xx.c:746:33: warning: missing field 'is_voltage' initializer
      [-Wmissing-field-initializers]
        struct es519xx_info info = { 0 };
                                       ^
es519xx.c:773:33: warning: missing field 'is_voltage' initializer
      [-Wmissing-field-initializers]
        struct es519xx_info info = { 0 };
                                       ^
es519xx.c:800:33: warning: missing field 'is_voltage' initializer
      [-Wmissing-field-initializers]
        struct es519xx_info info = { 0 };
                                       ^
7 warnings generated.
2013-12-31 19:20:51 +01:00
Aurelien Jacobs 79a1176b3f fix endian neutral helper macro to return an integer type 2013-12-30 19:23:54 +01:00
Martin Ling 264c99eda2 ols: Use serial source management wrappers. 2013-12-30 14:19:39 +01:00
Martin Ling 9f5d4c3cc3 ols: Mark all serial calls as blocking or nonblocking. 2013-12-30 14:19:39 +01:00
Martin Ling 9a47421157 Add blocking and nonblocking versions of serial_read and serial_write. 2013-12-30 14:19:39 +01:00
Aurelien Jacobs cb410697fb remove the es51922 protocol parser, superseded by the es519xx protocol parser 2013-12-29 18:46:08 +01:00
Aurelien Jacobs d97824e52e switch the UNI-T UT61E driver to the new es519xx parser 2013-12-29 18:46:08 +01:00
Aurelien Jacobs 29bad967a4 es519xx: correctly handle the VAHZ function
This handles the frequency and duty cycle display in voltage or current mode.
2013-12-29 18:46:08 +01:00
Aurelien Jacobs c3e871dc8e es519xx: apply the proper fixed factor in duty cycle mode 2013-12-29 18:46:08 +01:00
Aurelien Jacobs e1f9f1e1f2 es519xx: fix switching between frequency and duty cycle mode on 14 bytes chips
Here is what the datasheet says about this:
  "If judge bit is 1, it means frequency mode. If judge bit is 0,
   it means duty cycle mode."
But this is plain wrong. Reality proves this is the other way around.
2013-12-29 18:46:08 +01:00
Aurelien Jacobs 4d2630e63a es519xx: correctly handle the voltage factor in diode mode 2013-12-29 18:46:08 +01:00
Aurelien Jacobs a7c01629f6 es519xx: fix continuity mode handling
Depending on the chip, the limit value for the buzzer is between 25 and 35 Ω,
so this code set the limit for continuity to 25 Ω to be on the safe side.
2013-12-29 18:46:03 +01:00
Uwe Hermann 5f985df23c Add support for the UNI-T UT61C multimeter. 2013-12-29 17:35:51 +01:00
Uwe Hermann 683fd16137 fx2lafw: Fix incorrect unitsize when a trigger fires.
The unitsize was always being set to 2, regardless of whether an fx2lafw
device with 8 or 16 probes was used.

This fixes bug #182.
2013-12-29 14:18:51 +01:00
Uwe Hermann 87b545fba4 fx2lafw: Minor cleanups. 2013-12-29 14:18:51 +01:00
Martin Ling 0709197deb rigol-ds: Correct usage of NUM_TIMEBASE and NUM_VDIV config keys. 2013-12-29 13:22:32 +01:00
Martin Ling bc7b7eb196 scpi: Strip trailing newline from *IDN response if present. 2013-12-29 13:22:31 +01:00
Uwe Hermann b178c79d35 victor-dmm: Fix MIN/MAX always being reported.
This fixes bug #228.
2013-12-29 12:33:10 +01:00
Bert Vermeulen 8b2d41edb3 demo: Analog probe support. 2013-12-29 10:58:56 +01:00
Bert Vermeulen c07f60e73d demo: User-configurable number of probes.
The sigrok and incremental patterns repeat every 8 probes, shifted by
one probe.
2013-12-29 10:58:56 +01:00
Bert Vermeulen bf90d4c666 Add config keys for setting the number of analog probes.
This is primarily of use in the demo driver, but this patch also
takes in the logic probe setting config key used only by the
session driver so far.
2013-12-29 10:58:56 +01:00
Bert Vermeulen 3699a8a1ff Skip analog probes in logic-only output formats. 2013-12-29 10:57:38 +01:00