Instrument Neutral Distributed Interface ( INDI ) es un protocolo de sistema de control distribuido (DCS) para permitir el control, la adquisición de datos y el intercambio entre dispositivos de hardware y interfaces de software, enfatizando la instrumentación astronómica.
Autor (es) original (es) | Elwood Downey , Jasem Mutlaq |
---|---|
Desarrollador (es) | El equipo de desarrollo de INDI |
Versión inicial | 15 de abril de 2003 |
Lanzamiento estable | 1.8.9 / 28 de febrero de 2021 [1] |
Escrito en | C , C ++ |
Sistema operativo | Linux , OS X , macOS , FreeBSD , OpenBSD |
Licencia | GNU LGPL v2.1 + |
Sitio web | www |
Introducción
Elwood Downey inició la iniciativa del Protocolo INDI en 2003 para desarrollar una plataforma y un protocolo de control independiente del cliente. INDI es un protocolo simple modelado en Extensible Markup Language ( XML ), descrito para el control remoto interactivo y automatizado de diversos instrumentos. Es pequeño, fácil de analizar y sin estado. En el paradigma INDI, cada Dispositivo presenta todas las funciones de comando y estado en términos de configuración y obtención de Propiedades . Cada propiedad es un vector de uno o más miembros nombrados y tiene un vector de valor actual; un vector de valor objetivo; proporciona información sobre cómo debe secuenciarse con respecto a otras propiedades para lograr una unidad coordinada de observación; y proporciona sugerencias sobre cómo podría mostrarse para la manipulación interactiva en una interfaz gráfica de usuario (GUI). Los clientes aprenden las propiedades de un dispositivo en particular en tiempo de ejecución mediante la introspección.
Esto desacopla los historiales de implementación de Cliente y Dispositivo. Los dispositivos tienen plena autoridad sobre la aceptación de los comandos de los Clientes. INDI acomoda servidores intermedios, transmisión y topologías de conexión que van desde uno a uno en un tipo de sistema, hasta muchos a muchos entre sistemas de diferentes géneros. El protocolo INDI se puede anidar dentro de otros elementos XML como Remote Telescope Markup Language (RTML) para agregar restricciones para la programación y ejecución automáticas.
Arquitectura
El concepto clave principal en INDI es que los dispositivos tienen la capacidad de describirse a sí mismos. Esto se logra mediante el uso de XML para describir una jerarquía genérica que puede representar dispositivos canónicos y no canónicos. En INDI, todos los dispositivos pueden contener una o más propiedades. Cualquier propiedad puede contener uno o más elementos. Una propiedad en el paradigma INDI describe una función específica del dispositivo. Hay cinco tipos de propiedades INDI:
- Propiedad de texto
- Propiedad numérica
- Cambiar propiedad: representada en la GUI mediante botones o casillas de verificación
- Propiedad de luz: representada en GUI por LED de colores
- Propiedad de blob: datos binarios
INDI proporciona potentes funciones de scripting que permiten la automatización completa del dispositivo.
Biblioteca INDI
INDI Library es una implementación del protocolo de cable INDI para sistemas similares a Unix. Admite una amplia variedad de instrumentos astronómicos, incluidos telescopios, dispositivos de carga acoplada (CCD), enfocadores, filtros y dispositivos de captura de video. La biblioteca INDI tiene la licencia GNU Lesser General Public License (LGPL).
Conductor INDI
El controlador INDI es el programa que se comunica directamente con el dispositivo. Es responsable de controlar los parámetros del dispositivo y de definirlos a los clientes. Los controladores envían una lista de las propiedades de los dispositivos admitidos a los clientes, donde se analizan y presentan a los usuarios finales.
Clientes INDI
Los clientes son las interfaces de software que se comunican con los controladores de hardware. Por lo general, se comunican con los controladores de hardware INDI a través del servidor INDI, aunque pueden comunicarse directamente con los controladores. Hay muchos tipos de clientes, entre los que destaca:
![](http://wikiimg.tojsiabtv.com/wikipedia/en/thumb/e/e9/Indicontrolpanel.png/220px-Indicontrolpanel.png)
- Clientes genéricos de GUI como KStars , XEphem , AstroImager, [2] o AstroTelescope. [3] Estos clientes generan una GUI dinámica para ofrecer a los usuarios un panel de control para controlar el dispositivo.
- Clientes de registrador para registrar mensajes, alarmas y datos intercambiados entre dispositivos y clientes.
- Vigile a los clientes de perros para garantizar un funcionamiento seguro y adecuado de los dispositivos.
- Scripts automatizados para realizar operaciones complejas y coordinadas en dispositivos.
Servidor INDI
El servidor INDI es el centro que se encuentra entre los conductores y los clientes. Redirige el tráfico para control y datos a través de redes distribuidas. Cada dispositivo o cliente de la red es un nodo y puede comunicarse con otros nodos cuando lo desee. El servidor admite la transmisión, el encadenamiento y la clasificación de datos.
![](http://wikiimg.tojsiabtv.com/wikipedia/en/e/e4/Indi_server.png)
Puerto IANA
La Autoridad de Números Asignados de Internet (IANA) ha asignado INDI al Protocolo de Control de Transmisión (TCP) y al Protocolo de Datagramas de Usuario (UDP), o al puerto TCP / UDP 7624. Consulte la Lista de números de puerto TCP y UDP .
Ver también
Referencias
- ^ "Lanzamientos · indilib / indi" . github.com . Consultado el 12 de abril de 2021 .
- ^ AstroImager
- ^ AstroTelescopio