Instrument neutralt distribuerat gränssnitt

INDI
Originalförfattare Elwood Downey, Jasem Mutlaq
Utvecklare INDIs utvecklingsteam
Initial release 15 april 2003 ; för 19 år sedan ( 2003-04-15 )
Stabil frisättning
1.8.9 / 28 februari 2021 ; för 23 månader sedan ( 2021-02-28 )
Skrivet i C , C++
Operativ system Linux , OS X , macOS , FreeBSD , OpenBSD
Licens GNU LGPL v2.1+
Hemsida www .indilib .org

Instrument Neutral Distributed Interface ( INDI ) är ett distribuerat styrsystem (DCS)-protokoll för att möjliggöra kontroll, datainsamling och utbyte mellan hårdvaruenheter och mjukvarugränssnitt, med tonvikt på astronomisk instrumentering.

Introduktion

Elwood Downey startade initiativet INDI Protocol 2003 för att utveckla ett plattforms- och klientoberoende kontrollprotokoll. INDI är ett enkelt protokoll modellerat på Extensible Markup Language ( XML ), som beskrivs för interaktiv och automatiserad fjärrkontroll av olika instrument. Den är liten, lätt att analysera och statslös. I INDI-paradigmet har varje enhet alla kommando- och statusfunktioner när det gäller att ställa in och hämta egenskaper . Varje egenskap är en vektor av en eller flera namngivna medlemmar och har en vektor för aktuellt värde; en målvärdevektor; ger information om hur den bör sekvenseras med avseende på andra egenskaper för att åstadkomma en koordinerad observationsenhet; och ger tips om hur det kan visas för interaktiv manipulation i ett grafiskt användargränssnitt ( GUI). Klienter lär sig egenskaperna hos en viss enhet vid körning med introspektion.

Detta frikopplar klient- och enhetsimplementeringshistorik. Enheter har full auktoritet över om de ska acceptera kommandon från klienter. INDI rymmer mellanliggande servrar, sändningar och anslutningstopologier som sträcker sig från en-till-en på en typ av system, till många-till-många mellan system av olika genre. INDI-protokollet kan kapslas in i andra XML-element som RTML ( Remote Telescope Markup Language) för att lägga till begränsningar för automatisk schemaläggning och exekvering.

Arkitektur

Huvudnyckelbegreppet i INDI är att enheter har förmågan att beskriva sig själva. Detta uppnås genom att använda XML för att beskriva en generisk hierarki som kan representera både kanoniska och icke-kanoniska enheter. I INDI kan alla enheter innehålla en eller flera egenskaper. Alla egenskaper kan innehålla ett eller flera element. En egenskap i INDI-paradigmet beskriver en specifik funktion hos enheten. Det finns fem typer av INDI-egenskaper:

  • Textegenskap
  • Nummeregenskap
  • Switch-egenskap – representeras i GUI med knappar eller kryssrutor
  • Ljusegenskap – representerad i GUI av färgade lysdioder
  • Blob-egenskap – binär data

INDI tillhandahåller kraftfulla skriptfaciliteter som möjliggör fullständig enhetsautomatisering.

INDI bibliotek

INDI Library är en implementering av INDI-trådprotokollet för Unix-liknande system. Den stöder ett brett utbud av astronomiska instrument inklusive teleskop, laddningskopplade enheter (CCD), fokuseringsanordningar, filter och videoinspelningsenheter. INDI-biblioteket är licensierat under GNU Lesser General Public License ( LGPL).

INDI drivrutinen

INDI-drivrutinen är programmet som kommunicerar direkt till enheten. Den ansvarar för att kontrollera enhetsparametrarna och för att definiera dem för klienter. Drivrutiner skickar en lista över enhetsegenskaper som stöds till klienter där de analyseras och presenteras för slutanvändarna.

INDI-kunder

Klienter är mjukvarugränssnitten som kommunicerar med hårdvarudrivrutinerna. De kommunicerar vanligtvis med INDI-hårdvarudrivrutiner via INDI-server, även om de kan kommunicera med drivrutinerna direkt. Det finns många typer av kunder, framför allt:

INDI Kontrollpanel i KStars
  • Generiska GUI-klienter som KStars , XEphem , AstroImager eller AstroTelescope. Sådana klienter genererar ett dynamiskt GUI för att erbjuda användarna en kontrollpanel för att styra enheten.
  • Logger klienter för att spela in meddelanden, larm och data som utbyts mellan enheter och klienter.
  • Vakthundsklienter för att säkerställa säker och korrekt drift av enheter.
  • Automatiserade skript för att utföra komplexa och koordinerade operationer på enheter.

INDI-server

INDI-servern är navet som sitter mellan drivrutiner och klienter. Den dirigerar om trafik för kontroll och data över distribuerade nätverk. Varje enhet eller klient i nätverket är en nod och kan kommunicera med andra noder när så önskas. Servern stöder sändning, kedja och rangering av data.

INDI Server Nätverkstopologi

TCP/UDP-portnummertilldelning av IANA

Internet Assigned Numbers Authority (IANA) har tilldelat TCP/UDP-port 7624 ( Transmission Control Protocol och User Datagram Protocol ) för användning av INDI. Se Lista över TCP- och UDP-portnummer .

Se även

externa länkar