Commit Graph

31 Commits

Author SHA1 Message Date
Uwe Hermann 2fa222c78b Drop obsolete Linux-only usbtmc backend.
We're now using a portable libusb-based (userspace) backend which should
in theory work on any OS with libusb support.
2014-05-04 17:38:09 +02:00
Uwe Hermann 144f6660d0 Don't define names ending with _t (POSIX reserved).
Avoid defining any names ending in _t, those are generally reserved
for POSIX usage. For details see:

http://pubs.opengroup.org/onlinepubs/007904975/functions/xsh_chap02_02.html
http://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html
2014-05-04 16:16:17 +02:00
Uwe Hermann ed840c8612 scpi: Disable scpi_usbtmc in favor of scpi_usbtmc_libusb for now.
Having both in the list will "find" the same device twice.
2014-02-07 19:01:45 +01:00
Aurelien Jacobs 20ed3ceee7 scpi: add a libusb based implementation of usbtmc 2014-02-07 18:53:04 +01:00
Aurelien Jacobs b541f8376d scpi: add a generic scan API and implement it in usbtmc and serial transport
note that sr_usb_find_serial() is copied from the hameg-hmo driver
2014-02-07 18:53:04 +01:00
Aurelien Jacobs 17bdda5868 scpi: add a struct drv_context parameter to scpi_dev_inst_new() 2014-02-07 18:53:04 +01:00
Martin Ling 1fb2312f99 Add librevisa SCPI backend. 2014-02-02 22:42:25 +01:00
poljar (Damir Jelić) 1c873c114c scpi: Limit the log message in get_string() to 70 characters. 2014-01-28 21:25:34 +01:00
Martin Ling cf9f4bc5b0 scpi: Log responses received by sr_scpi_get_string(). 2014-01-23 01:42:33 +01:00
Martin Ling 7788579e66 scpi: Remove redundant newline removal in sr_scpi_get_hw_id(). 2014-01-20 00:24:57 +00:00
Martin Ling d03dfac6b9 scpi: Strip trailing newlines in sr_scpi_get_string(). 2014-01-20 00:24:57 +00:00
poljar (Damir Jelić) 13dbd151fe scpi: Use sr_atof_ascii() instead of sr_atof(). 2014-01-16 16:27:35 +01:00
Aurelien Jacobs 613c110849 scpi: properly check for HAVE_RPC (which is always defined) 2014-01-14 00:18:31 +01:00
Aurelien Jacobs 104ed12553 scpi_tcp: split into scpi_tcp_raw and scpi_tcp_rigol
The current implementation is renamed to tcp-rigol as it seems to be
a Rigol proprietary protocol used only on Rigol VS5000 series.

A new tcp-raw implementation is introduced which simply carries raw SCPI
commands over TCP. It is probably a much more common protocol and it is
at least available on Rigol DS2000 series on port 5555.
2014-01-12 00:38:08 +01:00
Aurelien Jacobs f754c14691 scpi: make the scpi_dev_inst_new more generic 2014-01-12 00:05:02 +01:00
Aurelien Jacobs c3515cea44 scpi: factorize dev_inst_new calls out of individual drivers 2014-01-11 22:36:46 +01:00
Martin Ling bc7b7eb196 scpi: Strip trailing newline from *IDN response if present. 2013-12-29 13:22:31 +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 77c16c0463 scpi: Log IDN? result. 2013-12-29 00:26:54 +01:00
Martin Ling 3544f848e0 Centralise duplicated logging helper defines. 2013-12-27 12:54:05 +01:00
Martin Ling 87c410830d Add sr_scpi_send_variadic() function. 2013-12-04 10:53:51 +00:00
Martin Ling 504f40a574 Make sr_scpi_send() take printf-style arguments. 2013-12-04 10:30:43 +00:00
Martin Ling a1ff9c1897 Add sr_scpi_read() operation for reading arbitrary data. 2013-12-03 23:18:37 +00:00
Martin Ling 23f43dff15 Make SCPI functions device independent, with separate serial backend. 2013-12-03 22:00:31 +00:00
Uwe Hermann d5976d8be5 scpi.c: Minor cleanups, cosmetics. 2013-12-03 16:08:59 +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