• Non ci sono risultati.

Capitolo 4 Sviluppo software

N/A
N/A
Protected

Academic year: 2021

Condividi "Capitolo 4 Sviluppo software"

Copied!
15
0
0

Testo completo

(1)

Capitolo 4

Sviluppo software

Introduzione

La piattaforma di sviluppo software prescelta per la realizzazione dell’interfaccia grafica di visualizzazione dei risultati e impostazione dei parametri dell’esperimento è il software per strumentazione virtuale LabView 5.1 distribuito da National Instruments. Tuttavia, come accennato nel capitolo relativo alla descrizione delle piattaforme di sviluppo, si è reso necessario l’utilizzo di altri strumenti per la gestione del protocollo IEEE1394. Si è scelto pertanto di adottare una soluzione che prevedesse l’utilizzo di un’ulteriore PC sul quale è stata installata la versione Suse 9.1 del sistema operativo Linux. La possibilità di reperire in rete applicativi Linux per la gestione del protocollo IEEE1394 ha permesso quindi di utilizzare il PC aggiuntivo come ponte di comunicazione tra la Data Processing Board e il PC sul quale è stata realizzata l’interfaccia grafica vera e propria con LabView. La comunicazione tra i due PC avviene su protocollo TCP/IP (Transmission Control Protocol/Internet Protocol). Il PC remoto, su cui gira l’applicazione LabView agisce da client e il PC connesso alla Data Processing Board si comporta da server. In questo modo il PC equipaggiato di sistema operativo Linux realizza un server TCP/IP tramite il quale qualunque client collegato via Ethernet allo host può scaricare off-line i dati richiesti e gestire comunque il sistema completo di acquisizione.

(2)

Per l’utilizzo del protocollo TCP/IP esistono VI’s di libreria che consentono una facile gestione della comunicazione.

IEEE1

394 TCP/IP

Visualizzazione risultati Acquisizione dati su HDD via IEEE1394

e invio ogni 100ms di immagine a LV via TCP/IP

Ponte per ricezione e invio comandi a Data Processing Board via IEEE1394

SERVER

CLIENT

Orsys micro-line CPT6713

Figura 4.1: Architettura proposta per la comunicazione tra la Data Processing Board e il PC remoto.

In questo capitolo verrà mostrato lo stato attuale dell’interfaccia utente sviluppata su LabView per la ricezione e presentazione dei risultati di conteggio e l’invio dei comandi alla Data Processing Board.

4.1 Interfaccia LabView

Allo stato attuale del progetto SPADA l’interfaccia LabView è completa per la parte relativa all’applicazione FTI mentre resta da sviluppare la parte dell’interfaccia relativa alle altre due applicazioni. Tuttavia la presentazione dei risultati di conteggio e l’impostazione della finestra temporale di acquisizione e di memorizzazione dei dati, comune alle tre applicazioni è operativa e funzionante, come è stato provato durante la dimostrazione svoltasi a Milano il 17 dicembre 2004 in cui sono state fatte prove dell’intero sistema elettronico di acquisizione e visualizzazione con il sensore SPADA. Nel capitolo successivo verranno mostrati e discussi i risultati ottenuti durante la dimostrazione del sistema, i problemi riscontrati e le eventuali soluzioni proposte.

(3)

4.1.1 Front Panel e pannelli secondari

Il pannello frontale consente all’utente di selezionare il tipo di applicazione desiderata per l’esperimento da svolgere. Le possibilità sono:

• Fast Transient Imaging • Adaptive Optics

• Layer Sensing

• Detection Board Setting

Figura 4.2: Pannello frontale dell’interfaccia utente

La selezione dell’applicazione comporta l’apertura di un pannello per la impostazione dei parametri dell’esperimento dipendente dall’applicazione scelta.

(4)

4.1.1.1 Fast Transient Imaging

Figura 4.3: Pannello di controllo per l’applicazione FTI.

Per l’applicazione FTI è possibile:

• Impostare la finestra di integrazione per i contatori.

• Settare la durata dell’intero esperimento, ovvero il periodo di acquisizione totale dei risultati di conteggio.

• Immettere il nome del file su cui salvare i dati nonché visualizzare lo spazio richiesto e quello disponibile sul disco rigido del PC su cui gira l’applicazione Linux.

• Visualizzare l’eventuale stato di saturazione dei contatori.

• Mandare in esecuzione la VI con la mappa di visualizzazione premendo il pulsante Show Diagram.

(5)

Le funzionalità sopraesposte sono tutte operative, come detto precedentemente. Si illustrano di seguito le funzionalità a cui dovranno ottemperare le VI, ancora da sviluppare, per le altre due applicazioni.

4.1.1.2 Adaptive Optics

Figura 4.4: Pannello di controllo per l’applicazione AO.

Per l’applicazione AO il pannello da strumentazione virtuale deve consentire all’utente di:

• Settare i parametri ampiezza, frequenza e fase della sinusoide da generare.

• Impostare il tempo integrazione in termini di periodi della sinusoide.

• Selezionare la modalità di presentazione del segnale di curvatura consentendo di scegliere tra la visualizzazione del solo segnale di

(6)

curvatura indicatore della condizione di messa a fuoco sull’immagine oppure del segnale di curvatura assieme ai risultati di conteggio.

• Lo stato di funzionamento anomalo dei sensori riportato dalla condizione di saturazione dei contatori.

• Visualizzare il diagramma di curvatura.

Figura 4.5: Immagine ipotetica di visualizzazione del diagramma di curvatura. I colori rosso e verde indicano se il segnale di cuvatura C=A-B/A+B è maggiore o minore di zero.

(7)

4.1.1.3 Layer Sensing

Figura 4.6: Pannello di controllo per l’applicazione LS.

Per quanto riguarda l’applicazione LS la VI deve consentire all’utente di:

• Impostare la durata dell’esperimento in termini di numero di acquisizioni da effettuare.

• Settare i parametri della sinusoide ampiezza, frequenza e fase.

• Visualizzare i risultati di conteggio relativi alle quindici acquisizioni successive previste dall’applicazione.

(8)

4.1.1.4 Detection Board setting

Figura 4.7: Pannello di controllo per i settaggi della Detection Board.

Il pannello di controllo della Detection Board consente all’utente di: • Settare i segnali di Gate e Interlock software e riportare lo stato di

tali segnali se settati esternamente via hardware tramite la scheda GPIO.

• Impostare la modalità Safety Mode

• Impostare la temperatura della Detection Board e consentire di configurare il tempo di hold off e la tensione di anodo degli iAQC. Le funzionalità relative ai segnali di Gate e Interlock e al Safety Mode sono attualmente operative. Resta da sviluppare l’applicazione per la gestione delle informazioni sulla temperatura e sullo stato degli iAQC.

(9)

4.1.2 Mappa di visualizzazione

Per la visualizzazione dei risultati di conteggio dei contatori è stata sviluppata una VI che consente una visione immediata del livello di illuminazione dei sensori. Si tratta di una mappa circolare divisa in 60 settori ad ognuno dei quali corrisponde uno dei registri di uscita del SDPM e quindi lo stato di illuminazione di uno dei sensori dello SPADA.

Figura 4.8: Esempio di visualizzazione dei risultati di conteggio su mappa circolare a 60 settori.

I settori della mappa assumono una tonalità di colore appartenente ad una scala di grigi codificata su 8 bit e normalizzata rispetto al risultato di conteggio più alto dell’acquisizione attuale. L’intensità del tono dipende quindi dal risultato di conteggio a cui il settore è associato.

(10)

Andando più nel dettaglio si illustra ora la gestione del protocollo di comunicazione TCP/IP nell’ambiente di sviluppo LabView.

4.1.3 Acquisizione e invio dati su protocollo TCP/IP

La gestione del protocollo TCP/IP su LabView è realizzata sfruttando le funzioni di libreria fornite con il software di National Instruments. Le operazioni da compiere per utilizzare una connessione basata su protocollo TCP/IP sono:

• L’apertura di una porta sull’indirizzo IP del dispositivo remoto. Ciò è possibile sfruttando la VI TCPOpen la quale riceve in ingresso l’indirizzo IP e il numero della porta desiderata e restituisce un ID univoco a cui fare riferimento per le operazioni successive da compiere sulla connessione.

Figura 4.9 VI TCPOpen per l’inizializzazione della connessione TCP/IP.

• L’utilizzo, per operazioni di scrittura sulla porta del dispositivo remoto, della funzione TCPWrite che riceve in ingresso l’ID della connessione e i byte da scrivere, compie l’operazione richiesta e restituisce l’ID e il numero di byte scritti.

(11)

• L’utilizzo, per operazioni di lettura dalla porta del dispositivo remoto, della funzione TCPRead, che riceve in ingresso l’ID della connessione e il numero di byte da leggere e li restituisce in uscita.

Figura 4.11 VI TCPRead per la lettura sulla connessione TCP/IP.

Nel caso in esame le tre funzioni appena viste sono chiamate nella VI

client.vi in cui si inizializza la comunicazione tra i due PC e si

inizializzano le code per la trasmissione e ricezione dei dati. La VI viene chiamata automaticamente dal Top quando viene mandato in esecuzione. La coda di ricezione viene utilizzata come buffer di ingresso per la ricezione dei risultati di conteggio, del feedback sullo stato dei segnali di Gate e Interlock, e della notifica della eventuale condizione di saturazione dei contatori. La coda di trasmissione è invece usata per inviare all’applicazione Linux le impostazioni sulla finestra temporale di acquisizione, i settaggi software dei segnali di Gate e Interlock e l’impostazione del Safety Mode.

I dati ricevuti vengono interpretati come una stringa il cui contenuto riporta inizialmente informazioni circa il tipo di dati che sono stati trasmessi e la loro dimensioni in numero di byte. Ogni pacchetto viene quindi organizzato in un cluster, simile ad una struttura del linguaggio C, costituito dai campi type, len e data per la successiva elaborazione e presentazione dell’informazione che reca. La tabella seguente mostra i vari tipi di dati che possono essere ricevuti via TCP/IP e presentati.

(12)

Tipo Dimensione in byte Significato dati

2 64 (16*4) Informazioni circa lo stato dell’esperimento in corso come la durata dell’esperimento e la finestra di acquisizione attuale 3 124 (31*4) Risultati di conteggio e contenuto del registro COUNT_INFO_REG del SDPM 5 64 (16*4) Parametri di configurazione della Detection Board 7 Informazioni circa la

dimensione del file e lo spazio disponibile sul HDD del PC su cui

vengono memorizzati tutti i dati.

8 Messaggi di errore

Tabella 4.1: Codici identificativi dei pacchetti di dati ricevuti via TCP/IP

Il formato dei dati da inviare via TCP/IP è analogo a quello dei dati ricevuti ed è anch’esso costituito da dei campi contenenti informazioni sul tipo di informazioni inviate e sulla dimensione della stringa in numero di byte. La tabella seguente riporta i codici identificativi dei pacchetti che possono essere inviati via TCP/IP.

Tipo Dimensione in byte Significato dati

1 3 Inizio, fine esperimento,

trasmissione finestra di integrazione e durata esperimento.

4 3 Settaggi Detection Board,

Hold Off Time,

Temperatura e Anode High Voltage Supply.

9 3 Attivazione di Gate,

Interlock e Safety Mode.

(13)

4.1.4 Visualizzazione risultati acquisiti

Essendo la frequenza di ricezione dei risultati di conteggio ordini di grandezza superiore alla frequenza di rinfresco delle immagini sul monitor, non tutte le acquisizioni possono essere presentate sulla mappa durante l’esecuzione di un esperimento, pertanto si è stabilita una frequenza di rinfresco dell’immagine in modo tale da visualizzare dei nuovi risultati ogni 100 ms mentre tutti i dati, compresi quelli non visualizzati, vengono registrati in un file .dat sull’hard disk del server per successive analisi. In tal modo viene rispettata la caratteristica di tempo reale del sistema prevista dalle specifiche di progetto. Terminato un esperimento è possibile andare a visualizzare i dati acquisiti sempre tramite la mappa di visualizzazione ma utilizzando una VI apposita che consente di prelevare i dati dal file .dat creato in fase di acquisizione e di riprodurre tale file con una velocità di riproduzione impostabile dall’utente.

Figura 4.9: Interfaccia grafica per l’analisi visiva dei dati acquisiti. E’possibile visualizzare anche l’andamento nel tempo di uno qualunque dei 60 settori. L’immagine si riferisce ad uno dei test effettuati sul sistema durante la demo del 17 dicembre 2004, di cui si discuterà nel capitolo 5. La frequenza dell’onda triangolare è pari a 1KHz.

(14)

4.2 Applicazione Linux

Come accennato nell’introduzione, per immagazzinare le informazioni relative ai risultati di conteggio provenienti dalla Data

Processing Board tramite il link IEEE1394 è stata sviluppata un’applicazione

in linguaggio C++ compilato per il sistema operativo Linux. Tale soluzione è stata dettata, oltre che dalla difficoltà incontrate nel reperire soluzioni valide per la gestione del protocollo IEEE1394 in ambiente Windows, anche dall’intrinseco collo di bottiglia nel flusso di dati rappresentato dall’utilizzo di un unico PC per il controllo del modulo di elaborazione. Tale soluzione avrebbe infatti comportato un rischio per il soddisfacimento dei requisiti di acquisizione in tempo reale del sistema a causa dell’esecuzione concorrenziale di più processi con accesso random al disco rigido tipica di sistemi operativi multitasking. Per contro la soluzione dell’architettura server-client presentata nell’introduzione ha consentito di sviluppare sul PC server un’applicazione Linux in grado di realizzare un’acquisizione in tempo reale dei dati ricevuti dalla Data

Processing Board. Infatti il PC su cui essa gira, equipaggiato con un disco

rigido veloce acceduto in maniera sequenziale e non random, è sfruttato quasi esclusivamente per l’immagazzinamento dei dati appartenenti al flusso isocrono in modo da evitare il rischio della perdita di dati e garantire il soddisfacimento delle specifiche di progetto. L’unico, relativo, peso aggiuntivo all’applicazione è costituito dalle saltuarie transazioni asincrone sul bus IEEE1394 e dalla gestione della comunicazione via TCP/IP con il client. Sotto questo aspetto l’applicazione realizza una sorta di ponte tra i due canali di comunicazione, inviando al client, a seconda del caso, le informazioni sullo stato di un esperimento in corso o i risultati di conteggio da riportare sulla mappa del sensore SPADA nell’ambiente LabView, informazioni ricevute dalla Data Processing Board tramite il link asincrono. Via TCP/IP il server riceve inoltre dal client i vari parametri destinati alla Data Processing Board per l’avvio di un nuovo esperimento o i settaggi da inviare alla Detection Board per il controllo dello stato dei

(15)

sensori e inoltra tali informazioni alla scheda di elaborazione operando una transazione asincrona su bus IEEE1394. Si conclude evidenziando, come ulteriore vantaggio dell’architettura server-client sviluppata, la possibilità di realizzazione di uno scenario in cui un qualunque ricercatore in astrofisica possa accedere via Ethernet al sistema di acquisizione, controllando lo stato di un esperimento in corso o variandone i parametri stando comodamente seduto alla sua scrivania posta dall’altra parte del mondo.

Figura

Figura 4.1: Architettura proposta per la comunicazione tra la Data Processing  Board e il PC remoto
Figura 4.2: Pannello frontale dell’interfaccia utente
Figura 4.3: Pannello di controllo per l’applicazione FTI.
Figura 4.4: Pannello di controllo per l’applicazione AO.
+7

Riferimenti

Documenti correlati

Offrire una maggiore quantità di servizi unitamente alla contrazione dei tempi di attesa, grazie all'utilizzo di nuove tecnologie abbinate a saperi “non digitalizzabili”, per

23 According to the Global Forum, the standard requires in each member State the existence of mechanisms for exchange of information upon request; the availability of reliable

It is shown that the choice between the two regimes is crucially dependent upon four factors: the specification of the objective function of the authorities as

nell’ambito delle trattative che precedono la stipula dell’accordo di ristrutturazione di cui all’art. Ora se è ovvio che la proposta cui si riferisce il sesto comma è

Content analytical schemes dispose of flexible structures allowing the researcher to build his/her own analytical framework. Words or segments of phrases are

Se l’uso di rame arsenicale dovesse essere confermato da nuove analisi su materiali da scavo e di sicura attribuzione Qijia, troverebbe un ulteriore elemento di sostegno l’ipotesi

Encourager les émigrés et les expatriés à investir en Syrie : Pour encourager les émigrés syriens à venir investir dans leur pays d'origine, le Président de la République a

Firstly, foreign students have been asked to specify the duration of their stay in Italy, which represents a fundamental data to understand if students are