Content-type: text/html; charset=UTF-8
Man page of INTRO
INTRO
Section: Misc. Reference Manual Pages (3LIBIIO)
Updated: 05 June 2020
Index
Return to Main Contents
NAME
libiio-0.20 - introduction to
libiio,
a library for interacting with the Linux
IIO
subsystem and devices
SYNOPSIS
#include <iio.h>
cc file.c
-liio
OPTIONS
The define
IIO_CHECK_REG
will warn if return values are not checked. Most
libiio
functions, if/when a failure occurs will return a negative error number.
this warning will ensure these error numbers are looked at. There is
nothing more frustraining than calling a function, debugging some hardware,
and then eventually realizing there was a typo in an attribute name.
This option will force libraries users to at least capture the return value.
cc file.c
-DIIO_CHECK_REG -liio
DESCRIPTION
libiio
is a library used to interface to the
Linux Industrial Input/Output (IIO)
Subsystem. The Linux
IIO
subsystem is intended to provide support for devices that in some sense
are analog to digital or digital to analog converters (ADCs, DACs). This
includes, but is not limited to ADCs, Accelerometers, Gyros, IMUs,
Capacitance to Digital Converters (CDCs), Pressure Sensors, Color,
Light and Proximity Sensors, Temperature Sensors, Magnetometers, DACs,
DDS (Direct Digital Synthesis), PLLs (Phase Locked Loops),
Variable/Programmable Gain Amplifiers (VGA, PGA), and RF transceivers.
You can use
libiio
natively on an embedded Linux target (local mode), or use libiio to
communicate remotely to that same target from a host Linux, Windows
or MAC over USB, Ethernet or Serial.
DATA TYPES
The library makes use of C structures and typedefs to promote portability,
and is known to run on various GNU/Linux distributions, macOS,
Windows, and mbed (via tiny-iiod). The main C structures are:
- iio_scan_context
-
-
The scanning context
- iio_context_info
-
The information related to a discovered context
- iio_context
-
Contains the representation of an IIO context
- iio_device
-
Represents a device in the IIO context
- iio_channel
-
Represents an input or output channel of a device
- iio_buffer
-
An input or output buffer, used to read or write samples
- iio_data_format
-
Contains the format of a data sample.
LIST OF ROUTINES
The following routines are part of the library. Consult the Doxygen pages
for details on their operation (in the SEE ALSO section).
Scan Functions for scanning available contexts
- Function
-
-
Description
- iio_create_scan_context
-
Create a scan context
- iio_scan_context_destroy
-
Destroy the given scan context
- iio_scan_context_get_info_list
-
Enumerate available contexts
- iio_context_info_list_free
-
Free a context info list
- iio_context_info_get_description
-
Get a description of a discovered context
- iio_context_info_get_uri
-
Get the URI of a discovered context
- iio_create_scan_block
-
Create a scan block
- iio_scan_block_destroy
-
Destroy the given scan block
- iio_scan_block_scan
-
Enumerate available contexts via scan block
- iio_scan_block_get_info
-
Get the iio_context_info for a particular context
TopLevel Top-level functions
- Function
-
-
Description
- iio_library_get_version
-
Get the version of the libiio library
- iio_strerror
-
Get a string description of an error code
- iio_has_backend
-
Check if the specified backend is available
- iio_get_backends_count
-
Get the number of available backends
- iio_get_backend
-
Retrieve the name of a given backend
Context Context
- Function
-
-
Description
- iio_create_default_context
-
Create a context from local or remote IIO devices
- iio_create_local_context
-
Create a context from local IIO devices (Linux only)
- iio_create_xml_context
-
Create a context from XML data in memory
- iio_create_xml_context_mem
-
Create a context from XML data in memory
- iio_create_network_context
-
Create a context from the network
- iio_create_context_from_uri
-
Create a context from a URI description
- iio_context_clone
-
Duplicate a pre-existing IIO context
- iio_context_destroy
-
Destroy the given context
- iio_context_get_version
-
Get the version of the backend in use
- iio_context_get_xml
-
Obtain a XML representation of the given context
- iio_context_get_name
-
Get the name of the given context
- iio_context_get_description
-
Get a description of the given context
- iio_context_get_attrs_count
-
Get the number of context-specific attributes
- iio_context_get_attr
-
Retrieve the value of a context-specific attribute
- iio_context_get_attr_value
-
Retrieve the value of a context-specific attribute
- iio_context_get_devices_count
-
Enumerate the devices found in the given context
- iio_context_get_device
-
Get the device present at the given index
- iio_context_find_device
-
Try to find a device structure by its name of ID
- iio_context_set_timeout
-
Set a timeout for I/O operations
Device Device
- Function
-
-
Description
- iio_device_get_context
-
Retrieve a pointer to the iio_context structure
- iio_device_get_id
-
Retrieve the device ID
- iio_device_get_name
-
Retrieve the device name
- iio_device_get_channels_count
-
Enumerate the channels of the given device
- iio_device_get_attrs_count
-
Enumerate the device-specific attributes of the given device
- iio_device_get_buffer_attrs_count
-
Enumerate the buffer-specific attributes of the given device
- iio_device_get_channel
-
Get the channel present at the given index
- iio_device_get_attr
-
Get the device-specific attribute present at the given index
- iio_device_get_buffer_attr
-
Get the buffer-specific attribute present at the given index
- iio_device_find_channel
-
Try to find a channel structure by its name of ID
- iio_device_find_attr
-
Try to find a device-specific attribute by its name
- iio_device_find_buffer_attr
-
Try to find a buffer-specific attribute by its name
- iio_device_attr_read
-
Read the content of the given device-specific attribute
- iio_device_attr_read_all
-
Read the content of all device-specific attributes
- iio_device_attr_read_bool
-
Read the content of the given device-specific attribute
- iio_device_attr_read_longlong
-
Read the content of the given device-specific attribute
- iio_device_attr_read_double
-
Read the content of the given device-specific attribute
- iio_device_attr_write
-
Set the value of the given device-specific attribute
- iio_device_attr_write_raw
-
Set the value of the given device-specific attribute
- iio_device_attr_write_all
-
Set the values of all device-specific attributes
- iio_device_attr_write_bool
-
Set the value of the given device-specific attribute
- iio_device_attr_write_longlong
-
Set the value of the given device-specific attribute
- iio_device_attr_write_double
-
Set the value of the given device-specific attribute
- iio_device_buffer_attr_read
-
Read the content of the given buffer-specific attribute
- iio_device_buffer_attr_read_all
-
Read the content of all buffer-specific attributes
- iio_device_buffer_attr_read_bool
-
Read the content of the given buffer-specific attribute
- iio_device_buffer_attr_read_longlong
-
Read the content of the given buffer-specific attribute
- iio_device_buffer_attr_read_double
-
Read the content of the given buffer-specific attribute
- iio_device_buffer_attr_write
-
Set the value of the given buffer-specific attribute
- iio_device_buffer_attr_write_raw
-
Set the value of the given buffer-specific attribute
- iio_device_buffer_attr_write_all
-
Set the values of all buffer-specific attributes
- iio_device_buffer_attr_write_bool
-
Set the value of the given buffer-specific attribute
- iio_device_buffer_attr_write_longlong
-
Set the value of the given buffer-specific attribute
- iio_device_buffer_attr_write_double
-
Set the value of the given buffer-specific attribute
- iio_device_set_data
-
Associate a pointer to an iio_device structure
- iio_device_get_data
-
Retrieve a previously associated pointer of an iio_device structure
- iio_device_get_trigger
-
Retrieve the trigger of a given device
- iio_device_set_trigger
-
Associate a trigger to a given device
- iio_device_is_trigger
-
Return True if the given device is a trigger
- iio_device_set_kernel_buffers_count
-
Configure the number of kernel buffers for a device
Channel Channel
- Function
-
-
Description
- iio_channel_get_device
-
Retrieve a pointer to the iio_device structure
- iio_channel_get_id
-
Retrieve the channel ID
- iio_channel_get_name
-
Retrieve the channel name
- iio_channel_is_output
-
Return True if the given channel is an output channel
- iio_channel_is_scan_element
-
Return True if the given channel is a scan element
- iio_channel_get_attrs_count
-
Enumerate the channel-specific attributes of the given channel
- iio_channel_get_attr
-
Get the channel-specific attribute present at the given index
- iio_channel_find_attr
-
Try to find a channel-specific attribute by its name
- iio_channel_attr_get_filename
-
Retrieve the filename of an attribute
- iio_channel_attr_read
-
Read the content of the given channel-specific attribute
- iio_channel_attr_read_all
-
Read the content of all channel-specific attributes
- iio_channel_attr_read_bool
-
Read the content of the given channel-specific attribute
- iio_channel_attr_read_longlong
-
Read the content of the given channel-specific attribute
- iio_channel_attr_read_double
-
Read the content of the given channel-specific attribute
- iio_channel_attr_write
-
Set the value of the given channel-specific attribute
- iio_channel_attr_write_raw
-
Set the value of the given channel-specific attribute
- iio_channel_attr_write_all
-
Set the values of all channel-specific attributes
- iio_channel_attr_write_bool
-
Set the value of the given channel-specific attribute
- iio_channel_attr_write_longlong
-
Set the value of the given channel-specific attribute
- iio_channel_attr_write_double
-
Set the value of the given channel-specific attribute
- iio_channel_enable
-
Enable the given channel
- iio_channel_disable
-
Disable the given channel
- iio_channel_is_enabled
-
Returns True if the channel is enabled
- iio_channel_read_raw
-
Demultiplex the samples of a given channel
- iio_channel_read
-
Demultiplex and convert the samples of a given channel
- iio_channel_write_raw
-
Multiplex the samples of a given channel
- iio_channel_write
-
Convert and multiplex the samples of a given channel
- iio_channel_set_data
-
Associate a pointer to an iio_channel structure
- iio_channel_get_data
-
Get a pointer to a channel's data format structure
- iio_channel_get_type
-
Get the type of the given channel
- iio_channel_get_modifier
-
Get the modifier type of the given channel
Buffer Buffer
- Function
-
-
Description
- iio_buffer_get_device
-
Retrieve a pointer to the iio_device structure
- iio_device_create_buffer
-
Create an input or output buffer associated to the given device
- iio_buffer_destroy
-
Destroy the given buffer
- iio_buffer_get_poll_fd
-
Get a pollable file descriptor
- iio_buffer_set_blocking_mode
-
Make iio_buffer_refill() and iio_buffer_push() blocking or not
- iio_buffer_refill
-
Cancel all buffer operations
- iio_buffer_push
-
Cancel all buffer operations
- iio_buffer_push_partial
-
Send a given number of samples to the hardware
- iio_buffer_cancel
-
Cancel all buffer operations
- iio_buffer_start
-
Get the start address of the buffer
- iio_buffer_first
-
Find the first sample of a channel in a buffer
- iio_buffer_step
-
Get the step size between two samples of one channel
- iio_buffer_end
-
Get the address that follows the last sample in a buffer
- iio_buffer_foreach_sample
-
Call the supplied callback for each sample found in a buffer
- iio_buffer_set_data
-
Associate a pointer to an iio_buffer structure
- iio_buffer_get_data
-
Retrieve a previously associated pointer of an iio_buffer structure
Debug Debug and low-level functions
- Function
-
-
Description
- iio_device_get_sample_size
-
Get the current sample size
- iio_channel_get_index
-
Get the index of the given channel
- iio_channel_get_data_format
-
Get a pointer to a channel's data format structure
- iio_channel_convert
-
Convert the sample from host format to hardware format
- iio_channel_convert_inverse
-
Convert the sample from host format to hardware format
- iio_device_get_debug_attrs_count
-
Enumerate the debug attributes of the given device
- iio_device_get_debug_attr
-
Get the debug attribute present at the given index
- iio_device_find_debug_attr
-
Try to find a debug attribute by its name
- iio_device_debug_attr_read
-
Read the content of the given debug attribute
- iio_device_debug_attr_read_all
-
Read the content of all debug attributes
- iio_device_debug_attr_write
-
Set the value of the given debug attribute
- iio_device_debug_attr_write_raw
-
Set the value of the given debug attribute
- iio_device_debug_attr_write_all
-
Set the values of all debug attributes
- iio_device_debug_attr_read_bool
-
Read the content of the given debug attribute
- iio_device_debug_attr_read_longlong
-
Read the content of the given debug attribute
- iio_device_debug_attr_read_double
-
Read the content of the given debug attribute
- iio_device_debug_attr_write_bool
-
Set the value of the given debug attribute
- iio_device_debug_attr_write_longlong
-
Set the value of the given debug attribute
- iio_device_debug_attr_write_double
-
Set the value of the given debug attribute
- iio_device_identify_filename
-
Identify the channel or debug attribute corresponding to a filename
- iio_device_reg_write
-
Set the value of a hardware register
- iio_device_reg_read
-
Get the value of a hardware register
DIAGNOSTICS
All error codes are returned as negative number return codes.
In these cases, the value can be passed to the
iio_strerror
routine.
SEE ALSO
iio_attr(1),
iio_info(1),
iio_readdev(1),
iio_writedev(1),
iio_reg(1)
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/
Kernel Doc:
https://www.kernel.org/doc/html/latest/driver-api/iio/index.html
https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-bus-iio
BUGS
All bugs are tracked at:
https://github.com/analogdevicesinc/libiio/issues
LICENSE
The
libiio
source code and resulting binaries (libraries) are released and distributed under the GNU Lesser General Public License, v2.1 or (at your option) any later version.
The
libiio
test and example application(s) source code and resulting binaries (executables) are released and distributed under the GNU General Public License, v2.0 or (at your option) any later version.
The
libiio
man pages are released and distributed under the Creative Commons Attribution-ShareAlike 4.0 International Public License.
Index
- NAME
-
- SYNOPSIS
-
- OPTIONS
-
- DESCRIPTION
-
- DATA TYPES
-
- LIST OF ROUTINES
-
- DIAGNOSTICS
-
- SEE ALSO
-
- BUGS
-
- LICENSE
-
This document was created by
man2html,
using the manual pages.
Time: 15:31:04 GMT, June 05, 2020