Creative Commons BY-NC-ND 2.5Questo sito e tutto il suo contenuto sono distribuiti sotto la licenza Creative Commons Attribuzione - Non Commerciale - Non opere derivate 2.5 Italia e con le condizioni d'uso definite nel disclaimer: siete pregati di leggere entrambi questi documenti prima di usufruire dei contenuti di questo sito. Per alcuni contenuti è necessaria una registrazione gratuita: non è necessario pagare e non è necessario accumulare punteggi per accedere agli articoli e scaricare i sorgenti: basta solo essere onesti. Se volete che questo sito continui a rimanere attivo, a contribuire ogni giorno alla diffusione della cultura libera, non copiate il materiale per ripubblicarlo in altri luoghi. Se volete partecipare su settorezero e rendere le vostre idee, i vostri progetti, fruibili da tutti senza limitazioni potete farlo tranquillamente.

Uno strumento analogico a lancetta per i nostri programmi in .NET

Autore: Giovanni Bernardo | Data pubblicazione: 3 gennaio 2011
Categorie: VB.NET

E’ da tempo ormai che progetto di realizzarmi un rover comandato dal pc (e che possa avere una doppia modalità di funzionamento: autonomo/comandato). Molte delle parti sono già pronte ma mi mancava, tra le altre cose, un controllo a lancetta decente da poter includere nel software di controllo per poter visualizzare parametri analogici come velocità, stato batterie o altro.

E’ vero potrei mettere delle label ma… non è nel mio stile realizzare cose così approssimative (lo so, sbaglio perchè a causa della mia troppa puntigliosità spesso ci metto anni per portare a termine un progetto). E poi… volete mettere un controllo a lancetta con delle semplici scritte? Non c’è paragone!

Avevo iniziato anni fa a realizzare un controllo analogico, da utilizzare come DLL esterna, mettendo mano alle librerie GDI+ e ad un po’ di trigonometria. Ero pure riuscito ad ottenere qualcosa di abbastanza decente e funzionale. Qualche settimana fa decido di rimettermici su (anche perchè sto facendo dei lavori a casa e il laboratorio è momentaneamente inaccessibile, per cui posso dedicarmi solo al software!) e decido di controllare prima se nel panorama internazionale del .NET, nel frattempo, fosse apparso qualcosa di simile a ciò che avevo cominciato a progettare e che fosse soprattutto Freeware.

Ecco che su CodeProject appare questo AquaGauge control, free, scritto in C# e per il quale è disponibile addirittura il sorgente! Leggo con interesse tutto l’articolo: è in pratica lo stesso lavoro che avevo iniziato io ma molto più accurato graficamente… Non c’è che dire: Ambalavanar Thirugnanam ha fatto davvero un lavoro eccellente!

Decido quindi di provarlo un po’. Mi piace molto ma per molti versi non mi soddisfa: ci sono molti bug (il valore digitale non sempre viene aggiornato, ridimensionando il controllo sul form si ridimensiona solo la lancetta e il resto dello strumento rimane fermo, ci sono problemi col separatore decimale ecc) e alcune cose non sono di facile comprensione (ad esempio l’eventuale arco colorato che identifica una soglia era da impostare come valore raccomandato + percentuale, invece a me viene più semplice impostare un valore iniziale e un valore finale. Oltre al fatto che era di colore verde, non modificabile… Io sono molto esigente: ho bisogno di almeno due soglie con i colori personalizzabili!).

Tantissimi altri aspetti, poi, non erano modificabili: tutti i colori fissi, senza nessuna proprietà che permetta di impostare una grafica differente, poi vorrei far sparire il display digitale ma anche fargli visualizzare un valore diverso da quello segnalato dalla lancetta… Insomma… così com’era non me la sentivo di utilizzarlo nel mio progetto! Comincio così a pensare a cosa potevo fare. Il sorgente è disponibile ma è scritto in C# del quale non sono pratico!

Inizio quindi dallo scaricare SharpDevelop, che è l’alternativa Open Source a Visual Studio. Lo installo e apro il sorgente: non è affatto difficile: come struttura è molto simile al VB.NET di cui sono già pratico ma la sintassi è quella del C (del quale pure sono pratico anche se relativamente al mondo dei microcontrollori). Piano piano così comincio a rilavorare il codice. Il risultato ottenuto mi ha più che soddisfatto: ho corretto tutti i bug ed ho aggiunto un’infinità di altre caratteristiche che adesso ne fanno un controllo davvero versatile e personalizzabile sotto ogni aspetto. Scrivo inoltre un po’ di documentazione per renderne più facile  la diffusione e l’utilizzo e contatto l’autore originale per parlargli di tutto questo e per fargli i complimenti.

Un controllo così è davvero difficile trovarlo gratis, cose così in genere si pagano e anche profumatamente!

L’autore come era facile immaginare dal momento che ha rilasciato anche il sorgente, si è dimostrato molto disponibile e alla fine i complimenti sono diventati reciproci e così è diventato un po’ il “nostro” controllo. Voglio quindi ringraziare pubblicamente l’ingegnere indiano Ambalavanar Thirugnanam per la disponibilità, la cortesia e complimentarmi per il fantastico lavoro svolto!

Bando alle ciance, il download della versione modificata da me è disponibile nella pagina a lui dedicata qui su settorezero. Descrizione e documentazione li ho redatti in lingua inglese per ovvi motivi ma chi usa un linguaggio di programmazione dubito che abbia qualche problema a leggere della documentazione in inglese (e se lo ha, allora non è un programmatore!).

Installazione

Illustro di seguito l’installazione su VB.NET 2008, l’installazione con altre versioni  o sul C# è più o meno simile. Prima di tutto copiate il file AquaGauge.dll in una cartella nel vostro computer. Nell’IDE di VB.NET cliccate con il tasto destro su un punto qualsiasi nella barra degli strumenti e selezionate “Scegli Elementi” :

Appare la seguente finestra con il tabstrip “Componenti di .NET Framework” già selezionato:

Premete il pulsante Sfoglia e cercate il file AquaGauge.dll nella cartella in cui l’avete copiato. Una volta trovato fate doppio click sul nome del file e il nuovo controllo apparirà in questa finestra:

Premete OK, appare un nuovo controllo in fondo alla casella degli strumenti:

Sarà quindi possibile trascinare questo controllo sul form ed utilizzarlo come tutti gli altri controlli. Il controllo sarà sempre presente li anche alle successive aperture dell’IDE.

A voi il controllo aggiunto potrebbe trovarsi in un’altra posizione rispetto a quella illustrata nell’immagine: tutto dipende da come avete arrangiata la casella degli strumenti.

Quando andrete a compilare il vostro programma, ricordatevi di distribuire anche la libreria AquaGauge.dll insieme all’eseguibile, mettendola nello stesso percorso in cui si trova il .exe principale, altrimenti l’eseguibile non partirà causando un crash. Durante le operazioni di debug non è necessario copiare la dll nelle cartelle debug e bin in quanto lo fa l’IDE in automatico.

Demo

Ho allegato una demo nei download giusto per far capire come eseguire un’utilizzo di base del controllo AquaGauge.  Forse non ce n’era nemmeno bisogno ma è meglio fare le cose per bene! Nel video seguente è mostrato come funziona la demo: c’è un form con due controlli AquaGauge: quello di sinistra ha il flag ValueToDigital impostato su TRUE, per cui il valore digitale segue quello analogico, quello di destra ha impostate due “soglie” colorate una in verde e un’altra in giallo, con la ghiera di colore rosso. Sul secondo controllo il flag ValueToDigital è impostato su FALSE per cui è possibile fornire al controllo due diversi valori: uno che verrà mostrato dalla lancetta e un’altro che verrà mostrato dal display a 7 segmenti. Le istruzioni per l’utilizzo del controllo, con la descrizione delle varie proprietà, sono disponibili nei documenti presenti nel download.

Downloads

Download AquaGauge DLL

AquaGauge Demo (68)
L'articolo ti è piaciuto o ti è stato utile per risolvere un problema? SettoreZero è realizzato soltanto con contenuti originali: tutti gli articoli sono curati con passione dagli autori e nulla viene copiato da altri siti. Supporta e mantieni in vita SettoreZero con una donazione: basta soltanto un caffè o una birra. Puoi supportare SettoreZero anche con uno dei progetti elencati nella sezione servizi o partecipare anche tu con un tuo articolo/progetto personale.

Se desiderate che SettoreZero continui a rimanere gratuito e fruibile da tutti, non copiate il nostro materiale e segnalateci se qualcuno lo fa.

Puoi andare alla fine dell'articolo e lasciare un commento. I trackback e i ping non sono attualmente consentiti.

  1. #1 da pwm il 29 aprile 2013

    Leggo spesso i vostri articoli , questo lo ho scaricato è veramente un bel lavoro! per l’utilizzo in un mio progetto in VB posso chiedere l’autorizzazione qui?

Devi essere collegato per lasciare un commento.

settorezero.com e il logo Zroid™ ©2007÷2015 Giovanni Bernardo - E' vietata la copia e la distribuzione anche parziale dei contenuti di questo sito web senza l'esplicito consenso dell'autore.
I contenuti di settorezero.com sono distribuiti sotto una licenza Creative Commons Attribuzione-Non Commerciale-Non Opere derivate 2.5 Italia a cui vanno aggiunte le condizioni d'uso definite nel disclaimer.
settorezero.com e tutti i suoi contenuti sono tutelati dalla legge sul diritto d'autore per cui i trasgressori sono perseguibili a norma di legge. Settorezero fa uso dei cookie leggi l'informativa estesa.
Creative Commons BY-NC-ND 2.5
Il tema di questo sito è basato sul tema Fusion per wordpress, realizzato originariamente da digitalnature e fa uso del plugin Wassup per il computo delle statistiche. Per contattare l'autore siete pregati di utilizzare la sezione contatti.
Per essere aggiornato con tutte le novità di settorezero.com seguici anche anche su Facebook Twitter Tumblr Blogspot Youtube.