# Utökningar

## Inledning

Utökningar är små program som kan läggas till för att interagera med Kstars/Ekos/INDI för att ge extra funktioner och funktionalitet.

Utökningar är separata från Kstars/Ekos/INDI. De tillhandahålls inte som en del av programvaran. Bara ett sätt att anropa dem finns för bekvämlighets skull. Se till att du förstår kraven och riskerna med att använda en utökning.

## Krav

Varje utökning måste bestå av minst två filer, med en valfri tredje ikonfil.

- Programfilen. Den är vilken körbar fil som helst som körs på användarens system. Användaren som Kstars körs under måste ha körrättighet för filen.

- Inställningsfilen. Den är en vanlig textfil som definierar utökningens obligatoriska och valfria indata. Den måste ha samma namn som den körbara filen med tillägg av filnamnsändelsen .conf.

  Det är nödvändigt att inställningsfilen innehåller en rad som börjar med minimum_kstars_version=n.n.n där n.n.n är den lägsta versionen av Kstars som stöder tillägget, t.ex. 3.7.1.

  Valfritt (och inte rekommenderat) kan inställningsfilen innehålla en rad som börjar med runDetached=true. Om den finns gör den att utökningen körs oberoende av Kstars. När det väl har startat kan utökningen inte skicka statusinformation tillbaka till Ekos. Det bör endast användas av utökningar som måste fortsätta att köras efter att Kstars har avslutats. Utökningen måste också tillhandahålla ett eget användargränssnitt.

  Dessutom kan inställningsfilen innehålla andra parametrar som upphovsmannen av utökningen bestämmer och fri text.

- Ikonfilen, om den finns, måste ha samma namn som den körbara filen med tillägg av lämplig filändelse för bildformatet, .jpg, .bmp, .gif, .png och .svg stöds. Om den finns används ikonen i kombinationsrutan för val av utökning. Om en ikon inte tillhandahålls används en standardikon istället.

Alla filer i utökningen (körbar fil, inställningsfil och valfri ikonfil) måste kopieras till Kstars skrivbara dataplats /extensions, t.ex. ~/.local/share/kstars/extensions.

Utökningar som finns, har en giltig inställningsfil och har en minsta version av KStars som inte är större än den aktuella installationen upptäcks när Ekos startas. Om det inte finns några giltiga utökningar som detekteras visas inte användargränssnittselementet för utökningar. Utökningarnas användargränssnitt är en kombinationsruta som visar namnet och ikonen för varje upptäckt utökning och en start/stopp-knapp. Om utökningen inte avslutas inom 10 sekunder efter att stoppknappen har klickats, blir knappen återaktiverad som en avbrottsknapp som tvingar utökningen att avslutas. Bara en utökning kan användas åt gången.

## Utveckling

Följande beskriver ytterligare punkter för utvecklare av utökningar.

- Vissa utökningskällor inklusive ett exempel på utökningsmall är tillgängliga på KStars Extension Github

- Varje utökning måste kontrollera existensen och giltigheten av sin egen inställningsfil. Inställningsfilens post minimum_kstars_version måste kontrolleras mot en intern referens för att bekräfta att inställningsfilen matchar utökningens krav. Se mallexemplet.

- Den anropande KStars-versionen skickas till utökningen som arg(1) i det startande QProcess-anropet.

- All interaktion med KStars/Ekos/INDI bör ske via DBus-gränssnittet. Se mallexemplet. Användbara verktyg för att fråga, övervaka och förstå DBus inkluderar D-Feet och Bustle

  Det kan tyckas vid inledande utforskning att användning av systemet för Qt DBus-anpassning skulle vara mycket enklare än direkt användning av ett Qt DBus-gränssnitt och meddelanden, och KStars tillhandahåller de nödvändiga xml-definitionerna. Men för närvarande har det avsevärd användning av egna typer vars definitioner kombineras med annan information i KStars källkod. Det resulterar i en stor uppsättning filer från KStars som måste inkluderas i en utökning för att kunna använda Qt DBus-anpassningen. Förhoppningsvis kommer det att åtgärdas i framtiden.