iio_readdev - read buffers from an IIO device
iio_readdev [ options ] [-n <hostname>] [-t
<trigger>] [-T <timeout-ms>] [-b <buffer-size>] [-s
<samples>] <iio_device> [<channel> ...]
iio_reg is a utility for reading buffers from connected IIO
devices, and sending resutls to standard out.
- -h, --help
- Tells iio_readdev to display some help, and then quit.
- -V, --version
- Prints the version information for this particular copy of
iio_readdev and the version of the libiio library it is using. This
is useful for knowing if the version of the library and iio_readdev
on your system are up to date. This is also useful when reporting
bugs.
- -S, --scan
[backends]
- Scan for available IIO contexts, optional arg of specific backend(s) 'ip',
'usb' or 'ip:usb'. Specific options for USB include Vendor ID, Product ID
to limit scanning to specific devices 'usb=0456,b673'. vid,pid are
hexadecimal numbers (no prefix needed), "*" (match any for pid
only) If no argument is given, it checks all that are available.
- -t --trigger
- Use the specified trigger, if needed on the specified channel
- -b --buffer-size
- Size of the capture buffer. Default is 256.
- -s --samples
- Number of samples (not bytes) to capture, 0 = infinite. Default is 0.
- -T --timeout
- Buffer timeout in milliseconds. 0 = no timeout. Default is 0.
- -u, --uri
- The Uniform Resource Identifier (uri) for connecting to devices,
can be one of:
- ip:[address]
- network address, either numeric (192.168.0.1) or network hostname
- ip:
- blank, if compiled with zeroconf support, will find an IIO device on
network
- usb:[device:port:instance]
- normally returned from iio_readdev -S
- serial:[port],[baud],[settings]
- which are controlled, and need to match the iiod (or tinyiiod) on the
other end of the serial port.
- [port]
- is something like '/dev/ttyUSB0' on Linux, and 'COM4' on Windows.
- [baud]
- is is normally one of 110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200,
38400, 57600, 115200 [default], 128000 or 256000, but can vary system to
system.
- [settings]
- would normally be configured as '8n1' this is controlled by:
- data_bits:
- (5, 6, 7, 8 [default], or 9)
- parity_bits:
- ('n' none [default], 'o' odd, 'e' even, 'm' mark, or 's' space)
- stop_bits:
- (1 [default, or 2)
- flow_control:
- ('0' none [default], 'x' Xon Xoff, 'r' RTSCTS, or 'd' DTRDSR)
- local:
- with no address part.
If the specified device is not found, a non-zero exit code is
returned.
You use iio_readdev in the same way you use many of the other
libiio utilities. You should specify a IIO device, and the specific channel
to read. Since this is a read, channels must be input. If no channel is
provided, iio_readdev will read from all input channels. If no device is
provided, iio_readdev will print a few examples:
iio_readdev -a
Using auto-detected IIO context at URI "usb:3.10.5"
Example : iio_readdev -u usb:3.10.5 -b 256 -s 1024 cf-ad9361-lpc voltage0
Example : iio_readdev -u usb:3.10.5 -b 256 -s 1024 cf-ad9361-lpc voltage1
Example : iio_readdev -u usb:3.10.5 -b 256 -s 1024 cf-ad9361-lpc voltage2
Example : iio_readdev -u usb:3.10.5 -b 256 -s 1024 cf-ad9361-lpc voltage3
Example : iio_readdev -u usb:3.10.5 -b 256 -s 1024 cf-ad9361-lpc
This captures 1024 samples of I and Q data from the USB attached
AD9361, and stores it (as raw binary) into the file samples.dat
iio_readdev -a -s 1024 cf-ad9361-lpc
voltage0 voltage1 > samples.dat
And plots the data with gnuplot.
gnuplot -e "set term png; set
output 'sample.png'; plot 'sample.dat' binary format='%short%short' using 1
with lines, 'sample.dat' binary format='%short%short' using 2 with
lines;"
iio_attr(1), iio_info(1), iio_readdev(1),
iio_reg(1), iio_writedev(1), libiio(3)
libiio home page:
https://wiki.analog.com/resources/tools-software/linux-software/libiio
libiio code: https://github.com/analogdevicesinc/libiio
Doxygen for libiio
https://analogdevicesinc.github.io/libiio/
All bugs are tracked at:
https://github.com/analogdevicesinc/libiio/issues