]> sigrok.org Git - libsigrok.git/log
libsigrok.git
5 years agoscpi-pps: Add init_acquisition() and update_status() for device specific
Frank Stettner [Tue, 9 Apr 2019 14:13:32 +0000 (16:13 +0200)]
scpi-pps: Add init_acquisition() and update_status() for device specific
acquisition functions.

5 years agoscpi-pps: Add config keys SR_CONF_OVER_VOLTAGE_PROTECTION_ACTIVE,
Frank Stettner [Tue, 9 Apr 2019 13:47:19 +0000 (15:47 +0200)]
scpi-pps: Add config keys SR_CONF_OVER_VOLTAGE_PROTECTION_ACTIVE,
SR_CONF_OVER_CURRENT_PROTECTION_ACTIVE and
SR_CONF_OVER_TEMPERATURE_PROTECTION_ACTIVE to HP 66xxB power supplies.

5 years agoscpi-pps: Add SR_CONF_REGULATION for HP 66xxB power supplies.
Frank Stettner [Tue, 9 Apr 2019 13:29:30 +0000 (15:29 +0200)]
scpi-pps: Add SR_CONF_REGULATION for HP 66xxB power supplies.

5 years agoscpi-pps: Add enum pps_scpi_dialect and add to struct scpi_pps,
Frank Stettner [Tue, 9 Apr 2019 13:27:09 +0000 (15:27 +0200)]
scpi-pps: Add enum pps_scpi_dialect and add to struct scpi_pps,
preset with reasonable values.

5 years agosession: Add helper sr_session_send_meta() to send SR_DF_META packages.
Frank Stettner [Tue, 9 Apr 2019 12:12:31 +0000 (14:12 +0200)]
session: Add helper sr_session_send_meta() to send SR_DF_META packages.

Replace individual functions in drivers for arachnid-labs-re-load-pro
and lcr/es51919 with sr_session_send_meta() helper function.

5 years agodemo: Minor cosmetics.
Uwe Hermann [Fri, 29 Mar 2019 15:23:21 +0000 (16:23 +0100)]
demo: Minor cosmetics.

5 years agokorad-kaxxxxp: Add another KA3005P with 0xBC as extra byte in the model ID.
Frank Stettner [Thu, 21 Mar 2019 22:04:58 +0000 (23:04 +0100)]
korad-kaxxxxp: Add another KA3005P with 0xBC as extra byte in the model ID.

5 years agokorad-kaxxxxp: Add SR_MQFLAG_DC flag to the current channel package.
Frank Stettner [Thu, 21 Mar 2019 17:43:39 +0000 (18:43 +0100)]
korad-kaxxxxp: Add SR_MQFLAG_DC flag to the current channel package.

5 years agoscpi: Add connenction_id() function to all scpi drivers.
Frank Stettner [Sat, 16 Mar 2019 22:44:38 +0000 (23:44 +0100)]
scpi: Add connenction_id() function to all scpi drivers.

5 years agodemo: Get/Set new config key offset.
Frank Stettner [Thu, 21 Feb 2019 15:47:25 +0000 (16:47 +0100)]
demo: Get/Set new config key offset.

5 years agoAdd new config key OFFSET.
Frank Stettner [Thu, 21 Feb 2019 15:46:36 +0000 (16:46 +0100)]
Add new config key OFFSET.

5 years agodemo: Get/Set amplitude while data acquisition is running.
Frank Stettner [Thu, 21 Feb 2019 15:34:17 +0000 (16:34 +0100)]
demo: Get/Set amplitude while data acquisition is running.

5 years agodemo: Get/Set measurement quantity for the analog channels.
Frank Stettner [Wed, 20 Feb 2019 19:32:04 +0000 (20:32 +0100)]
demo: Get/Set measurement quantity for the analog channels.

5 years agodemo: Set an initial mq, mq flag and digits to the analog package.
Frank Stettner [Wed, 20 Feb 2019 17:58:13 +0000 (18:58 +0100)]
demo: Set an initial mq, mq flag and digits to the analog package.

Without a measured quantity in packet.meaning->mq the C++ binding function
sigrok::Analog::mq() throws an exception and there is no way to check if
there is any measured quantity set in the analog package.

5 years agoFree sr_config and sr_config lists in meta datafeeds correctly.
Frank Stettner [Tue, 19 Feb 2019 15:57:48 +0000 (16:57 +0100)]
Free sr_config and sr_config lists in meta datafeeds correctly.

5 years agoinput/trace32_ad: Add support for new file format (BINHDR2)
Soeren Apel [Sun, 24 Mar 2019 20:33:54 +0000 (21:33 +0100)]
input/trace32_ad: Add support for new file format (BINHDR2)

5 years agoinput/trace32_ad: Use only hex offsets
Soeren Apel [Sun, 24 Mar 2019 12:48:44 +0000 (13:48 +0100)]
input/trace32_ad: Use only hex offsets

5 years agochronovu-la: Fix broken triggering.
Uwe Hermann [Thu, 21 Mar 2019 23:59:39 +0000 (00:59 +0100)]
chronovu-la: Fix broken triggering.

This fixes bug #1369.

5 years agokorad-kaxxxxp: support for Stamos S-LS-31 power supply
Thomas Andres [Sun, 17 Mar 2019 16:06:28 +0000 (17:06 +0100)]
korad-kaxxxxp: support for Stamos S-LS-31 power supply

5 years agomanson-hcs-3xxx: Add HCS-3300 / DPPS-32-15 / HCS-3302 support.
Michael Klengel [Wed, 13 Feb 2019 09:50:19 +0000 (10:50 +0100)]
manson-hcs-3xxx: Add HCS-3300 / DPPS-32-15 / HCS-3302 support.

Manson HCS-3300 (1-16 V, 30 A):

  $ sigrok-cli --show -d manson-hcs-3xxx:conn=/dev/cu.SLAB_USBtoUART5
  [...]
  sr: manson-hcs-3xxx: Unknown model ID 'HCS-3300' detected, aborting.

Voltcraft DPPS-32-15 (1-32 V, 15 A), identical to Manson HCS-3302:

  $ sigrok-cli --show -d manson-hcs-3xxx:conn=/dev/cu.SLAB_USBtoUART
  [...]
  sr: manson-hcs-3xxx: Unknown model ID 'HCS-3302' detected, aborting.

5 years agomanson-hcs-3xxx: Whitespace changes for models[].
Michael Klengel [Wed, 13 Feb 2019 09:50:18 +0000 (10:50 +0100)]
manson-hcs-3xxx: Whitespace changes for models[].

5 years agohp-3478a: Check via GPIB serial poll if new data is available.
Frank Stettner [Fri, 1 Feb 2019 11:18:46 +0000 (12:18 +0100)]
hp-3478a: Check via GPIB serial poll if new data is available.

When just reading the data without check, the bus is blocked until new
data is available.

5 years agoipdbg-la: Minor cosmetic and comment fixes.
Uwe Hermann [Tue, 29 Jan 2019 22:15:37 +0000 (23:15 +0100)]
ipdbg-la: Minor cosmetic and comment fixes.

5 years agoipdbg-la: improve speed
Daniel Anselmi [Fri, 18 Jan 2019 02:03:02 +0000 (03:03 +0100)]
ipdbg-la: improve speed

5 years agoipdbg-la: working on windows
danselmi [Thu, 17 Jan 2019 11:31:23 +0000 (12:31 +0100)]
ipdbg-la: working on windows

5 years agools: add feature to support >256K memory
Wolfram Sang [Wed, 2 Jan 2019 12:15:25 +0000 (13:15 +0100)]
ols: add feature to support >256K memory

Add support for the Pepino-style of accessing >256K of memory. Because
this the only known extension of accessing >256K currently, we apply it
as soon as the sample size is bigger than 256K.  Let's hope other
devices (if any) will follow this style. If not, we need to add support
depending on the device name later.

Signed-off-by: Wolfram Sang <redacted>
5 years agopipistrello: rename registers to match actual function
Wolfram Sang [Wed, 2 Jan 2019 12:15:24 +0000 (13:15 +0100)]
pipistrello: rename registers to match actual function

Magnus (creator of the Pipistrello) confirmed that he mixed up the
register names. The code was doing it correctly nonetheless but was
confusing to read because of this. Fix it to make it easier to
comprehend.

Signed-off-by: Wolfram Sang <redacted>
5 years agools: mention compatible devices in driver name
Wolfram Sang [Wed, 2 Jan 2019 12:15:23 +0000 (13:15 +0100)]
ols: mention compatible devices in driver name

Signed-off-by: Wolfram Sang <redacted>
5 years agools: extend reponse delay when scanning device
Wolfram Sang [Wed, 2 Jan 2019 12:15:22 +0000 (13:15 +0100)]
ols: extend reponse delay when scanning device

My Pepino needs 15ms instead of 10ms, so let's use 20ms to be on the
safe side.

Signed-off-by: Wolfram Sang <redacted>
5 years agools: sort commands according to their hex value
Wolfram Sang [Wed, 2 Jan 2019 12:15:21 +0000 (13:15 +0100)]
ols: sort commands according to their hex value

Makes adding new ones easier.

Signed-off-by: Wolfram Sang <redacted>
5 years agools: refactor using max_channels
Wolfram Sang [Wed, 2 Jan 2019 12:15:20 +0000 (13:15 +0100)]
ols: refactor using max_channels

Let max_channels really carry the number of maximum channels the
hardware supports. We will handle the limitation of only half the
channels available in 200MHz mode later. Note that there won't be a
regression because we only set the variable but never check it. The
desired result of this patch is the removal of the NUM_CHANNELS macro.
The number of channels needs to be dealt with at runtime.

Signed-off-by: Wolfram Sang <redacted>
5 years agools: refactor channel initialization
Wolfram Sang [Wed, 2 Jan 2019 12:15:19 +0000 (13:15 +0100)]
ols: refactor channel initialization

We needs this twice so put it into a seperate function, so updates to it
will automatically handled for both callers.

Signed-off-by: Wolfram Sang <redacted>
5 years agools: simplify calculation of readcount
Wolfram Sang [Wed, 2 Jan 2019 12:15:18 +0000 (13:15 +0100)]
ols: simplify calculation of readcount

Somewhen we probably want DIV_ROUND_UP from the Kernel.

Signed-off-by: Wolfram Sang <redacted>
5 years agools: drop wrong usage of macro
Wolfram Sang [Wed, 2 Jan 2019 12:15:17 +0000 (13:15 +0100)]
ols: drop wrong usage of macro

commit f51acd69 ("ols: combine demux samples") wrongly replaced the bit
pattern of 0x20 with the number of channels which just happens to be 32
as well. So, the code works but is confusing to read. Reword the
for-loop to make it more comprehensible.

Signed-off-by: Wolfram Sang <redacted>
5 years agools: use 32bit for handling sample counts
Wolfram Sang [Wed, 2 Jan 2019 12:15:16 +0000 (13:15 +0100)]
ols: use 32bit for handling sample counts

The OLS protocol sends 16bit values to specify the sample count and
delay count. However, this 16bit value is the number of 32bit words to
be sampled, so the actual sample count is 4 times larger and does not
fit into a uint16_t. Extend it to support the full range of 256K
(LogicShrimp will need this) and to prepare support for devices with
even more memory (Pepino).

Signed-off-by: Wolfram Sang <redacted>
5 years agools: remove needless initialization
Wolfram Sang [Wed, 2 Jan 2019 12:15:15 +0000 (13:15 +0100)]
ols: remove needless initialization

channel_mask is recalculated before it gets accessed, so this
initialization is not needed.

Signed-off-by: Wolfram Sang <redacted>
5 years agools: remove unused define
Wolfram Sang [Wed, 2 Jan 2019 12:15:14 +0000 (13:15 +0100)]
ols: remove unused define

Signed-off-by: Wolfram Sang <redacted>
5 years agouni-t-ut32x: rephrase the receive buffer and packets relation
Gerhard Sittig [Thu, 5 Oct 2017 23:38:26 +0000 (01:38 +0200)]
uni-t-ut32x: rephrase the receive buffer and packets relation

The previous implementation assumed that a receive data chunk ends
exactly with a sensor packet's end. Yet the buffer had 32 bytes while
the packets have 19 bytes.

Separate the data reception from the packet processing. Collect whatever
chunks the USB connection provides, and scan the resulting buffer for
packets. Cope with either incomplete or corrupt or misaligned packets as
well as with multiple packets in receive chunks. The latter might happen
upon initial synchronization, when a device already sends data or the
serial port buffered previously communicated data.

In the regular case, the computer will process so fast that each single
character will be handled individually. We don't mind. The frequency is
some 60 times per second, and the data volume is 19 bytes. The software
works for the regular case, and synchronizes fast at startup or after
comm errors.

5 years agouni-t-ut32x: improve robustness of packet parser, more diagnostics
Gerhard Sittig [Thu, 5 Oct 2017 22:34:05 +0000 (00:34 +0200)]
uni-t-ut32x: improve robustness of packet parser, more diagnostics

Always print the data bytes of received buffers in the packet parser,
then check some more fixed fields to not process invalid packets, then
process the packet content as the previous implementation did.

Call the packet parser for incomplete packets and discarded input
buffers as well (initial synchronization, re-sync after comm errors).
This results in the availability of more diagnostics during development.

Pass the packet's location and size from outside. This prepares the
logic to cope with situations where the receive buffer contains multiple
(potentially incomplete) packets.

5 years agouni-t-ut32x: use ASCII literals in packet parser, symbols for magic numbers
Gerhard Sittig [Thu, 5 Oct 2017 22:09:44 +0000 (00:09 +0200)]
uni-t-ut32x: use ASCII literals in packet parser, symbols for magic numbers

Slightly unobfuscate the UT32x packet parser. The protocol is mostly
ASCII based, checks for hex numbers may be unexpected. Use symbolic
identifiers for the packet length and some special characters.

5 years agouni-t-ut32x: comment on the "T1-T2" channel name (looks like a range)
Gerhard Sittig [Thu, 5 Oct 2017 21:26:38 +0000 (23:26 +0200)]
uni-t-ut32x: comment on the "T1-T2" channel name (looks like a range)

5 years agouni-t-ut32x: use common code for sw limits, minor data type fixup (data source)
Gerhard Sittig [Thu, 5 Oct 2017 21:16:50 +0000 (23:16 +0200)]
uni-t-ut32x: use common code for sw limits, minor data type fixup (data source)

5 years agouni-t-ut32x: pre-set to default conn= spec
Gerhard Sittig [Thu, 5 Oct 2017 09:35:25 +0000 (11:35 +0200)]
uni-t-ut32x: pre-set to default conn= spec

The previous implementation of the UT32x driver expected to see a conn=
spec, without it no device is found. Default to the USB identification
of the CH9325 chip, to make the driver work out of the box. Users still
can provide conn= specs and override the default for other cables.

5 years agodoc: update README.devices (USB detection, enable serial comm)
Gerhard Sittig [Sun, 30 Dec 2018 11:31:20 +0000 (12:31 +0100)]
doc: update README.devices (USB detection, enable serial comm)

Slightly rephrase README.devices since there is no strict distinction
into "fully automatic" and "always manual". Some drivers _accept_ conn=
specs when provided, _and_ support automatic detection of enumerable
devices, _and_ might implement defaults but also support overrides.

Nit, numerically sort the list of Uni-T cables (which is about to grow
in the future) for improved readability.

Add two more devices which require users to manually enable the serial
communication (Brymen BM257s, EEVBlog 121GW).

5 years agobindings: Add Output::format()
Martin Ling [Sun, 30 Dec 2018 03:01:21 +0000 (04:01 +0100)]
bindings: Add Output::format()

5 years agorigol-ds: Fix memory buffer readout on DS4000 series.
Martin Ling [Sat, 29 Dec 2018 02:18:05 +0000 (03:18 +0100)]
rigol-ds: Fix memory buffer readout on DS4000 series.

5 years agoAdd support for YiXingDianZi MDSO in hantek-6xxx driver.
majekw [Sun, 2 Dec 2018 12:49:44 +0000 (13:49 +0100)]
Add support for YiXingDianZi MDSO in hantek-6xxx driver.

5 years agoscpi-pps: add support for BK Precision 9130
Mike Williams [Wed, 5 Dec 2018 19:46:26 +0000 (14:46 -0500)]
scpi-pps: add support for BK Precision 9130

5 years agoscpi-dmm: add experimental Keysight 34465A support
Mike Williams [Wed, 5 Dec 2018 17:47:52 +0000 (12:47 -0500)]
scpi-dmm: add experimental Keysight 34465A support

Tested DC current, DC voltage, and resistance. Instrument gives an error
only on first measurement but the output of the measurements is correct.

5 years agocontrib/60-libsigrok.rules: Mention FT232H/ftdi-la item.
Uwe Hermann [Fri, 28 Dec 2018 12:01:45 +0000 (13:01 +0100)]
contrib/60-libsigrok.rules: Mention FT232H/ftdi-la item.

5 years agoftdi-la: added FT232H device ID
Paul [Wed, 19 Dec 2018 20:23:57 +0000 (21:23 +0100)]
ftdi-la: added FT232H device ID

5 years agobindings: Add new Context::create_end_packet() method.
Martin Ling [Thu, 27 Dec 2018 19:38:30 +0000 (20:38 +0100)]
bindings: Add new Context::create_end_packet() method.

5 years agopython: Add override for Context.create_logic_packet()
Martin Ling [Thu, 27 Dec 2018 19:38:06 +0000 (20:38 +0100)]
python: Add override for Context.create_logic_packet()

5 years agodmm/eev121gw: fix a typo in a comment
Gerhard Sittig [Thu, 20 Dec 2018 18:10:27 +0000 (19:10 +0100)]
dmm/eev121gw: fix a typo in a comment

5 years agopickit2: avoid NULL dereference in close code path
Gerhard Sittig [Wed, 19 Dec 2018 11:41:29 +0000 (12:41 +0100)]
pickit2: avoid NULL dereference in close code path

5 years agoipdbg-la: Check if limit samples is valid (leq size of ringuffer)
Daniel Anselmi [Tue, 4 Dec 2018 00:55:00 +0000 (01:55 +0100)]
ipdbg-la: Check if limit samples is valid (leq size of ringuffer)

5 years agoDon't reference SR_PACKAGE_VERSION_STRING directly in backend.c.
Martin Ling [Thu, 20 Sep 2018 20:12:28 +0000 (21:12 +0100)]
Don't reference SR_PACKAGE_VERSION_STRING directly in backend.c.

Reporting build versus runtime versions makes sense for a client,
but not inside the library itself.

5 years agoDon't reference SR_PACKAGE_VERSION_STRING directly in output modules.
Martin Ling [Thu, 20 Sep 2018 19:42:11 +0000 (20:42 +0100)]
Don't reference SR_PACKAGE_VERSION_STRING directly in output modules.

5 years agodrivers: Make per-driver sr_dev_driver structs static.
Uwe Hermann [Thu, 20 Dec 2018 07:52:51 +0000 (08:52 +0100)]
drivers: Make per-driver sr_dev_driver structs static.

5 years agomicrochip-pickit2: Drop unneeded prefix.
Uwe Hermann [Thu, 20 Dec 2018 07:35:06 +0000 (08:35 +0100)]
microchip-pickit2: Drop unneeded prefix.

5 years agomicrochip-pickit2: Minor cosmetics.
Uwe Hermann [Thu, 20 Dec 2018 07:32:56 +0000 (08:32 +0100)]
microchip-pickit2: Minor cosmetics.

5 years agomicrochip-pickit2: first driver implementation (acquisition works, triggers don't)
Gerhard Sittig [Tue, 11 Dec 2018 14:14:13 +0000 (15:14 +0100)]
microchip-pickit2: first driver implementation (acquisition works, triggers don't)

Fill in the scan, open/close, get/set/list, acquisition start/stop logic
such that data acquisition with a PICkit2 works.

Trigger support needs more attention. User specified triggers either
seem to not take effect, or the trigger position is not in the expected
location. It's yet to get determined what's the issue.

This implementation is based on protocol information gathered from the
pk2-la project.

5 years agomicrochip-pickit2: Initial driver skeleton.
Gerhard Sittig [Tue, 11 Dec 2018 11:18:07 +0000 (12:18 +0100)]
microchip-pickit2: Initial driver skeleton.

5 years agobrymen-bm86x: drop redundant free call, fixup channel index
Gerhard Sittig [Tue, 11 Dec 2018 15:52:06 +0000 (16:52 +0100)]
brymen-bm86x: drop redundant free call, fixup channel index

Remove a free() call in an error path for a list which immediately
before the call was determined to be NULL. Use index 0 and 1 for
channels P1 and P2 respectively (the previous implementation used 0
for both channels).

6 years agoscpi-dmm: run OPC queries immediately before essential commands
Gerhard Sittig [Sat, 17 Nov 2018 18:51:31 +0000 (19:51 +0100)]
scpi-dmm: run OPC queries immediately before essential commands

The current implementation of the SCPI DMM driver is conservative about
checking the device's being operational, but the *OPC? queries are found
in unfortunate locations. Run the OPC query right before running the
next "actual" command, not afterwards. And certainly not between sending
requests and potentially gathering responses in subsequent calls.

This commit does not change current behaviour, but improves maintenance
before pending commits.

6 years agoscpi-dmm: return MQ table entry to "get MQ" routine callers
Gerhard Sittig [Sat, 17 Nov 2018 18:43:38 +0000 (19:43 +0100)]
scpi-dmm: return MQ table entry to "get MQ" routine callers

The "get MQ" helper routine communicates SCPI responses and translates
them to internal "MQ and flag" values. Optionally return the MQ table
entry reference to callers, so they don't have to repeat the table
lookup when the function's default precision is required, or should
future "start acquisition" requests need to refer to the meter's current
function.

6 years agoscpi-dmm: adjust MQ table for Agilent 34405A
Gerhard Sittig [Sat, 17 Nov 2018 16:17:43 +0000 (17:17 +0100)]
scpi-dmm: adjust MQ table for Agilent 34405A

Rename the table to reflect that it's model specific. Remove the 4-wire
resistance function which this device does not support.

6 years agoscpi-dmm: add support for model specific device options
Gerhard Sittig [Sat, 17 Nov 2018 15:26:51 +0000 (16:26 +0100)]
scpi-dmm: add support for model specific device options

Supported SCPI DMM devices will differ in the set of options and whether
parameters can get queried or configured. Use a "generic" set of devopts
during scan and for simpler models, prepare support for other sets of
devopts for more complex models.

6 years agoscpi-dmm: accept serialcomm= scan options
Gerhard Sittig [Sun, 11 Nov 2018 12:42:12 +0000 (13:42 +0100)]
scpi-dmm: accept serialcomm= scan options

6 years agoscpi: alpha-sort the vendor alias list
Gerhard Sittig [Sat, 17 Nov 2018 16:32:21 +0000 (17:32 +0100)]
scpi: alpha-sort the vendor alias list

6 years agoscpi: add Keysight vendor alias
Gerhard Sittig [Sat, 17 Nov 2018 16:30:47 +0000 (17:30 +0100)]
scpi: add Keysight vendor alias

6 years agoscpi-dmm: move declaration of local variable out of header file
Gerhard Sittig [Sat, 17 Nov 2018 15:43:46 +0000 (16:43 +0100)]
scpi-dmm: move declaration of local variable out of header file

6 years agoRemove always-false condition
Michał Janiszewski [Tue, 30 Oct 2018 06:31:40 +0000 (07:31 +0100)]
Remove always-false condition

6 years agoPython-Binding: Added data array for logic packet payload
Sven Bursch-Osewold [Fri, 19 Oct 2018 07:11:36 +0000 (09:11 +0200)]
Python-Binding: Added data array for logic packet payload

6 years agoscpi-dmm: Implement support for Agilent 34405A, prepare others
Gerhard Sittig [Sun, 4 Nov 2018 18:54:17 +0000 (19:54 +0100)]
scpi-dmm: Implement support for Agilent 34405A, prepare others

Implement the scpi-dmm driver in such a generic way that it could work
with several protocol variants and with differing models which happen to
use any of these protocol variants. Prepare a list of supported models
with their respective SCPI command set, set of DMM functions and their
precision.

Add support for Agilent 34405A. The ten functions of this device got
tested and are operational, in continuous mode as well as with sample
count or capture time limits. The driver can query the current meter's
function, can change the function, and can run acquisitions in either
the current mode or with a user specified function selection. There is
some potential for improvement: AUTO/MIN/MAX/HOLD indicators are not
supported by this implementation.

6 years agoscpi-dmm: Initial driver skeleton.
Gerhard Sittig [Fri, 2 Nov 2018 17:32:33 +0000 (18:32 +0100)]
scpi-dmm: Initial driver skeleton.

6 years agoscpi: nit, use glib to determine string vector length
Gerhard Sittig [Wed, 7 Nov 2018 19:27:17 +0000 (20:27 +0100)]
scpi: nit, use glib to determine string vector length

Replace a DIY length calculation with a glib call.

6 years agoscpi: introduce string un-quote helper routine
Gerhard Sittig [Wed, 7 Nov 2018 19:22:54 +0000 (20:22 +0100)]
scpi: introduce string un-quote helper routine

The SCPI protocol may communicate strings in quoted form, enclosed by a
matching pair of single or double quote characters, and occurances of
this very quote character within the string get doubled (escaped). Add a
common routine to undo the quotes.

6 years agofluke-45: fix minor memory leaks in the probe routine
Gerhard Sittig [Sat, 3 Nov 2018 13:52:00 +0000 (14:52 +0100)]
fluke-45: fix minor memory leaks in the probe routine

Free the SCPI hardware info after successful model detection, too. Only
allocate the device instance when a supported model was found. Link the
device context earlier right after allocation, for easier verification.

6 years agofluke-45: disable ECHO test, it confuses other SCPI devices
Gerhard Sittig [Sat, 3 Nov 2018 13:34:28 +0000 (14:34 +0100)]
fluke-45: disable ECHO test, it confuses other SCPI devices

Disable the ECHO test in the Fluke 45 probe routine which violates the
SCPI protocol and makes other devices unavailable. This fixes bug #1272.

6 years agofluke-45: avoid NULL dereference in the probe routine
Gerhard Sittig [Sat, 3 Nov 2018 13:28:56 +0000 (14:28 +0100)]
fluke-45: avoid NULL dereference in the probe routine

The Fluke 45 probe routine tries to detect whether the serial port is
"in echo mode" (which already is questionable before the IDN query).
In the absence of a response, the library segfaults. Fix it.

6 years agoREADME.devices: add example for -d driver:conn=usbtmc/bus.addr
Gerhard Sittig [Wed, 7 Nov 2018 20:16:53 +0000 (21:16 +0100)]
README.devices: add example for -d driver:conn=usbtmc/bus.addr

6 years agoFree list returned by sr_session_dev_list()
Jon Burgess [Sun, 14 Oct 2018 23:17:09 +0000 (00:17 +0100)]
Free list returned by sr_session_dev_list()

==214948== 16 bytes in 1 blocks are definitely lost in loss record 161 of 6,440
==214948==    at 0x4C2EE0B: malloc (vg_replace_malloc.c:299)
==214948==    by 0x650F435: g_malloc (in /usr/lib64/libglib-2.0.so.0.5600.3)
==214948==    by 0x6527056: g_slice_alloc (in /usr/lib64/libglib-2.0.so.0.5600.3)
==214948==    by 0x65284B0: g_slist_copy_deep (in /usr/lib64/libglib-2.0.so.0.5600.3)
==214948==    by 0x592BBA6: sr_session_dev_list (session.c:402)
==214948==    by 0x56EF7B5: sigrok::Session::Session(std::shared_ptr<sigrok::Context>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (classes.cpp:932)

==214948== 16 bytes in 1 blocks are definitely lost in loss record 162 of 6,440
==214948==    at 0x4C2EE0B: malloc (vg_replace_malloc.c:299)
==214948==    by 0x650F435: g_malloc (in /usr/lib64/libglib-2.0.so.0.5600.3)
==214948==    by 0x6527056: g_slice_alloc (in /usr/lib64/libglib-2.0.so.0.5600.3)
==214948==    by 0x65284B0: g_slist_copy_deep (in /usr/lib64/libglib-2.0.so.0.5600.3)
==214948==    by 0x592BBA6: sr_session_dev_list (session.c:402)
==214948==    by 0x56F1EB1: sigrok::Session::devices() (classes.cpp:967)

6 years agosiglent-sds: Consistently use gboolean/TRUE/FALSE.
Uwe Hermann [Sun, 14 Oct 2018 22:04:21 +0000 (00:04 +0200)]
siglent-sds: Consistently use gboolean/TRUE/FALSE.

6 years agoAdditional USB PID for Rohde&Schwarz HMO series mixed-signal oscilloscopes
Guido Trentalancia [Sat, 20 Oct 2018 17:33:01 +0000 (19:33 +0200)]
Additional USB PID for Rohde&Schwarz HMO series mixed-signal oscilloscopes

Add another possible USB PID for Rohde&Schwarz HMO series mixed-signal
oscilloscopes (previously branded Hameg).

6 years agodmm/eev121gw: drop an obsolete TODO comment (power measurement)
Gerhard Sittig [Thu, 18 Oct 2018 17:18:46 +0000 (19:18 +0200)]
dmm/eev121gw: drop an obsolete TODO comment (power measurement)

6 years agodmm/eev121gw: cosmetics, align ranges' scaling table entries
Gerhard Sittig [Wed, 17 Oct 2018 15:46:26 +0000 (17:46 +0200)]
dmm/eev121gw: cosmetics, align ranges' scaling table entries

Align the scaling items such that all numbers are aligned. Drop unneeded
"prefixes" for the 2nd display's tables, the main and sub displays already
have their individual tables which reside in their respective groups.

6 years agodmm/eev121gw: add missing scale items for sub display in power modes
Gerhard Sittig [Tue, 16 Oct 2018 19:14:55 +0000 (21:14 +0200)]
dmm/eev121gw: add missing scale items for sub display in power modes

Complete the voltage and current scale items for the sub display which
were incomplete for VA, mVA, and uVA power measurement modes before.

6 years agoserial_stream_detect(): Make a code comment more generic.
Uwe Hermann [Sun, 14 Oct 2018 17:01:59 +0000 (19:01 +0200)]
serial_stream_detect(): Make a code comment more generic.

6 years agodemo: Fixup soft-trigger
Soeren Apel [Sun, 14 Oct 2018 18:45:25 +0000 (20:45 +0200)]
demo: Fixup soft-trigger

6 years agodemo: Implement logic triggering.
luftek [Tue, 9 Oct 2018 17:20:56 +0000 (19:20 +0200)]
demo: Implement logic triggering.

Analog triggers and other items still need more work.

6 years agodemo: Port trigger configuration from fx2lafw.
luftek [Tue, 9 Oct 2018 10:04:54 +0000 (12:04 +0200)]
demo: Port trigger configuration from fx2lafw.

6 years agoRandom whitespace/cosmetic/typo fixes.
Uwe Hermann [Sun, 27 May 2018 15:07:26 +0000 (17:07 +0200)]
Random whitespace/cosmetic/typo fixes.

6 years agoserial-dmm: add EEVblog 121GW device entry (-d eevblog-121gw:conn=<uart>)
Gerhard Sittig [Fri, 28 Sep 2018 17:38:23 +0000 (19:38 +0200)]
serial-dmm: add EEVblog 121GW device entry (-d eevblog-121gw:conn=<uart>)

Add an "eevblog-121gw" subdriver entry for the EEVblog 121GW multimeter.
Use device dependent channel names instead of the default "P1" etc names.

It's assumed that the device's binary packet data is available at a COM
port. This means that an external BT to UART gateway is required until
BLE communication will be one of libsigrok's native connection types.

6 years agodmm/eev121gw: introduce parser for EEVblog 121GW 19-byte binary packets
Gerhard Sittig [Fri, 28 Sep 2018 16:39:23 +0000 (18:39 +0200)]
dmm/eev121gw: introduce parser for EEVblog 121GW 19-byte binary packets

Introduce the dmm/eev121gw.c source file with parse routines for the
EEVblog 121GW meter's 19-bytes binary packets. Get the values and MQ
properties of the device's several displays (main, sub, bar) in several
individual parse calls.

This commit introduces initial support for the device. Some of the modes
and features are untested, as are some of the device's ranges.

6 years agoNewer versions of Victor DMMs (at least for 86) contain a direct
Thomas Weißschuh [Sun, 14 Oct 2018 15:43:34 +0000 (17:43 +0200)]
Newer versions of Victor DMMs (at least for 86) contain a direct
Mini-USB port. This port speaks the FS9922 protocol.

Picture of Mini-USB version:
http://roastlogger.co.uk/coffee/roastlogger/victor86.html

Signed-off-by: Thomas Weißschuh <redacted>
6 years agosiglent-sds: Fix SR_CONF_AVERAGING/SR_CONF_AVG_SAMPLES handling.
Uwe Hermann [Sat, 13 Oct 2018 22:27:24 +0000 (00:27 +0200)]
siglent-sds: Fix SR_CONF_AVERAGING/SR_CONF_AVG_SAMPLES handling.

6 years agosiglent-sds: Add ESERIES device support.
marchelh [Sun, 9 Sep 2018 14:11:59 +0000 (16:11 +0200)]
siglent-sds: Add ESERIES device support.

Due to some SCPI command changes that Siglent made, the connection
failed due to the wrong commands being send to the device.

This might fix parts of bug #1242, though initial tests show that
further changes might be needed.

[Note: This commit consists of multiple squashed commits from
marchelh <redacted> and various fixups and rebasing
operations by Uwe Hermann <redacted>]

6 years agokorad-kaxxxxp: Add Tenma 72-2540 V2.0/V2.1 support (untested).
Uwe Hermann [Sat, 13 Oct 2018 15:21:56 +0000 (17:21 +0200)]
korad-kaxxxxp: Add Tenma 72-2540 V2.0/V2.1 support (untested).

The IDN strings were mentioned here:
https://github.com/kxtells/tenma-serial/issues/2

6 years agoserial: dump DMM packets during stream detection
Gerhard Sittig [Mon, 8 Oct 2018 15:07:07 +0000 (17:07 +0200)]
serial: dump DMM packets during stream detection

Regular operation of serial DMM drivers optionally can dump packet bytes
after the intialization phase has synchronized to the stream. Failure to
synchronize to the stream left developers without a dump, which complicates
research what went wrong.

Do dump packet content while the serial_stream_detect() routine tries to
synchronize to the stream. Use the spew level since the dump occurs upon
every attempt, which translates to: every received byte until a valid
packet was seen (or the synchronization phase expired).