Commit Graph

214 Commits

Author SHA1 Message Date
Martin Ling d7b269da8f cem-dt-885x: Mark serial access as nonblocking, remove SERIAL_NONBLOCK flag.
These calls were already nonblocking since this driver opened the port with
the SERIAL_NONBLOCK flag. Having marked them as such, we can remove the flag.

Also remove an unnecessary reopen of the port to change its blocking status.
2014-09-24 23:30:00 +02:00
Martin Ling ca4266a02f brymen-dmm: Remove SERIAL_NONBLOCK flag.
All serial read/write calls in the driver are now explicitly (non)blocking.
2014-09-24 23:30:00 +02:00
Martin Ling 776313d997 brymen-dmm: Make serial write call block.
This call is executed from an event handler and was previously nonblocking,
but has no partial write handling. It sends a short packet so should be OK
to block, most likely the output buffer will be empty anyway.
2014-09-24 23:30:00 +02:00
Martin Ling 44be13b1f8 brymen-dmm: Mark serial read calls as nonblocking.
The driver opens the port with SERIAL_NONBLOCK so these were already
nonblocking, and are handled appropriately.
2014-09-24 23:30:00 +02:00
Martin Ling 5305266a28 atten-pps3xxx: Remove SERIAL_NONBLOCK.
All serial read/write calls in the driver are now explicitly (non)blocking.
2014-09-24 23:30:00 +02:00
Martin Ling c3116bc311 atten-pps3xxx: Make serial write call block.
This call is executed from an event handler and was previously nonblocking,
but has no partial write handling. It sends a short packet so should be OK
to block, most likely the output buffer will be empty anyway.
2014-09-24 23:30:00 +02:00
Martin Ling e7b4103697 atten-pps3xxx: Make serial write call block in scan.
This is called at scan time so free to block. There is no partial write
handling and a response is expected afterwards. This should therefore be a
blocking call.
2014-09-24 23:30:00 +02:00
Martin Ling 25dd083128 appa-55ii: Mark serial read nonblocking and remove SERIAL_NONBLOCK.
This is the only read/write call in the driver. It is already non-blocking
and is handled appropriately.
2014-09-24 23:29:49 +02:00
Martin Ling 64c536be52 aglient-dmm: Remove SERIAL_NONBLOCK flag.
All serial calls in this driver are now explicitly (non)blocking.
2014-09-24 23:18:21 +02:00
Martin Ling a5053ddd21 agilent-dmm: Make serial write call block in send.
This call is executed from an event handler context was previously
nonblocking, however there is no handling for a partial write.

The output buffer is unlikely to be full and the commands to be sent
are short, so it should be OK to make this a blocking call.
2014-09-24 23:18:21 +02:00
Martin Ling 485b9ae34d agilent-dmm: Make serial write call block in scan.
This call is executed at scan time so is free to block. There is no
handling for a partial write and a response is expected immediately
afterwards. It should therefore be a blocking call.
2014-09-24 23:18:21 +02:00
Martin Ling e0b781a45b agilent-dmm: Mark serial read call as nonblocking.
This driver opens the port with the SERIAL_NONBLOCK flag, so this call is
already a nonblocking one, and is handled appropriately.
2014-09-24 23:18:21 +02:00
Martin Ling 2e360339f9 serial-dmm: Remove SERIAL_NONBLOCK flag.
All serial read/write calls in this driver are now explicitly
nonblocking so there is no need for this flag.
2014-09-24 23:18:20 +02:00
Martin Ling 4277ac349c serial-dmm: Mark serial read/write calls as nonblocking.
This driver opens the port with the SERIAL_NONBLOCK flag so these calls were
already non-blocking.
2014-09-24 23:18:20 +02:00
Martin Ling 02bd1d0298 colead-slm: Mark serial write call as blocking.
This driver opens the port without the SERIAL_NONBLOCK flag,
so this call was already blocking.
2014-09-24 23:18:20 +02:00
Martin Ling bbff0fe0d2 manson-hcs-3xxx: Mark serial read call as blocking.
This driver opens the port without the SERIAL_NONBLOCK flag, so this call is
already a blocking one.
2014-09-24 23:18:20 +02:00
Martin Ling bf505eed6b serial_readline: Implement using sp_blocking_read. 2014-09-24 23:18:20 +02:00
Martin Ling 18e4d5bc45 serial_stream_detect: Make read nonblocking.
This code implements its own waiting based on baudrate, so the read itself
should be nonblocking. In general it will have been already, since drivers
almost universally use the SERIAL_NONBLOCK flag.
2014-09-24 23:18:20 +02:00
Soeren Apel 2fe6210af6 Add serial_num and connection_id fields to sr_dev_inst 2014-09-24 00:40:03 +02:00
Soeren Apel db156e5409 Add usb_get_port_path() helper function
There is currently no way to uniquely identify USB devices in
libsigrok. It uses the "bus.address" scheme which is only
constant as long as the device remains attached to the bus.
In order to allow USB device persistence in PulseView, devices
need to provide a unique identifier even in absence of a
serial number. This function is the first step as it provides
the ability to query the physical location of a USB device.
2014-09-24 00:40:03 +02:00
Bert Vermeulen f12d997948 demo: Fix pattern mode and amplitude option publishing. 2014-09-23 22:40:47 +02:00
Bert Vermeulen 9a10ce65d6 colead-slm: Properly check acquisition sample limit. 2014-09-23 22:27:34 +02:00
Bert Vermeulen 79f92686c6 session: Don't try to send packets if no session has been set.
This indicates a bug, but let's not segfault if it happens.
2014-09-22 00:47:22 +02:00
Bert Vermeulen 04c2f202f2 input/chronovu_la8: Fix broken I/O loop. 2014-09-22 00:47:22 +02:00
Uwe Hermann af945a6625 Typos and consistency fixes. 2014-09-19 01:03:32 +02:00
Bert Vermeulen d4ccb6bd8f yokogawa-dlm: Don't implement dummy scan options. 2014-09-17 17:41:41 +02:00
Bert Vermeulen 5827f61b64 Publish config key capabilities.
Every driver now publishes its device option config keys, i.e. the
list fetched with sr_config_list(SR_CONF_DEVICE_OPTIONS), with a
set of flags indicating which methods are implemented by the driver
for that key.

The config keys are OR'ed with any combination of SR_CONF_GET,
SR_CONF_SET and SR_CONF_LIST. These are defined as the high bits
of the uint32_t config key. Clients can OR config keys with
SR_CONF_MASK to strip out these bits. This mask will be kept up to
date if other bits are added to the capabilities list; clients MUST
therefore use SR_CONF_MASK for this.

Some keys don't have capability bits added, such as the informative
device type keys (SR_CONF_MULTIMETER, SR_CONF_OSCILLOSCOPE, ...) and
SR_CONF_CONTINUOUS.

Scan options do not have capabilities bits.
2014-09-17 15:36:11 +02:00
Bert Vermeulen 138589b02e beaglelogic: Add missing scan options, and cleanup. 2014-09-16 23:51:38 +02:00
Bert Vermeulen a0e0bb4149 Consistently use 'scanopts' variable across all drivers. 2014-09-16 22:19:02 +02:00
Bert Vermeulen f254bc4bba Consistently use 'devopts' variable across all drivers. 2014-09-16 22:11:39 +02:00
Bert Vermeulen 584560f142 Change type of SR_CONF keys to uint32_t. 2014-09-16 21:22:41 +02:00
Martin Ling 13fef1ed24 hwdriver: Validate types of GVariants passed by user. 2014-09-14 04:47:12 +01:00
Martin Ling edbd09250b scpi: Remove trailing carriage returns. 2014-09-11 17:20:28 +02:00
Bert Vermeulen 25f20faf0d input: Add debug output. 2014-09-10 22:55:50 +02:00
Bert Vermeulen 88189019ac input/binary: Fix broken I/O loop. 2014-09-10 22:53:28 +02:00
Bert Vermeulen 013ec84b83 Don't start session with 0-channel devices.
Drivers aren't really able to deal with that in some cases, and it
denotes a frontend bug.
2014-09-10 18:21:51 +02:00
Bert Vermeulen cfd8ec53ab scpi: Don't return NULL device from unsuccessful scan. 2014-09-09 19:53:55 +02:00
Bert Vermeulen bfc8679937 scpi-pps: Clean up HP 6632B profile. 2014-09-09 13:24:30 +02:00
Bert Vermeulen 331f56543a scpi-pps: Fix compile warning. 2014-09-08 23:31:54 +02:00
Bert Vermeulen fdedbfcdef scpi-pps: Fix config_set checks. 2014-09-08 23:30:21 +02:00
Aurelien Jacobs effb9dd1c2 rigol-ds: replace some magic numbers by appropriate constant or variable
This fixes bug #406.
2014-09-08 12:58:30 +02:00
Bert Vermeulen bc4a2a46ed Add support for HP 6632B. 2014-09-08 12:45:21 +02:00
Bert Vermeulen 01b0257aef scpi-pps: Create one channel per MQ/output combination.
This allows frontends to trivially select which MQs on which channels
they want to see; others won't even be fetched.
2014-09-08 12:45:21 +02:00
Bert Vermeulen 379d260965 Add private storage pointer to struct sr_channel. 2014-09-08 12:45:21 +02:00
Bert Vermeulen 478c8d923e scpi-pps: Simplify SCPI command handling. 2014-09-08 12:45:21 +02:00
Bert Vermeulen 3222ee103d scpi-pps: Add support for Rigol DP831A/DP832A. 2014-09-08 12:45:21 +02:00
Bert Vermeulen 58b77c41ff scpi-pps: Use regex to match model names. 2014-09-08 12:45:21 +02:00
Bert Vermeulen 22c18b0370 scpi-pps: Generalize vendor name cleanup. 2014-09-08 12:45:21 +02:00
Bert Vermeulen d4eabea847 scpi-pps: Add support for Rigol DP832. 2014-09-08 12:45:21 +02:00
Bert Vermeulen 9e45cd41fd scpi-pps: Add basic cross-vendor PPS functionality. 2014-09-08 12:45:21 +02:00
Bert Vermeulen a1eaa9e066 Revamp PPS-related config keys. 2014-09-08 12:45:21 +02:00
Bert Vermeulen ca1a7cb56f scpi-pps: Initial driver skeleton. 2014-09-08 12:45:21 +02:00
Aurelien Jacobs af1e487e3f brymen-bm86x: Add current loop sensor support. 2014-09-06 17:22:03 +02:00
Bert Vermeulen 7343ad1ec7 scpi/gpib: Rename backend to scpi_libgpib.
libgpib is the userspace component to linux-gpib's kernel modules that
implement low-level interface drivers.

When libsigrok gets userspace GPIB interface drivers, that backend will
be the "official" scpi_gpib.
2014-09-05 18:33:48 +02:00
Martin Ling bb2a4ed407 Add GPIB SCPI backend using linux-gpib and libgpib. 2014-09-05 10:34:04 +01:00
Bert Vermeulen e8779db70c input/wav: Now really correctly check supported sample size. 2014-09-02 22:09:17 +02:00
Bert Vermeulen 110fe1b4a2 agilent-dmm: U124xx/U125xx: Add current loop sensor support.
Also fixes frequency support.
2014-09-02 21:55:52 +02:00
Bert Vermeulen e82d34a9c2 scpi/usbtmc: Minor debug output changes. 2014-09-02 21:27:16 +02:00
Bert Vermeulen 73145219c0 input/wav: Correctly check supported sample size. 2014-09-02 21:26:15 +02:00
Marcus Comstedt 28d9df7292 input/wav: Fix broken handling of float32 samples on big endian
Also, make sure that floats are 32 bit even in the case of an
extensible header.
2014-09-02 19:14:25 +02:00
Bert Vermeulen c7f5219e62 agilent-dmm: Add temperature regex to U125xx parser. 2014-09-02 01:01:56 +02:00
Bert Vermeulen a965748ae2 agilent-dmm: U124xx/U125xx: support 5 more modes.
This adds support for resistance, capacitance, frequency, continuity,
and temperature.
2014-09-02 00:55:41 +02:00
Matthias Heidbrink 5791bdf604 gmc-mh-1x-2x-rs232: Completed energy measurement ranges (V, A, W) for Metrahit 29S. 2014-09-01 23:14:56 +02:00
Bert Vermeulen ee2bcdfc44 agilent-dmm: U124x/U125x fixes. 2014-09-01 21:44:37 +02:00
Uwe Hermann 129d5bc961 error.c: Add missing entries. 2014-09-01 00:08:53 +02:00
Soeren Apel ac10a927b5 yokogawa-dlm: Replace g_try_malloc() calls and fix coding style 2014-08-31 00:42:10 +02:00
Soeren Apel 0028d5a1ee yokogawa-dlm: Lower timeout to increase throughput and fix data acq bug 2014-08-31 00:42:10 +02:00
Soeren Apel af3487ec28 yokogawa-dlm: Do not block when receiving and save frame length in scope state 2014-08-31 00:42:10 +02:00
Soeren Apel 8ab929d614 yokogawa-dlm: Flesh out driver with current state of development 2014-08-31 00:42:10 +02:00
Soeren Apel 107639373d yokogawa-dlm: Integrate driver skeleton 2014-08-31 00:42:10 +02:00
Bert Vermeulen 6e8d95a50c input/csv: Use uint64 for samplerate option. 2014-08-30 20:16:45 +02:00
Bert Vermeulen edd28877cc input/chronovu_la8: Use uint64 for samplerate option. 2014-08-30 20:15:30 +02:00
Bert Vermeulen 10288172be input/binary: Use uint64 for samplerate option. 2014-08-30 20:13:13 +02:00
Bert Vermeulen 4edba404b0 agilent-dmm: Add U124xx device IDs. 2014-08-30 19:32:15 +02:00
Bert Vermeulen 173378f0f5 agilent-dmm: Add provisional support for the U124xx. 2014-08-29 23:42:06 +02:00
Bert Vermeulen f857bd928d agilent-dmm: Assume all A and B models are identical on the wire. 2014-08-29 23:42:06 +02:00
Bert Vermeulen 51b92b7da4 agilent-dmm: Add RMS flag to AC voltage modes. 2014-08-29 23:42:06 +02:00
Bert Vermeulen f216eb8699 agilent-dmm: Correctly parse negative overload. 2014-08-29 23:42:06 +02:00
Uwe Hermann e6284bf09f Remove unneeded subdriver debug messages. 2014-08-29 23:02:22 +02:00
Bert Vermeulen 7c03b56443 agilent-dmm: Fix value parser.
This considered 0.0 to be an invalid result for no good reason.
2014-08-28 17:44:24 +02:00
Peter Zotov 6f479a0a72 Add support for mcupro Logic16, a Saleae Logic16 clone.
From sigrok's point of view, this analyzer has two differences:

  * It does not require uploading the firmware.
  * It returns garbage in some registers used for sanity checks.
    Saleae's software ignores that garbage; sigrok only does if it
    specifically detects the mcupro clone.
2014-08-28 14:03:21 +02:00
Bert Vermeulen 4f979115a4 input: sr_input_scan_*() now return a status code.
SR_OK: a match was found.
SR_ERR: no match.
SR_ERR_DATA: a match was found but the module cannot handle the input.
SR_OK_CONTINUE: some module didn't have enough data to be sure.
2014-08-28 00:22:13 +02:00
Bert Vermeulen aad21bd866 Add error string for SR_OK_CONTINUE. 2014-08-28 00:19:36 +02:00
Bert Vermeulen b7f446051c Add SR_ERR_DATA. 2014-08-28 00:19:21 +02:00
Bert Vermeulen cbd9e6e987 input/wav: Support for WAVE_FORMAT_EXTENSIBLE.
This is needed for supporting > 16-bit PCM samples.
2014-08-27 15:55:52 +02:00
Bert Vermeulen 962d43440a input/wav: use our own endian macros.
These should work better on non-aligned memory locations.
2014-08-26 22:48:12 +02:00
Bert Vermeulen 5bf0dd6aff Add RB16S and RB32S (signed) macros.
Also note signedness of all the endian macros.
2014-08-26 22:45:38 +02:00
Bert Vermeulen 06ad20bebf input: Avoid warnings on all-zero static struct entries. 2014-08-26 12:38:41 +02:00
Bert Vermeulen b84cba4dbf input: Convert binary module. 2014-08-26 01:55:41 +02:00
Bert Vermeulen 75cb428f9f input: format_match() is not required in an input module. 2014-08-26 01:55:41 +02:00
Bert Vermeulen 02e24c0ce0 input: Convert chronovu-la8 module. 2014-08-26 01:55:41 +02:00
Bert Vermeulen 5e83cd741f input/vcd: Minor code cleanup. 2014-08-26 01:55:41 +02:00
Bert Vermeulen 33e4303baa input: Only feed scanned header to streams, not scanned files. 2014-08-26 01:55:41 +02:00
Bert Vermeulen 115fbe9410 input: Only use header buffer for modules that need it.
The buffer was leaking into modules that didn't ask for it.
2014-08-26 01:55:41 +02:00
Bert Vermeulen 0a4d68f74b input/wav: Send END packet on cleanup. 2014-08-26 01:55:41 +02:00
Bert Vermeulen c10ef17c23 input/vcd: Send END packet on cleanup. 2014-08-26 01:55:41 +02:00
Bert Vermeulen 41d214f61a input: Convert CSV module. 2014-08-26 01:55:41 +02:00
Bert Vermeulen 57486a7528 input: sr_input_new() always allocates the instance buffer. 2014-08-26 01:55:41 +02:00
Bert Vermeulen fe4fe25bf5 input: Fix option enumeration. 2014-08-26 01:55:41 +02:00
Bert Vermeulen d65fcbcd41 input: Fix internal API docs. 2014-08-26 01:55:41 +02:00