3
>Skriptid ja KStars: DCOP liides</title>
5
>&kstars;i üks eesmärke on pakkuda võimalust kasutada ka kõige keerulisemaid võimalusi skripti vahendusel. See lubab luua <quote
7
> taevakaardil ning aitab õpetajatel koolitöös illustreerida mõningaid astronoomilisi põhimõtteid ning üldse juttu ja teksti köitvamaks muuta. Juba praegu on võimalik &kstars;is selliseid skripte kasutada, kuigi veel ei saa pruukida kõiki funktsioone, mida me tahaksime pakkuda. Meil on küll graafiline skriptide loomise abivahend, kuid siiski tuleb skriptid ise veel käsitsi kirjutada. Käesolev peatükk selgitabki, kuidas &kstars;i skripte kirja panna. </para>
9
>&kde; arhitektuur pakub skripte tarvitavatele rakendustele vajaliku raamistiku <abbrev
11
> liidese näol. <abbrev
14
>töölaua kommunikatsiooniprotokolli</quote
15
> (inglise keeles Desktop COmmunication Protocol) ning just <abbrev
17
> võimaldabki &kde; rakendusi juhtida teistest rakendustest, käsurealt või tekstiskripti abil. </para>
19
<sect1 id="dcop-interface">
21
>DCOP funktsioonid</title>
25
> kiides kasutab järgmisi funktsioone: <itemizedlist>
29
> lookTowards( const QString suund )</function
30
>: tsentreerib vaate argumendiga määratud punkti. Selleks võib olla suvalise taevakeha nimi või mõni järgmistest sõnadest või lühenditest: zenith (või z) seniidi tähistusena, north (n) põhjakaare, northeast (ne) kirde, east (e) ida, southeast (se) kagu, south (s), southwest (sw) edela, west (w) lääne ja northwest (nw) loode tähistusena. </para
36
> setRaDec( double OT, double kääne )</function
37
>: tsentreerib vaate määratud ekvaatorilistele koordinaatidele. </para
43
> setAltAz(double h, double a)</function
44
>: tsentreerib vaate määratud horisondiliste koordinaatidele. </para
51
>: suurendab vaate suurendust. </para
58
>: vähendab vaate suurendust. </para
64
> defaultZoom()</function
65
>: taastab vaikesuurenduse = 3. </para
71
> setLocalTime(int aasta, int kuu, int päev, int tund, int min, int sek)</function
72
>: seab simulatsioonikella määratud kuupäevale ja ajale. </para
78
> waitFor( double t )</function
79
>: paus t sekundit enne järgneva skriptikäsu rakendamist. </para
85
> waitForKey( const QString klahv )</function
86
>: skripti rakendamine peatatakse, kuni kasutaja vajutab määratud klahvi. Praegu ei saa määrata klahvikombinatsioone (näiteks <keycombo action="simul"
90
>), vaid ainult üksikklahve. Tühikuklahvi jaoks tuleb kirjutada <quote
98
> setTracking( bool track )</function
99
>: jälgimisrežiimi näitamise lülitamine. </para
105
> changeViewOption( const QString võimalus, const QString väärtus )</function
106
>: vaatevõimaluse määramine. Kasutada saab kümneid võimalusi, sisuliselt kõike, mida saab seadistada &kstars;i <guilabel
107
>vaateseadistuste aknas</guilabel
108
>. Esimene argument ongi võimalus (vastav nimi võetakse seadistustefailist <filename
110
>), teine soovitud väärtus. Argumentide parser on püütud teha võimalikult <quote
112
>, nii et kui kirjutad midagi kogemata valesti, siis see lihtsalt ei rakendu. </para
118
> setGeoLocation( const QString linn, const QString provints/maakond, const QString riik )</function
119
>: võimalus määrata vaatluskohaks mingi konkreetne linn. Kui argumendis määratud linna andmebaasist ei leita, ei tee see käsk midagi. </para
126
> [clock]: seiskab simulatsioonikella. </para
133
> [clock]: käivitab simulatsioonikella. </para
139
> setScale(float s)</function
140
> [clock]: määrab simulatsioonikella ajasammu. s=1.0 vastab reaalajale, 2.0 on kaks korda kiirem reaalajast jne. </para
146
<sect1 id="dcop-test">
148
>DCOP funktsioonide testimine</title>
150
>DCOP funktsioone saab hõlpsast testida rakenduse <application
152
> abil. Kui <application
154
> käivitada, näeb puukujulises nimekirjas kõiki töötavaid rakendusi ja kui &kstars; peaks töötama, on ta samuti seal kirjas. Enamik <abbrev
156
> funktsioone on kirjas <quote
157
>KStarsInterface</quote
158
> päises, kuid kellafunktsioonid on ära toodud <quote
160
> all. Suvalise funktsiooni käivitamiseks tee sellel topeltklõps. Kui funktsioon eeldab argumente, ilmub aken, kuhu need saab sisestada. </para>
163
<sect1 id="dcop-script">
165
>DCOP skripti kirjutamine</title>
169
> funktsioone saab välja kutsuda ka UNIX-i käsurealt ning neid on võimalik skripti kaasata. Me näitame siin üht näidisskripti, mis lülitab sisse ekvaatorilised koordinaadid, tsentreerib vaate Kuule, suurendab veidi ning paneb kella käima kiirusega üks tund sekundis. Seda skripti saab kasutada mallina meelepäraste skriptide loomisel. Kõigepealt siis skript ning seejärel seletus. </para>
173
#KStars script: Jälgi Kuud!
175
KSTARS=`dcopfind -a 'kstars*'`
178
dcop $KSTARS $MAIN changeViewOption UseAltAz false
179
dcop $KSTARS $MAIN lookTowards Moon
180
dcop $KSTARS $MAIN defaultZoom
181
dcop $KSTARS $MAIN zoomIn
182
dcop $KSTARS $MAIN zoomIn
183
dcop $KSTARS $MAIN zoomIn
184
dcop $KSTARS $MAIN zoomIn
185
dcop $KSTARS $MAIN zoomIn
186
dcop $KSTARS $CLOCK setScale 3600.
187
dcop $KSTARS $CLOCK start
188
dcop $KSTARS $MAIN waitFor 20.
189
dcop $KSTARS $CLOCK stop
190
dcop $KSTARS $MAIN defaultZoom
195
>Salvesta skript failina. Nimi võib olla milline tahes, mina soovitaksin anda nimeks midagi kirjeldavat, näiteks <filename
196
>kuuvaatlus.kstars</filename
197
>. Skripti muutmiseks käivitatavaks anna järgmine käsk: <userinput
203
>kuuvaatlus.kstars</parameter
205
>. Nüüd saab skripti käivitada käsuga <userinput
207
>./kuuvaatlus.kstars</command
209
> kataloogis, kus skript asub. Arvesta, et skript toimib ainult siis, kui KStars eelnevalt töötab. Uue &kstars;i akna avamiseks võib skriptis kasutada käsku <command
213
>Nüüd siis selgitused skripti juurde. Ülemine rida tuvastab faili <command
215
>i shelliskriptina. Järgmised kaks rida on <firstterm
216
>kommentaarid</firstterm
217
> (kommentaarid on kõik read, mille alguses seisab <quote
219
>, ning shell jätab need arvesse võtmata). Järgmised kolm rida määravad mõningad muutujad, mida hiljem kasutatakse. Muutuja <varname
221
> tuvastab töötava &kstars;i protsessi, kasutades selleks käsku <command
227
> tuvastavad kaks &kstars;iga seotud <abbrev
231
>Ülejäänud osa skriptist kujutabki endast tegelike <abbrev
233
> väljakutsete loetelu. Esimene rida määrab ekvaatoriliste koordinaatide kasutamise, määrates võimaluse <quote
235
> (ehk siis kõrguse ja asimuudi kasutamise) väärtuseks <quote
239
> (kõiki võimalusi, mida kasutab <quote
240
>changeViewOptions</quote
241
> ehk vaateseadistuste dialoog, näeb seadistustefailis <filename
243
>). Järgmine käsk tsentreerib vaate Kuule ja lülitab sisse selle jälgimise. Seejärel kehtestatakse vaikesuurendus ja suurendatakse seda viis korda. Siis määratakse kell käima kiirusega üks tund sekundis (3600 sekundit on ju üks tund) ning kell käivitatakse. Järgmine rida peatab skripti 20 sekundiks, mille kestel saab jälgida üle taevalaotuse kulgevat Kuud. Lõpuks peatatakse kell ning taastatakse vaikesuurendus. </para>
245
>Me loodame, et KStarsi skriptivõimalused pakuvad sulle suurt naudingut ja lubavad luua huvitavaid lahendusi. Kui oled loonud mõne huvipakkuva skripti, võid sellest teada anda ka meiliaadressil <email
246
>kstars@30doradus.org</email
247
>, sest meile meeldiks teada saada, mida teevad meie kasutajad, ja võimaluse korral ka skripte oma veebileheküljel avaldada. Kui sul aga on mingeid mõtteid, kuidas skriptidesse (või üldse mis tahes &kstars;i töö osasse) puutuvat parandada, anna sellest teada aadressil <email
248
>kstars-devel@lists.sourceforge.net</email
249
> või esita oma soov Bugzilla vahendusel. </para>