Commit Graph

412 Commits

Author SHA1 Message Date
Martin Ling a00106b7f8 scpi: Move closing of discovered devices to sr_scpi_scan_resource(). 2015-10-25 22:40:35 +01:00
Martin Ling b7b873cea3 rigol-ds: After successfully finding a device, close it properly. 2015-10-24 22:50:37 +02:00
Tilman Sauerbeck a5c38703ee drivers: Fix behaviour when trying to set an invalid capture ratio.
Trying to configure an invalid capture ratio would reset the
previously configured value. Instead, we should just reject the
new value and keep the original one.
2015-10-24 21:10:29 +02:00
Uwe Hermann 087c4d59c0 fx2lafw: Drop obsolete macro usage. 2015-10-24 20:55:40 +02:00
Uwe Hermann 3e91de2bd6 fx2lafw: Add the official fx2lafw sigrok VID/PID pairs.
As supported by sigrok-firmware-fx2lafw >= 0.1.3:

 - 1D50:608C: fx2lafw-sigrok-fx2-8ch.fw

 - 1D50:608D: fx2lafw-sigrok-fx2-16ch.fw
2015-10-22 19:19:40 +02:00
Uwe Hermann edb691fced SR_DF_ANALOG2 and sr_datafeed_analog2 renames.
Rename SR_DF_ANALOG2 to SR_DF_ANALOG, and 'struct sr_datafeed_analog2'
to 'struct sr_datafeed_analog'.
2015-10-20 23:32:45 +02:00
Uwe Hermann 5faebab290 SR_DF_ANALOG_OLD and sr_datafeed_analog_old renames.
Rename SR_DF_ANALOG to SR_DF_ANALOG_OLD, and 'struct sr_datafeed_analog'
to 'struct sr_datafeed_analog_old'.
2015-10-20 23:32:45 +02:00
Uwe Hermann 0a4549ff18 Add support for the Tenma 77-7732 multimeter. 2015-10-17 00:11:32 +02:00
Uwe Hermann 20f9f1fbaa Add support for the Tenma 77-9380A multimeter. 2015-10-17 00:11:32 +02:00
Daniel Elstner ef2bcf114f korad-kdxxxxp: Use PRIi64 format for int64_t 2015-10-16 21:28:07 +02:00
Karl Palsson b1cadcfbef drivers: Add support for Tenma 72-7730 multimeter
Tested with a 72-7730 device.

Signed-off-by: Karl Palsson <karlp@remake.is>
2015-10-14 17:00:30 +02:00
Hannu Vuolasaho d708304275 Initial driver for Korad KDxxxxP (Velleman LABPS3005D)
With this driver it is possible to set voltage target and current
limit. Also enabling and disabling the output is possible.

Analog output sends read back values from output. If output is
disabled analog outputs 0.00.

In protocol.c there is a g_usleep() call. This gives almost
every time enough time for PSU to parse and process input.

Multichannel devices aren't supported.
2015-10-13 23:18:49 +02:00
Hannu Vuolasaho e75ee7de25 korad-kdxxxxp: Initial driver skeleton. 2015-10-13 23:15:33 +02:00
Bartosz Golaszewski a7da85f529 baylibre-acme: Fix EEPROM fields endianness.
Use RB32 instead of RL32 since integer types in probe EEPROM are in network
byte order.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
2015-10-09 15:52:28 +02:00
Bartosz Golaszewski 4c3a4bca32 baylibre-acme: Read EEPROM contents into buffer before processing.
Instead of using a non-standard packed attribute, read the contents of the
probe EEPROM into a buffer and then process it using the R* macros.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
2015-10-09 14:55:14 +02:00
Bartosz Golaszewski 453a0c2ece baylibre-acme: Use fixed-size integer types in struct probe_eeprom.
Standard integer types may differ in size on different targets. Use fixed-size
types instead.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
2015-10-09 14:55:14 +02:00
Daniel Elstner 8e2d6c9db7 drivers: Load firmware via new resource API 2015-10-01 15:44:55 +02:00
Martin Lederhilger b11afbb142 gwinstek-gds-800: Initial driver implementation. 2015-09-30 19:54:58 +02:00
Martin Lederhilger 7c198f968b gwinstek-gds-800: Initial driver skeleton. 2015-09-30 19:22:27 +02:00
Uwe Hermann 6e799d0799 manson-hcs-3xxx: Fix use-after-free and memory leaks.
Thanks to Hannu Vuolasaho for the report!
2015-09-25 12:19:08 +02:00
Uwe Hermann e57057aee7 Fix a few "value never read" scan-build warnings.
This fixes parts of bug #423.

The list of fixed warnings:

src/output/srzip.c:285:3: warning: Value stored to 'ret' is never read
                ret = zip_append(o, logic->data, logic->unitsize, logic->length);
                ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/scpi/scpi.c:610:2: warning: Value stored to 'ret' is never read
        ret = SR_OK;
        ^     ~~~~~
src/scpi/scpi.c:667:2: warning: Value stored to 'ret' is never read
        ret = SR_OK;
        ^     ~~~~~
src/dmm/vc870.c:410:2: warning: Value stored to 'info_local' is never read
        info_local = (struct vc870_info *)info;
        ^            ~~~~~~~~~~~~~~~~~~~~~~~~~
src/hardware/conrad-digi-35-cpu/api.c:130:2: warning: Value stored to 'ret' is never read
        ret = SR_OK;
        ^     ~~~~~
src/hardware/fx2lafw/api.c:658:2: warning: Value stored to 'timeout' is never read
        timeout = fx2lafw_get_timeout(devc);
        ^         ~~~~~~~~~~~~~~~~~~~~~~~~~
src/hardware/gmc-mh-1x-2x/protocol.c:941:3: warning: Value stored to 'retc' is never read
                retc = SR_ERR_ARG;
                ^      ~~~~~~~~~~
src/hardware/gmc-mh-1x-2x/api.c:168:2: warning: Value stored to 'model' is never read
        model = METRAHIT_NONE;
        ^       ~~~~~~~~~~~~~
src/hardware/ikalogic-scanalogic2/api.c:325:2: warning: Value stored to 'ret' is never read
        ret = SR_OK;
        ^     ~~~~~
src/hardware/openbench-logic-sniffer/api.c:185:3: warning: Value stored to 'devc' is never read
                devc = sdi->priv;
                ^      ~~~~~~~~~
src/hardware/rigol-ds/api.c:813:3: warning: Value stored to 'devc' is never read
                devc = sdi->priv;
                ^      ~~~~~~~~~
src/hardware/scpi-pps/api.c:405:2: warning: Value stored to 'ret' is never read
        ret = SR_OK;
        ^     ~~~~~
src/hardware/yokogawa-dlm/api.c:239:2: warning: Value stored to 'ret' is never read
        ret = SR_ERR_NA;
        ^     ~~~~~~~~~
2015-09-25 12:02:42 +02:00
Daniel Elstner 36cbd69e12 demo: Strictly round up the number of samples to send
This avoids getting stuck when the time limit is less than
half of the sampling interval.
2015-09-22 16:12:01 +02:00
Daniel Elstner 98c01fe127 demo: Increase timer interval to 100 ms
Timer intervals shorter than about 100 ms are unnecessarily taxing
on system resources. Also, on systems like Windows the smallest
resolvable time unit without using high precision timers is about
15 ms. Regular timer intervals should be well above that value to
avoid being dominated by noise and round-off.
2015-09-22 11:17:27 +02:00
Daniel Elstner a49a320dea demo: Fix continuous mode and honor time limit
Also deal more gracefully with changes to the samplerate while
running.
2015-09-22 11:17:27 +02:00
Bert Vermeulen de285cce11 scpi/usbtmc: Implement Rigol DS1000 workaround on any firmware version.
Firmware versions starting with 00.02.04 apparently cause the in and out
bulk endpoints to end up in a HALT state. This is likely related to the
larger transfer size quirk implemented in the Linux kernel for the Rigol
DS1000: this USBTMC implementation does not have that workaround.

Instead, if the firmware version is >= 00.02.04, both endpoints have the HALT
condition cleared on device close.

This fixes bug #354.
2015-09-22 10:56:58 +02:00
Bert Vermeulen 2a8f2d41ad No need to check return value of libusb_get_device_descriptor().
Since libusb 1.0.16 this is guaranteed to always succeed.

This fixes bug #658.
2015-09-21 00:25:40 +02:00
Bert Vermeulen 8de8551b88 Remove unnecessary call to libusb_get_device_descriptor(). 2015-09-21 00:16:42 +02:00
Aurelien Jacobs 069d9f25d9 scpi-pps: cleaner rewriting of output regulation GVariant 2015-09-20 16:43:43 +02:00
Aurelien Jacobs d66c93ccda scpi-pps: sr_scpi_get_string() is already called by scpi_cmd_resp()
This double call was causing the following error:
sr: scpi_usbtmc: USBTMC bulk in transfer error: LIBUSB_ERROR_TIMEOUT.
2015-09-20 16:22:21 +02:00
Bartosz Golaszewski b41bbfdbe2 baylibre-acme: gpio: Don't set direction in get/set functions.
GPIO direction should be set once right after exporting. There's no need
to reset it again - in fact it's a bug which causes the probe to be reset
every time the value is read/set and gives incorrect results when reading
the GPIO values with direction == 'in'.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
2015-09-18 19:52:39 +02:00
Bartosz Golaszewski 4678bdb607 baylibre-acme: Add basic support for ACME revB.
Revision B of ACME hardware introduces probes with on-board at24cs02
EEPROM. Extend the ACME driver to support reading the contents of
the EEPROM via linux' sysfs interface.

Also: make the driver be able to tell the difference between revisions,
add new GPIO layout and set the shunt resistance for revB at probe
registration.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
2015-09-18 19:52:38 +02:00
Bartosz Golaszewski 8f1961209b baylibre-acme: Check for power-switch presence at probe's initialization.
Only perform a single check at initialization time to see if the probe is
equipped with a power-switch. This is done in preparation for revision B
support which has this kind of information encoded in EEPROM.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
2015-09-18 19:52:38 +02:00
Bartosz Golaszewski 133016f6ab baylibre-acme: Move enum channel_type to protocol.c.
This enum is private and only used within protocol.c. Don't expose it
in protocol.h.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
2015-09-18 19:52:38 +02:00
Daniel Elstner ad6181e25e sysclk-lwla: Set USB device configuration
After opening the USB device, set the device configuration to 1.
Actually, do it twice, just as the vendor driver seems to do. This
is supposed to trigger a lightweight reset of the device.

Originally, I omitted this reset sequence from the sigrok driver
because it simply did not work at all for me. However, it does seem
to work now, so that may have been a problem in libusb or the kernel
which is now fixed.

With some luck, this change may finally fix #327.
2015-09-16 23:37:58 +02:00
Daniel Elstner c81069b337 sysclk-lwla: Clean up open/closed state handling
Use states SR_ST_ACTIVE and SR_ST_INACTIVE to indicate that the
device is open or closed, respectively. Do not use any of the
other state values. Improve the robustness of the open and close
methods in face of errors. Introduce a separate flag to indicate
that a running acquisition should be canceled.
2015-09-16 23:37:58 +02:00
Daniel Elstner 225d3cb0c5 sysclk-lwla: Streamline trigger setup logic
Prepare the trigger masks at config_commit() time, so that the
trigger setup can be validated before starting an acquisition.
Accordingly, do actually report validation errors back to the
caller.
2015-09-16 23:37:58 +02:00
Daniel Elstner 2a09aac268 fx2lafw, sysclk-lwla: Avoid g_stat()
It turns out that g_stat() breaks apart when using 64 bit stat on
32-bit systems. Since the actual type of GStatBuf is decided when
glib/gstdio.h is included, it is thus possible for GLib itself to
be compiled with a different type than user code.

Ouch. Unfortunately going back to plain stat() also means that we
lose Unicode filename support on Windows.
2015-09-16 23:33:45 +02:00
Uwe Hermann 9851d35b0a lascar-el-usb: Fix copy-paste errors. 2015-09-15 11:20:57 +02:00
Uwe Hermann 1a65c5e86f motech-lps-30x: Fix blocking serial write timeout.
This fixes bug #438.
2015-09-14 00:10:25 +02:00
Uwe Hermann d545c81c96 norma-dmm: Fix blocking serial write timeout.
This fixes bug #434.
2015-09-14 00:10:24 +02:00
Uwe Hermann 936b1c00e8 gmc-mh-1x-2x: Fix blocking serial write timeout.
This fixes bug #432.
2015-09-14 00:10:24 +02:00
Uwe Hermann 8b9eb639b2 conrad-digi-35-cpu: Fix blocking serial write timeout.
This fixes bug #430.
2015-09-13 23:55:22 +02:00
Uwe Hermann b9ed8eabfd brymen-dmm: Fix blocking serial write timeout.
This fixes bug #427.
2015-09-13 23:53:55 +02:00
Uwe Hermann 84d328ac98 center-3xx: Fix blocking serial write timeout.
This fixes bug #428.
2015-09-13 23:48:09 +02:00
Uwe Hermann 5360d6d706 mic-985xx: Fix blocking serial write timeout.
This fixes bug #433.
2015-09-13 23:47:16 +02:00
Uwe Hermann 896e1a45e0 manson-hcs-3xxx: Fix blocking serial write timeout.
This fixes bug #437.
2015-09-13 23:22:21 +02:00
Uwe Hermann 32c45845f7 tondaj-sl-814: Fix blocking serial write timeout.
This fixes bug #436.
2015-09-13 23:21:04 +02:00
Daniel Elstner 6ec6c43b47 Build: Include <config.h> first in all source files
Since Autoconf places some important feature flags only into the
configuration header, it is necessary to include it globally to
guarantee a consistent build.
2015-09-13 18:54:46 +02:00
Daniel Elstner 0c536bcd00 Fix two more format warnings uncovered by MinGW build 2015-09-13 15:39:04 +02:00
Daniel Elstner 6433156c32 Fix log varargs bugs indicated by -Wformat
A few of these were pretty serious, like missing arguments,
passing integers where a string was expected, and so on.
In some places, change the types used by the code rather than
just the format strings.
2015-09-13 02:29:38 +02:00