-
Notifications
You must be signed in to change notification settings - Fork 0
Funções do script
Por diversas vezes há a necessidade de escrevermos no log e no debugger a mesma mensagem, com o horário. Devido a essa necessidade há uma função implementada que abre o arquivo do log do dia e escreve, tanto do arquivo quanto no debugger, a mensagem dada seguida pelo horário daquele exato momento.
function WriteLog(text)
{
var filename = setFileName();
try {
TextFile.openForAppend(filename);
var formattedTime = getFormattedTime();
TextFile.write(text + " " + formattedTime + "\n");
print(text + " " + formattedTime);
TextFile.close();
} catch (texterr) {
PrintAndOut("Erro ao editar o log.\n" + texterr.message);
}
}
Para escrever no debugger e na janela RunJavaScript a mesma mensagem em tempo de execução.
function PrintAndOut(text)
{
print(text);
RunJavaScriptOutput.writeLine(text);
}
Pega a ascensão reta e a declinação de algum objeto qualquer dentro do limite preestabelecido.
function GetRADec(object)
{
if (!Sky6IsConnected()) {
WriteLog("Erro de conexao tentando executar a funcao GetRADec");
return false;
}
try {
sky6StarChart.Find(object);
} catch (finderr) {
WriteLog("Erro durante o find.\n" + finderr.message + " ");
return false;
}
sky6ObjectInformation.Property(54);
var targetRA = sky6ObjectInformation.ObjInfoPropOut;
sky6ObjectInformation.Property(55);
var targetDec = sky6ObjectInformation.ObjInfoPropOut;
return {"ra": targetRA, "dec": targetDec};
}
Inicia a conexão entre o SkyX e a montagem e cria o arquivo de log do dia. Essa função deve ser executada quando o SkyX não está conectado e for exatamente 11:00(UT), ou o horário escolhido para o início da execução. Esse processo é muito rápido comparado com outras operações de controle, demorando não mais de 1 segundo.
function Connect_c()
{
var time = getTimeNow();
var formattedTime = getFormattedTime();
PrintAndOut("Conectado as " + formattedTime);
ConnectTelescope();
var filename = setFileName();
TextFile.createNew(filename);
TextFile.write(String(time.day) + "/" + String(time.month) + "/" + String(time.year) + "\n");
TextFile.write("Conectado as " + formattedTime + "\n");
TextFile.close();
}
Inicia o rastreamento do sol. Essa função dever ser executada quando o SkyX está conectado e for exatamente 11:00(UT). Pelo fato do processo de conexão ser muito rápido, não há necessidade de iniciar 1 ou 2 minuto(s) depois da conexão.
function Initialize_c()
{
sky6RASCOMTele.FindHome();
var propriedade = GetRADec("Sun");
WriteLog("Iniciou o slew as");
SlewTelescopeTo(propriedade.ra, propriedade.dec, "Sun");
WriteLog("Iniciou o rastreamento as");
}
Faz o flip, basicamente reiniciando o rastreamento. A única diferença de código entre a função Initialize_c, é a inutilidade da função FindHome, visto que sua execução somente é necessária uma única vez por dia (desconsiderando problemas de conexão).
function Flip_c()
{
var propriedade = GetRADec("Sun");
WriteLog("Iniciou o slew(flip) as");
SlewTelescopeTo(propriedade.ra, propriedade.dec, "Sun");
WriteLog("Completou o flip as");
}
Desliga o rastreamento primeiro e depois vai para a posição de parking, desconectando logo em seguida. É executada quando o SkyX está conectado e já passou das 20:00(UT).
function TurnOff_c()
{
SetTelescopeTracking(0, 1, 0, 0);
WriteLog("Desligou o rastreamento as");
ParkTelescope();
WriteLog("Desconectado as");
}
Reconecta o telescópio e reinicia o rastreamento. Também executa a função FindHome, já que se o script for (re)iniciado depois das 11:00, este processo pode não ter sido realizado. É executada quando o SkyX não está conectado e a hora atual está entre o horário de execução.
function Reconnect_c()
{
WriteLog("(Re)conectado as");
ConnectTelescope();
sky6RASCOMTele.FindHome();
// Verifica se o Tracking não está ocorrendo.
if (sky6RASCOMTele.IsTracking == 0) {
RestartTracking_c();
}
}
Reinicia o rastreamento. É executada na função de reconexão e quando o SkyX está conectado, não está fazendo o tracking e a hora atual está entre o horário de execução.
function RestartTracking_c()
{
var propriedade = GetRADec("Sun");
WriteLog("Iniciou o slew as");
SlewTelescopeTo(propriedade.ra, propriedade.dec, "Sun");
WriteLog("Reiniciou o rastreamento as");
}