Loading...
Searching...
No Matches
Context

## Data Structures

struct | iio_context
| Contains the representation of an IIO context. More...

## Functions

__api __check_ret struct iio_context * | iio_create_default_context (void)
| Create a context from local or remote IIO devices.
__api __check_ret struct iio_context * | iio_create_local_context (void)
| Create a context from local IIO devices (Linux only).
__api __check_ret struct iio_context * | iio_create_xml_context (const char *xml_file)
| Create a context from a XML file.
__api __check_ret struct iio_context * | iio_create_xml_context_mem (const char *xml, size_t len)
| Create a context from XML data in memory.
__api __check_ret struct iio_context * | iio_create_network_context (const char *host)
| Create a context from the network.
__api __check_ret struct iio_context * | iio_create_context_from_uri (const char *uri)
| Create a context from a URI description.
__api __check_ret struct iio_context * | iio_context_clone (const struct iio_context *ctx)
| Duplicate a pre-existing IIO context.
__api void | iio_context_destroy (struct iio_context *ctx)
| Destroy the given context.
__api __check_ret int | iio_context_get_version (const struct iio_context *ctx, unsigned int *major, unsigned int *minor, char git_tag[8])
| Get the version of the backend in use.
__api __check_ret __pure const char * | iio_context_get_xml (const struct iio_context *ctx)
| Obtain a XML representation of the given context.
__api __check_ret __pure const char * | iio_context_get_name (const struct iio_context *ctx)
| Get the name of the given context.
__api __check_ret __pure const char * | iio_context_get_description (const struct iio_context *ctx)
| Get a description of the given context.
__api __check_ret __pure unsigned int | iio_context_get_attrs_count (const struct iio_context *ctx)
| Get the number of context-specific attributes.
__api __check_ret int | iio_context_get_attr (const struct iio_context *ctx, unsigned int index, const char **name, const char **value)
| Retrieve the name and value of a context-specific attribute.
__api __check_ret const char * | iio_context_get_attr_value (const struct iio_context *ctx, const char *name)
| Retrieve the value of a context-specific attribute.
__api __check_ret __pure unsigned int | iio_context_get_devices_count (const struct iio_context *ctx)
| Enumerate the devices found in the given context.
__api __check_ret __pure struct iio_device * | iio_context_get_device (const struct iio_context *ctx, unsigned int index)
| Get the device present at the given index.
__api __check_ret __pure struct iio_device * | iio_context_find_device (const struct iio_context *ctx, const char *name)
| Try to find a device structure by its ID, label or name.
__api __check_ret int | iio_context_set_timeout (struct iio_context *ctx, unsigned int timeout_ms)
| Set a timeout for I/O operations.

## Detailed Description

## Function Documentation

## iio_context_clone()

__api __check_ret struct iio_context * iio_context_clone | ( | const struct iio_context * | ctx | ) |

Duplicate a pre-existing IIO context.

Parameters

  ctx | A pointer to an iio_context structure

Returns
  On success, A pointer to an iio_context structure
  On failure, NULL is returned and errno is set appropriately

NOTE: This function is not supported on 'usb:' contexts, since libusb can only claim the interface once. "Function not implemented" is the expected errno. Any context which is cloned, must be destroyed via calling iio_context_destroy()

## iio_context_destroy()

__api void iio_context_destroy | ( | struct iio_context * | ctx | ) |

Destroy the given context.

Parameters

  ctx | A pointer to an iio_context structure

NOTE: After that function, the iio_context pointer shall be invalid.

## iio_context_find_device()

__api __check_ret __pure struct iio_device * iio_context_find_device | ( | const struct iio_context * | ctx,
|  | const char * | name )

Try to find a device structure by its ID, label or name.

Parameters

  ctx | A pointer to an iio_context structure
  name | A NULL-terminated string corresponding to the ID, label or name of the device to search for

Returns
  On success, a pointer to an iio_device structure
  If the parameter does not correspond to the ID, label or name of any known device, NULL is returned

## iio_context_get_attr()

__api __check_ret int iio_context_get_attr | ( | const struct iio_context * | ctx,
|  | unsigned int | index,
|  | const char ** | name,
|  | const char ** | value )

Retrieve the name and value of a context-specific attribute.

Parameters

  ctx | A pointer to an iio_context structure
  index | The index corresponding to the attribute
  name | A pointer to a const char * pointer (NULL accepted)
  value | A pointer to a const char * pointer (NULL accepted)

Returns
  On success, 0 is returned
  On error, a negative errno code is returned

Introduced in version 0.9.

## iio_context_get_attr_value()

__api __check_ret const char * iio_context_get_attr_value | ( | const struct iio_context * | ctx,
|  | const char * | name )

Retrieve the value of a context-specific attribute.

Parameters

  ctx | A pointer to an iio_context structure
  name | The name of the context attribute to read

Returns
  On success, a pointer to a static NULL-terminated string
  If the name does not correspond to any attribute, NULL is returned

Introduced in version 0.9.

## iio_context_get_attrs_count()

__api __check_ret __pure unsigned int iio_context_get_attrs_count | ( | const struct iio_context * | ctx | ) |

Get the number of context-specific attributes.

Parameters

  ctx | A pointer to an iio_context structure

Returns
  The number of context-specific attributes

Introduced in version 0.9.

## iio_context_get_description()

__api __check_ret __pure const char * iio_context_get_description | ( | const struct iio_context * | ctx | ) |

Get a description of the given context.

Parameters

  ctx | A pointer to an iio_context structure

Returns
  A pointer to a static NULL-terminated string

NOTE:The returned string will contain human-readable information about the current context.

## iio_context_get_device()

__api __check_ret __pure struct iio_device * iio_context_get_device | ( | const struct iio_context * | ctx,
|  | unsigned int | index )

Get the device present at the given index.

Parameters

  ctx | A pointer to an iio_context structure
  index | The index corresponding to the device

Returns
  On success, a pointer to an iio_device structure
  If the index is invalid, NULL is returned

## iio_context_get_devices_count()

__api __check_ret __pure unsigned int iio_context_get_devices_count | ( | const struct iio_context * | ctx | ) |

Enumerate the devices found in the given context.

Parameters

  ctx | A pointer to an iio_context structure

Returns
  The number of devices found

## iio_context_get_name()

__api __check_ret __pure const char * iio_context_get_name | ( | const struct iio_context * | ctx | ) |

Get the name of the given context.

Parameters

  ctx | A pointer to an iio_context structure

Returns
  A pointer to a static NULL-terminated string

NOTE:The returned string will be local, xml or network when the context has been created with the local, xml and network backends respectively.

## iio_context_get_version()

__api __check_ret int iio_context_get_version | ( | const struct iio_context * | ctx,
|  | unsigned int * | major,
|  | unsigned int * | minor,
|  | char | git_tag[8] )

Get the version of the backend in use.

Parameters

  ctx | A pointer to an iio_context structure
  major | A pointer to an unsigned integer (NULL accepted)
  minor | A pointer to an unsigned integer (NULL accepted)
  git_tag | A pointer to a 8-characters buffer (NULL accepted)

Returns
  On success, 0 is returned
  On error, a negative errno code is returned

Here is the call graph for this function:

## iio_context_get_xml()

__api __check_ret __pure const char * iio_context_get_xml | ( | const struct iio_context * | ctx | ) |

Obtain a XML representation of the given context.

Parameters

  ctx | A pointer to an iio_context structure

Returns
  A pointer to a static NULL-terminated string

## iio_context_set_timeout()

__api __check_ret int iio_context_set_timeout | ( | struct iio_context * | ctx,
|  | unsigned int | timeout_ms )

Set a timeout for I/O operations.

Parameters

  ctx | A pointer to an iio_context structure
  timeout_ms | A positive integer representing the time in milliseconds after which a timeout occurs. A value of 0 is used to specify that no timeout should occur.

Returns
  On success, 0 is returned
  On error, a negative errno code is returned

## iio_create_context_from_uri()

__api __check_ret struct iio_context * iio_create_context_from_uri | ( | const char * | uri | ) |

Create a context from a URI description.

Parameters

  uri | A URI describing the context location

Returns
  On success, a pointer to a iio_context structure
  On failure, NULL is returned and errno is set appropriately

NOTE: The following URIs are supported based on compile time backend support:

- Local backend, "local:"
  Does not have an address part. For example "local:"
- XML backend, "xml:"
  Requires a path to the XML file for the address part. For example "xml:/home/user/file.xml"
- Network backend, "ip:"
  Requires a hostname, IPv4, or IPv6 to connect to a specific running IIO Daemon or no address part for automatic discovery when library is compiled with ZeroConf support. For example "ip:192.168.2.1", or "ip:localhost", or "ip:" or "ip:plutosdr.local". To support alternative port numbers the standard ip:host:port format is used. A special format is required as defined in RFC2732 for IPv6 literal hostnames, (adding '[]' around the host) to use a ip:[x:x:x:x:x:x:x:x]:port format. Valid examples would be:
  - ip: Any host on default port
  - ip::40000 Any host on port 40000
  - ip:analog.local Default port
  - ip:brain.local:40000 Port 40000
  - ip:192.168.1.119 Default Port
  - ip:192.168.1.119:40000 Port 40000
  - ip:2601:190:400:da:47b3:55ab:3914:bff1 Default Port
  - ip:[2601:190:400:da:9a90:96ff:feb5:acaa]:40000 Port 40000
  - ip:fe80::f14d:3728:501e:1f94eth0 Link-local through eth0, default port
  - ip:[fe80::f14d:3728:501e:1f94eth0]:40000 Link-local through eth0, port 40000
- USB backend, "usb:"
  When more than one usb device is attached, requires bus, address, and interface parts separated with a dot. For example "usb:3.32.5". Where there is only one USB device attached, the shorthand "usb:" can be used.

- Serial backend, "serial:"
  Requires:

  - a port (/dev/ttyUSB0),
  - baud_rate (default 115200)
  - serial port configuration
    - data bits (5 6 7 8 9)
    - parity ('n' none, 'o' odd, 'e' even, 'm' mark, 's' space)
    - stop bits (1 2)
    - flow control ('\0' none, 'x' Xon Xoff, 'r' RTSCTS, 'd' DTRDSR)

  For example "serial:/dev/ttyUSB0,115200" or "serial:/dev/ttyUSB0,115200,8n1"

Here is the call graph for this function:
Here is the caller graph for this function:

## iio_create_default_context()

__api __check_ret struct iio_context * iio_create_default_context | ( | void |  | ) |

Create a context from local or remote IIO devices.

Returns
  On success, A pointer to an iio_context structure
  On failure, NULL is returned and errno is set appropriately

NOTE: This function will create a context with the URI provided in the IIOD_REMOTE environment variable. If not set, a local context will be created instead.

Here is the call graph for this function:

## iio_create_local_context()

__api __check_ret struct iio_context * iio_create_local_context | ( | void |  | ) |

Create a context from local IIO devices (Linux only).

Returns
  On success, A pointer to an iio_context structure
  On failure, NULL is returned and errno is set appropriately

Here is the caller graph for this function:

## iio_create_network_context()

__api __check_ret struct iio_context * iio_create_network_context | ( | const char * | host | ) |

Create a context from the network.

Parameters

  host | Hostname, IPv4 or IPv6 address where the IIO Daemon is running

Returns
  On success, a pointer to an iio_context structure
  On failure, NULL is returned and errno is set appropriately

Here is the caller graph for this function:

## iio_create_xml_context()

__api __check_ret struct iio_context * iio_create_xml_context | ( | const char * | xml_file | ) |

Create a context from a XML file.

Parameters

  xml_file | Path to the XML file to open

Returns
  On success, A pointer to an iio_context structure
  On failure, NULL is returned and errno is set appropriately

NOTE: The format of the XML must comply to the one returned by iio_context_get_xml.

Here is the caller graph for this function:

## iio_create_xml_context_mem()

__api __check_ret struct iio_context * iio_create_xml_context_mem | ( | const char * | xml,
|  | size_t | len )

Create a context from XML data in memory.

Parameters

  xml | Pointer to the XML data in memory
  len | Length of the XML string in memory (excluding the final \0)

Returns
  On success, A pointer to an iio_context structure
  On failure, NULL is returned and errno is set appropriately

NOTE: The format of the XML must comply to the one returned by iio_context_get_xml