C Matlab C# Python CMake Yacc Other
mhennerich Bump to version v0.15
Changelog:
dce7644 network: Add workaround for Microsoft Windows Subsystem for Linux
70d1c2a examples/dummy-iiostream: Fix instructions
0892972 local: Fix low-speed mode
fa6ec67 appveyor.yml: Add workaround for 32-bit build
956bbc5 appveyor.yml: Fix libzip dll name pattern
c9909f2 Fix buffer/device mixup in docs
7dddeec Prevent out-of-bounds access in read_each_attr()/iio_channel_attr_read_all()
8ac1893 tests/iio_writedev: Add iio_writedev analogous to iio_readdev
ac8debc iio_adi_xflow_check: Avoid accessing device after context destruction
fa82974 Install iiod upstart conf file
61322cb Install iiod SysVinit script
e688c76 Install iiod.service file
185128c Fix typo in CMakeLists.txt
c8d5306 iio_readdev: Fix getopt() handling
52a5f07 iio_info: Fix getopt() handling
19d642c iio_genxml: Fix getopt() handling
faa6341 iio_attr: Fix getopt() handling
989db5e iio_adi_xflow_check: Fix getopt() handling
f5d8ddc appveyor.yml: Drop the initial core update which updates the package list and upgrades all the outdated packages. The conflicts are not handled properly when using the --noconfirm option(default values).
227e067 CMakeLists.txt: Fill in the Windows file information (version, name, copyright, year).
854471e appveyor.yml: Install windres for reading Windows resource files (.rc)
7d29b98 Added a new variable to iio.Buffer stored in self._ctx, this is reference to a Context variable. This reference ensures that the Context outlives the buffer, if this is not the case a segmentation violation will occur when destroying the buffer.

Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Latest commit 6ecff5d May 7, 2018
Permalink
Failed to load latest commit information.
CI/travis Create zip.txt Jan 8, 2018
bindings Added a new variable to iio.Buffer stored in self._ctx, this is refer… Feb 2, 2018
cmake cmake: Set the OSX versions for the tarballs correctly Feb 7, 2017
deps Add a git submodule for wingetopt Mar 4, 2016
doc Enhanced documentation Sep 12, 2014
examples examples/dummy-iiostream: Fix instructions May 7, 2018
iiod Install iiod upstart conf file Mar 7, 2018
tests tests/iio_writedev: Add iio_writedev analogous to iio_readdev Mar 16, 2018
xml Added some samples of XML generated by python/iioxml.py Feb 24, 2014
.gitignore Update .gitignore Feb 19, 2016
.gitmodules Add a git submodule for wingetopt Mar 4, 2016
.travis.yml travis-ci: fix typo in matrix Nov 19, 2017
CMakeLists.txt Bump to version v0.15 May 7, 2018
COPYING.txt Rename COPYING -> COPYING.txt May 11, 2015
Distribution.xml.cmakein CMake: Fix OSX build Nov 16, 2016
Doxyfile.in Doxygen: Fix home page not shown Dec 12, 2016
README.md Sync README and appveyor so the README points to the latest master. Jan 15, 2018
appveyor.yml appveyor.yml: Add workaround for 32-bit build May 4, 2018
backend.c Add API functions to query the available backends Jan 27, 2017
buffer.c iio_buffer: fix samples alignment computation Nov 30, 2016
channel.c Prevent out-of-bounds access in read_each_attr()/iio_channel_attr_rea… Apr 9, 2018
context.c device: Add support for buffer attributes Dec 1, 2017
debug.h debug.h: Switch DEBUG prints to green instead of blue Apr 3, 2017
device.c Prevent out-of-bounds access in read_each_attr()/iio_channel_attr_rea… Apr 9, 2018
iio-config.h.cmakein utilities.c: Add a check for newlocale() function Feb 6, 2017
iio-lock.h Network backend: Add support for mutexes on Windows Dec 3, 2015
iio-private.h Revert "RFC: Fix channel identifier heuristics" Jan 24, 2018
iio.h device: Add support for buffer attributes Dec 1, 2017
iiod-client.c device: Add support for buffer attributes Dec 1, 2017
iiod-client.h device: Add support for buffer attributes Dec 1, 2017
libiio.iss.cmakein CMakeLists.txt: Fill in the Windows file information (version, name, Feb 22, 2018
libiio.pc.cmakein Fix libiio.pc broken in commit 0e2bce7 May 23, 2016
libiio.rules.cmakein CMake: Add an option to install a udev rule Jan 27, 2017
local.c local: Fix low-speed mode May 7, 2018
lock.c Generate a iio-config.h header containing configuration Aug 30, 2016
mainpage.dox Fix buffer/device mixup in docs Apr 24, 2018
network.c network: Add workaround for Microsoft Windows Subsystem for Linux May 7, 2018
properties.rc.cmakein CMakeLists.txt: Fill in the Windows file information (version, name, Feb 22, 2018
scan.c matlab: Add scan_block helper API Jan 10, 2017
serial.c device: Add support for buffer attributes Dec 1, 2017
usb.c device: Add support for buffer attributes Dec 1, 2017
utilities.c utilities.c: Add a check for newlocale() function Feb 6, 2017
xml.c device: Add support for buffer attributes Dec 1, 2017

README.md

libiio

Library for interfacing with Linux IIO devices

libiio is 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 or Ethernet or Serial.

Although libiio was primarily developed by Analog Devices Inc., it is an active open source library, which many people have contributed to. It released under the GNU Lesser General Public License, version 2.1 or later, this open-source license allows anyone to use the library, on any vendors processor/FPGA/SoC, which may be controlling any vendors peripheral device (ADC, DAC, etc) either locally or remotely. This includes closed or open-source, commercial or non-commercial applications (subject to the LGPL license freedoms, obligations and restrictions).

License : License Latest Release : GitHub release Downloads : Github All Releases

Scans : Coverity Scan Build Status

As with many open source packages, we use GitHub to do develop and maintain the source, and Travis CI and Appveyor for continuous integration.

  • If you want to just use libiio, we suggest using the latest release.
  • If you think you have found a bug in the release, or need a feature which isn't in the release, try the latest untested binaries from the master branch. We provide builds for a few operating systems. If you need something else, we can most likely add that -- just ask.
Operating System GitHub master status Version Installer Package tarball or zip
Windows Windows Status Windows 10
Windows 8.1
Windows 8
Windows 7
Latest Windows installer Latest Windows zip
OS X OSX Status macOS Sierra
(v 10.12)
OS-X package 10.12 OS-X tarball 10.12
OS X El Capitan
(v 10.11)
OS-X package 10.11 OS-X tarball 10.11
OS X Yosemite
(v 10.10)
OS-X package 10.10 OS-X tarball 10.10
Linux Linux Status Ubuntu Trusty Tahr
(v 14.04)1
Debian RPM File3 tar.gz file
Ubuntu Precise Pangolin
(v 12.04)2
Debian RPM File3 tar.gz

If you use it, and like it - please let us know. If you use it, and hate it - please let us know that too. The goal of the project is to try to make Linux IIO devices easier to use on a variety of platforms. If we aren't doing that - we will try to make it better.

Feedback is appreciated (in order of preference):

Weblinks:

  1. This is known to work on Debian Jessie(v 8) as well.
    Package dependencies: libc6 (>= 2.19), libaio1 (>= 0.3.109), libavahi-client3 (>= 0.6.31), libavahi-common-data (>= 0.6.31), libavahi-common3 (>= 0.6.31), libusb-1.0-0 (>= 2:1.0.17), libxml2 (>= 2.9.1)
  2. This is known to work on Debian Wheezy(v 7) as well.
    Package dependencies: libc6 (>= 2.15), libaio1 (>= 0.3.109), libavahi-client3 (>= 0.6.30), libavahi-common-data (>= 0.6.30), libavahi-common3 (>= 0.6.30), libusb-1.0-0 (>= 2:1.0.9rc3), libxml2 (>= 2.8.0precise1)
  3. The rpm packages are listed under Ubuntu, since we take advantage of the Debian/Ubuntu ability to build rpm packages. These are not actually built on Red Hat/Fedora based systems, but are known to work.