1° Forum di Astronomia Amatoriale Italiano

Il primo forum di astrofili per astrofili, nato nel 2000!
Oggi è sabato 19 luglio 2025, 6:01

Menu

* Home
* Iscriviti
* La Bacheca
* F.A.Q.
* Cerca
* Login/Logout 

Login

Nome utente:
Password:

 Ho dimenticato la password

In Linea

Visitano il forum: Nessuno e 2 ospiti

Regolamento

regolamento

Links

*
Astrocafè

Segnala bolide
* Meteoblue.com
* Previsioni seeing
* Il Meteo.it
Help Forum
 

Tutti gli orari sono UTC + 1 ora




Apri un nuovo argomento Rispondi all’argomento  [ 38 messaggi ]  Vai alla pagina Precedente  1, 2, 3, 4
Autore Messaggio
MessaggioInviato: sabato 18 luglio 2015, 0:08 
Non connesso
Avatar utente

Iscritto il: domenica 23 aprile 2006, 22:02
Messaggi: 7738
Tipo di Astrofilo: Fotografo
Ciao Robocop, ti confesso di non essere sicurissimo di aver compreso la tua richiesta quindi, se sto sbagliando, ti prego di riformularmela nel modo più semplice possibile.

Se non ho capito male tu vorresti realizzare un driver ASCOM per gestire la motorizzazione della tua cupola. La creazione di un driver di questo tipo non è complicatissima se si ha una certa dimestichezza con la programmazione anche e soprattutto grazie ai tutorial forniti con la piattaforma ASCOM. Per ottenere questi tutorial e tutta la documentazione relativa devi installare la parte opzionale della piattaforma ASCOM riservata ai "developer".

Una volta avviato il tutorial per un oggetto "dome" dovrai scrivere il codice che risponda ud una serie di invocazioni di metodi e proprietà predefinite e tipiche di questo tipo di strumentazione. Nella fattispecie sono:

Metodi
AbortSlew() - Interrompe ogni movimento in corso della cupola
CloseShutter() - Chiude la cupola (o il tetto scorrevole)
FindHome() - Ruota la cupola fino alla posizione di avvio (di solito con l'apertura a Nord)
OpenShutter() - Apre la cupola (o il tetto scorrevole)
Park() - Ruota la cupola fino alla posizione di parcheggio
SetPark() - Definisci la posizione attuale come posizione di parcheggio
SlewToAltitude(Altitude as double) - Muovi l'apertura della cupola in altezza fino al valore dato
SlewToAzimuth(Azimuth as double) - Ruota la cupola fino all'azimut dato
SyncToAzimuth(Azimuth as double) - Imposta il valore dato come azimut della posizione corrente

Proprietà:
Altitude as double - Altezza a cui si trova l'apertura della cupola
AtHome as boolean - La cupola è in posizione di avvio
AtPark as boolean - La cupola è in posizione di parcheggio
Azimuth as double - Azimut verso cui è ruotata la cupola
CanFindHome as boolean - Vero se è possibile eseguire il metodo FindHome
CanPark as boolean - Vero se è possibile eseguire il metodo Park
CanSetAltitude as boolean - Vero se la cupola permette di spostare in altezza l'apertura
CanSetAzimuth as boolean - Vero se la cupola può ruotare (si mette FALSO nei tetti scorrevoli, ad esempio)
CanSetPark as boolean - Vero se è possibile definire la posizione di parcheggio
CanSetShutter as boolean - Vero se è possibile aprire e chiudere la cupola o il tetto scorrevole
CanSlave as boolean - Vero se la cupola può seguire automaticamente il telescopio
CanSyncAzimuth as boolean - Vero se è possibile definire l'azimuth attuale
ShutterStatus as ShutterState - Indica lo stato dell'apertura della cupola o del tetto scorrevole (vedi poi)
Slaved as boolean - Vero se la copola sta seguendo automaticamente il telescopio. Può essere impostato.
Slewing as boolean - Vero se la cupola è in movimento

Valori per ShutterState
0 shutterOpen
1 shutterClosed
2 shutterOpening
3 shutterClosing
4 shutterError

In fase di programmazione dovrai ovviamente completare il codice del tutorial per manovrare il tuo hardware. Ad esempio:

Codice:
    Public ReadOnly Property CanSetShutter() As Boolean Implements IDomeV2.CanSetShutter
        Get
            TL.LogMessage("CanSetShutter Get", True.ToString())
            Return True 'Questo indica che è possibile aprire e chiudere la cupola (o il tetto)
        End Get
    End Property

    Public Sub OpenShutter() Implements IDomeV2.OpenShutter
        TL.LogMessage("OpenShutter", "Shutter has been opened")
        'Qui va inserito il codice che aprirà la tua cupola
        domeShutterState = True
    End Sub

    Public Sub CloseShutter() Implements IDomeV2.CloseShutter
        TL.LogMessage("CloseShutter", "Shutter has been closed")
        'Qui va inserito il codice che chiuderà la tua cupola
        domeShutterState = False
    End Sub


Top
  Profilo   WWW  
 
MessaggioInviato: sabato 18 luglio 2015, 1:59 
Non connesso

Iscritto il: lunedì 8 settembre 2014, 21:02
Messaggi: 16
Ciao Ivaldo,
Grazie per il tuo intervento prima di tutto, si, esatto, dimestichezza che manca con Visual Studio che avevo prontamente installato e cominciato a seguire i tutorial, compresi i video su ascom di "Tom" se non erro.
Quindi ho acquistato dei libri per "ricominciare da zero". Ma l'esito non ha dato i frutti sperati perché non ho trovato come trattare gli Activex anche se ho trovato in generale cosa sono e come sono composti.
Quindi ho fluttuato in diversi linguaggi che mi permettessero appunto di sfruttare la sezione di Ascom developer, (non ti dico la confusione di sintassi che mi ha scoraggiato) per la creazione di driver e mi sono imbattuto nel linguaggio Labview il quale ha delle potenzialitá di apprendimento piu schematico che di codice, infatti il ciclo for o while ad esempio é un'icona dove dentro sono racchiuse variabili oppure quello che si vuole collegando il sistema con delle connessioni(fili) i singoli oggetti in modo logico.
Detto questo ho abbandonato VS e ho continuato con LW appunto.
Ho quindi piu intuitivamente trovato i controlli ActiveX di Ascom e li ho caricati, domani appena riesco ti allego l'immagine. Ho aperto tutti gli invoke node e property e ho tradotto come hai fatto tu per ogni singola voce il significato.
Ora mi ritrovo ad avere tre tipi di controlli dome, dome_dome, dome_rate e dome_telescope.
Aprendoli tutti ci sono le voci in questione, ma ora penso, sia se si trattasse di codice che di blocchi tematici dovrei comunque gestire ingressi e uscite come le voci confermano, ma gestire la posizione con dei impulsi una-tantum cioé ad esempio ad ogni impulso un tot di cm o di gradi non capisco dove li devo dare in pasto e anche sapere ogni quanto aggiornare la posizione.
Poi, il comando eventuale di posizionamento lo devo collegare (ripeto, il sistema logico di funzionamento é identico sia che si parli di codice che di blocchi) alle coordinate di azimut del telescopio o fa tutto da se?

Ti scrivo cosi perche non so se conosci LW, io VS ho provato a fare cose semplici e ho provato a chiedere aiuto ad amici, ma al discorso ActiveX si sono volatilizzati :-)
Altrimenti, imparerei volentieri VS se avessi qualche riferimento in piu, ma sono anche consapevole che la dimestichezza non arriva dal cielo, ci vuole tempo ed essere seguiti a mio avviso.
Quindi mi trovo solo a capire cose che ho sotto il naso, ma non vedo per mancanza di esperienza e/o male informazione.
Ora va un po meglio la mia spiegazione? ;-)
Se hai :please: un po di pazienza e volessi aiutarmi ancora non saprei come ringraziarti, magari, regalandoci una bella nottata osservativa sotto la cupola che girerá
:ook:


Top
  Profilo    
 
MessaggioInviato: sabato 18 luglio 2015, 9:06 
Non connesso
Avatar utente

Iscritto il: domenica 23 aprile 2006, 22:02
Messaggi: 7738
Tipo di Astrofilo: Fotografo
Io posso aiutarti solo con VB.NET che è l'unico ambiente di programmazione con cui mi diletto. Se stai cercando di scrivere un driver ASCOM (e dopo tutte le tue parole io ancora non ho capito se sia così) quella di un linguaggio .NET è certamente la strada più semplice, ovviamente se hai almeno delle nozioni di programmazione. Se non sai programmare puoi certamente imparare, ma ti conviene iniziare da un classico "hello world" piuttosto che da un driver ASCOM per la tua cupola.


Top
  Profilo   WWW  
 
MessaggioInviato: sabato 18 luglio 2015, 11:45 
Non connesso

Iscritto il: lunedì 8 settembre 2014, 21:02
Messaggi: 16
Rispondo subito di si, sto cercando di scrivere un driver Ascom ma non sono mai arrivato a tanto, é la prima volta che mi cimento in tale impresa.
Ho delle basi di programmazione in C+ e per i PLC da piu di un'anno che ho rinfrescato le nozioni per questo progetto sbagliando spesso strada il motivo é semplicemente dovuto che andavo dove tirava il vento barcollando nel buio, ma partendo dalle basi con VB e VS e sopratutto consultando i tutorial di Ascom mi sono buttato su VS ma il blocco é arrivato con la licenza limitata di VisualMicro piattaforma IDE per controllare elettronica di ingressi/uscite, PWM che a me interessava, sono stati 30gg intensi di studio ma inutili, per questo sono passato a LW, gratuito per l'IDE e ha la possibilitá di gestire sia ActiveX che .NET basta decidere quale strada percorrere.
Certo, non ho una preparazione eccelsa ma se hai tempo di guidarmi con VB .NET sono a tutte orecchie.
Con LW posso districarmi io, bastano i ragionamenti di gestione e le cose riesco a tradurle, giustamente i linguaggi sono diversi quindi capisco, per questo ti chiedo di dirmi quale versione conosci di VB cosi che possa installare se non ho giá messo nei programmi la tua versione cosi che possa avere un riscontro.
Porta pazienza, sono due anni che cerco un riferimento e ho provato da solo, ora che mi dai la tua disponibilita se possibile, ci prendo dentro.
Non so se possibile come regolamento ma volendo posdiamo sentirci via mail se preferisci.


Top
  Profilo    
 
MessaggioInviato: sabato 18 luglio 2015, 12:26 
Non connesso

Iscritto il: lunedì 8 settembre 2014, 21:02
Messaggi: 16
per concludere il discorso fatto su LW quello che avevo sono allegate nelle immagini di seguito iserite per farti capire i 4 tipi di ActiveX che mi compaiono della cupola (Dome).
quindi d'avvero a me servirebbe solo sapere su quali blocchi interagire a livello di ragionamento, io tradurrò dai tuoi consigli di codice al linguaggio LW, se possibile, altrimenti ripeto mi organizzo con la tua versione di VB.NET :bino:


Allegati:
1.jpg
1.jpg [ 117.76 KiB | Osservato 2381 volte ]
2.jpg
2.jpg [ 105.72 KiB | Osservato 2381 volte ]
3.jpg
3.jpg [ 17.42 KiB | Osservato 2381 volte ]
4.jpg
4.jpg [ 251.55 KiB | Osservato 2381 volte ]
Top
  Profilo    
 
MessaggioInviato: sabato 18 luglio 2015, 12:32 
Non connesso
Avatar utente

Iscritto il: domenica 23 aprile 2006, 22:02
Messaggi: 7738
Tipo di Astrofilo: Fotografo
Io faccio tutto con VisualBasic.NET 2010 Express che è gratuito.


Top
  Profilo   WWW  
 
MessaggioInviato: sabato 18 luglio 2015, 16:49 
Non connesso

Iscritto il: lunedì 8 settembre 2014, 21:02
Messaggi: 16
Ok, grazie, ne avevo altre versioni!
scaricato da Microsoft ma non ho trovato il ".NET", solo Visual Basic 2010 Express, ora sta aggiornando al service pack 1, altrimenti non mi fa andare avanti, me lo guardo un po e provo ad essere operativo e ti faccio sapere, grazie


Top
  Profilo    
 
MessaggioInviato: sabato 18 luglio 2015, 16:52 
Non connesso

Iscritto il: lunedì 8 settembre 2014, 21:02
Messaggi: 16
in VB ho DomeSync se ti interessa!


Top
  Profilo    
 
Visualizza ultimi messaggi:  Ordina per  
Apri un nuovo argomento Rispondi all’argomento  [ 38 messaggi ]  Vai alla pagina Precedente  1, 2, 3, 4

Tutti gli orari sono UTC + 1 ora


Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Cerca per:
Vai a:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduzione Italiana phpBBItalia.net basata su phpBB.it 2010