summaryrefslogtreecommitdiffstats
path: root/tde-i18n-et/docs/tdeedu/kstars/scriptbuilder.docbook
blob: 3ca16d21171046be8679ecbfa49205e32daeb9d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
<sect1 id="tool-scriptbuilder">
<title
>Skriptilooja tööriist</title>
<indexterm
><primary
>Tööriistad</primary>
<secondary
>Skriptilooja</secondary>
</indexterm>

<para
>KDE rakendusi saab juhtida väljastpoolt mõnest muust rakendusest, konsoolilt või shelliskriptiga niinimetatud töölaua kommunikatsiooniprotokolli kasutades (Desktop COmmunication Protocol, <abbrev
>DCOP</abbrev
>). KStars kasutab seda võimalust ära selleks, et võimaldada ka üpris keerukat käitumist kirja panna ning suvalisel ajal käivitada skripti abil. Seda on võimalik näiteks tarvitada koolitundides demona mõne astronoomilise mõiste selgitamisel. </para>
<para
>DCOP-skriptide hädaks on see, et nende kirjutamine näeb välja nagu korralik programmeerimine ja kui kasutajal ei ole programmeerimisega erilisi kokkupuuteid, võib see lausa eemale peletada. Skriptilooja pakub omalt poolt <abbrev
>GUI</abbrev
>, mis laseb ka lihtsalt hiirega klõpsates luua KStarsile DCOP-skripte, olgu need siis kui tahes keerukad. </para>

<sect2 id="sb-intro">
<title
>Skriptilooja sissejuhatus</title>

<para
>Enne skriptilooja kasutamise selgitamist tutvustan lühidalt kõiki <abbrev
>GUI</abbrev
> elemente. Kui soovid nende kohta rohkem infot, kasuta võimalust "Mis see on?" </para>

<screenshot>
<screeninfo
>Skriptilooja tööriist </screeninfo>
<mediaobject>
  <imageobject>
    <imagedata fileref="scriptbuilder.png" format="PNG"/>
  </imageobject>
  <textobject>
    <phrase
>Skriptilooja tööriist</phrase>
  </textobject>
</mediaobject>
</screenshot>

<para
>Nagu pildil näha, asub skriptilooja vasakul pool <firstterm
>käesoleva skript</firstterm
>i kast, kus on näha käsud, millest koosneb parajasti töötav skript. Paremal asub <firstterm
>funktsioonivalija</firstterm
>, mis näitab kõiki saadaolevaid skriptifunktsioone. Funktsioonivalija all on väike paneel, mis näitab valijas esile tõstetud funktsiooni kohta lühiinfot. Käesoleva skripti kasti all paikneb <firstterm
>funktsiooni argumentide paneel</firstterm
>, kus juhul, kui mõni funktsioon on ära märgitud käesoleva skripti kastis, on näha kõigi skriptile vajalike argumentide väärtused. </para
><para
>Akna ülaosas on nupurida, mis võimaldab manipuleerida skripti kui tervikuga. Paremalt vasakule on nupud järgmised: <guibutton
>Uus skript</guibutton
>, <guibutton
>Ava skript</guibutton
>, <guibutton
>Salvesta skript</guibutton
>, <guibutton
>Salvesta skript kui...</guibutton
> ja <guibutton
>Testi skripti</guibutton
>. Nende mõte peaks olema ilmselge, kui vahest välja jätta viimane nupp. Klõps nupule <guibutton
>Testi skripti</guibutton
> püüab käivitada käesoleva skripti KStarsi peaaknas. Skriptilooja aken oleks mõttekas enne selle nupu kasutamist kuhugi kõrvale nihutada, et näha, mida skript siis KStarsis ette võtab. </para
><para
>Keset akent on nupurida, mis manipuleerib konkreetsete skriptifunktsioonidega. Ülalt alla on nupud järgmised: <guibutton
>Lisa funktsioon</guibutton
>, <guibutton
>Eemalda funktsioon</guibutton
>, <guibutton
>Kopeeri funktsioon</guibutton
>, <guibutton
>Liiguta üles</guibutton
> ja <guibutton
>Liiguta alla</guibutton
>. <guibutton
>Lisa funktsioon</guibutton
> lisab funktsioonivalijas parajasti esile tõstetud funktsiooni käesoleva skripti kasti (funktsiooni saab lisada ka selle nimel topeltklõpsu tehes). Ülejäänud nupud käivad käesoleva skripti kohta, eemaldades sealt esile tõstetud funktsiooni, kopeerides selle või muutes selle asukoha skriptis. </para>
</sect2>

<sect2 id="sb-using">
<title
>Skriptilooja kasutamine</title>
<para
>Skriptilooja kasutamise selgitamiseks näitame, kuidas valmistada skript, mis jälgib Kuud, samal ajal kui kell töötab kiirendusega. </para
><para
>Kui tahame Kuud jälgida, tuleb mõistagi kõigepealt vaade talle tsentreerida. Selleks tuleb kasutada funktsiooni <firstterm
>lookToward</firstterm
>. Märgi see funktsioonivalijas ning tutvu ka kasti alla ilmuva infoga. Klõpsa nupule <guibutton
>Lisa funktsioon</guibutton
>, et funktsioon liiguks käesoleva skripti kasti. Funktsiooni argumentide paneelil on nüüd näha liitkast märkega <quote
>suund</quote
>. See on suund, kuhu vaade tuleks tsentreerida. Liitkastis on ainult põhiilmakaared, mitte Kuu või mingeid muid taevakehasid. Soovi korral võib kirjutada kasti käsitsi <quote
>Kuu</quote
> või siis klõpsata nupule <guibutton
>Objekt</guibutton
>, mis avab <guilabel
>objekti leidmise</guilabel
> dialoogi, kus saab nimekirjast Kuu valida. Arvesta, et nagu ikka, toob objektile tsentreerimine automaatselt kaasa selle jälgimise, mistõttu ei ole funktsioonile lookToward vaja lisada funktsiooni <firstterm
>setTracking</firstterm
>. </para
><para
>Nüüd, kui vaade on suunatud Kuule, tuleb panna aeg kiiremini käima. Selleks sobib funktsioon <firstterm
>setClockScale</firstterm
>. Lisa see käesoleva skripti kasti, tehes funktsiooni nimel funktsioonivalijas topeltklõpsu. Funktsiooni argumentide paneelil on näha ajasammu kerimiskast, kus saab määrata kella vajaliku kiiruse. Määrame ajasammu väärtuseks 3 tundi. </para
><para
>Vaade on nüüd Kuul ja kell kiirendatud. Veel läheb meil vaja, et skript ootaks mõned sekundid, kuni vaade Kuud jälgib. Lisame skriptile funktsiooni <firstterm
>waitFor</firstterm
> ja määrame funktsiooni argumentide paneelil, et enne jätkamist tuleks oodata 20 sekundit. </para
><para
>Lõpetuseks seame kella ajasammu tagasi normaalväärtusele 1 sekund. Selleks lisa veel kord setClockScale ning määra selle väärtuseks 1 sekund. </para
><para
>Tegelikult ei ole see veel aga kõik. Tõenäoliselt soovime, et vaade kasutaks ekvaatorilisi koordinaate, enne kui skript hakkab kiirendatud ajasammuga Kuud jälgima. Kui kasutada horisondilisi koordinaate, hakkaks vaade hirmsa kiirusega pöörlema vastavalt Kuu tõusudele ja loojumistele. See oleks usutavasti üpris häiriv ning me väldime seda nii, et seame vaatevaliku <firstterm
>UseAltAz</firstterm
> väärtuseks <quote
>väär</quote
>. Mis tahes vaatevaliku muutmiseks tuleb kasutada funktsiooni <firstterm
>changeViewOption</firstterm
>. Lisame selle skriptile ja uurime nüüd funktsiooni argumentide paneeli. Liitkastis on kirjas kõik vaatevalikud, mida saab changeViewOption abil kasutada. Me teame, et meil läheb vaja võimalust UseAltAz, mistõttu võime selle lihtsalt liitkastist valida. Kuid nimekiri on päris pikk ja mitte miski ei seleta, mida mingi element täpselt teeb. Seepärast on mõttekam vajutada nuppu <guibutton
>Lehitse puud</guibutton
>, mis avab akna, kus vaatevalikud on teemade järgi puusse koondatud. Peale selle on iga elemendi juures ka lühiseletus ning valiku väärtuse andmetüüp. UseAltAz on kirjas kategooria <guilabel
>Taevakaardi valikud</guilabel
> all. Märgime seal selle elemendi ning vajutame nuppu <guibutton
>OK</guibutton
>, mille järel see ongi valitud funktsiooni argumentide paneelil. Lõpuks määrame selle väärtuseks <quote
>väär</quote
> või <quote
>0</quote
>. </para
><para
>Ja veel üks asi: kui muuta UseAltAz skripti lõpus, ei ole sellest mingit tolku. See tuleb muuta enne seda, kui midagi üldse juhtuma hakkab. Seepärast märgi funktsioon käesoleva skripti kastis ära ning klõpsa nupule <guibutton
>Liiguta üles</guibutton
>, kuni sellest on saanud kõige esimene funktsioon. </para
><para
>Skript on valmis ja aeg on see kettale salvestada. Klõpsa nupule <guibutton
>Salvesta skript</guibutton
>. See avab akna, kus saab anda skriptile nime ning ennast selle autoriks tunnistada. Anna nimeks näiteks <quote
>Kuu jälgimine</quote
> ning kirjuta autori kohale enda nimi ja vajuta nupule <guibutton
>OK</guibutton
>. Seejärel ilmub tavapärane &kde; failisalvestamisdialoog. Siin tuleb määrata faili nimi ja skripti salvestamiseks klõpsata taas nupule <guibutton
>OK</guibutton
>. Pane tähele, et kui sa ei kirjuta ise failinime lõppu <quote
>.kstars</quote
>, lisatakse see laiend automaatselt. Kui huvi tunned, võid hiljem skripti uurida suvalise tekstiredaktoriga. </para
><para
>Nüüd, kus skript on valmis, võib selle käivitada mitmel viisil. Konsoolilt saab selle edukalt käivitada juhul, kui KStars parajasti töötab. Skripti saab käivitada ka KStarsi seest, valides menüüst <guimenu
>Fail</guimenu
> käsu <guimenuitem
>Käivita skript</guimenuitem
>. </para>
</sect2>

<sect2 id="sb-indi">
  <title
>INDI seadmete automatiseerimine</title>
  <para
>Kõik <link linkend="what-is-indi"
>INDI</link
>-ga ühilduvad seadmed toetavad seadmete ajastamist ja automatiseerimist. &kstars;i <link linkend="sb-intro"
>skriptilooja</link
> abil võib panna suvalise arvu seadmeid ette võtma ka väga keerukaid operatsioone. Seda võimaldab &kstars;i INDI DCOP-liides, mis pakub kõikvõimalike ülesannete tarbeks erinevaid funktsiooniklasse. INDI DCOP-funktsioonid võib jagada viide erinevasse klassi. Järgnevalt anname ülevaate KStarsis toetatud funktsioonidest ja nende argumentidest. Äärmiselt soovitatav on lugeda <link linkend="indi-concepts"
>INDI põhimõtteid</link
> tutvustavat osa, sest me kasutame neid siin ohtralt.</para>
  <orderedlist>
    <listitem
><para
>Seadmete üldised funktsioonid: seadmete loomise/sulgemise funktsioonid jne.</para>
      <itemizedlist>
	<listitem
><para
><function
>startINDI (QString seadmeNimi, bool useLocal)</function
> : INDI-teenuse loomine kohalikuna või serverina.</para
></listitem>
	<listitem
><para
><function
>shutdownINDI (QString seadmeNimi)</function
> : INDI-teenuse lõpetamine.</para
></listitem>
	<listitem
><para
><function
>switchINDI(QString seadmeNimi, bool turnOn)</function
> : INDI-seadme ühendamine või lahutamine.</para
></listitem>
	<listitem
><para
><function
>setINDIPort(QString seadmeNimi, QString port)</function
> : seadme ühenduse pordi määramine.</para
></listitem>
	<listitem
><para
><function
>setINDIAction(QString seadmeNimi, QString toiming)</function
> : INDI-toimingu aktiveerimine. Toiming võib olla <emphasis
>lülitamisomaduse</emphasis
> mis tahes <emphasis
>element</emphasis
>.</para
></listitem>
	<listitem
><para
><function
>waitForINDIAction(QString seadmeNimi, QString toiming)</function
> : paus skripti täitmises, kuni määratud toimingu <emphasis
>omadus</emphasis
> tagastatakse OK-staatusega.</para
></listitem>
      </itemizedlist>
    </listitem>
    <listitem
><para
>Teleskoobifunktsioonid: teleskoobi liikumist ja olekut kontrollivad funktsioonid.</para>
      <itemizedlist>
	<listitem
><para
><function
>setINDIScopeAction(QString seadmeNimi, QString toiming)</function
> : teleskoobi režiimi või toimingu määramine. Võimalikud valikud on SLEW, TRACK, SYNC, PARK ja ABORT.</para
></listitem>
	<listitem
><para
><function
>setINDITargetCoord(QString seadmeNimi, double otsetõus, double kääne)</function
> : määrab teleskoobi JNow sihtkoordinaadid <emphasis
>otsetõusule</emphasis
> ja <emphasis
>käändele</emphasis
>.</para
></listitem>
	<listitem
><para
><function
>setINDITargetName(QString seadmeNimi, QString objektiNimi)</function
> : määrab teleskoobi JNow sihtkoordinaadid <emphasis
>objektiNime</emphasis
> koordinaatidele. KStars otsib objekti nime oma andmebaasist ja hangib leidmise korral selle otsetõusu ja käände.</para
></listitem>
	<listitem
><para
><function
>setINDIGeoLocation(QString seadmeNimi, double pikkuskraad, double laiuskraad)</function
> : määrab teleskoobi geograafilise asukoha määratud pikkus- ja laiuskraadile. Pikkuskraadi arvestatakse Greenwichist (Suurbritannia) ida poole. Kuid kuigi läänepoolkera kohta kasutatakse sageli negatiivseid pikkuskraade, nõuab INDI, et pikkuskraad jääks 0 ja 360 vahele. See tähendab, et kui sul on kasutada negatiivne pikkuskraad, tuleb sellele liita 360 kraadi, et saada INDI-le sobilik väärtus. Näiteks Kanada linna Calgary koordinaadid &kstars;is on järgmised: pikkuskraad -114 04 58; laiuskraad 51 02 58. Nii on meie näite korral INDI pikkuskraad 360 - 114,093 = 245,917 kraadi.</para
></listitem>
	<listitem
><para
><function
>setINDIUTC(QString seadmeNimi, QString UTCDateTime)</function
> : määrab teleskoobi UTC kuupäeva ja kellaaja ISO-8601 vormingus. Vorminguks on YYYY-MM-DDTHH:MM:SS (nt. 2004-07-12T22:05:32).</para
></listitem>
      </itemizedlist>
    </listitem>
    <listitem
><para
>Kaamera/CCD funktsioonid: kaamera/CCD omaduste ja oleku kontrollimise funktsioonid.</para>
      <itemizedlist>
	<listitem
><para
><function
>setINDICCDTemp(QString seadmeNimi, int temp)</function
> : määrab CCD-kiibi sihttemperatuuri Celsiuse kraadides.</para
></listitem>
	<listitem
><para
><function
>setINDIFrameType(QString seadmeNimi, QString tüüp)</function
> : määrab CCD kaadritüübi. Võimalikud valikud on FRAME_LIGHT, FRAME_BIAS, FRAME_DARK ja FRAME_FLAT.</para
></listitem>
	<listitem
><para
><function
>startINDIExposure(QString seadmeNimi, int aegumine)</function
> : käivitab CCD/kaamera särituse sekunditeks, mille määrab <emphasis
>aegumine</emphasis
>.</para
></listitem>
      </itemizedlist>
    </listitem
>    
   <listitem
><para
>Fokuseerija funktsioonid: fokuseerija liikumist ja olekut kontrollivad funktsioonid.</para>
      <itemizedlist>
      <listitem
><para
><function
>setINDIFocusSpeed(QString seadmeNimi, QString toiming)</function
> : määrab fokuseerija kiiruse. Võimalikud valikud on FOCUS_HALT, FOCUS_SLOW, FOCUS_MEDIUM ja FOCUS_FAST.</para
></listitem>
      <listitem
><para
><function
>setINDIFocusTimeout(QString seadmeNimi, int aegumine)</function
> : määrab sekundites iga järgneva startINDIFocus operatsiooni kestuse.</para
></listitem>
      <listitem
><para
><function
>startINDIFocus(QString seadmeNimi, int fookuseSuund)</function
> : liigutab fokuseerijat kas sissepoole (fookuseSuund = 0) või väljapoole (fookuseSuund = 1). Operatsiooni kiiruse ja kestuse saab määrata funktsioonidega <function
>setINDIFocusSpeed()</function
> ja <function
>setINDIFocusTimeout()</function
>.</para
></listitem>
    </itemizedlist>
    </listitem>
   <listitem
><para
>Filtrifunktsioonid: filtri positsiooni kontrollivad funktsioonid.</para>
      <itemizedlist>
      <listitem
><para
><function
>setINDIFilterNum(QString seadmeNimi, int filtri_number)</function
>: annab filtrile positsiooni <varname
>filtri_number</varname
>. Viimaste aliaseid saab omistada dialoogis <guimenuitem
>INDI seadistamine</guimenuitem
>, mille saab avada menüüst <guimenu
>Seadmed</guimenu
> (nt. Filter 1 = punane, Filter 2 = roheline jne.).</para
></listitem>
    </itemizedlist>
    </listitem>
    
  </orderedlist>
  
<para
>Pane tähele, et kõigis INDI-funktsioonides on esimene argument seadme nimi. See võimaldab liita ühte skripti erinevaid käske, mida saata erinevatele INDI-seadmetele. Skriptilooja pakub kaks võimalust lihtsustada INDI-skriptide loomist ja muutmist:</para>
<itemizedlist>
  <listitem
><para
><option
>WaitForINDIAction lisamine iga INDI-toimingu järele</option
>: märkimisel lisab skriptilooja automaatselt funktsiooni <function
>waitForINDIAction()</function
> iga tuntud toimingu järele. Kui näiteks lisad skriptile funktsiooni <function
>switchINDI()</function
> ja antud valik on sisse lülitatud, lisab skriptilooja kohe funktsiooni <function
>switchINDI()</function
> järele skripti "waitForINDIAction CONNECTION". See sunnib skripti pausi tegema pärast käsu <function
>switchINDI()</function
> andmist seni, kuni <function
>switchINDI()</function
> tagastatakse OK-staatusega (&ie; seadme ühendamine oli edukas). Äärmiselt oluline on silmas pidada, et skriptilooja ei saa funktsiooni <function
>waitForINDIAction()</function
> automaatselt lisada üldistele toimingutele, mis on lisatud funktsiooni <function
>setINDIAction()</function
> kasutades. Selle põhjuseks on asjaolu, et KStarsil puudub võimalus määrata üldiste funktsioonide eellasomadus. Seetõttu tuleb soovi korral <function
>waitForINDIAction()</function
> üldiste toimingute järele ise käsitsi lisada.</para>
  </listitem>
  <listitem
><para
><option
>INDI-seadme nime korduvkasutus</option
>: märkimisel täidetakse kõigi järgnevate funktsioonide seadmenimeväli automaatselt viimati kasutatud seadme nimega. Viimase seadme nimi määratakse iga kord, kui skriptile lisatakse funktsioon <function
>startINDI()</function
>. Mitme seadme kasutamisel ei ole mõttekas seda võimalust sisse lülitada.</para>
  </listitem>
</itemizedlist>

<para
>Nüüd oleme valmis looma demoskripti, mis juhib LX200 GPS teleskoopi, millele lisandub Finger Lakesi CCD-kaamera. Ülesanne on lihtne. Me tahame, et teleskoop asuks jälgima Marssi, seejärel aga peaks kaamera tegema 20-sekundiliste vahedega kolm 10-sekundilist võtet.</para>
<important
><para
>Et INDI DCOP-liides ei anna otsest tagasisidet seadme operatsioonide ja parameetrite (välja arvatud <function
>waitForINDIAction()</function
>) edenemise, väärtuse ega oleku kohta, kujutab seadmete automatiseerimine KStarsis endast sisuliselt otsejuhtimist. Sellistes süsteemides puudubki tavaliselt vahetu tagasiside süsteemi edenemise kohta, samuti pole võimalik jooksvalt vigu korrigeerida. Seepärast tuleb seadmete automatiseerimise skriptid väga hoolikalt kirja panna ja neid igakülgselt testida, enne kui lõplikult kasutusele võtta.</para
></important>

<screenshot>
  <screeninfo
>Skriptilooja tööriist </screeninfo>
  <mediaobject>
    <imageobject>
      <imagedata fileref="indiscript.png" format="PNG"/>
    </imageobject>
    <textobject>
      <phrase
>Skriptilooja tööriist</phrase>
    </textobject>
  </mediaobject>
</screenshot>

<para
>Demoskripti näeb siintoodud pildil. Pane tähele, et <option
>"WaitForINDIAction lisamine iga INDI-toimingu järele"</option
> on sisse lülitatud, <option
>"INDI-seadme nime korduvkasutus"</option
> aga mitte. Esimene lisatav funktsioon on <function
>startINDI()</function
>, nagu ka pildil näha. Me tahame oma seadmed panna tööle kohalikuna, sestab ei ole funktsiooni argumentide aknas vajalik muuta teenuse režiimi. Paneme kirja seadme nime, kõigepealt siis teleskoobi "LX200 GPS". Kordame sama operatsiooni, et panna kirja "FLI CCD". Selle järel on funktsioon <function
>waitFor()</function
>. Üldiselt on soovitatav kasutada funktsiooni <function
>waitFor()</function
> kohe funktsiooni <function
>startINDI()</function
> järel, et peatada skript 1-5 sekundiks. Nii saab tagada kõigi omaduste korrektse loomise ja nende valmisoleku käsklusi vastu võtma. See tuleb kasuks ka võrguseadmete juhtimisel, sest omaduste hankimine ja loomine võib võtta veidi aega. Järgmise funktsiooniga <function
>switchINDI()</function
> ühendame mõlemad seadmed.</para>

<para
>Meil oli juba valik <option
>"WaitForINDIAction lisamine iga INDI-toimingu järele"</option
> sisse lülitatud, nii ei ole meil vaja lisada funktsiooni <function
>waitForINDIAction()</function
> funktsiooni <function
>switchINDI()</function
> järele, et tagada skripti täitmine ainult juhul, kui ühendus õnnestub luua. Seda teeb skriptilooja meie eest automaatselt ise. Nüüd seame teleskoobi jälgimisrežiimi, klõpsates funktsioonil <function
>setINDIScopeAction()</function
> ja valides TRACK. Pane tähele, et teleskoop tuleb panna jälgima <emphasis
>enne seda</emphasis
>, kui anda koordinaadid, mida see peab jälgima. Funktsioon <function
>setINDIScopeAction()</function
> on õigupoolest lihtsalt mugavuse pärast - meiegi näites annab see lihtsalt üldise funktsiooni <function
>setINDIAction()</function
>, millele järgneb võtmesõna TRACK. Funktsiooni <function
>setINDIScopeAction()</function
> kasutamise eeliseks on siiski see, et KStars lisab vajaduse korral selle järele automaatselt <function
>waitForINDIAction()</function
>. See võimalus ei ole muidu, nagu eespool mainitud, automaatselt kättesaadav üldiste toimingute puhul.</para>

<para
>Nüüd kasutame funktsiooni <function
>setINDITargetName()</function
> ja valime siin Marsi. Viimaste sammudega tuleb meil määrata 10-sekundiliste võtete tegemine, milleks on funktsioon <function
>startINDIExposure()</function
> ning nende vahele 20-sekundiliste intervallide jätmine, milleks tuleb funktsioonile <function
>waitFor()</function
> anda väärtuseks 20.</para>

<para
>Nüüd võime skripti salvestada ja millal tahes käivitada. Salvestatud skript näeb välja selline:</para>
<blockquote
><programlisting
>#!/bin/bash
    #KStars DCOP script: Demo Script
    #by Jasem Mutlaq
    #last modified: Thu Jan 6 2005 09:58:26
    #
    KSTARS=`dcopfind -a 'kstars*'`
    MAIN=KStarsInterface
    CLOCK=clock#1
    dcop $KSTARS $MAIN  startINDI "LX200 GPS" true
    dcop $KSTARS $MAIN  startINDI "FLI CCD" true
    dcop $KSTARS $MAIN  waitFor 3
    dcop $KSTARS $MAIN  switchINDI "LX200 GPS" true
    dcop $KSTARS $MAIN  waitForINDIAction "LX200 GPS" CONNECTION
    dcop $KSTARS $MAIN  switchINDI "FLI CCD" true
    dcop $KSTARS $MAIN  waitForINDIAction "FLI CCD" CONNECTION
    dcop $KSTARS $MAIN  setINDIScopeAction "LX200 GPS" TRACK
    dcop $KSTARS $MAIN  waitForINDIAction "LX200 GPS" ON_COORD_SET
    dcop $KSTARS $MAIN  setINDITargetName "LX200 GPS" Mars
    dcop $KSTARS $MAIN  waitForINDIAction "LX200 GPS" EQUATORIAL_EOD_COORD
    dcop $KSTARS $MAIN  startINDIExposure "FLI CCD" 10
    dcop $KSTARS $MAIN  waitForINDIAction "FLI CCD" EXPOSE_DURATION
    dcop $KSTARS $MAIN  waitFor 20
    dcop $KSTARS $MAIN  startINDIExposure "FLI CCD" 10
    dcop $KSTARS $MAIN  waitForINDIAction "FLI CCD" EXPOSE_DURATION
    dcop $KSTARS $MAIN  waitFor 20
    dcop $KSTARS $MAIN  startINDIExposure "FLI CCD" 10
    dcop $KSTARS $MAIN  waitForINDIAction "FLI CCD" EXPOSE_DURATION
</programlisting>
</blockquote>

<note>
<para
>INDI teek pakub väga võimsat skriptimistööriista, mis lubab arendajatel luua ka väga keerukaid skripte. Sellest räägib lähemalt <ulink url="http://indi.sourceforge.net/manual/book1.html"
>INDI arendajate käsiraamat</ulink
>.</para>
</note>
</sect2>
</sect1>