La interfaz distribuida neutral para instrumentos ( INDI ) es un protocolo de sistema de control distribuido (DCS) que permite el control, la adquisición y el intercambio de datos entre dispositivos de hardware y interfaces de software, con especial énfasis en la instrumentación astronómica.
Introducción
Elwood Downey inició la iniciativa del Protocolo INDI en 2003 para desarrollar un protocolo de control independiente de la plataforma y del cliente. INDI es un protocolo simple basado en el Lenguaje de Marcado Extensible ( 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 plantea 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 con nombre, 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 de observación coordinada; y proporciona sugerencias sobre cómo podría mostrarse para su 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 introspección.
Esto desacopla el historial de implementación del cliente y del dispositivo. Los dispositivos tienen plena autoridad para aceptar o no comandos de los clientes. INDI admite servidores intermedios, difusión y topologías de conexión que van desde la comunicación uno a uno en un mismo tipo de sistema hasta la comunicación de muchos a muchos entre sistemas de distinto tipo. El protocolo INDI puede integrarse en otros elementos XML, como el lenguaje de marcado para telescopios remotos (RTML), para añadir restricciones que permitan la programación y ejecución automáticas.
Arquitectura
El concepto clave principal de 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 tanto dispositivos canónicos como 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. Existen cinco tipos de propiedades INDI:
- Propiedad de texto
- Propiedad número
- Propiedad de interruptor: representada en la interfaz gráfica de usuario mediante botones o casillas de verificación.
- Propiedad de la luz: representada en la interfaz gráfica de usuario mediante LED de colores.
- Propiedad Blob: datos binarios
INDI proporciona potentes herramientas de scripting que permiten la automatización completa de los dispositivos.
Biblioteca INDI
La biblioteca INDI implementa el protocolo de comunicación INDI para sistemas tipo Unix . Es compatible con una amplia variedad de instrumentos astronómicos, incluyendo telescopios, dispositivos de carga acoplada (CCD), enfocadores, filtros y dispositivos de captura de vídeo. La biblioteca INDI se distribuye bajo la Licencia Pública General Reducida de GNU (LGPL).
Conductor INDI
El controlador INDI es el programa que se comunica directamente con el dispositivo. Se encarga de controlar los parámetros del dispositivo y de definirlos para los clientes. Los controladores envían una lista de propiedades del dispositivo compatibles a los clientes, donde se analizan y se presentan a los usuarios finales.
Clientes de INDI
Los clientes son las interfaces de software que se comunican con los controladores de hardware. Generalmente se comunican con los controladores de hardware INDI a través del servidor INDI, aunque también pueden comunicarse directamente con ellos. Existen muchos tipos de clientes, entre los que destacan:

- Clientes GUI genéricos 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.
- Los clientes de registro graban los mensajes, las alarmas y los datos intercambiados entre dispositivos y clientes.
- Supervisar a los clientes para garantizar el funcionamiento seguro y adecuado de los dispositivos.
- Scripts automatizados para llevar a cabo operaciones complejas y coordinadas en dispositivos.
Servidor INDI
El servidor INDI actúa como intermediario entre los controladores y los clientes. Redirecciona el tráfico de 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 difusión, el encadenamiento y la serialización de datos.

Asignación de números de puerto TCP/UDP por IANA
La Autoridad de Números Asignados de Internet (IANA) ha asignado el puerto TCP/UDP 7624 ( Protocolo de Control de Transmisión y Protocolo de Datagramas de Usuario ) para uso de INDI. Consulte la Lista de números de puerto TCP y UDP .
Véase también
Referencias
Enlaces externos
- Biblioteca INDI
- Documento técnico del Protocolo INDI
- Página del proyecto xINDI (herramientas basadas en INDI para OSX)
- Página del proyecto iINDI (panel de control INDI para iOS)
- Página del proyecto windi (puente ASCOM a INDI)
- Software de astronomía gratuito