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

Beide kanten vorige revisieVorige revisie
Volgende revisie
Vorige revisie
nl:documentation:script_example [2015/07/07 09:57] – [Script example] 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 voorbeelden ======
  
-This page give tips and example of scripting functions.\\ +Deze pagina verschaft je tips en voorbeelden voor script-fucnties.\\ 
-You can also look at the three [[toolbox|standard tool box]] code from within the program. +You can also look at the three [[toolbox|gereedschapvenster]] code from within the program. 
  
-===== Generality =====+===== Algemeen =====
  
-We first look in detail at the code of the Goto button of the Observer tools standard tool box.\\ +Laten we eerst in detail kijken naar de code voor de Goto-knop van de observatie gereedschappen.\\ 
-This cover many programming basis.+Dit omvat veel van de basis van het programmeren.
  
-The full script code look as following:+De volledige script code ziet er uit als volgt:
 <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.1436255835.txt.gz · Laatst gewijzigd: 2015/11/06 20:36 (Externe bewerking)