PDA

Visualizza Versione Completa : eventi in scripts Stellarium



andstar
31-12-2018, 08:34
Ciao,

sto giocando un po' con gli script in Stellarium e mi chiedevo se c'è modo di intercettare il loop eventi principale in modo da, per esempio, legare una funzione a un evento da tastiera.

Ho dato un'occhiata al motore Qt su cui è basato il modulo di scripting: utilizza un'astrazione basata su Signals e Slots per far comunciare due oggetti, ma via scripting non trovo il modo di fare il binding (connect). Probabilmente da lì non c'è accesso a tale meccanismo, ma domandare è lecito ;)

Di fatto ho notato che per interagire con uno scripts, gli utenti utilizzano un espediente simpatico, ma con conseguenze un po' sgradevoli. Dal momento che le API consentono di ottenere la data e l'ora di Stellarium, è possibile creare un while loop che continuamente osserva la data. Quando questa cambia, è possibile eseguire una funzione: in sintesi questo si traduce in legare ai tasti che modificano la data, un comportamento dello script. La conseguenza sgradevole è, per l'appunto, che la data si modifica.

Mi chiedevo, in sostanza, se qualcuno è riuscito a ottenere questo genere di interazione senza effetti collaterali.

Grazie in anticipo per le eventuali risposte.

Cieli sereni
Andrea

Red Hanuman
31-12-2018, 12:00
Forse potrebbe risponderti Pierluigi Panunzi...

Pierluigi Panunzi
01-01-2019, 10:04
ciao!
francamente è tanto tempo che non utilizzo gli script di Stellarium, ma mi sembra di ricordare che ci sia la possibilità

immagino tu abbia già analizzato i vari script presenti nell'installazione e quelli a disposizione nel sito ...

sennò la soluzione sarebbe quella di chiedere lumi nel forum del sito: basta che gli specifichi bene cosa ti serve, che tipo di funzione
alla peggio ti rimandano da qualche parte dove è spiegato!;)

andstar
04-01-2019, 23:58
Ciao Pierluigi,
grazie per la risposta. Ho provato a chiedere lumi sul sito, senza successo.
Alla fine ho implementato un workaround usando il tasto che modifica l'impostazione della montatura: sul piano logico è una soluzione simile a quella utilizzata negli altri script esistenti, ma non mi modifica la data.

Qui (https://github.com/andtorg/binobs) è il codice. Farò poi un post a parte su questo forum per condividerlo.

Un saluto