Commit Graph

1448 Commits

Author SHA1 Message Date
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 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
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
Martin Ling 05c644ea08 Revise SCPI read API to allow backend-independent data handling. 2013-12-29 04:26:36 +01:00
Martin Ling 227a0981c0 rigol-ds: Support the rest of the DSO1000 range. 2013-12-29 01:39:49 +01:00
Martin Ling 821fbcadcc rigol-ds: Support 4 analog channels. 2013-12-29 01:34:58 +01:00
Martin Ling 0d9f5a12cb rigol-ds: Use correct live waveform size for Agilent DSO1000 series. 2013-12-29 00:35:09 +01:00
Martin Ling 10afee13a3 rigol-ds: Add support for Agilent DSO1014A. 2013-12-29 00:27:11 +01:00
Martin Ling 77c16c0463 scpi: Log IDN? result. 2013-12-29 00:26:54 +01:00
Martin Ling 07ccb2b3f1 rigol-ds: Fix rigol_ds_channel_start() for digital channels. 2013-12-28 14:05:56 +01:00
Martin Ling 9e4b7d9833 rigol-ds: Use correct analog frame size for VS5000 series. 2013-12-28 14:05:56 +01:00
Martin Ling 6396b0a76b rigol-ds: Use set_cfg wrapper for capture setup commands. 2013-12-28 14:05:56 +01:00
Martin Ling 1fed20cb38 rigol-ds: Select channels before issuing RUN command. 2013-12-28 14:05:55 +01:00
Martin Ling 48460c6f3e rigol-ds: Unify partial read handling. 2013-12-27 22:47:42 +01:00
Martin Ling f80a0bf232 rigol-ds: Unify code for counting expected incoming bytes. 2013-12-27 22:47:42 +01:00
Martin Ling 677f85d00b rigol-ds: Use rigol_ds_channel_start() function for legacy protocol too. 2013-12-27 22:47:42 +01:00
Martin Ling 0d87bd93eb rigol-ds: Rename and document some confusingly named variables. 2013-12-27 22:47:42 +01:00
Aurelien Jacobs c36923b03b asix-sigma: fix incorrect pointer cast (non-aligned memory and endiannes issue)
This fixes the following warning:

asix-sigma.c: In function 'receive_data':
asix-sigma.c:1064:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    devc->state.lastts = *(uint16_t *) buf - 1;
    ^
2013-12-27 17:36:08 +01:00
Uwe Hermann 9ee78f2347 appa-55ii: Don't use _t suffix for a typedef.
Names ending with _t are reserved for POSIX.

http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html
(last line in table 2)
2013-12-27 17:27:52 +01:00
Bert Vermeulen 53cd1c78f5 hameg-hmo: Support DC LINE coupling. 2013-12-27 16:28:42 +01:00
Uwe Hermann b95dd7619d log prefixes: Cosmetics, consistency fixes, typo fixes. 2013-12-27 13:17:20 +01:00
Martin Ling 3544f848e0 Centralise duplicated logging helper defines. 2013-12-27 12:54:05 +01:00
Uwe Hermann dafafb0e94 teleinfo: Minor cleanups. 2013-12-27 12:27:52 +01:00
Uwe Hermann 76b4d4f422 appa-55ii: Minor cosmetics, whitespace fixes. 2013-12-27 12:27:52 +01:00
Uwe Hermann 27fd2eaacb gmc-mh-1x-2x: Use standard API callback names for now.
If multiple functions need to be differentiated later, we can bring
back more specific names.
2013-12-27 12:27:49 +01:00
Uwe Hermann 873e0c1295 gmc-mh-1x-2x: Don't put driver-specific things in sr/SR namespace. 2013-12-27 12:27:49 +01:00
Uwe Hermann 3a6095d005 gmc-mh-1x-2x: Use 'di' variable to match other drivers. 2013-12-27 12:27:49 +01:00
Uwe Hermann ec29a878e0 gmc-mh-1x-2x: Fix two compiler warnings. 2013-12-27 12:27:49 +01:00
Uwe Hermann fc348b770a gmc-mh-1x-2x: Cosmetics, whitespace, cleanups. 2013-12-27 12:27:49 +01:00
Bert Vermeulen 7574e58c1a appa-55ii: Coding style fixes. 2013-12-23 01:53:30 +01:00
Aurelien Jacobs 81a9ab725f appa-55ii: driver implementation with Live and Memory data source support 2013-12-23 01:21:52 +01:00
Aurelien Jacobs 5e7a8e57d4 appa-55ii: Initial driver skeleton. 2013-12-23 01:21:51 +01:00
Bert Vermeulen 61c39f54bb demo: Code cleanup. 2013-12-22 23:47:50 +01:00
Martin Ling 34ea7f9695 Windows usb: don't try to resume thread if shut down in callback. 2013-12-22 17:38:24 +00:00
Martin Ling 6640324f7f usb: Enforce that there can only be one USB event source for now. 2013-12-22 17:27:13 +00:00
Martin Ling b5328e1dfa Windows usb: Unlock mutex when shutting down wait thread. 2013-12-22 17:10:57 +00:00
Martin Ling 589edd9b81 Winsock2.h must be included before anything that includes Winsock.h. 2013-12-22 14:59:43 +00:00
Martin Ling 5321ac6b52 Implement usb_source_add and usb_source_remove for Windows. 2013-12-22 07:16:56 +00:00
Martin Ling 6c60facc19 Use common usb_source_add and usb_source_remove functions. 2013-12-21 23:09:23 +00:00
Martin Ling ba1949f583 Use new libserialport event set API to make GPollFDs for serial sources. 2013-12-21 19:38:45 +00:00
Uwe Hermann 95ecc76546 bbcgm-m2110: Minor cosmetics. 2013-12-19 00:40:31 +01:00
Matthias Heidbrink 825da8b20f serial-dmm: Add BBC Goerz Metrawatt M2110 DMM driver. 2013-12-19 00:40:31 +01:00
Matthias Heidbrink 5d03743096 serial-dmm: Commented struct dmm_info. 2013-12-19 00:40:31 +01:00
poljar (Damir Jelić) e9a6213976 hameg-hmo: Move the declaration of the driver info out of protocol.h
This fixes duplicate symbol error on Mac OS X.

BugLink: http://sigrok.org/bugzilla/show_bug.cgi?id=216
2013-12-18 22:17:30 +01:00
Uwe Hermann cb7b165b3d serial.c: Show both error code and error message.
This is helpful in many cases, e.g. when trying to identify which of the
16000 system error codes from

  http://msdn.microsoft.com/en-us/library/ms681381%28VS.85%29.aspx

has been encountered (which is not trivial if you only have an,
e.g. German, string message alone).
2013-12-17 17:46:24 +01:00
Matthias Heidbrink 04cb915716 Improved doxygen docs. 2013-12-09 15:17:17 +01:00
Bert Vermeulen 854434de0b Use std_serial_dev_open(). 2013-12-07 21:54:08 +01:00
Bert Vermeulen d43b090816 std: Standardize function name.
std_dev_acquisition_stop_serial() is now std_serial_dev_acquisition_stop().
2013-12-07 21:23:39 +01:00
Martin Ling b6eb8252e5 Remove now-unused fd field from struct sr_serial_dev_inst. 2013-12-07 19:43:47 +00:00
Martin Ling bf72f64999 ols: Get fd from sp_get_port_handle() rather than serial struct. 2013-12-07 19:43:47 +00:00
Martin Ling 64ecf7ee52 Eliminate internal usage of serial->fd in serial.c. 2013-12-07 19:43:47 +00:00
Martin Ling a0a4c0fb09 Use sp_get_port_handle to get an fd for adding/removing serial sources. 2013-12-07 19:43:47 +00:00
Martin Ling af473e0eb2 brymen-dmm: Use port name instead of fd in debug message. 2013-12-07 19:43:47 +00:00
Martin Ling bf2c987fde Use std_serial_dev_close() to replace matching dev_close functions. 2013-12-07 19:43:47 +00:00
Martin Ling 7faa3e8821 Route sr_source_remove for all serial devices through a wrapper. 2013-12-07 19:43:47 +00:00
Martin Ling abc4b3356d Route sr_source_add for all serial devices through a serial_source_add wrapper. 2013-12-07 19:43:47 +00:00
Martin Ling b4936bae0a rigol-ds: close SCPI device after using for scan. 2013-12-07 19:43:47 +00:00
Martin Ling 721fc2272e scpi_serial: Iterate serial_write as necessary to send full commands. 2013-12-07 19:43:47 +00:00
Martin Ling 0f4a435057 scpi_tcp: must define _WIN32_WINNT to 0x0501 or higher to get getaddrinfo(). 2013-12-06 03:24:30 +00:00
Martin Ling 987a053084 scpi_tcp: Fix building on Windows. 2013-12-06 02:33:05 +01:00
Russ Dill b9a5614dbf zeroplus: Rework triggerbar/trigger address logic
This reworks the triggerbar/trigger address logic to match the values sent
by the windows app for all models (The zerominus tool was used to reprogram
the USB device ID on a single device). Additionally, the DONT_CARE_TRIGGERBAR
register is always set by the windows app and does not seem to indicate that
these registers are "don't care"'s.
2013-12-05 01:09:51 +01:00
Russ Dill c38e64c742 zeroplus: Clip sampling sizes larger that our sample memory
Otherwise, we'll return a non-sensical result for our memory_size
enumeration.
2013-12-05 01:09:51 +01:00
Russ Dill 3e43da1f70 zeroplus: Add support for additional memory sizes
The zeroplus can have up to a 8M SRAM. Avoid some extensive if/else
blocks by noting that all sizes except the first are related by their power
of 2.
2013-12-05 01:09:51 +01:00
Russ Dill e93fb98b8a zeroplus: Rename max_memory_size to max_sample_depth
This private variable is measured in samples, not bytes. Avoid confusion
by renaming it.
2013-12-05 01:09:51 +01:00
Russ Dill d20844e28b zeroplus: Just wait until not busy on data capture
While captures using a trigger do set the STATUS_READY bit, immediate
captures do not set the STATUS_READY bit, they just clear the STATUS_BUSY
bit. This was confirmed with packet captures using the "official" driver/app.
2013-12-05 00:41:22 +01:00
Russ Dill 60cc6f8579 zeroplus: Add usb IDs for 32 channel models, but only use 16 channels
The code needs some work to support 32 channels. Until then, support
the 32 channel models, but only allow the use of 16 channels.
2013-12-05 00:41:22 +01:00
Bert Vermeulen 7cf1a98d73 rigol-ds: Minor error reporting fix. 2013-12-05 00:21:15 +01:00
Bert Vermeulen 91e406b921 scpi/usbtmc: Prototype fixes. 2013-12-05 00:16:11 +01:00
Bert Vermeulen bc03a7cc2c scpi/serial: Use stubs for all SCPI functions.
Avoids some gcc warnings, since the SCPI prototypes don't exactly
match serial_*.
2013-12-05 00:09:34 +01:00
Martin Ling 962af1a379 rigol-ds: Support VS5000 series devices. 2013-12-04 21:38:05 +00:00
Martin Ling b8705e99e4 scpi_tcp: Adjust to observed protocol for Rigol VS5000 series. 2013-12-04 21:32:47 +00:00
Martin Ling 3520422fc7 rigol-ds: Support TCP connection. 2013-12-04 20:59:24 +00:00
Martin Ling 08a359138b Add implementation for SCPI over TCP. 2013-12-04 20:59:20 +00:00
Martin Ling 56868b5d6b rigol-ds: Handle partial analog frame reads.
Reading a frame over the DS1xx2 RS232 connection now sometimes works,
but most of the time stalls part way through with g_poll showing the
fd as not ready.
2013-12-04 13:31:42 +00:00
Martin Ling 9dfeb81b09 scpi_serial: Flush buffers after opening port. 2013-12-04 13:03:23 +00:00
Martin Ling 0dc7b43eb7 rigol-ds: Support RS232 connection.
Probing tested OK over RS232 for DS1052E and DS1102D. Capture needs work.
2013-12-04 12:50:12 +00:00
Martin Ling 4d7a9a14a3 rigol-ds: Eliminate fixed-size buffer in set_cfg. 2013-12-04 10:56:09 +00:00
Martin Ling 87c410830d Add sr_scpi_send_variadic() function. 2013-12-04 10:53:51 +00:00
Martin Ling 17b5b20264 Replace rigol_ds_send() function with sr_scpi_send(). 2013-12-04 10:30:46 +00:00
Martin Ling 504f40a574 Make sr_scpi_send() take printf-style arguments. 2013-12-04 10:30:43 +00:00
Martin Ling ae1bc1cc26 Port rigol-ds driver to use common SCPI functions. 2013-12-03 23:19:40 +00:00
Martin Ling a1ff9c1897 Add sr_scpi_read() operation for reading arbitrary data. 2013-12-03 23:18:37 +00:00
Martin Ling 31034792da Implement SCPI over USBTMC. 2013-12-03 22:25:33 +00:00
Martin Ling 23f43dff15 Make SCPI functions device independent, with separate serial backend. 2013-12-03 22:00:31 +00:00
Uwe Hermann 082972e8c5 hameg-hmo: Reduce unnecessarily high nesting level. 2013-12-03 17:13:50 +01:00
Uwe Hermann 719eff68ad hameg-hmo: Use hmo_ prefix for driver-local SR_PRIV functions. 2013-12-03 16:58:34 +01:00
Uwe Hermann 89280b1a4c hameg-hmo: Minor cosmetics, coding-style fixes. 2013-12-03 16:48:21 +01:00
Uwe Hermann d5976d8be5 scpi.c: Minor cleanups, cosmetics. 2013-12-03 16:08:59 +01:00
poljar (Damir Jelić) 13f2b9d789 hameg-hmo: Add initial working driver version.
This patch adds initial support for Hameg's HMO oscilloscopes. It currently
supports only the HMO compact series (70MHz-200MHz).
2013-12-03 15:13:30 +01:00
poljar (Damir Jelić) 06a3e78adb hameg-hmo: Initial driver skeleton. 2013-12-03 15:13:30 +01:00
poljar (Damir Jelić) 1bd9e678ac serial: Add function to extract serial options.
This patch adds a function for a common operation of all serial based drivers.
It extracts the serial options from the options linked list that is passed down
to every hardware driver.
2013-12-03 15:10:01 +01:00
poljar (Damir Jelić) 1a323dd887 scpi: Add function to fetch uint8_t.
This patch adds a function to read and parse a SCPI response which contains a
comma separated list of unsignet 8-bit integer numbers (e.g "1,0,64").

This is particularly useful if the instrument sends digital measurement data
in this format.
2013-12-03 15:10:01 +01:00
poljar (Damir Jelić) 8acbb89a1d scpi: Add function to get an array of floats.
This patch adds a function to read and parse a SCPI response which contains a
comma-separated list of floating-point numbers (e.g. "1.0e-5,2.0e-4,3.0e-3").

This is particularly useful if the instrument sends analog measurement
data in this format.
2013-12-03 15:10:01 +01:00
poljar (Damir Jelić) f5922adef5 scpi: Add a function to read and wait on a *OPC? reply.
The SCPI standard specifies the "*OPC?" command (Operation complete query) which
queries the instrument for its operative state. When all pending operations are
complete, the instrument responds with a "1".

Some manufacturers block before completing all operations and don't respond
with anything and some of them respond with a "0". This function handles both
cases uniformly.
2013-12-03 15:10:01 +01:00
poljar (Damir Jelić) d730f70e06 scpi: Add more functions (getting int/bool/float/double).
This patch adds helper functions to read an SCPI response and parse the response
as an integer, boolean, floating-point or double-precision floating-point number.
2013-12-03 15:10:01 +01:00
poljar (Damir Jelić) aa1e3b400b scpi: Add function to strictly parse bool strings.
This patch adds a function that is similar to sr_parse_boolstring but its
matching rules are more strict.
2013-12-03 15:10:00 +01:00
poljar (Damir Jelić) 7b9d732031 scpi: Add helper functions for SCPI communication.
The Standard Commands for Programmable Instruments (SCPI) defines a standard
for syntax and commands to use in controlling programmable test and measurement
devices.

SCPI documentation:
	http://www.ivifoundation.org/docs/scpi-99.pdf

This patch adds helper functions for sending SCPI commands, reading a SCPI
response and reading and parsing a SCPI "*IDN?" response.
2013-12-03 15:10:00 +01:00
Uwe Hermann 66a4357667 serial-dmm: No error message upon 0 new bytes. 2013-12-01 19:30:35 +01:00
Martin Ling 9647ce694b Use new libserialport blocking/nonblocking API calls. 2013-12-01 18:51:24 +01:00
Martin Ling b3916147a5 rigol-ds: Fix duplicated "LA" probe group. 2013-11-29 01:40:50 +00:00
Martin Ling ae67644fe5 Create & use new sr_usbtmc_dev_inst for Rigol DS driver. 2013-11-29 01:13:22 +00:00
Martin Ling babab6225b DS2000 sample memory capture patches from Mathias Grimmberger. 2013-11-29 00:57:55 +00:00
Martin Ling 355de5a110 Fix handling second channel on DS2000 series.
Patch from Mathias Grimmberger.
2013-11-29 00:55:21 +00:00
Martin Ling 6ff1394ed1 rigol-ds: brown paper bag, using timebases instead of vdivs. 2013-11-29 00:55:20 +00:00
Martin Ling 7cc1a55091 rigol-ds: fix calls to config_list with NULL sdi/devc. 2013-11-29 00:55:20 +00:00
Martin Ling bafd489094 rigol-ds: Add support for DS2xx2 series.
Based on patch by Mathias Grimmberger <mgri@zaphod.sax.de>.
2013-11-29 00:53:34 +00:00
Martin Ling 3086efdd73 Rename rigol-ds1xx2 driver to rigol-ds. 2013-11-29 00:50:59 +00:00
Uwe Hermann c4d85a4026 serial.c: Re-enable serial_read() error reporting.
libserialport now returns 0 (not SP_ERR_FAIL) as return value when a
non-blocking read would return EAGAIN.

This fixes bug #188.
2013-11-26 16:29:43 +01:00
Martin Ling 25b66c3c61 Use new libserialport opaque configuration structure. 2013-11-26 15:53:40 +01:00
Martin Ling 3182932d36 Use accessor for new libserialport opaque port structure. 2013-11-26 15:53:40 +01:00
Bert Vermeulen 79b9a237bd uni-t-dmm: Drop unnecessary DMM count. 2013-11-23 15:24:40 +01:00
Bert Vermeulen 5e1f7c890d uni-t-dmm: Add support for the Tenma 72-7745.
This is a rebadged UNI-T UT60E.
2013-11-23 12:50:33 +01:00
Uwe Hermann a147c7b416 hantek-dso: config_list(): Only SR_CONF_BUFFERSIZE needs sdi. 2013-11-22 22:31:24 +01:00
Uwe Hermann 7c07a1783e ols: config_list(): Handle SR_CONF_PATTERN_MODE.
SR_CONF_PATTERN_MODE was not handled in config_list(), yielding
non-working OLS support in PulseView (due to an assert), and a missing
pattern list in sigrok-cli's --show output.

This fixes bug #184.
2013-11-22 22:31:08 +01:00
Matthias Heidbrink f57924179d gmc_mh_1x_2x: Completed driver for Metrahit 1x/2x
This driver supports devices with “RS232“ interface (Metrahit 16I,
18S, Siemens B1105 tested, 29S incomplete).
2013-11-22 02:42:04 +01:00
Matthias Heidbrink a970522b6d serial: Allow 5 and 6 data bits. 2013-11-22 02:31:17 +01:00
Matthias Heidbrink 7b4edcb654 gmc_mh_1x_2x: Inital driver skeleton. 2013-11-22 02:31:17 +01:00
Martin Ling 13cd8197eb Update for libserialport v0.1 API. 2013-11-22 02:14:16 +01:00
Bert Vermeulen c4650aca12 Suppress compile warning 2013-11-20 22:06:01 +01:00
Uwe Hermann 61bab807f4 DT4000ZC/TP4000ZC: Force DTR=1 on the serial port.
This fixes the driver e.g. on NetBSD.
2013-11-20 00:42:08 +01:00
Uwe Hermann 4403c39fe4 ols: Always open serial port in nonblocking mode.
The scan() function was opening the port in non-blocking mode, the dev_open()
function however was not using the SERIAL_NONBLOCK flag. This led to hangs
in certain situations.

This fixes the OLS e.g. on NetBSD.
2013-11-19 23:22:46 +01:00
Uwe Hermann 1a54044299 serial.c: Minor cosmetic fix. 2013-11-19 20:09:59 +01:00
Martin Ling a82635f252 Use new sp_port_config fields. 2013-11-19 14:26:18 +01:00
Martin Ling e385e2ed90 serial: Use new sp_set_config instead of sp_set_params. 2013-11-19 14:26:18 +01:00
poljar (Damir Jelić) 066d42b1c8 serial: Fix leak in serial_open.
A new sp_port is created every time we call serial_open (sp_get_port_by_name
implicitly creates one for us), so free it every time we call serial_close.
2013-11-19 10:29:24 +01:00
poljar (Damir Jelić) 1130e4229b rigol-ds1xx2: Send a SR_DF_END packet before acquisition stop.
Without a SR_DF_END samples could be cached in the internal buffer of an output
module and never flushed, therefore they would be missing in the final output.

By sending a SR_DF_END packet we force the output to be flushed.
2013-11-15 17:00:07 +01:00
Uwe Hermann 449cc16bb2 serial.c: Temporary quickfix until a libserialport fix is done. 2013-11-15 12:23:09 +01:00
Uwe Hermann 26e0361cc6 uni-t-dmm: Drop unused packet_request callback. 2013-11-15 09:36:51 +01:00
Uwe Hermann c4f2dfd0f0 configure.ac: libserialport is optional.
Disable drivers that need serial port support if libserialport is not found.

Also, disable building various other serial port related code in that case.
2013-11-15 09:36:51 +01:00
Uwe Hermann 6a76efebc1 serial.c: Fix a few return values. 2013-11-14 23:48:28 +01:00
Uwe Hermann a0dfaa6c4c serial.c: Cosmetics, coding-style. 2013-11-14 23:48:28 +01:00
Martin Ling 0d4405ce5e Update for renamed libserialport header file. 2013-11-14 23:48:16 +01:00
Martin Ling c9bc57b6bc Update to new libserialport API. 2013-11-14 23:48:16 +01:00
Martin Ling a9bce5a561 Use libserialport for serial port access. 2013-11-14 23:48:16 +01:00
Bert Vermeulen 58f4336963 rigol-ds1xx2: Unbreak listing of _VDIV and _COUPLING 2013-11-08 01:03:19 +01:00
Bert Vermeulen 5f77dffc02 rigol-ds1xx2: Unbreak listing of SR_CONF_DEVICE_OPTIONS 2013-11-08 01:03:19 +01:00
Bert Vermeulen be60a9e4a9 rigol-ds1xx2: Better error reporting when probe groups are required 2013-11-08 01:03:19 +01:00
Bert Vermeulen 78bcc55afa rigol-ds1xx2: Minor coding style fixes 2013-11-08 01:03:19 +01:00
Bert Vermeulen d3c74a6fb0 probe_groups: API changes required to implement probe groups. 2013-11-08 01:03:18 +01:00
Bert Vermeulen ba358ffd83 rigol-ds1xx2: fix bitrot in device cleanup code 2013-11-08 01:03:18 +01:00
Bert Vermeulen e43fdd8d4f rigol-ds1xx2: Don't assume valid sdi 2013-11-08 01:03:18 +01:00
Bert Vermeulen 45311368de rigol-ds1xx2: Skip obsolete fields 2013-11-08 01:03:18 +01:00
Martin Ling f48e0249b4 rigol-ds1xx2: implement probe group specific options. 2013-11-08 01:03:17 +01:00
Martin Ling 3d3a601e80 rigol-ds1xx2: create probe groups. 2013-11-08 01:03:17 +01:00
Martin Ling 8f996b8948 probe_groups: API changes required to implement probe groups. 2013-11-08 01:03:16 +01:00
Dan Horák b775d753e3 rigol-ds1xx2: detect Rigol DS1xx2 with upgraded bandwith
The bandwith in Rigol DS1xx2D/E scopes can be upgraded to 150 MHz in software.
So detect also scopes with the upgraded bandwith.

using libsigrok-0.2.1 + this change + commit da970d24ec (required for newer kernels):

[dan@eagle sigrok]$ sigrok-cli --scan -d rigol-ds1xx2 -l 5
sr: libsigrok loglevel set to 5.
sr: Sanity-checking all drivers.
sr: Sanity-checking all input modules.
sr: Sanity-checking all output modules.
srd: libsigrokdecode loglevel set to 5.
sr: hwdriver: Initializing driver 'rigol-ds1xx2'.
sr: serial: Opening serial port '/dev/usbtmc0' (flags 1).
sr: serial: Opened serial port '/dev/usbtmc0' (fd 7).
sr: serial: Wrote 5/5 bytes (fd 7).
sr: serial: Closing serial port /dev/usbtmc0 (fd 7).
sr: rigol-ds1xx2: response: /dev/usbtmc0 [Rigol Technologies,DS1152D,DS1EU150XXXXXX,00.04.01.00.02]
sr: hwdriver: Scan of 'rigol-ds1xx2' found 1 devices.
The following devices were found:
rigol-ds1xx2 - Rigol Technologies DS1152D 00.04.01.00.02 with 18 probes: CH1 CH2 D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15
2013-11-03 14:20:47 +01:00
Uwe Hermann 3a8cad9137 metex14: Handle a few missing cases for overflow. 2013-10-31 13:47:30 +01:00
Uwe Hermann 88f544f27e Add support for the Metex M-4650CR.
(the Voltcraft M-4650CR is a rebadged Metex M-4650CR)
2013-10-30 14:44:44 +01:00
Uwe Hermann 2b83d7fee1 Add support for the Voltcraft M-4650CR. 2013-10-30 14:44:44 +01:00
Uwe Hermann e790bd5cda norma-dmm: Minor cosmetics, coding-style, consistency fixes.
Also, add a missing "%" in an sr_err() and a missing parameter in
another sr_err().
2013-10-25 21:25:26 +02:00
Matthias Heidbrink f8e76e2e74 norma dmm: Implemented driver. 2013-10-25 21:25:26 +02:00
Matthias Heidbrink bfd48770fc norma dmm: Initial driver skeleton. 2013-10-25 21:25:26 +02:00
Matthias Heidbrink 50a9aba21b serial: Removed flag OPOST (turn off all output processing). 2013-10-25 19:11:15 +02:00
Matthias Heidbrink a510d55571 serial: Added flags CLOCAL (ignore modem status lines) and CREAD (start receiver). 2013-10-25 19:11:15 +02:00
Matthias Heidbrink 1b943b6d8b serial: Added flag IXANY (any char will restart) to XON/XOFF handshaking. 2013-10-25 19:11:14 +02:00
Sean Young 0c30b35fce saleae-logic16: claim device before using it
The kernel warns:

[ 7461.925685] usb 2-4: usbfs: process 11303 (sigrok-cli) did not claim interface 0 before use
2013-10-24 16:01:46 +01:00
Aurelien Jacobs 5542bee61b teleinfo: actual parser implementation 2013-10-24 15:41:11 +01:00
Aurelien Jacobs 8e796cb438 teleinfo: Initial driver skeleton. 2013-10-24 15:41:11 +01:00
Uwe Hermann c02dc3e261 metex14: Add support for pF (picofarad).
This is used on some Metex DMMs.
2013-10-23 18:41:13 +02:00
Uwe Hermann ee6cb5a417 metex14: Use case-insensitive string compares.
This allows some other DMMs to be supported that use e.g. "kOhm" vs.
"KOhm", and so on.
2013-10-23 18:07:54 +02:00
Uwe Hermann 1a807c13fc metex14: Support DMMs with slightly different protocol.
This adds support for DMMs with 5 digits in the protocol (instead of 4)
and some more whitespace variants.
2013-10-23 18:06:15 +02:00
Uwe Hermann 71f1302b4b metex14: Support DMMs with whitespace differences.
Most Metex DMMs use e.g. "  mV" as unit field, others use "mV  ",
though. Support these (and other) whitespace variants by stripping all
spaces and only comparing non-space characters.
2013-10-23 17:31:14 +02:00
Matthias Heidbrink b21d7eebe2 serial: Changed order of flags PARENB and PARODD in deletion to same order as in setting (cosmetic). 2013-10-18 16:58:33 +02:00
Aurelien Jacobs df6b0f99af ISO-TECH IDM103N: remove the useless -ser postfix 2013-10-13 14:54:54 +02:00
Aurelien Jacobs 94e9021b3e es519xx: correct initialization of es519xx_info structure 2013-10-13 14:54:54 +02:00
Uwe Hermann 93d719cde6 es519xx: Fix incorrect packet size, and a typo. 2013-10-07 00:36:18 +02:00
Uwe Hermann 72e1672fc9 es519xx: Cosmetics, coding style, minor fixes. 2013-10-07 00:36:18 +02:00
Aurelien Jacobs de737bfc11 add ISO-TECH IDM103N serial-dmm driver 2013-10-07 00:36:18 +02:00