Gebruikershulpmiddelen

Site-hulpmiddelen


nl:documentation:script_example

Verschillen

Dit geeft de verschillen weer tussen de geselecteerde revisie en de huidige revisie van de pagina.

Link naar deze vergelijking

Volgende revisie
Vorige revisie
nl:documentation:script_example [2015/07/07 09:53] – aangemaakt marc_fokkernl:documentation:script_example [2015/11/06 20:43] (huidige) – Externe bewerking 127.0.0.1
Regel 1: Regel 1:
-FIXME **This page is not fully translated, yet. Please help completing the translation.**\\ //(remove this paragraph once the translation is finished)//+====== Script voorbeelden ======
  
-====== Script example ======+Deze pagina verschaft je tips en voorbeelden voor script-fucnties.\\ 
 +You can also look at the three [[toolbox|gereedschapvenster]] code from within the program. 
  
-This page give tips and example of scripting functions.\\ +===== Algemeen =====
-You can also look at the three [[toolbox|standard tool box]] code from within the program. +
  
-===== Generality =====+Laten we eerst in detail kijken naar de code voor de Goto-knop van de observatie gereedschappen.\\ 
 +Dit omvat veel van de basis van het programmeren.
  
-We first look in detail at the code of the Goto button of the Observer tools standard tool box.\\ +De volledige script code ziet er uit als volgt:
-This cover many programming basis. +
- +
-The full script code look as following:+
 <code> <code>
 // Slew telescope // Slew telescope
Regel 37: Regel 35:
 </code>   </code>  
  
-Take a look at each part in detail:+Laten we ieder deel in detail bekijken:
 <code> <code>
 // Slew telescope // Slew telescope
 </code> </code>
-Is a commentyou can use <nowiki>// {..} (*..*)</nowiki> to enclose your comments.+Dit is commentaarje kun <nowiki>// {..} (*..*)</nowiki> gebruiken op je opmerkingen en commentaar te markeren.
  
 ---- ----
Regel 50: Regel 48:
       c: Tstringlist;       c: Tstringlist;
 </code> </code>
-Define the variable we use later in the script.\\ +Definieer de variabele die we later in het script gebruiken.\\ 
-Important variable type are: integer, double, string.\\ +Belangrijke types van variabelen zijn: integer, double, string.\\ 
-The Tstringlist type is use here to send a command to Skychart.+Het Tstringlist type wordt hier gebruikt om een commando te versturen naar Skychart.
  
 ---- ----
Regel 59: Regel 57:
   begin   begin
 </code> </code>
-The start of our program.+Het begin van ons programma.
  
 ---- ----
Regel 66: Regel 64:
 memo_1.clear; memo_1.clear;
 </code> </code>
-Clear the text box we use to show the messagesThis ensure the text box is not filled by previous messages.+Maak het tekstvenster leeg waarin we onze berichten willen tonenDit is om er zeker van te zijn dat deze niet gevuld is met eerdere berichten.
  
 ---- ----
Regel 73: Regel 71:
   if MenuTelescopeConnect.checked then begin   if MenuTelescopeConnect.checked then begin
 </code> </code>
-We test the Checked property of the menu item MenuTelescopeConnect. This indicate we have connected the telescope to the program.\\ +We testen of het menu item MenuTelescopeConnect aangevinkt ("Checked") isDat geeft aan dat de telescoopmontering verbonden is met het programma.\\ 
-If the result is true we execute the code block starting at "begin" up to the corresponding "end"+Als het resultaat "waar" is, dan voeren we het blok code uit vanaf "begin" tot het corresponderende "end".
  
 ---- ----
Regel 81: Regel 79:
     if not StrToAR(Edit_1.text,ra) then begin memo_1.lines.add(rserror+' RA!');exit;end;     if not StrToAR(Edit_1.text,ra) then begin memo_1.lines.add(rserror+' RA!');exit;end;
 </code> </code>
-We try to convert the RA in HMS format from the text in Edit_1 text box to a numeric valueIf the conversion fail (because we type some junk in the text boxwe show an error message and exit.+We proberen de RA in HMS formaat om te zetten van de tekst in Edit_1 tekstvenster naar een numerieke waardeAls de omzetting niet lukt (bijvoorbeeld omdat we onzin getypt hebben in de tekstvenster), toon dan een foutbericht en beëindig uitvoering.
  
 ---- ----
Regel 88: Regel 86:
    a:=floattostr(ra);    a:=floattostr(ra);
 </code> </code>
-Convert the RA back to string representation but with the decimal format required by the command.+Converteer de RA terug naar een string-weergave maar met het decimale formaat zoals vereist voor het  commando.
  
 ---- ----
Regel 96: Regel 94:
 c.clear; c.clear;
 </code> </code>
-Request a TStringList object identified by STRL1. We clear any data that may stay in the object.+Vraag een TStringList object op geïdentificeerd via STRL1. We wissen alle gegevens die in het object aanwezig zouden kunnen zijn.
  
 ---- ----
Regel 105: Regel 103:
     c.add(b);     c.add(b);
 </code> </code>
-Add the command and the required parameters (in this case RA and DEC) to the stringlist.+Voeg het commando en de vereiste parameters toe (in dit geval RA en DEC) aan de stringlijst.
  
 ---- ----
Regel 112: Regel 110:
    r:=cmd('',c);    r:=cmd('',c);
 </code> </code>
-Execute the command and store the result in the variable r.+Voer het commando uit en sla het resultaat op in de variabele r.
  
 ---- ----
Regel 119: Regel 117:
 memo_1.lines.add(r); memo_1.lines.add(r);
 </code> </code>
-Show the result of the command to the text box.+Toon het resultaat van het commando in het tekstvenster.
  
 ---- ----
Regel 126: Regel 124:
 else memo_1.lines.add(rsTelescopeNot); else memo_1.lines.add(rsTelescopeNot);
 </code> </code>
-The case the test MenuTelescopeConnect.checked is false we execute this line.\\ +Als MenuTelescopeConnect.checked "onwaar" was, dan voeren we deze regel uit.\\ 
-It show in the text box a translation in the local language of 'Telescope not connected'.+Het toont in het tekstvenster een vertaling op basis van de ingestelde taal van het bericht 'Telescoop niet verbonden'.
  
 ---- ----
Regel 134: Regel 132:
  end.  end.
 </code> </code>
-The end of the program.+Het einde van het programma.
  
  
-===== Call an external library ====+===== Aanroepen van een externe bibliotheek (library====
  
-You can define a function in an external library for use within your script as another local function.+Je kunt een functie definiëren in een externe library voor gebruik binnen je script alsof het een lokale functie is
  
-This example implement a simple chronometer by using the GetTickCount function of the Windows API.\\ +Dit voorbeeld implementeert een eenvoudige chronometer door gebruik te maken van de GetTickCount functie van de Windows API.\\ 
-There is two button Start and Stop and two text boxA global integer variable is used to store the start time.+Er zijn twee knoppen, Start en Stop en er zijn twee tekstvenstersEen globale integer variabele is gebruikt om de starttijd op te slaan.
  
-Script for the Start button:+Script voor de Start knop:
 <code> <code>
  function GetTickCount: Longint; external 'GetTickCount@kernel32.dll stdcall';  function GetTickCount: Longint; external 'GetTickCount@kernel32.dll stdcall';
Regel 156: Regel 154:
 </code> </code>
  
-Script for the Stop button:+Script voor de Stop knop:
 <code> <code>
 function GetTickCount: Longint; external 'GetTickCount@kernel32.dll stdcall'; function GetTickCount: Longint; external 'GetTickCount@kernel32.dll stdcall';
Regel 171: Regel 169:
 </code> </code>
  
-You can call any library function this way but beware this is system dependentthe kernel32.dll library is not available on Mac or Linux.+Op deze manier kun je iedere library functie aanroepenmaar houdt er wel rekening mee dat dit systeem-afhankelijk is. De kernel32.dll library is niet beschikbaar op Mac of Linux.
  
-Another limitation is that many library function expect a pointer to a parameter structureAs the script language use byte code internally (as Java) it cannot use a pointer to give the parameters. A solution is to write a C library wrapper that export the function with a flat parameter list+Een andere beperking is dat veel library functies een pointer verwachten naar een parameter structuurWanneer de script-taal intern een byte-code gebruikt (zoals Java) dan kan het geen pointer gebruiken naar de gegeven parameters. Een oplossing is om een C-library wrapper te schrijven die de functie exporteert met een platte parameter-lijst 
  
-===== Using ASCOM directly ==== +===== Direct gebruik maken van ASCOM ====  
 +Dit beschrijft hoe je een ASCOM apparaat direct kunt gebruiken zonder gebruik te maken van de Skychart interne ASCOM telescoop.
  
-This describe how to use an ASCOM device directly from your script without any use of the Skychart internal ASCOM telescope.+Dit kan gebruikt worden voor toegang tot andere klassen van apparaten, zoals in het voorbeeld hier een koepel (dome). Je kunt het ook gebruiken voor toegevoegde eigenschappen van je telescoop.\\ 
 +In het laatste geval moet je voorzichtig zijn omdat je script gelijktijdig werkt met het Skychart hoofdprogramma voor toegang tot de apparatuur
  
-This can be use to access another class of device, the example here connect to a dome, or to access additional properties for your telescope.\\ +==== Gebruik van de ASCOM kiezer ===
-In the later case you must be careful that your script work as a concurrent to Skychart main program for the device access.+
  
-==== Use the ASCOM chooser === +De volgende code stelt op een knop in welke ASCOM koepel driver we willen selecteren voor gebruikDe naam van de driver slaan we op en het tekstveld Edit_1.
- +
-The following code assigned to a button allow to select the ASCOM Dome driver we want to useThe driver name is saved in the text field Edit_1.+
  
 <code> <code>
Regel 201: Regel 198:
 </code> </code>
  
-Replace w:='Dome'; by Telescope, Focuser, Rotator, Camera, Filter to select another driver class.+Vervang w:='Dome'; voor Telescope, Focuser, Rotator, Camera, Filter om een andere klasse van drivers te selecteren.
    
-==== Connect to the ASCOM driver ===+==== Verbind met de ASCOM driver ===
  
-The following code is for the "Connect" buttonIt connect to the ASCOM Dome driver we select previously. We use the global variable Dome1 to store the ASCOM object.+De volgende code is voor de "Connect" knopHet verbindt de ASCOM Dome driver die we eerder hebben geselecteerd. We gebruiken de globale variabele Dome1 om het ASCOM object op te slaan.
 <code> <code>
 var var
Regel 220: Regel 217:
 </code> </code>
  
-==== Use the ASCOM driver ===+==== Gebruik van de ASCOM driver ===
  
-Now we want to add a button to open the dome shutterThis is just an exampleat this point any ASCOM property can be use.\\ +Nu willen we een knop toevoegen om het luik van de koepel te openenDit is slechts een voorbeeldje zou hier iedere ASCOM-eigenschap kunnen gebruiken.\\ 
-The first test protect again a program crash if we try to use an initialized variant.\\ +De eerste test beschermt ons tegen het vastlopen van het programma wanneer we een geïnitialiseerde variant zouden proberen te gebruiken.\\ 
-The second test protect again an ASCOM error if the dome is not connected.+De tweede test beschermt ons opnieuw tegen een ASCOM-fout wanneer de koepel niet verbonden is.
  
 <code> <code>
Regel 265: Regel 262:
 </code> </code>
  
-===== Run a command ===== +===== Voer een commando uit =====
- +
-There is two different way to run an external command or program, depending if you want to wait for a result or not.+
  
-==== Wait for a result ====+Er zijn twee verschillende manieren om een extern commando of programma uit te voeren, afhankelijk of je op een resultaat wilt wachten of niet. 
 +==== Wacht op een resultaat ====
  
-The following command run the DIR command in the current directory. The result is stored in a stringlist and later show in a text memo. It contain the list of files in the directory.+Het volgende commando voert het DIR commando uit in de huidige directory. Het resultaat is opgeslagen in een  string-lijst en wordt later getoond in een tekst memo. Het bevat de lijst van bestanden in de directory.
  
 <code> <code>
Regel 283: Regel 279:
 </code> </code>
  
-==== No wait ====+==== Niet wachten op het resultaat ====
  
-If the command can run for an undetermined time or do not produce an output you need to use the following form.\\ +Wanneer het commando uitgevoerd kan worden voor een onbepaalde tijd of geen output zal produceren, dan heb je de volgende vorm nodig.\\ 
-This example run the Variable star observer program and exit immediately.+Dit voorbeeld voert het Variabele ster observator programma uit en stopt daarna direct.
  
 <code> <code>
nl/documentation/script_example.1436255593.txt.gz · Laatst gewijzigd: 2015/11/06 20:36 (Externe bewerking)