Het hulpmiddel Scriptbouwer

Toepassingen in KDE kunnen worden bestuurd vanuit een ander programma, vanaf de opdrachtregel in een tekstscherm, of met behulp van een shellscript, waarbij het protocol wordt gebruikt voor de communicatie tussen processen (D-Bus). In KStars wordt dit gebruikt voor het vastleggen van tamelijk complex gedrag in een script, dat daarna op elk moment kan worden afgespeeld. Men kan hiervan bijvoorbeeld gebruik maken voor het maken van een demonstratie voor in de klas, om een astronomisch begrip toe te lichten.

Het probleem met DBus-scripts is dat het schrijven ervan een beetje lijkt op programmeren, waartegen iemand zonder programmeerervaring wel wat kan opzien. Het hulpmiddel Scriptbouwer heeft een GUI-interface, waarin u voor het maken van D-Bus-scripts voor KStars alleen maar wat hoeft aan te wijzen en te klikken, waardoor het maken van complexe scripts erg eenvoudig wordt.

Inleiding tot de Scriptbouwer

Voor de uitleg hoe de Scriptbouwer moet worden gebruikt, geef ik een korte inleiding tot alle GUI-componenten; als u meer wilt weten, kunt u de "Wat is dit"-functie gebruiken.

Het hulpmiddel Scriptbouwer

In de schermafbeelding hierboven ziet u de Scriptbouwer. Het vak links is het vak Huidige script; hierin ziet u de lijst van opdrachten in de huidige script. Het vak rechts is de Functiebrowser, hierin ziet u een lijst van alle beschikbare functies. Onder de Functiebrowser is een klein paneel met informatie over de in de Functiebrowser geselecteerde functie. In het paneel onder het vak "Huidige script"ziet u de Functieargumenten; als een functie in het vak "Huidigescript" is geselecteerd, vindt u hier de gegevens over de eventuele argumenten die deze functie nodig heeft.

Aan de bovenkant van het venster ziet u een rij knoppen waarmee u bewerkingen op de hele script kunt uitvoeren. Van links naar rechts zijn dit: Nieuw Script, Script openen..., Script opslaan, Script opslaan als..., en Script testen. Het is duidelijk waar deze knoppen voor dienen, behalve misschien de laatste. Als u op de knop Script testen drukt, zal geprobeerd worden om de huidige script uit te voeren in het hoofdvenster van KStars. Het venster van de Scriptbouwer moet uit de weg gezet worden, om het resultaat te kunnen zien.

In het midden van het venster is een rij knoppen voor bewerkingen op de individuele scriptfuncties. Van boven naar beneden zijn dit de knoppen: Functie toevoegen, Functie verwijderen, Functie kopiëren, Omhoog, en Omlaag. Met de knop Functie toevoegen voegt u de in de Functiebrowser geselecteerde functie toe aan het vak "Huidige script" (u kunt ook de functie toevoegen door erop te dubbelklikken). Met de overige knoppen voert u bewerkingen uit op de functie die in het vak "Huidig script" is geselecteerd: verwijderen, kopiëren, of verplaatsen in de huidige script.

Gebruik van de Scriptbouwer

Om het gebruik van de Scriptbouwer toe te lichten, geven we hier een klein leerzaam voorbeeld waarin we een script maken dat de maan volgt, terwijl de klok sneller loopt.

Als we de maan willen volgen, moeten we eerst de kijkrichting aanpassen. Daarvoor gebruiken we de functie lookToward (kijk in de richting van). Kies deze functie in de Functiebrowser, en bekijk de documentatie in het paneel onder de browser. Druk op de knop Functie toevoegen om deze functie toe te voegen in het vak "Huidige script". In het paneel "Functieargumenten" ziet u nu een comboveld met de tekst Dir, wat direction (richting) betekent. Dit is de kijkrichting in het beeldscherm. Het comboveld bevat alleen de hoofd- en tussenstreken van het kompas, en niet de maan of andere objecten. U kunt of Maan met de hand invullen in het comboveld, of op de knop Object... drukken om het venster Object zoeken... te kunnen gebruiken om hierin de Maan te selecteren uit de lijst van objecten met een naam. Merk op, dat zoals gewoonlijk, het centreren op een object het volgen automatisch inschakelt, het is dus niet nodig om de functie setTracking (volgen aanzetten) toe te voegen na lookToward.

Nu we ervoor hebben gezorgd dat de kijkrichting op de maan wordt ingesteld, willen we de tijd sneller laten lopen. Gebruik hiervoor de functie setClockScale (Kloksnelheid instellen). Voeg deze functie toe aan de script door erop te dubbelklikken in de Functiebrowser. Het paneel "Functieargumenten" heeft een tijdstap-spinveld om de gewenste tijdstap voor de simulatieklok te kiezen. Verander de tijdstap in 3 uur.

Goed, we hebben nu de kijkrichting op de maan ingesteld, en de klok versneld. Nu willen we dat de script enkele seconden wacht, terwijl in het beeld de maan wordt gevolgd. Voeg de functie waitFor (wacht op) toe aan de script, en gebruik het paneel "Functieargumenten" om aan te geven dat er 20 seconden moet worden gewacht alvorens verder te gaan.

Tenslotte zetten we de tijdstap van de klok terug naar de normale waarde van 1 seconde. Voeg de functie setClockscale nog een keertje toe, met als argument 1 sec.

Eigenlijk zijn we nu nog niet klaar. We moeten er zeker van zijn dat er op het scherm Equatoriale coördinaten worden gebruikt, voordat de script de maan versneld gaat volgen. Anders, als horizontale coördinaten worden gebruikt, zal het scherm zeer snel veranderen over grote hoeken op de momenten dat de maan opkomt of ondergaat. Dit is erg verwarrend, en kan worden vermeden door de weergaveoptie UseAltAz (gebruik HgteAz) op "false" (onwaar) in te stellen. Om een weergaveoptie te veranderen, gebruikt u de functie changeViewOption (verander de weergaveoptie). Voeg deze functie toe aan de script, en bestudeer het paneel "Functieargumenten". Er is een comboveld met een lijst van alle weergaveopties die door changeViewOption kunnen worden veranderd. Omdat we weten dat we de UseAltAz-optie moeten hebben, kunnen we die gewoon kiezen in het comboveld. Maar de lijst is erg lang, en er is geen uitleg bij elke regel. Het is daarom wellicht eenvoudiger om op de knop Boomstructuur doorbladeren te klikken, waardoor een venster wordt geopend met een lijst van alle weergaveopties, ingedeeld naar onderwerp. Er is bovendien uitleg bij elke optie, en het gegevenstype van de waarde van elke optie. We vinden "UseAltAz" in de categorie Hemelkaartopties. Kies het en klik op de knop OK, en het zal worden gekozen in het combinatieveld van het paneel "Functieargumenten". Tenslotte maakt u de waarde ervan false of 0.

Nog een stap: het veranderen van "UseAltAz" aan het eind van de script zal ons niet helpen, dit moet gebeuren voor alles wat er gebeurt. Dus kies deze functie in het vak "Huidige script" en druk op de knop Omhoog totdat het de eerste functie in de script is.

Nu dat we met de script klaar zijn, moeten we die nog opslaan op de schijf. Druk op de knop Script opslaan. Hierdoor wordt eerst een venster geopend, waarin u een naam kunt invullen van de script, en uw naam als de auteur. Vul als naam in Volgen van de Maan, en uw naam als auteur, en druk op OK. U zult daarna de standaarddialoog "Bestand opslaan" van KDE zien. Voer een bestandsnaam in voor de script. Merk op dat de extensie .kstars automatisch wordt toegevoegd mocht u die vergeten. Als u nieuwsgierig bent, kunt u met elke tekstverwerker het scriptbestand bekijken.

Nu we een script hebben gemaakt, kunnen we die op een aantal manieren laten werken. U kunt de script uitvoeren vanaf de opdrachtregel in een tekstscherm, als er een KStars draait. U kunt ook de script uitvoeren vanuit KStars, met het menu-item BestandRun Script....