Vi avevo avvertiti di restare sintonizzati perché sarei tornato presto a dirvi come era stato il nostro approccio al mondo del database. Il momento era maturo anche se forse avremmo dovuto aspettare una settimana in cui potevamo dedicarci maggior tempo e non solo qualche ritaglio qua e là.
Avrete già capito che sto cercando qualche piccola scusa per indorare la pillola, perché il primo impatto è stato equivalente ad una sconfitta. L'idea, ve la ripeto, è che il nostro software prenda tutte le informazioni di configurazione da un database e sempre verso lo stesso database ritorni le misure effettuate dagli strumenti per renderle accessibili a tutti gli interessati. Il piano è di usare una piattaforma seria e performante come Oracle, così ci ha suggerito il nostro esperto DBA, ma prima di affrontare il mostro ci ha anche suggerito di iniziare la progettazione delle tabelle usando qualcosa di più semplice, come Access, senza per questo perdere di generalità.
Cerca nel blog
Loading
Visualizzazione post con etichetta LabVIEW. Mostra tutti i post
Visualizzazione post con etichetta LabVIEW. Mostra tutti i post
21 gennaio 2013
14 gennaio 2013
[LabVIEW] Prossimo passo, il database
Le scorse due settimane, le prime di questo 2013, sono state particolarmente produttive per il nostro piccolo, ma ambizioso progetto software. Saranno state le vacanze natalizie che hanno cancellato la stanchezza e hanno portato ventate di nuove idee, sarà stata la ripresa a ritmi ridotti delle altre attività del laboratorio, ma abbiamo fatto grossi passi in avanti.
L'integrazione del primo strumento di misura all'interno del software generale è completa al 99% e anche l'infrastruttura generale, quella che sarà comune a tutti gli strumenti ha fatto un grosso passo in avanti. Il prossimo passo sarà la gestione del database all'interno del programma.
L'idea è di avere un database Oracle installato fisicamente su un server dedicato e LabVIEW accederà in lettura e scrittura alle informazione attraverso il Database Connectivity Toolkit. Non ho mai usato questo toolkit precedentemente, ma stando alle informazioni riportate sul manuale si basa su ODBC e quindi il grosso del lavoro se lo smazzerà il sistema operativo lasciando all'utente solo il compito di aprire la giusta Data Source.
Se la cosa vi interessa restate collegati, perché nelle prossime settimane stresseremo un po' il nostro esperto in basi dati per creare la struttura di tavole e indici che meglio si presta a descrivere il nostro sistema e poi inizieremo a sperimentare.
L'integrazione del primo strumento di misura all'interno del software generale è completa al 99% e anche l'infrastruttura generale, quella che sarà comune a tutti gli strumenti ha fatto un grosso passo in avanti. Il prossimo passo sarà la gestione del database all'interno del programma.
L'idea è di avere un database Oracle installato fisicamente su un server dedicato e LabVIEW accederà in lettura e scrittura alle informazione attraverso il Database Connectivity Toolkit. Non ho mai usato questo toolkit precedentemente, ma stando alle informazioni riportate sul manuale si basa su ODBC e quindi il grosso del lavoro se lo smazzerà il sistema operativo lasciando all'utente solo il compito di aprire la giusta Data Source.
Se la cosa vi interessa restate collegati, perché nelle prossime settimane stresseremo un po' il nostro esperto in basi dati per creare la struttura di tavole e indici che meglio si presta a descrivere il nostro sistema e poi inizieremo a sperimentare.
16 dicembre 2012
[LabVIEW] Aree colorate nei grafici
Torniamo a parlare di LabVIEW e questa volta lo facciamo concentrandoci sui grafici che sono un aspetto assolutamente da non trascurare durante la realizzazione di un'interfaccia utente specialmente in ambito tecnico scientifico. Perché se un numero è importante, agli occhi di un persona opportunamente formata, un grafico dice molto, ma molto di più.
LabVIEW offre un certo numero di possibilità di visualizzare graficamente l'andamento di sequenze di numeri, forse troppe! Tant'è che prima di partire con la realizzazione di un grafico, se siete dei principianti, vi consiglio di leggervi la documentazione in modo da capire la differenza tra Graph e Chart e tutti i modi che esistono per disegnare più curve sullo stesso grafico. Se le curve hanno variabilità verticale molto differente, allora potete considerare l'utilizzo di più scale (Scales), ovvero creare più assi verticali ed assegnare ad ogni curva un proprio asse che può avere l'adattamento automatico dell'intervallo (Autoscale).
LabVIEW offre un certo numero di possibilità di visualizzare graficamente l'andamento di sequenze di numeri, forse troppe! Tant'è che prima di partire con la realizzazione di un grafico, se siete dei principianti, vi consiglio di leggervi la documentazione in modo da capire la differenza tra Graph e Chart e tutti i modi che esistono per disegnare più curve sullo stesso grafico. Se le curve hanno variabilità verticale molto differente, allora potete considerare l'utilizzo di più scale (Scales), ovvero creare più assi verticali ed assegnare ad ogni curva un proprio asse che può avere l'adattamento automatico dell'intervallo (Autoscale).
3 dicembre 2012
[LabVIEW] Consigli per una bella UI
Venerdì sera scorso ero un po' demoralizzato. Per quella giornata avevamo previsto di fare una piccola applicazione per leggere alcuni dati e mostrarli in modo chiaro e semplice agli utenti, ma non ci siamo riusciti. Non che il compito fosse troppo arduo, ma le troppe interruzioni e le urgenze avevano ridotto al minimo il tempo a nostra disposizione, così durante il week end ho investito un paio d'ore di riposo per fare quello che ci mancava.
Non è ancora finita, ma il grosso dell'applicazione è lì, anche perché il sabato e la domenica sono per la famiglia e non certo per il lavoro che già mi prende dal lunedì al venerdì.
Appena ho raggiunto lo scopo che mi ero prefissato per queste ore straordinarie, mi sono imbattuto in una bellissima playlist sul tubo di Simon Hogg con un buon numero di video-tutorial su come migliorare l'aspetto e la funzionalità delle interfacce utente sviluppate con LabVIEW. Incollo la playlist qui sotto...
Non è ancora finita, ma il grosso dell'applicazione è lì, anche perché il sabato e la domenica sono per la famiglia e non certo per il lavoro che già mi prende dal lunedì al venerdì.
Appena ho raggiunto lo scopo che mi ero prefissato per queste ore straordinarie, mi sono imbattuto in una bellissima playlist sul tubo di Simon Hogg con un buon numero di video-tutorial su come migliorare l'aspetto e la funzionalità delle interfacce utente sviluppate con LabVIEW. Incollo la playlist qui sotto...
26 novembre 2012
[LabVIEW] Il controllo ad albero (Tree Control)
Il controllo ad albero, anche noto come Tree Control, è tra gli ultimi nati nel linguaggio di programmazione grafica di National Instruments e può trovare applicazione in un svariato numero di situazioni. Certo potrebbe arrivare con un certo numero di funzioni attivabili direttamente dall'interfaccia grafica anziché dover ricorrere alla programmazione. Un esempio su tutte è la possibilità di ordinare il contenuto della tabella utilizzando una particolare colonna.
Guardate per esempio l'immagine qui sotto, viene spontaneo cliccare sull'intestazione della colonna per ordinare il contenuto della tabella in funzione di quella colonna. Ovviamente cliccando sopra una seconda volta alla stessa colonna, uno si aspetta di avere la tabella ordinata sempre secondo quella chiave, ma nell'ordine inverso.
Guardate per esempio l'immagine qui sotto, viene spontaneo cliccare sull'intestazione della colonna per ordinare il contenuto della tabella in funzione di quella colonna. Ovviamente cliccando sopra una seconda volta alla stessa colonna, uno si aspetta di avere la tabella ordinata sempre secondo quella chiave, ma nell'ordine inverso.
21 novembre 2012
LabVIEW ad oggetti
Sono particolarmente soddisfatto questa sera perché proprio sul finire della giornata lavorativa abbiamo concluso un punto importante nel lavoro di programmazione che stiamo facendo e di cui vi ho già accennato in precedenza. Nello specifico volevamo maneggiare dei "record" contenuti su il database interno dello strumento, e fino a qui non ci sarebbe nulla di eccezionale, se non fosse che la struttura dei "record" non fosse uniforme e ce ne fossero parecchie varianti.La complicazione sta proprio nel dover gestire questa diversità nonostante ci sia una radice comune e per tutti i tipi sia necessaria un'identica sequenza di operazioni. Chi ha programmato ad oggetti, sa che questo è il caso tipico di applicazione dell'ereditarietà e del polimorfismo, cardini di questo modo di progettare un software. Avevo parlato di queste due caratteristiche della programmazione ad oggetti nel mini corso che avevo anche pubblicato su questo blog, se qualcuno fosse interessato erano rispettivamente la lezione 4 e la lezione 5.
Di fronte a questa sfida, non ho resisto alla tentazione e ho provato l'estensione ad oggetti del linguaggio di National Instruments. Mi ci è voluto un po', specie per capire il gergo e le modalità in cui la programmazione ad oggetti testuale è stata tradotta in icone, ma devo dire che una volta appreso il minimo, si va avanti piuttosto facilmente.
Per chi volesse avere un'introduzione e una spinta per iniziare, il posto giusto è questo webinar di presentazione e i link ivi presentati. E' in inglese, ma è talmente ben fatto che deve essere assolutamente visto anche se siete dei maghi di C++.
8 novembre 2012
Non tutte le GUI sono uguali
![]() |
| Esempio di come non vorrei fosse una GUI |
Fino all'inizio di questa settimana ci siamo occupati di implementare tutti i comandi che erano descritti sul manuale, incluso correggere i numerosi errori del manuale stesso. Ma da un paio di giorni abbiamo iniziato la fase due, ovvero inserire la libreria di comandi messa insieme in un'interfaccia grafica decente.
Ecco, questo decente è la discriminante. Se chiedete ad un fisico quadratico medio, verosimilmente nella sua vita da ricercatore avrà avuto qualche contatto con la programmazione e per lui il massimo di interfaccia utente sarà un terminale testuale con messaggi di debug che apparivano e sparivano alla velocità della luce.
Un'interfaccia deve essere funzionale, facile da usare, intuitiva e perché no, anche bella. Esattamente l'opposto di quanto descritto sopra. Per il nostro software abbiamo scelto la piattaforma di sviluppo LabVIEW, di cui vi ho già parlato, dove costruire interfacce grafiche belle è piuttosto semplice, anche se per renderle funzionali, user-friendly e intuitive ci vogliono comunque un sacco di ore di lavoro.
Spero che come scusa per essere un po' assente basti!
10 ottobre 2012
[LabVIEW] La definizione di nuovi tipi, controlli e indicatori
Chi nella propria vita ha programmato almeno un po' in un linguaggio testuale, sicuramente si è imbattuto nella definizione di nuovi tipi di dati. A partire dai tipi standard, come i numeri interi, quelli in virgola mobile, i caratteri e i booleani, in gran parte dei linguaggi di programmazione è possibile definire nuovi tipi. La domanda sorge spontanea: è possibile fare altrettanto in LabVIEW?
Scaricate il progetto tutorial da questo indirizzo e continuate a leggere...
Scaricate il progetto tutorial da questo indirizzo e continuate a leggere...
8 ottobre 2012
[LabVIEW] L'oscilloscopio virtuale
Lo scopo di questo post è di farvi vedere come realizzare con LabVIEW una piccola applicazione, senza troppe pretese, ma completa e funzionale in tutto e dall'aspetto professionale. Ecco gli aspetti che andremo a toccare in questa puntata di LabVIEW per tutti:
- Come realizzare un'applicazione usando la programmazione per eventi.
- Abilitare il login dell'utente in modo avere disponibili comandi differenti a seconda della tipologia di utente (normal user, power user e super cow).
- Modificare il menu dell'applicazione aggiungendo comandi definiti dall'utente.
Se siete pronti, direi che possiamo iniziare, scaricatevi l'intero progetto dell'oscilloscopio virtuale da qui e cominciate a sfogliare il diagramma mentre leggete il resto.
1 ottobre 2012
[LabVIEW] Come ottimizzare la Top Level Application
Ho avuto il mio primo incontro/scontro con LabVIEW, il linguaggio di programmazione visuale di National Instruments quando ero ancora all'università. All'epoca ero troppo interessato a far funzionare le cose e troppo poco istruito in programmazione per farmi troppo domande e cercare di ottimizzare le cose. Da allora, più o meno da vicino, ho sempre avuto a che fare con i VI (virtual instruments) ovvero i programmi e adesso tornerò a farne un uso pesante.
A differenza di allora, adesso oltre che a funzionare, mi piace cercare di ottimizzare i miei programmi per evitare di avere del codice che divora risorse come uno squalo senza restituire nulla in cambio. Man mano che trovo qualche cosa di utile, cercherò di scriverla qui in un post, non aspettatevi un vero e proprio tutorial o un corso di LabVIEW, ma più semplicemente una collezione di informazioni che spero vi possano essere utili come lo sono state a me.
Finita l'introduzione, veniamo al discorso di oggi. Ottimizzare l'esecuzione della top level application, ovvero come utilizzare gli eventi.
A differenza di allora, adesso oltre che a funzionare, mi piace cercare di ottimizzare i miei programmi per evitare di avere del codice che divora risorse come uno squalo senza restituire nulla in cambio. Man mano che trovo qualche cosa di utile, cercherò di scriverla qui in un post, non aspettatevi un vero e proprio tutorial o un corso di LabVIEW, ma più semplicemente una collezione di informazioni che spero vi possano essere utili come lo sono state a me.
Finita l'introduzione, veniamo al discorso di oggi. Ottimizzare l'esecuzione della top level application, ovvero come utilizzare gli eventi.
Iscriviti a:
Post (Atom)


