Commit Graph

379 Commits

Author SHA1 Message Date
Bert Vermeulen 023c73ae05 cem-dt-885x: Fix driver options. 2014-11-18 16:44:14 +01:00
Bert Vermeulen 9d9cf1c4b9 scpi-pps: Fix driver options. 2014-11-18 16:44:14 +01:00
Bert Vermeulen 2ff11e50a5 asix-sigma: Fix driver options. 2014-11-18 16:30:47 +01:00
Bert Vermeulen 820c48f8c2 output/analog: Add option to restrict number of decimal digits printed.
This is a feature restricted to the new analog struct.

By default all the digits available in the encoding struct are printed.
The option "digits", when set to "spec", changes this to print the
number given in the spec struct.
2014-11-18 15:51:38 +01:00
Bert Vermeulen db6fa867a4 Add debug spew to all sr_config_(get|set|list) calls. 2014-11-18 15:46:59 +01:00
Bert Vermeulen cf3db38193 Fix broken sr_config_list() logic. 2014-11-18 15:46:24 +01:00
Bert Vermeulen 1e4a7cace2 demo: Fix driver options. 2014-11-18 15:39:46 +01:00
Bert Vermeulen ff6b76a145 fx2lafw: Publish driver options. 2014-11-18 15:35:30 +01:00
Bert Vermeulen ce4bd05256 agilent-dmm: Publish driver options. 2014-11-18 15:34:52 +01:00
Bert Vermeulen 5533392828 victor-dmm: Publish driver options. 2014-11-18 14:34:02 +01:00
Bert Vermeulen a5892391b0 Add analog helper sr_analog_unit_to_string(). 2014-11-18 01:16:27 +01:00
Bert Vermeulen c2a25ebb8f Add analog helper sr_analog_float_to_string(). 2014-11-18 01:15:41 +01:00
Bert Vermeulen 1954dfa963 Show SR_DF_ANALOG2 packets in debug output. 2014-11-18 00:24:37 +01:00
Bert Vermeulen 28b4243493 victor-dmm: Set spec digits to 3, matching the display. 2014-11-18 00:24:08 +01:00
Bert Vermeulen 4b4fdeea94 analog: Fix analog_to_float typos, and cleanup.
This was adding 1 to every measurement being converted.
2014-11-17 23:08:49 +01:00
Aurelien Jacobs 41caa31909 Add a sr_analog_init() API to initialize sr_datafeed_analog2 struct.
It fills the fields with reasonable default values that should suit
most of the drivers. Drivers are obviously free to override the fields
they want after initializing.
2014-11-17 22:04:24 +01:00
Aurelien Jacobs 62f155f0c7 demo: Fix analog output at low samplerate. 2014-11-17 13:39:53 +01:00
Aurelien Jacobs 3772c04990 demo: Fix square pattern output shorter than other patterns. 2014-11-17 13:39:53 +01:00
Bert Vermeulen c6dde8125a Check driver capabilities before sr_config_get/set/list. 2014-11-17 13:20:32 +01:00
Bert Vermeulen adfba7368a Refactor scan options check. 2014-11-14 20:25:12 +01:00
Bert Vermeulen 071151b578 sr_driver_scan: Enforce options passed in by client. 2014-11-14 12:22:54 +01:00
Bert Vermeulen 4b664cd6ce demo: Use allocation for model string. 2014-11-14 11:37:11 +01:00
Uwe Hermann 676877f6ce mic-985xx: Convert to use SR_DF_ANALOG2. 2014-11-13 22:51:39 +01:00
Uwe Hermann a84a26d98a victor-dmm: Convert to use SR_DF_ANALOG2. 2014-11-13 22:51:39 +01:00
Bert Vermeulen e02e9e6a1c output/analog: Add SR_DF_ANALOG2 support. 2014-11-13 22:51:39 +01:00
Bert Vermeulen fb019a0e4d Add sr_analog_to_float(). 2014-11-13 22:51:39 +01:00
Uwe Hermann 0af636bed9 Change sr_dev_inst_new() to take no parameters.
Change all callers to set the fields manually as needed.
2014-11-12 17:18:46 +01:00
Bert Vermeulen 3250d8c7e0 output: Add srzip, the session file format.
The 'filename' option is required: this module creates the zip file
itself, and never actually outputs anything back to the calling frontend.
2014-11-12 00:12:59 +01:00
Uwe Hermann e705ce3bf6 Add sr_dev_inst_user_new(), sr_dev_inst_channel_add(). 2014-11-11 22:16:12 +01:00
Uwe Hermann 2f5f97056a Constify the sdi parameter of all sr_dev_inst_*() getters. 2014-11-11 12:44:37 +01:00
Uwe Hermann 96727ef016 Make 'struct sr_dev_inst' opaque. 2014-11-11 12:24:08 +01:00
Uwe Hermann e437da2b86 Add sr_dev_inst_channels_get() and sr_dev_inst_channel_groups_get(). 2014-11-11 11:59:23 +01:00
Uwe Hermann 3f2cd87f36 session_driver.c: Allow querying of SR_CONF_CAPTURE_UNITSIZE. 2014-11-09 20:04:09 +01:00
Uwe Hermann 6508992d04 Brymen BM25x: Drop unneeded _ser/_SER suffix.
There's only one cable for this DMM, thus there's no need for a
_ser/_SER suffix or for specifying the cable name.
2014-11-02 16:40:40 +01:00
Uffe Jakobsen bce75f947d ols: Fix a serial port related issue on FreeBSD.
Add sp_drain() to ensure bytes have actually been transmitted
over the wire.

This fixes bug #414.
2014-11-01 19:44:36 +01:00
Bert Vermeulen 7aebe22d10 Only sr_dev_inst_free() should free channel groups. 2014-11-01 13:20:00 +01:00
Uwe Hermann aab4b8cb70 fx2lafw: Fix wide (16bit) sampling case.
This fixes bug #373.
2014-10-29 22:46:57 +01:00
Bert Vermeulen e3594306a9 zeroplus-logic-cube: Add support for AKIP-9101.
Thanks to Nikita Nazarenko for the patch.
2014-10-29 13:26:57 +01:00
Soeren Apel 9c6a2913fd Make sr_dev_inst_connid_get() available without libusb 2014-10-27 21:22:31 +01:00
Bert Vermeulen 933defaa03 hantek-dso: Fix driver/global/channel group config keys.
This was way behind and did not yet support channel groups.
2014-10-27 17:09:57 +01:00
Bert Vermeulen 6fad08e6ab Change SR_CONF_FILTER key to a boolean type.
This was an ill-defined string before, now it's simply something
you turn on or off on a channel.
2014-10-27 17:09:57 +01:00
Bert Vermeulen e7ba5a994b asix-sigma: Publish driver options. 2014-10-27 17:09:47 +01:00
Bert Vermeulen a258204e00 scpi-pps: Publish driver options. 2014-10-27 17:09:47 +01:00
Bert Vermeulen 390795c099 demo: Rearrange driver and device options. 2014-10-27 17:09:47 +01:00
Bert Vermeulen d7125bfa1e cem-dt-885x: Publish driver options. 2014-10-27 17:09:47 +01:00
Bert Vermeulen d6fa8ace94 atten-pps3xxx: Publish driver options. 2014-10-27 17:09:47 +01:00
Bert Vermeulen a700a3a4bf More robust searching for config keys. 2014-10-27 17:09:27 +01:00
Bert Vermeulen 51b1b95edb Add config info for device type and limit config keys. 2014-10-27 17:09:07 +01:00
Uwe Hermann 8769478c07 Add support for the UNI-T UT71x series (aka Voltcraft VC-920/940/960).
Tested on the Voltcraft VC-920 and VC-940 (both UT-D02 and UT-D04
cables), but it should work for all devices in this series without
any changes.
2014-10-25 17:14:30 +02:00
Uwe Hermann 626027df0f Add UNI-T UT71x DMM parser. 2014-10-25 16:53:32 +02:00
Bert Vermeulen ce48b174da sr_dev_inst_connid_get() requires libusb. 2014-10-23 00:22:07 +02:00
Bert Vermeulen cf49d66bc6 hantek-dso: Properly zero out MQ flags. 2014-10-22 22:19:41 +02:00
Bert Vermeulen 61b0292217 Accept subtype of expected GVariant values. 2014-10-22 22:18:52 +02:00
Janne Huttunen a42a39ac37 Export LCR meter 'auto' bits as config keys instead of mqflags.
The automatic selections of the measured quantity and equivalent circuit
model are more part of the configuration of the meter than attributes
of the measurement result. To reflect this, model them as config keys
instead of mqflags. This allows a driver that supports remote control to
implement 'set' method for them and has the additional benefit of saveing
two flag bits.
2014-10-21 12:23:20 +02:00
Jens Steinhauser 160691b900 input/csv: Skip header line. 2014-10-19 23:23:58 +02:00
Bert Vermeulen c3eadb0760 scpi-pps: Add support for Fluke/Philips PM2800 series. 2014-10-18 23:21:37 +02:00
Bert Vermeulen c1d56d2013 scpi-pps: Move non-standard data type processing to SCPI parser. 2014-10-18 23:21:37 +02:00
Bert Vermeulen 4a471029c2 scpi-pps: Add channel probe facility to scan.
If the number and specs of the device's channels are not static, i.e.
need to be probed, this facility is needed.

Initially this will be used for the Philips PM2800 series, where only
the model returned by *IDN? is needed. However this could also be used
to do actual discovery with vendor-specific SCPI commands.
2014-10-18 23:21:37 +02:00
Bert Vermeulen 99d090d8e5 Fix typos. 2014-10-18 23:21:37 +02:00
Bert Vermeulen b1b1944e19 Free channel group private storage when clearing device instance. 2014-10-18 23:21:37 +02:00
Janne Huttunen c7c8994c20 Rename "SERIAL" -> "SERIES".
Use the more correct term "SERIES" for the corresponding equivalent
circuit model.
2014-10-17 12:13:51 +02:00
Soeren Apel e8cbb22314 Auto-set sdi->connection_id for serial devices in the getter 2014-10-17 03:02:52 +02:00
Soeren Apel d1314831e4 yokogawa-dlm: Populate sdi->serial_num and sdi->version 2014-10-17 03:02:52 +02:00
Soeren Apel b3fccc851b rigol-ds: Populate sdi->serial_num 2014-10-17 03:02:52 +02:00
Soeren Apel b33db61c48 hameg-hmo: Populate sdi->serial_num 2014-10-17 03:02:52 +02:00
Soeren Apel d08667c53b scpi-pps: Populate sdi->serial_num and fix hw_info mem leak 2014-10-17 03:02:52 +02:00
Soeren Apel b2c02b0747 scpi: Populate sdi->connection_id 2014-10-17 03:02:52 +02:00
Soeren Apel 0699ccdd92 sysclk-lwla: Let the sdi getter populate sdi->connection_id
This fixes bug #441.
2014-10-17 03:02:52 +02:00
Soeren Apel c962d07cba ikalogic-scanalogic2: Let the sdi getter popuplage sdi->connection_id
This fixes bug #440.
2014-10-17 03:02:52 +02:00
Soeren Apel 0157fdce99 Provide getters for sr_dev_inst member access 2014-10-17 03:02:52 +02:00
Bert Vermeulen 984e4b0db8 scpi-pps: Start acquisition on the first enabled channel. 2014-10-17 03:00:55 +02:00
Bert Vermeulen 624503ae90 scpi-pps: Optimize channel selection.
This avoids sending a channel selection command to the device if
the channel we're working on is already on the same underlying
output channel.
2014-10-17 03:00:05 +02:00
Bert Vermeulen ee2860ee11 scpi-pps: Disable beeper during session.
At least the Rigol DP800 series trigger the beeper when changing
channels remotely. Which gets rather annoying when doing acquisition
on three channels as fast as you can.
2014-10-16 15:24:27 +02:00
Bert Vermeulen bf48ccebee scpi-pps: Properly clean up acquisition session. 2014-10-16 14:55:56 +02:00
Bert Vermeulen 60475cd788 scpi-pps: Use only standard SCPI for Rigol DP800 series. 2014-10-16 13:23:21 +02:00
Bert Vermeulen ae431bc8d6 Fix short names for SR_CONF_OUTPUT_VOLTAGE_TARGET/_CURRENT_LIMIT. 2014-10-16 13:22:51 +02:00
Martin Ling 1de3ccede9 Track sdis created by sr_session_load(), and free in sr_session_destroy(). 2014-10-15 13:44:25 +02:00
Martin Ling c0e3ba4b79 Correct description of sr_session.devs. 2014-10-15 13:44:25 +02:00
Bert Vermeulen ca95e90fb3 Use SR_CONF_OUTPUT_VOLTAGE_TARGET and _CURRENT_LIMIT.
These describe them better; the two are fundamentally different
things to set.
2014-10-15 12:03:00 +02:00
Bert Vermeulen 53a81803e4 scpi-pps: Split boolean set options into enable/disable.
This makes it easier to support devices that need something else
than "ON" or "OFF".
2014-10-13 12:50:28 +02:00
Uwe Hermann b9a348f56c Rename SR_CONF_LCR_METER to SR_CONF_LCRMETER.
(to be consistent with some other key names)
2014-10-13 11:39:15 +02:00
Uwe Hermann 3ea46116de libsigrok-internal.h: Fix some outdated comments. 2014-10-13 01:06:09 +02:00
Janne Huttunen b50891952d Add driver for DER EE DE-5000 LCR meter.
Add a driver for the DER EE DE-5000 LCR meter. This meter is based on
the Cyrustek ES51919/ES51920 chipset and communicates with the host
computer via an optional connectivity kit.

The kit uses an optoisolated unidirectional link to connect to the
meter and an USB cable on the host side. Internally the connection is
using the FTDI FT232R USB UART chip i.e. from the host computer point
of view the meter is connected into an RS-232 serial port.

This driver implements just a thin shim layer for registering the
driver and uses the es51919 module for all the actual work.
2014-10-13 00:56:11 +02:00
Janne Huttunen 6bcb3ee876 Add protocol decoder for Cyrustek ES51919 LCR meter chip.
Add a protocol decoder for the Cyrustek ES51919 LCR meter chip.
This chipset (together with ES51920 front-end) is supposedly used
by multiple different portable LCR meters including at least
DER EE DE-5000, Yihua V&A VA520, Mastech MS5308, Uni-T UT612,
CEM DT-9935 and various OEM rebadges of them.

The communication protocol seems to be implemented on the Cyrustek
chip itself so all the different models are expected to use the
same protocol if they implement a host connection. Unfortunately
the protocol is not available in the public documentation of the
chipset, so this implementation is based on reverse engineering it
from traffic captures.

The actual connection between the meter and the host computer may be
different from meter to meter even when based on the same chip. This
module implements a decoder for the protocol and some common helper
functions for interfacing with the meter via an RS-232 serial port.
2014-10-13 00:56:11 +02:00
Janne Huttunen 02c7c482a6 Add pretty-printer for new units and flags.
Add support for printing henries and degrees as well as the new
reference and auto flags.
2014-10-12 23:19:05 +02:00
Aurelien Jacobs 76bc5f6376 usb: Simplify usb_get_port_path() and fix writing into a const char *. 2014-10-12 19:36:11 +02:00
Bert Vermeulen d099d88021 Fix sr_dev_has_option().
This wasn't taking the SR_CONF_GET/_SET/_LIST flags into account.

Thanks to Janne Huttunen for spotting this.
2014-10-09 23:42:24 +02:00
Bert Vermeulen f4d3a4fb9a ols: Fix serial port timeout. 2014-10-08 03:00:47 +02:00
Bert Vermeulen 9e6d9bee2a colead-slm: Fix serial port timeout. 2014-10-08 02:23:20 +02:00
Bert Vermeulen 2eb1612d46 atten-pps3xxx: Use serial_timeout(). 2014-10-06 12:12:13 +02:00
Bert Vermeulen c5cfc735e5 serial: Add serial_timeout().
This calculates a proper timeout value for blocking writes on the
given serial port, for the given number of bytes. Timeout is based
on a fixed 10ms OS overhead, baud rate, data bits and stop bits.
2014-10-06 12:10:25 +02:00
Bert Vermeulen 945cfd4fdd atten-pps3xxx: Fix serial port timeout. 2014-10-05 12:29:28 +02:00
Bert Vermeulen 204014007f fluke-dmm: Fix blocking serial write timeout. 2014-10-04 10:39:11 +02:00
Bert Vermeulen 95779b43b8 agilent-dmm: Fix blocking serial write timeout. 2014-10-04 10:39:11 +02:00
Bert Vermeulen 4ab01c3564 input/csv: Fix size_t printing. 2014-10-04 10:39:11 +02:00
Martin Ling 9092e66888 Add a configurable read timeout to blocking SCPI reads, default 1s. 2014-10-03 13:40:41 +02:00
Martin Ling eead278242 Add a timeout parameter to blocking serial calls.
Set this new parameter to 0 (no timeout) at every call site. This is
consistent with previous behaviour, so cannot cause any regressions.

Waiting forever for a serial operation is clearly always wrong. Without
specific knowledge of each device and driver however, I can't choose
appropriate timeouts for each call. The maintainers of these drivers
will need to do so, and also add appropriate handling of timeouts.

When this commit is merged, a bug should be entered for each driver
that is touched by it.
2014-10-02 22:06:16 +02:00
Bert Vermeulen 7ce59a3133 Avoid serial_write_blocking() warnings. 2014-10-02 16:01:27 +02:00
Martin Ling 081c214eac Fix similar broken error handling on several serial calls. 2014-10-02 15:57:02 +02:00
Bert Vermeulen 7f22cd9554 kecheng-kc-330b: Fix missing time/frequency weighting. 2014-10-02 15:06:36 +02:00