Нейтральный распределенный интерфейс прибора - Instrument Neutral Distributed Interface

INDI
Оригинальный автор (ы) Элвуд Дауни , Джасем Мутлак
Разработчики) Команда разработчиков INDI
Первый выпуск 15 апреля 2003 г . ; 17 лет назад  ( 2003-04-15 )
Стабильный выпуск
1.8.9 / 28 февраля 2021 г . ; 43 дней назад  ( 2021-02-28 )
Написано в C , C ++
Операционная система Linux , OS X , macOS , FreeBSD , OpenBSD
Лицензия GNU LGPL v2.1 +
Веб-сайт www .indilib .org

Instrument Neutral Distributed Interface ( INDI ) - это протокол распределенной системы управления (DCS), обеспечивающий управление, сбор данных и обмен между аппаратными устройствами и программными интерфейсами с упором на астрономические приборы.

Вступление

Элвуд Дауни начал инициативу INDI Protocol в 2003 году с целью разработки независимого от платформы и клиента протокола управления. INDI - это простой протокол, созданный на основе Extensible Markup Language ( XML ), описанный для интерактивного и автоматизированного удаленного управления разнообразными инструментами. Он небольшой, легко анализируется и не имеет состояния. В парадигме INDI каждое Устройство представляет все функции управления и состояния с точки зрения настройки и получения свойств . Каждое свойство представляет собой вектор из одного или нескольких именованных членов и имеет вектор текущего значения; вектор целевого значения; предоставляет информацию о том, как это должно быть упорядочено по отношению к другим Свойствам для выполнения одной скоординированной единицы наблюдения; и предоставляет подсказки относительно того, как это может быть отображено для интерактивных манипуляций в графическом пользовательском интерфейсе (GUI). Клиенты изучают свойства конкретного устройства во время выполнения с помощью интроспекции.

Это разделяет истории реализации клиента и устройства. Устройства имеют полное право принимать ли команды от клиентов. INDI поддерживает промежуточные серверы, широковещательную передачу и топологии соединений, начиная от «один-к-одному в системе одного типа» и заканчивая «многие-ко-многим» между системами разного жанра. Протокол INDI может быть вложен в другие элементы XML, такие как язык разметки удаленного телескопа (RTML), чтобы добавить ограничения для автоматического планирования и выполнения.

Архитектура

Основная ключевая концепция INDI заключается в том, что устройства могут описывать себя. Это достигается за счет использования XML для описания общей иерархии, которая может представлять как канонические, так и неканонические устройства. В INDI все устройства могут содержать одно или несколько свойств. Любое свойство может содержать один или несколько элементов. Свойство в парадигме INDI описывает конкретную функцию устройства. Существует пять типов свойств INDI:

  • Текстовое свойство
  • Number свойство
  • Свойство переключателя - представлено в графическом интерфейсе кнопками или флажками
  • Свойство света - представлено в графическом интерфейсе цветными светодиодами
  • Свойство Blob - двоичные данные

INDI предоставляет мощные средства создания сценариев, которые обеспечивают полную автоматизацию устройства.

Библиотека INDI

Библиотека INDI - это реализация сетевого протокола INDI для Unix-подобных систем. Он поддерживает широкий спектр астрономических инструментов, включая телескопы, устройства с зарядовой связью (ПЗС), фокусеры, фильтры и устройства видеозахвата. Библиотека INDI находится под лицензией GNU Lesser General Public License (LGPL).

Драйвер INDI

Драйвер INDI - это программа, которая напрямую связывается с устройством. Он отвечает за управление параметрами устройства и их определение клиентам. Драйверы отправляют клиентам список поддерживаемых свойств устройства, где они анализируются и представляются конечным пользователям.

Клиенты INDI

Клиенты - это программные интерфейсы, которые взаимодействуют с драйверами оборудования. Обычно они взаимодействуют с драйверами оборудования INDI через сервер INDI, хотя могут связываться с драйверами напрямую. Есть много типов клиентов, в первую очередь:

Панель управления INDI в KStars
  • Общие клиенты с графическим интерфейсом пользователя, такие как KStars , XEphem , AstroImager или AstroTelescope. Такие клиенты создают динамический графический интерфейс, предлагая пользователям панель управления для управления устройством.
  • Регистрируйте клиентов для записи сообщений, сигналов тревоги и данных, которыми обмениваются устройства и клиенты.
  • Наблюдайте за клиентами-собаками, чтобы обеспечить безопасную и правильную работу устройств.
  • Автоматизированные скрипты для выполнения сложных и скоординированных операций на устройствах.

INDI сервер

Сервер INDI - это концентратор, который находится между драйверами и клиентами. Он перенаправляет трафик для управления и данных в распределенных сетях. Каждое устройство или клиент в сети является узлом и может связываться с другими узлами, когда это необходимо. Сервер поддерживает широковещательную рассылку, цепочку и маршалинг данных.

Топология сети сервера INDI

Порт IANA

Служба присвоения номеров Интернета (IANA) назначила INDI протоколу управления передачей (TCP) и протоколу дейтаграмм пользователя (UDP) или TCP / UDP-порту 7624. См. Список номеров портов TCP и UDP .

Смотрите также

Рекомендации

Внешние ссылки