Channel Functions

const struct iio_device *iio_channel_get_device(const struct iio_channel *chn)

Retrieve a pointer to the iio_device structure.

Parameters:

chn – A pointer to an iio_channel structure

Returns:

A pointer to an iio_device structure

const char *iio_channel_get_id(const struct iio_channel *chn)

Retrieve the channel ID (e.g. )

Parameters:

chn – A pointer to an iio_channel structure

Returns:

A pointer to a static NULL-terminated string

const char *iio_channel_get_name(const struct iio_channel *chn)

Retrieve the channel name (e.g. )

NOTE: if the channel has no name, NULL is returned.

Parameters:

chn – A pointer to an iio_channel structure

Returns:

A pointer to a static NULL-terminated string

const char *iio_channel_get_label(const struct iio_channel *chn)

Retrieve the channel label (e.g. )

NOTE: if the channel has no label, NULL is returned.

Parameters:

chn – A pointer to an iio_channel structure

Returns:

A pointer to a static NULL-terminated string

bool iio_channel_is_output(const struct iio_channel *chn)

Return True if the given channel is an output channel.

Parameters:

chn – A pointer to an iio_channel structure

Returns:

True if the channel is an output channel, False otherwise

bool iio_channel_is_scan_element(const struct iio_channel *chn)

Return True if the given channel is a scan element.

NOTE: a channel that is a scan element is a channel that can generate samples (for an input channel) or receive samples (for an output channel) after being enabled.

Parameters:

chn – A pointer to an iio_channel structure

Returns:

True if the channel is a scan element, False otherwise

unsigned int iio_channel_get_attrs_count(const struct iio_channel *chn)

Enumerate the channel-specific attributes of the given channel.

Parameters:

chn – A pointer to an iio_channel structure

Returns:

The number of channel-specific attributes found

const struct iio_attr *iio_channel_get_attr(const struct iio_channel *chn, unsigned int index)

Get the channel-specific attribute present at the given index.

Parameters:
  • chn – A pointer to an iio_channel structure

  • index – The index corresponding to the attribute

Returns:

On success, a pointer to an iio_attr structure

Returns:

If the index is invalid, NULL is returned

const struct iio_attr *iio_channel_find_attr(const struct iio_channel *chn, const char *name)

Try to find a channel-specific attribute by its name.

Parameters:
  • chn – A pointer to an iio_channel structure

  • name – A NULL-terminated string corresponding to the name of the attribute

Returns:

On success, a pointer to an iio_attr structure

Returns:

If the name does not correspond to any known attribute of the given channel, NULL is returned

unsigned int iio_channel_get_event_attrs_count(const struct iio_channel *chn)

Enumerate the event attributes of the given channel.

Parameters:

chn – A pointer to an iio_channel structure

Returns:

The number of event attributes found

const struct iio_attr *iio_channel_get_event_attr(const struct iio_channel *chn, unsigned int index)

Get the event attribute present at the given index.

Parameters:
  • chn – A pointer to an iio_channel structure

  • index – The index corresponding to the event attribute

Returns:

On success, a pointer to an iio_attr structure

Returns:

If the index is invalid, NULL is returned

const struct iio_attr *iio_channel_find_event_attr(const struct iio_channel *chn, const char *name)

Try to find a channel event attribute by its name.

Parameters:
  • chn – A pointer to an iio_channel structure

  • name – A NULL-terminated string corresponding to the name of the event attribute

Returns:

On success, a pointer to an iio_attr structure

Returns:

If the name does not correspond to any known event attribute of the given channel, NULL is returned

void iio_channel_enable(const struct iio_channel *chn, struct iio_channels_mask *mask)

Enable the given channel.

Parameters:
  • chn – A pointer to an iio_channel structure

  • mask – The channels mask to manipulate

void iio_channel_disable(const struct iio_channel *chn, struct iio_channels_mask *mask)

Disable the given channel.

Parameters:
  • chn – A pointer to an iio_channel structure

  • mask – The channels mask to manipulate

bool iio_channel_is_enabled(const struct iio_channel *chn, const struct iio_channels_mask *mask)

Returns True if the channel is enabled.

Parameters:
  • chn – A pointer to an iio_channel structure

  • mask – A pointer to an iio_channels_mask structure

Returns:

True if the channel is enabled, False otherwise

size_t iio_channel_read(const struct iio_channel *chn, const struct iio_block *block, void *dst, size_t len, bool raw)

Demultiplex and convert the samples of a given channel.

Parameters:
  • chn – A pointer to an iio_channel structure

  • block – A pointer to an iio_block structure

  • dst – A pointer to the memory area where the converted data will be stored

  • len – The available length of the memory area, in bytes

  • raw – True to read samples in the hardware format, false to read converted samples.

Returns:

The size of the converted data, in bytes

size_t iio_channel_write(const struct iio_channel *chn, struct iio_block *block, const void *src, size_t len, bool raw)

Convert and multiplex the samples of a given channel.

Parameters:
  • chn – A pointer to an iio_channel structure

  • block – A pointer to an iio_block structure

  • src – A pointer to the memory area where the sequential data will be read from

  • len – The length of the memory area, in bytes

  • raw – True if the samples are already in hardware format, false if they need to be converted.

Returns:

The number of bytes actually converted and multiplexed

void iio_channel_set_data(struct iio_channel *chn, void *data)

Associate a pointer to an iio_channel structure.

Parameters:
  • chn – A pointer to an iio_channel structure

  • data – The pointer to be associated

void *iio_channel_get_data(const struct iio_channel *chn)

Retrieve a previously associated pointer of an iio_channel structure.

Parameters:

chn – A pointer to an iio_channel structure

Returns:

The pointer previously associated if present, or NULL

enum iio_chan_type iio_channel_get_type(const struct iio_channel *chn)

Get the type of the given channel.

Parameters:

chn – A pointer to an iio_channel structure

Returns:

The type of the channel NOTE: Before calling this function, iio_device_is_hwmon() should be called to verify that the passed channel object does not belong to a HWMON device.

enum iio_modifier iio_channel_get_modifier(const struct iio_channel *chn)

Get the modifier type of the given channel.

Parameters:

chn – A pointer to an iio_channel structure

Returns:

The modifier type of the channel

struct iio_channel
#include <iio.h>

Represents an input or output channel of a device.