Protocollo di comunicazione del software di interfaccia dell elettronica di acquisizione MIR/NIR della Skytech Technical Report v.1.2.b Prepared Verified Authorized Date E. Giro D. Fantinel C. Bonoli G. Di Rico M. Ragni M. Dolci O. Straniero July 2006 Questo documento riguarda le specifiche di interfaccia tra il software SKYTECH e AMICA partendo da quanto discusso a La Spezia il 28 novembre scorso e rispetto al documento Progetto software (PSW). La sezione mostrata in grigio nel disegno che riguarda esclusivamente la gestione dell elettronica SKYTECH e l oggetto di questo documento ed e pensata in modo da essere un modulo in grado di funzionare anche autonomamente.
TELESCOPE DB TELESCOPE M2 CHOPPING TCP/IP I/O PORT http (?) config. table THREAD1 RAM disk SKYTECH PROCESS fast link ACQUISITION ELECTRONICS DLL AMBIENT FITS RS232 AMBIENT PLC THREAD2 Camera Memory Area CPU AMICA Rispetto (PSW) ci sono delle modifiche di dettaglio nell architettura del sistema. Al posto di DLL SKYTECH ci sara` un processo separato (SKYTECH PROCESS (SP)), che comunica con THREAD1 e THREAD2 tramite un direttorio di scambio su RAMdisk. La comunicazione avverra` tramite i seguenti files: - file comandi (cmd.txt): generato da THREAD1 e letto da SKYTECH PROCESS; - file telemetria (tlm.txt): generato da SKYTECH PROCESS e letto da THREAD2; - file dati: N immagini bufferate (imbuff.dat): generato da SKYTECH PROCESS e recuperato da THREAD2, questo file per problemi di occupazione di memoria puo essere residente sul disco disco fisso;
- file accumulatore immagini con chopper sul cielo (accsky.dat); generato da SKYTECH PROCESS e recuperato da THREAD2 - file accumulatore immagini con chopper sull oggetto (accobj.dat); generato da SKYTECH PROCESS e recuperato da THREAD2 Di seguito riportiamo le caratteristiche dei files citati: File comandi (cmd.txt) Il file comandi sara` di tipo ASCII e comprendera un blocco di comandi di lunghezza variabile, e sara costituito da una sequenza del tipo: Command block n. XXXX, (4 ASCII + Cr/Lf) Date-Time, recuperate da windows (xx ASCII + Cr/Lf) Total number of commands N in this block, (4 ASCII + Cr/Lf) Command 1 Command 2 Command N End Cmd block, (4 ASCII + Cr/Lf) Sintassi del singolo comando e` a lunghezza variabile con separazione a virgola: cmd ID, descrittore 1,..., descrittore NN (4 ASCII, F9.2,.,F9.2 + Cr/Lf) Con F9.2 si intende una stringa ASCII formato fp come -12345.12
Es: il comando di inizio esposizione per il NIR avra una sintassi del tipo: nexp,800.0,300.0,100.0,0.0,1.0 intendendo la partenza delle esposizioni per il canale NIR con DIT di 800 msec, con 300 cicli di chopper, con 100 esposizioni per ciclo, con partenza sul cielo e con esclusione di una immagine per cambio di chopper. Analogamente per il MIR il comando sara` mexp. L elenco dei comandi sara` contenuto in un file descrittore (CMDTAB.txt) le cui specifiche sono indicate nel documento CMDConf.doc File telemetria (tlm.txt) : Il file telemetria sara` di tipo ASCII e comprendera un blocco dedicato alla verifica dei comandi piu un blocco di telemetria vera e propria. Blocco verifica comandi: busy-flag, 4ASCII (0: free; XXXX cmd block in esecuzione) + Cr/Lf Blocco telemetria: Tlm block n. YYYY, 4 ASCII + Cr/Lf - Date-Time, recuperate da windows (xx ASCII + Cr/Lf) Tlm requested by Cmd block n. XXXX, 4 ASCII + Cr/Lf Exp flag (0: no exposure, 1: on going exposure), 1 ASCII + Cr/Lf Tlm data 1, F9.2 + Cr/Lf
Tlm data 2, F9.2 + Cr/Lf Tlm data zz, F9.2 + Cr/Lf End Tlm block, (4 ASCII + Cr/Lf) Questo file se non cancellato dal THREAD1 viene automaticamente sovrascritto al successivo arrivo di nuova telemetria. Buffer dati imagine (imbuff.dat) : Questo file viene aperto da SKYTECH PROCESS all inizio delle esposizioni comandate con nexp/mexp, e chiuso dopo l ultima esposizione e dopo avere scritto i files accsky.dat/accobj.dat corrispondenti. Solo allora sara possibile recuperare questi files. Imbuff #### progressivo, 4ASCII + Cr/Lf SP - numero progressivo di questo file tenuto da Date-Time, recuperate da windows (xx ASCII + Cr/Lf) tempo di inizio recuperate SP nexp,800.0,300.0,100.0,0.0,1.0 + Cr/Lf - copia del commando che ha generato i dati X size, 4ASCII + Cr/Lf - dimensione X immagine Y size, 4ASCII + Cr/Lf - dimensione Y immagine File immagine 1, unsigned integer - immagini File immagine ####, unsigned integer Tot. Image ####, 4ASCII + Cr/Lf - immagini totali presenti contate da SP End block, (4 ASCII + Cr/Lf)
Resta da definire dove introdurre un tag per ogni immagine che indichi la posizione del chopper (primo byte dello strem di dati?) Questo file se non cancellato dal THREAD1 viene automaticamente sovrascritto al successivo arrivo di un nuovo Buffer dati immagine. File accumulatori (accsky/accobj) : Questi due files vengono creati alla fine delle esposizioni da SKYTECH PROCESS seguendo le istruzioni del comando nexp/mexp. Se il chopper non viene richiesto solo l accumulatore corrispondente alla posizione iniziale di chopper verra` aggiornato. Imbuff #### progressivo, 4ASCII + Cr/Lf SP - numero progressivo di questo file tenuto da Date-Time, recuperate da windows (xx ASCII + Cr/Lf) tempo di inizio recuperate da SP nexp,800.0,300.0,100.0,0.0,1.0 + Cr/Lf - copia del commando che ha generato i dati X size, 4ASCII + Cr/Lf - dimensione X immagine Y size, 4ASCII + Cr/Lf - dimensione Y immagine File immagine, unsigned double integer nexp/mexp - immagine somma come da comando End block, (4 ASCII + Cr/Lf) Questi files se non cancellati dal THREAD1 vengono automaticamente sovrascritti al successivo arrivo di nuovi dati.
Gestione file su RAMdisk Files di comunicazione RAM disc TELEMETRIA COMANDI ACCUMULATORE 1 (CHOPPER ON) ACCUMULATORE 2 (CHOPPER OFF) BUFFER IMMAGINI
INT Di seguito viene riportato il diagramma di flusso che SKYTECH PROCESS esegue sui file cmd.txt e tlm.txt scritti su RAMdisk. In particolare e compito di SKYTECH PROCESS una volta trovato ed AMON accettato un comando su RAMdisk cancellare il corrispettivo file. ECK REMOTE CMD FILE EVERY 1 SEC CHECK CMD BLK EVERY 1 SEC FILE EXISTS? NEW CMD? No No NEW REMOTE CMD FILE Yes GET AND REMOVE CMD FILE COPY CMDXXX AND TIME TO TLM BLK EXECUTE COMMAND FILL IN TLM BLK
Nel diagramma successivo e riportato in dettaglio il caso di comando di esposizione (nexp/mexp): EXPOSURE COMMAND CHECK CMD BLK EVERY 1 SEC START EXPOSURE WITH GIVEN PARAMETERS Abort exposure? STOP NEW CMD? No Yes GET AND REMOVE CMD FILE COPY CMDXXX AND TIME TO TLM BLK WRITE DATA BUFFERED IMAGES ACCSKY ACCOBJ EXECUTE COMMAND END and EXIT FILL IN TLM BLK