LibIIO – библиотека для взаимодействия с промышленными устройствами ввода/вывода Linux

Библиотека LibIIO существует уже более 6 лет, чтобы упростить разработку программного обеспечения для взаимодействия с устройствами промышленного ввода-вывода Linux (IIO). Это часть ядра Linux и подсистема, обеспечивающая поддержку таких устройств, как аналого-цифровые или цифро-аналоговые преобразователи (АЦП, ЦАП). Эта подсистема включает в себя АЦП, акселерометры, датчики давления, датчики цвета, света и приближения, датчики температуры, радиопередатчики и многое другое.

LibIIO поддерживает Linux, Windows и Mac OS. Analog Devices Inc. была основной компанией, стоявшей за разработкой LibIIO, которая в настоящее время является активной библиотекой с открытым исходным кодом, в которую многие люди внесли свой вклад.

Что делает LibIIO?


LibIIO определит каналы, принадлежащие каждому устройству, назначит определенные атрибуты, один для каналов и один для устройств. Затем создаст контекст, который является местом, где существуют все устройства, и вы можете просматривать каналы, устройства и атрибуты.

Структура библиотеки

Библиотека состоит из единого кроссплатформенного API и нескольких бэкэндов:

  1. Локальный бэкэнд, который связывает ядро ​​Linux через виртуальную файловую систему sysfs. Это когда LibIIO запускается локально на цели.
  2. Сетевой бэкэнд, который связывает сервер iiod через сетевое соединение.
  3. Бэкэнд USB, который связывает сервер iiod через соединение USB.
  4. Бэкэнд XML, который анализирует файл XML.
  5. Последовательный бэкэнд можно использовать с tiny-iiod, который будет работать во встроенной системе с фреймворком, отличным от Linux.

Серверная часть сети, USB и последовательного интерфейса подпадает под удаленную внутреннюю часть. Iiod и tiny-iiod являются частью LibIIO. Этот сервер iiod может работать на хосте Linux, а затем он будет связываться с клиентом LibIIO по сети или USB. Сервер также может работать в глубоко встроенной системе с ограниченными ресурсами (например, Arduino), управляемой отдельно как tiny-iiod, которая обычно взаимодействует с клиентом LibIIO по сети или через последовательный порт.

Сервер IIO Daemon (IIOD) – это пример приложения, использующего LibIIO. Этот программный стек показывает отношения клиент-сервер. Предположим, что клиентское приложение работает в Windows, затем вызывает высокоуровневый API (LibIIO) и через сетевой бэкэнд отправляет команду на сервер IIOD. Затем он распознает команду и через высокоуровневый API LibIIO и локальный бэкэнд взаимодействует с устройствами IIO. Сервер IIOD разделяет локальный бэкэнд через сеть с клиентами.

С чего начать?

Если вы уже используете Linux, ваш дистрибутив уже включает LibIIO, поэтому вам просто нужно указать iio.h в исходном коде. Но для других платформ вам следует проверять сборки выпуска.

При желании вы также можете получить доступ к исходному коду с GitHub. После того, как вы защитили свой доступ к библиотеке, пожалуйста, проверьте LibIIO API или примеры LibIIO.

Источник: Все изображения были взяты у инженера-разработчика программного обеспечения компании Analog Devices, слайды презентации Дэна Нечиты с  Open Source Summit 2020 и из Wiki.

Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments