Last news:
Cartes du Ciel is free software released under the terms of the
GNU General Public License \
Last news:
Cartes du Ciel is free software released under the terms of the
GNU General Public License \
Aquesta pàgina subministra material de referència per a les funcions de scripts.
Vegeu la pàgina de descripció Caixa d'eines esquerra per a informació general.
Vegeu la pàgina dels exemples de scripts per un inici ràpid de les funcions de programació.
El llenguatge a usar és Script Pascal.
Per a una referència completa sobrte el llenguatge d'objectes Pascal, podeu llegir la Guia de Referència Pascal gratuïta http://www.freepascal.org/docs-html/ref/ref.html. Però tingueu en compte que alguna característica no està implementada el el llenguatge script, per exemple: no punters, no compilador, no sobrecàrrega.
Afegides a les característiques estàndard de l'script Pascal, hi ha les següents fucions específiques de Skychart.
Tots els ítems del menú principal poden ser usatd des dels scripts.
La llista completa dels noms dels ítems del menú està disponible a la llista del menú.
Podeu executar les accions del menú usant el mètode Clic, o comprovar si una opció s'activa provant la propietat Marcada.
Cada cadena traduïda per al programa principal pot ser usada en un script.
Directament useu la constant rsXXX per obtenir la cadena traduïda.
La lloista completa de cadenes és obtenible del codi font.
Si alguna cadena no estés traduïda per al vostre idioma no dubteu a fer-ho personalment.
name | value |
---|---|
deg2rad | constant de conversió de graus a radians |
rad2deg | constant de conversió de radians a graus |
function GetS(varname:string; var str: string):Boolean; | |
---|---|
Obté la variable de cadena global identificada per varname | |
varname | value |
ChartName | El nom de la darrera carta que envia un esdeveniment |
RefreshText | El text de l'esdeveniment ChartRefresh |
SelectionText | El text breu de l'objecte triat |
DescriptionText | La descripció completa de l'objecte |
DistanceText | El text del darrer esdeveniment de mesura de distància |
Str1 .. Str10 | Deu variables globals per al vostre ús. |
function SetS(varname:string; str: string):Boolean; | |
---|---|
Identifica la variable de cadena global com varname per a ús futur | |
varname | value |
Str1 .. Str10 | Deu variables globals per al vostre ús |
function GetI(varname:string; var i: Integer):Boolean; | |
---|---|
Obté la variable entera global identificada per varname | |
varname | value |
Int1 .. Int10 | Deu variables globals per al vostre ús |
function SetSL(varname:string; stlr: Tstringlist):Boolean; | |
---|---|
Identifica la variable de llista de cadena global com varname per a ús futur | |
varname | value |
Strl1 .. Strl10 | Deu variables globals per al vostre ús |
function GetI(varname:string; var i: Integer):Boolean; | |
---|---|
Obté la variable global entera identificada per varname | |
varname | value |
Int1 .. Int10 | Deu variables globals per al vostre ús |
function SetI(varname:string; i: Integer):Boolean; | |
---|---|
Identifica la variable entera global com varname per a ús futur | |
varname | value |
Int1 .. Int10 | Deu variables globals per al vostre ús |
function GetD(varname:string; var x: double):boolean; | |
---|---|
Identifica la variable double global com varname per a ús futur | |
varname | value |
TelescopeRA | La AR de la posició del telescopi |
TelescopeDE | La DEC de la posició del telescopi |
TimeNow | El tempa actual en format TDateTime |
Double1 .. Double10 | Deu variables globals per al vostre ús |
function SetD(varname:string; x: Double):Boolean; | |
---|---|
Posa la variable global double identificada per varname per a ús futur | |
varname | value |
Double1 .. Double10 | Deu variables globals per al vostre ús |
function GetV(varname:string; var v: Variant):Boolean; | |
---|---|
Obté la variable global variant identificada per varname | |
varname | value |
Telescope1 , Telescope2 | Dos objectes del telescopi ASCOM |
Dome1 , Dome2 | Dos objectes de la cúpula ASCOM |
Camera1 , Camera2 | Dos objectes de la càmera ASCOM |
Focuser1 , Focuser2 | Dos objectes de l'enfocador ASCOM |
Filter1 , Filter2 | Dos objectes de la roda filtre ASCOM |
Rotator1 , Rotator2 | Dos objectes del rotador ASCOM |
Variant1 .. Variant10 | Deu variables globals per al vostre ús |
function SetV(varname:string; v: Variant):Boolean; | |
---|---|
Obté la variable global variant identificada com varname per a ús futur. | |
varname | value |
Telescope1 , Telescope2 | Dos objectes del telescopi ASCOM |
Dome1 , Dome2 | Dos objectes de la cúpula ASCOM |
Camera1 , Camera2 | Dos objectes de la càmera ASCOM |
Focuser1 , Focuser2 | Dos objectes de l'enfocador ASCOM |
Filter1 , Filter2 | Dos objectes de la roda filtre ASCOM |
Rotator1 , Rotator2 | Dos objectes del rotador ASCOM |
Variant1 .. Variant10 | Deu variables globals per al vostre ús |
function Cmd(cname:string; arg:Tstringlist):string; |
---|
Executa un dels comandaments del servidor Skychart. Afegeix el nom del comandament abans de la llista de cadenes, i després cada paràmetre. |
procedure SendInfo(origin,str:string); |
---|
Envia un missatge als clients connectats al servidor Skychart . |
function GetObservatoryList(list:TstringList):boolean; |
---|
Retorna la llista dels observatoris favorits |
function GetScopeRates(list:TstringList):boolean; |
---|
Retorna una llista de les velocitats suportades pel telescopi |
function GetCometList(const filter: string; maxnum:integer; list:TstringList):boolean; |
---|
Retorna una llista dels cometes d'acord amb el filtre |
function GetAsteroidList(const filter: string; maxnum:integer; list:TstringList):boolean; |
---|
Retorna una llista dels asteroides d'acord amb el filtre |
function CometMark(list:TstringList):boolean; |
---|
Marca els cometes llistats al mapa |
function AsteroidMark(list:TstringList):boolean; |
---|
Marca els asteroides llistats al mapa |
Procedure Eq2Hz(var ra,de : double ; var a,h : double); |
---|
Converteix l'equatorial AR,DEC a Alt/Az a,h per al lloc i l'hora de la carta actual, els angles en radians |
Procedure Hz2Eq(var a,h : double; var ra,de : double); |
---|
Converteix Alt/Az a,h a equatorials AR,DEC per al lloc i l'hora de la carta actual, angles en radians |
Procedure Eq2Gal(var ra,de : double ; var l,b : double); |
---|
Converteix equatorials AR,DEC a galàctics l,b , angles en radians |
Procedure Gal2Eq(var l,b : double; var ra,de : double); |
---|
Converteix galàctics l,b a equatorials AR,DEC, angles en radians |
Procedure Eq2Ecl(var ra,de : double ; var l,b : double); |
---|
Converteix equatorials AR,DEC a eclíptiques amb obliqüitat per la data de la carta actual, angles en radians |
Procedure Ecl2Eq(var l,b : double; var ra,de : double); |
---|
Converteix eclíptiques l,b a equatorials AR,DEC amb obliqüitat per a la data de la carta actual, angles en radians |
Function ARtoStr(var ar: Double) : string; |
---|
Retorna una cadena formatada d'Ascensió Recta des d'un valor AR |
Function DEtoStr(var de: Double) : string; |
---|
Retorna una cadena de Declinació formatada des d'un valor DEC. |
Function StrtoAR(str:string; var ar: Double) : boolean; |
---|
Converteix una cadena formatada al valor decimal de l'AR. |
Function StrtoDE(str:string; var de: Double) : boolean; |
---|
Converteix una cadena formatada al valor decimal de la DEC |
Function JDtoStr(var jd: Double) : string; |
---|
Formata un dia julià a una cadena AAAA-MM-DD |
Function StrtoJD(dt:string; var jdt: Double) : boolean; |
---|
Converteix una cadea amb format AAAA-MM-DD a valor de dia julià |
Function FormatFloat(Const Format : String; var Value : double) : String; |
---|
Formata un nombre decimal d'acord a l'especificació de Format |
Function Format(Const Fmt : String; const Args : Array of const) : String; |
---|
La funció Pascal de Format |
Procedure StrtoFloatD(str:string; var defval: Double; var val: Double); |
---|
Converteix una cadena a un valor de coma flotant. Retorna defval si la cadena no és un nombre vàlid |
function IsNumber(str: String): boolean; |
---|
Retorna True (veritat) si la cadena representa un nombre vàlid. |
function StringReplace(str,s1,s2: String): string; |
---|
Remplaça tota occurrència de s1 per s2 en str |
procedure JsonToStringlist(jsontxt:string; var SK,SV: TStringList); |
---|
Recorre una cadena formatada JSON i retorna dues llistes de cadena. SK conté els noms i SV els valors corresponents |
function OpenDialog(var fn: string): boolean; |
---|
El diàleg normal d'Obrir fitxer. Retorna True (veritat) si s'ha premut el botó D'acord després de la tria de fitxer. |
function SaveDialog(var fn: string): boolean; |
---|
El diàleg Desa normal.Retorna True (veritat) si s'ha premut el botó D'acord després de la tria de fitxer. |
function MsgBox(const aMsg: string):boolean; |
---|
Diàleg de missatge de confirmació. Retorna True (veritat) si s'ha fet clic a SI. |
Procedure ShowMessage(const aMsg: string); |
---|
Mostra un missatge. |
function CalendarDialog(var dt: double): boolean; |
---|
El diàleg del calendari Skychart . Retorna el dia julià |
function Run(cmdline:string):boolean; |
---|
Executa l'ordre especificada. Retorna immediatament sense esperar que acabi l'execució. |
function RunOutput(cmdline:string; var output:TStringlist):boolean; |
---|
Executa l'ordre especificada, espera a la terminació i posa la sortida estàndard (stdout) a “output (sortida)”. Atenció aquesta funció pot bloquejar completament el programa principal si no acaba a temps. |
function OpenFile(fn:string):boolean; |
---|
Obre un fitxer document usant el programa per defecte |
També mireu a exemples sobre com cal demanar una funció en una llibreria externa.
Per a totes aquestes funcions socknum identifica el conector a usar. Això és un nombre entre 1 i 10, i així permet 10 connexions simultànies a servidors diferents.
function TcpConnect(socknum:integer; ipaddr,port,timeout:string):boolean; |
---|
Connecta al servidor al ipaddr:port i fixa el timeout per a les operacions següents |
function TcpDisconnect(socknum:integer):boolean; |
---|
Desconnecta del servidor |
Function TcpConnected(socknum:integer) : boolean; |
---|
Retorna True (Veritat) si el connector està connectat |
Function TcpRead(socknum:integer; var buf : string; termchar:string) : boolean; |
---|
Read data from the socket until the character termchar is encountered, typically termchar is CRLF |
Function TcpReadCount(socknum:integer; var buf : string; var count : integer) : boolean; |
---|
Read data from the socket until count character are read or timeout is reached |
Function TcpWrite(socknum:integer; var buf : string; var count : integer) : boolean; |
---|
Write data to the socket from buf for a length of count |
Procedure TcpPurgeBuffer(socknum:integer); |
---|
Purge all the received data currently queued in the receive buffer |