Commit Graph

4319 Commits

Author SHA1 Message Date
Gerhard Sittig 2d224dbae7 hameg-hmo: Fix index access for models with 2 pods / 16 digital channels
Fix the code which registers the name of the second pod for digital
probes. The previous implementation registered the first pod twice, and
lost the reference to the second pod. No harm was done, none of the
supported models declared support for two pods so far.

Factor out a channel to group mapping in the registration of digital
channels, while we are here.
2017-01-07 15:46:52 +01:00
Gerhard Sittig f05903ebe3 serial-lcr: update README.devices (firmware upload, comm port specs)
Catch up with the rename of deree-de5000 to serial-lcr. Put an item in
the "needs a comm port spec" section, too.
2016-12-26 13:14:26 +01:00
Gerhard Sittig 503220ec8d deree-de5000: rename to serial-lcr, update configure logic
The former DER EE DE-5000 driver was a very thin wrapper around the
ES51919 LCR meter chipset. None of its source was specific to the
deree-de5000 device. In fact it contained code for all currently
supported LCR meters, and it's expected that all LCR meters which
will get added in the future will fit in as well.

Follow the serial-dmm model. Rename the src/hardware/deree-de5000/
directory to serial-lcr/. Update the configure logic. Although the
source directory and the configure option are named serial-lcr, the
LCR meter still is used by specifying the "deree-de5000" device driver
(which just happens to reside in the serial-lcr driver sources, among
others).
2016-12-26 13:12:35 +01:00
Uwe Hermann 8626feaeb5 HACKING: Improve description of Doxygen conventions. 2016-12-20 17:51:36 +01:00
Gerhard Sittig dc5895cbdd serial-dmm: add DMM entry for Metrix MX56C (ASYC-II based) 2016-12-20 17:51:36 +01:00
Gerhard Sittig 4ba4d52a8f dmm: introduce support for ASYC-II 16-byte protocol in PRINT mode
Introduce an asycii.c source file (modelled after metex14.c) which
implements support for the 16-byte protocol of the ASYC-II multimeter
chipset (RX only, when the PRINT button was pressed).
2016-12-20 17:51:36 +01:00
Uwe Hermann 6c62c605f9 Consistently use the "PeakTech" vendor name spelling.
(as per vendor website, and also to be consistent with our wiki)
2016-12-06 21:50:05 +01:00
Marcus Comstedt 9d8f363d35 Bindings: Link C++ code with gnustl_shared if it exists (Android) 2016-12-06 21:05:15 +01:00
Marcus Comstedt e83a8f4958 Java: Use correct JNI function when calling Vector.add 2016-12-06 21:04:05 +01:00
Vlad Ivanov fef90b4101 fx2lafw: fix device product string check
Signed-off-by: Vlad Ivanov <vlad@ivanov.email>
2016-12-05 02:16:56 +01:00
Karl Palsson 7087a8b0fa fx2lafw: warn on fail to open plausible devices
Instead of silently ignoring all devices that fail to open.

This fixes bug #867.

Signed-off-by: Karl Palsson <karlp@tweak.net.au>
2016-12-05 02:16:33 +01:00
Vadim A. Misbakh-Soloviov 104f02fda1 Makefile: fix for #865.
Buildsystem wants CXX to be defined as $(CXX).
Otherwise it fallbacks to default value, which does not contain
"-std=c++11" statement.

Other changes (like CC=$(CC) and CFLAGS=$(CFLAGS) instead of CXX ones)
is not directly fix the issue, but fix cases, where CFLAGS (and CC)
differs from CXX* ones, so it could lead to similar errors in the future.
2016-12-05 01:37:54 +01:00
Marcus Comstedt f504779c12 Bindings: Make Ruby bindings build with Ruby 2.0
The alias "rb_ary_new_from_args" for "rb_ary_new3" was not introduced
until in Ruby 2.1.
2016-12-05 01:10:37 +01:00
Gerhard Sittig ced210d53a deree-de5000: add driver item for the Peaktech 2170 model
Register another driver for the Peaktech 2170 LCR meter, which is
based on the ES51919/ES51920 chipset, too.
2016-12-05 01:07:08 +01:00
Gerhard Sittig beedfa06b6 deree-de5000: prepare to add more ES51919 based LCR meters
The "deree-de5000" driver is a very thin wrapper around the ES51919
chipset. We expect more models from other vendors to use that same
support code.

Model the registration of vendor/model combinations after the serial-dmm
approach. Register the DER EE DE-5000 device as the currently only
member in a list of drivers which all use the ES51919 chipset (no model
specific routines are registered in the absence of support for other LCR
meter chips).

This commit does not change the driver's behaviour nor the set of
supported hardware. It prepares the addition of more drivers in the
future.
2016-12-05 01:06:58 +01:00
Uwe Hermann 82458e50b1 serial-dmm: Expand a code comment. 2016-11-06 14:45:08 +01:00
Gerhard Sittig d5b1b76d65 serial-dmm: comment nit on the UART bitrate for ES519xx chips
Factor out identical comments on the UART bitrate of ES519xx based
multimeters. These probably got copied from the first item as of 2012
when new items were added in 2014 (the added devices were from the
same vendor and rebadged).

Expand on the fact that the bitrate still is within spec, and does not
harm at all. Strictly speaking the comment could get dropped.
2016-11-06 14:43:50 +01:00
Gerhard Sittig 89a3d8af3a serial-dmm: sort the list of device drivers (part 12, vc870)
This commit puts 'vc870' meters into one group. Which completes the
series of commits which sort the list of supported serial DMMs.
2016-11-06 14:43:48 +01:00
Gerhard Sittig 53e875ab16 serial-dmm: sort the list of device drivers (part 11, sort ut71x)
This commit sorts items in the 'ut71x' group. This is separated from
collecting the group to reduce the diff size and simplify verification.
2016-11-06 14:43:46 +01:00
Gerhard Sittig 6c6e5e47f0 serial-dmm: sort the list of device drivers (part 10, group ut71x)
This commit puts 'ut71x' meters into one group. Item order is kept to
reduce the diff size and simplify verification.
2016-11-06 14:43:44 +01:00
Gerhard Sittig 9249648863 serial-dmm: sort the list of device drivers (part 9, rs9lcd)
This commit puts 'rs9lcd' meters into one group.
2016-11-06 14:43:43 +01:00
Gerhard Sittig b35d0023a8 serial-dmm: sort the list of device drivers (part 8, sort metex14)
This commit sorts items in the 'metex14' group. This is separated from
collecting the group to reduce the diff size and simplify verification.
2016-11-06 14:43:40 +01:00
Gerhard Sittig ab34156b90 serial-dmm: sort the list of device drivers (part 7, group metex14)
This commit puts 'metex14' meters into one group. Item order is kept to
reduce the diff size and simplify verification.
2016-11-06 14:43:38 +01:00
Gerhard Sittig 0e27643ff8 serial-dmm: sort the list of device drivers (part 6, fs9922)
This commit puts 'fs9922' meters into one group.
2016-11-06 14:43:37 +01:00
Gerhard Sittig 1cd40b57d6 serial-dmm: sort the list of device drivers (part 5, sort fs9721)
This commit sorts items in the 'fs9721' group. This is separated from
collecting the group to reduce the diff size and simplify verification.
2016-11-06 14:43:35 +01:00
Gerhard Sittig 289e1f4e7b serial-dmm: sort the list of device drivers (part 4, group fs9721)
This commit puts 'fs9721' meters into one group. Item order is kept to
reduce the diff size and simplify verification.
2016-11-06 14:43:32 +01:00
Gerhard Sittig 7532f61d1b serial-dmm: sort the list of device drivers (part 3, es519xx)
This commit puts 'es519xx' meters into one group.
2016-11-06 14:43:31 +01:00
Gerhard Sittig 440a374fe3 serial-dmm: sort the list of device drivers (part 2, dtm0660)
This commit puts 'dtm0660' meters into one group.
2016-11-06 14:43:30 +01:00
Gerhard Sittig c06785841c serial-dmm: sort the list of device drivers (part 1, bm25x)
The previous implementation seems to have added drivers in their "order
of appearance". Start sorting the rather long list, to simplify several
tasks: Add new entries as more drivers get written, find existing items
during research, identify and compare similar models during maintenance.
As a byproduct, there will be no doubt about where to put things during
future work :) and duplicates will be spotted immediately.

This commit puts 'bm25x' meters into one group. And comments on the sort
order and motivation for sorting the table.
2016-11-06 14:43:25 +01:00
Gerhard Sittig 6b7e644e5c es51919 lcr: unbreak channel setup after successful detection
Commit 6bcb3ee876 introduced initial support for the Cyrustek ES51919
chipset. Its setup_channels() routine used to init a variable to assume
failure, then a loop added channels and changed the value to success.

Commit 5e23fcab88 changed channel setup to never fail, but kept the
initialization with an error code. Which prevented the operation of
successfully detected LCR meters.

Remove the no longer needed variable, instead always return success from
an operation which cannot fail.

Fixes: 5e23fcab88 "Simplify channel creation."
Signed-off-by: Gerhard Sittig <gerhard.sittig@gmx.net>
2016-11-02 23:27:56 +01:00
Gerhard Sittig e68c0eb409 serial-dmm: add support for Peaktech-3330 (based on FS9721)
Add another DMM entry for Peaktech-3330, which is based on the FS9721
chipset. Support was tested with the CP210x based USB cable.

Signed-off-by: Gerhard Sittig <gerhard.sittig@gmx.net>
2016-11-02 23:23:56 +01:00
Gerhard Sittig 0150fdca54 output/ascii: add support for user configurable character set
Since tastes and requirements might differ, introduce support for a
user specified character set in the construction of ASCII art graphs
of signal levels. The syntax is "charset=<low><high>[<fall><rise>]",
the default remains backwards compatible with existing consumers.

In comparison to assuming a fixed character set, this change addresses
several distinct aspects:

Users can adjust the output for "higher visual contrast", or "straight
lines" instead of dotted patterns, or "increased difference in height"
for low and high signal levels, or "filled" (block like, "wall of text")
appearance of periods with high levels. User adjustable characters are
needed, as no single fixed set can satisfy the differing expectations.
Perception of the output heavily depends on specific terminals and fonts
in use.

Then there is the issue of levels versus edges, and how their timing
relates. By default edges are drawn at a point in time where the signal
was sampled and was deteremined to already _have_ changed and have
settled to the new level, which means that the position of edges in the
resulting graph might be off by up to one sample period. Strictly
speaking, the available set of samples only contains levels, and does
not hint where exactly an edge might have occured. Though this might be
considered rather nitpicky, representing the graph without edges does
better reflect the input data, and might simplify postprocessing.

Compare the previously only supported format (still the default, -O ascii):

  1:...................................................../""""""""""""""""""""
  1:""""""""""""""""""""""""""""""""\.........................................
  1:..........................................................................

to those example alternatives:

  $ sigrok-cli -i file.sr -O ascii:charset=_\"\\/
  1:_____________________________________________________/""""""""""""""""""""
  1:""""""""""""""""""""""""""""""""\_________________________________________
  1:__________________________________________________________________________

  $ sigrok-cli -i file.sr -O ascii:charset=_\"
  1:_____________________________________________________"""""""""""""""""""""
  1:""""""""""""""""""""""""""""""""__________________________________________
  1:__________________________________________________________________________

  $ sigrok-cli -i file.sr -O ascii:charset=_^
  1:_____________________________________________________^^^^^^^^^^^^^^^^^^^^^
  1:^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^__________________________________________
  1:__________________________________________________________________________

  $ sigrok-cli -i file.sr -O ascii:charset=_M
  1:_____________________________________________________MMMMMMMMMMMMMMMMMMMMM
  1:MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM__________________________________________
  1:__________________________________________________________________________

  $ sigrok-cli -i file.sr -O ascii:charset=_X
  1:_____________________________________________________XXXXXXXXXXXXXXXXXXXXX
  1:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX__________________________________________
  1:__________________________________________________________________________

Signed-off-by: Gerhard Sittig <gerhard.sittig@gmx.net>
2016-11-02 19:09:55 +01:00
Uwe Hermann 6c23b710ec udev: Add comment about Rocktech BM102. 2016-11-02 19:09:55 +01:00
Uwe Hermann 545c04f139 udev: Add DreamSourceLab DScope VID/PID. 2016-11-02 19:09:55 +01:00
Uwe Hermann 7305457f61 udev: Update for new post-firmware Hantek 6022BE VID/PID. 2016-10-31 15:30:12 +01:00
Uwe Hermann 7dc72c37e2 hantek-6xxx: Add "fx2lafw-" prefix to the firmware files. 2016-10-31 14:42:29 +01:00
Uwe Hermann 459324acb8 hantek-6xxx: Update driver to use the USB product version field.
We now require the use of the latest fx2lafw firmware which uses the
same USB VID/PID (1D50:608E) for the Hantek 6022BE and the variants
and rebadges of that device (e.g. the SainSmart DDS120).

The variants can be distinguished via the USB product version field.
2016-10-30 14:36:40 +01:00
Aurelien Jacobs f6e7b6124a agilent-dmm: style improvement 2016-10-17 23:21:18 +02:00
Aurelien Jacobs 63bb11baba agilent-dmm: add support for Log-* data_source for U128x 2016-10-17 02:29:13 +02:00
Aurelien Jacobs b907d62fb8 agilent-dmm: rework job management
This allows much faster and configurable sampling rate, and faster
reaction to function switch.
This also gives a more repeatable job ordering and more reliable
query/reply association.
2016-10-17 02:29:13 +02:00
Aurelien Jacobs 6ace179e6d agilent-dmm: prepare config handling to easily receive more options 2016-10-17 02:24:53 +02:00
Aurelien Jacobs 5728718b66 analog: use SI prefix only with units that accept SI prefixes 2016-10-17 02:24:53 +02:00
Aurelien Jacobs d2f6abf6de agilent-dmm: fix handling of continuity mode for U128x 2016-10-17 02:24:53 +02:00
Aurelien Jacobs 7ab126cacb agilent-dmm: add support for pulse width and duty cycle on U128x 2016-10-17 02:24:53 +02:00
Aurelien Jacobs cdc311957b analog: use correct unit for dBm/dBV 2016-10-17 02:09:18 +02:00
Aurelien Jacobs 8f68f36bc5 agilent-dmm: add support for dBm/dBV modes 2016-10-17 02:09:18 +02:00
Aurelien Jacobs d822726dbf agilent-dmm: add support for reading secondary display and temperature 2016-10-17 02:09:18 +02:00
Gerhard Sittig 3cc2028382 tests: relax the "version text" length check, accept longer strings
The version text length check fails for git setups that use more digits
in abbreviated hashes, as is recommended by e.g. the Linux kernel project.

Raise the upper limit for acceptable version strings, and add comments
on how the limits were determined. The test still might fail in setups
of slightly different configuration, but now it's easier to see why the
test failed, and how to adjust the test.

Signed-off-by: Gerhard Sittig <gerhard.sittig@gmx.net>
2016-10-17 02:08:44 +02:00
Gerhard Sittig 7c86d85372 asix-sigma: fix buffer length check in register write helper
Fix the array size check in the sigma_write_register() routine. The
'len' parameter specifies the number of bytes to write, while the 'buf'
array holds one nibble per array item.

The previous implementation (commit e8686e3ae3) switched to a
constant size and made the buffer large enough so that no existing
request would exceed the buffer, fixing an overflow that was present
before that commit. But the most recent size check was incomplete and
might erroneously succeed for larger amounts of write data.

It's assumed that the issue which gets addressed here never occured in
practice. The constant-size buffer could hold up to 39 bytes of input
data in their transport representation, while the largest data that was
passed to the write routine is six bytes (trigger LUT params).

Fixes: e8686e3ae3 "asix-sigma: Avoid use of variable length arrays"

Signed-off-by: Gerhard Sittig <gerhard.sittig@gmx.net>
2016-10-17 02:05:22 +02:00
Gerhard Sittig 2f7e529ce6 asix-sigma: store "limit samples" value, re-determine "limit msecs" period
The driver internally implements the "limit samples" feature by means of
the "limit sample period" approach. Determination of the corresponding
period of time for captures depends on the sample rate as well as the
maximum sample count, and thus needs to be re-done when either setting
changes.

Introduce a "limit_samples" variable so that the value is available when
needed later. As a byproduct the parameter can be retrieved now (get).

Add comments to the sigma_set_samplerate() routine's sections, since
quite a bit is happening there, and interacts with other locations.

Signed-off-by: Gerhard Sittig <gerhard.sittig@gmx.net>
2016-10-17 02:05:21 +02:00