Нейтральный распределенный интерфейс прибора
Оригинальный автор(ы) | Элвуд Дауни , Джасем Мутлак |
---|---|
Разработчик(и) | Команда разработчиков ИНДИ |
Первоначальный выпуск | 15 апреля 2003 г |
Стабильная версия | 1.8.9
/ 28 февраля 2021 г [ 1 ] |
Репозиторий | |
Написано в | С , С++ |
Операционная система | Linux , macOS , FreeBSD , OpenBSD |
Лицензия | GNU LGPL v2.1+ |
Веб-сайт | www |
Нейтральный распределенный интерфейс приборов ( INDI ) — это протокол распределенной системы управления (DCS), обеспечивающий управление, сбор данных и обмен между аппаратными устройствами и программными интерфейсами, уделяя особое внимание астрономическим приборам.
Введение
[ редактировать ]Элвуд Дауни начал инициативу INDI Protocol в 2003 году с целью разработки протокола управления, независимого от платформы и клиента. INDI — это простой протокол, созданный на основе расширяемого языка разметки ( XML ), предназначенный для интерактивного и автоматизированного дистанционного управления различными инструментами. Он небольшой, его легко анализировать, и он не имеет состояния. В парадигме INDI каждое Устройство предоставляет все функции управления и состояния с точки зрения настройки и получения свойств . Каждое свойство представляет собой вектор из одного или нескольких именованных элементов и имеет вектор текущих значений; вектор целевого значения; предоставляет информацию о том, как его следует упорядочить по отношению к другим Свойствам для выполнения одной скоординированной единицы наблюдения; и предоставляет подсказки относительно того, как оно может отображаться для интерактивных манипуляций в графическом интерфейсе пользователя (GUI). Клиенты изучают свойства конкретного устройства во время выполнения с помощью самоанализа.
Это разделяет истории реализации Клиента и Устройства. Устройства имеют полное право решать, принимать ли команды от Клиентов. INDI поддерживает промежуточные серверы, вещание и топологии соединений, варьирующиеся от «один к одному» в системе одного типа до «многие ко многим» между системами различного жанра. Протокол INDI может быть вложен в другие элементы XML, такие как язык разметки удаленного телескопа (RTML), чтобы добавить ограничения для автоматического планирования и выполнения.
Архитектура
[ редактировать ]Основная ключевая концепция INDI заключается в том, что устройства имеют возможность описывать себя. Это достигается за счет использования XML для описания общей иерархии, которая может представлять как канонические, так и неканонические устройства. В INDI все устройства могут содержать одно или несколько свойств. Любое свойство может содержать один или несколько элементов. Свойство в парадигме INDI описывает конкретную функцию устройства. Существует пять типов свойств INDI:
- Текстовое свойство
- Номер свойства
- Свойство переключателя – представлено в графическом интерфейсе кнопками или флажками.
- Свойство Light – представлено в графическом интерфейсе цветными светодиодами.
- Свойство Blob – двоичные данные
INDI предоставляет мощные возможности создания сценариев, которые обеспечивают полную автоматизацию устройства.
Библиотека ИНДИ
[ редактировать ]Библиотека INDI — это реализация проводного протокола INDI для Unix-подобных систем. Он поддерживает широкий спектр астрономических инструментов, включая телескопы, устройства с зарядовой связью (CCD), фокусеры, фильтры и устройства видеозахвата. Библиотека INDI распространяется под лицензией GNU Lesser General Public License (LGPL).
ИНДИ Драйвер
[ редактировать ]Драйвер INDI — это программа, которая напрямую взаимодействует с устройством. Он отвечает за управление параметрами устройства и за их определение клиентам. Драйверы отправляют список поддерживаемых свойств устройства клиентам, где они анализируются и представляются конечным пользователям.
ИНДИ-клиенты
[ редактировать ]Клиенты — это программные интерфейсы, которые взаимодействуют с драйверами оборудования. Обычно они взаимодействуют с драйверами оборудования INDI через сервер INDI, хотя могут взаимодействовать с драйверами напрямую. Существует много типов клиентов, в первую очередь:

- Общие клиенты с графическим интерфейсом, такие как KStars , XEphem , AstroImager, [ 2 ] или Астротелескоп. [ 3 ] Такие клиенты создают динамический графический интерфейс, предлагающий пользователям панель управления для управления устройством.
- Регистрируйте клиенты для записи сообщений, сигналов тревоги и данных, которыми обмениваются устройства и клиенты.
- Следите за клиентами, чтобы обеспечить безопасную и правильную работу устройств.
- Автоматизированные сценарии для выполнения сложных и скоординированных операций на устройствах.
ИНДИ-сервер
[ редактировать ]INDI-сервер — это концентратор, который находится между драйверами и клиентами. Он перенаправляет трафик для управления и данных через распределенные сети. Каждое устройство или клиент в сети является узлом и может взаимодействовать с другими узлами, когда это необходимо. Сервер поддерживает широковещательную рассылку, объединение в цепочки и маршалинг данных.

Назначение номера порта TCP/UDP IANA
[ редактировать ]Управление по присвоению номеров в Интернете (IANA) выделило порт TCP/UDP 7624 ( протокол управления передачей и протокол пользовательских дейтаграмм ) для использования INDI. См. Список номеров портов TCP и UDP .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Релизы · indilib/indi» . GitHub.com . Проверено 12 апреля 2021 г.
- ^ АстроИмиджер
- ^ Астротелескоп