Domanda su "SPIE e MANOMETRI"

di il
4 risposte

Domanda su "SPIE e MANOMETRI"

Ciao
sono da poco reduce da una 4 giorni di studio pesante su VB2010 e ho iniziato a sviluppare provenendo da altre piattaforme.

Ho solo un problemino, avete qualche strumento per visualizzare e gestire dei LED di stato (giallo/rosso per intenderci) e manometri di stato con lancette.
Ovvio che così puo' sembrare una domanda assurda, ma non so come gestire questi oggetti e dove andarli a prendere.

Sto sviluppando una piattaforma Hardware di gestione di valori in arrivo da sensori.

Grazie in anticipo

4 Risposte

  • Re: Domanda su "SPIE e MANOMETRI"

    Se ho ben capito vuoi un controllo già fatto per mostrare spie manometri e altro

    A pagamento (costano parecchio per un utente normale....poco per una azienda ed un uso professionale!...sopratutto se sviluppi soluzioni complete HW+SW)

    http://www.infragistics.com/dotnet/netadvantage/winforms/wingauge.aspx#Overview
    http://www.devexpress.com/Products/NET/Controls/WinForms/Gauges/circular.xml
    più brutti...ma di costo assai minore
    http://www.componentsource.com/products/gmsi-net-led/index-it-eur.html

    Però
    con un minimo di sforzo te lo fai da solo "un pallino" o una "barretta" che si colora di rosso verde o giallo!!!

    Per esempio ho buttato giù un po di di GREZZISSIMO E perfettibile codice
    Nuovo progetto di tipo -> VB.net ->Libreria di controlli Windows Form
    il progetto l'ho chiamato LED1 il controllo LedRettangolare

    L'essenziale codice
    
    Imports System.Drawing
    
    Public Class LedRettangolare
        Private _coloreLed As Integer
    
        Public Enum EnumColoreLed
            Rosso = 1
            Giallo = 2
            Verde = 3
            Trasparente = 0
        End Enum
    
        Public Property ColoreLed() As EnumColoreLed
            Get
                Return _coloreLed
            End Get
            Set(value As EnumColoreLed)
                _coloreLed = value
                'Invalida il controllo e manda il segnale al prossimo paint di ridisegnarlo
                Me.Invalidate()
            End Set
        End Property
    
        Sub New()
            ' Chiamata richiesta dalla finestra di progettazione.
            InitializeComponent()
    
            ' Aggiungere le eventuali istruzioni di inizializzazione dopo la chiamata a InitializeComponent().
            _coloreLed = EnumColoreLed.Verde
            'dimensione controllo
            Me.Width = 16
            Me.Height = 32
        End Sub
    
        Private Sub LedRettangolare_Paint(sender As Object, e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
            'bordo se desiderato
            Me.BorderStyle = Windows.Forms.BorderStyle.FixedSingle
    
            Select Case _coloreLed
                Case EnumColoreLed.Trasparente
                    Me.BackColor = Color.Transparent
                Case EnumColoreLed.Rosso
                    Me.BackColor = Color.Red
                Case EnumColoreLed.Giallo
                    Me.BackColor = Color.Yellow
                Case EnumColoreLed.Verde
                    Me.BackColor = Color.Green
                Case Else
                    Me.BackColor = Color.WhiteSmoke
    
            End Select
        End Sub
    End Class
    
    Compila tutto in Bin/Debug o in Bin/release (a seconda del tuo modello di deploy) c'hai il controllo

    Progetto di test....ho fatto un pannello in Visual studio l'ho chiamato MieiControlli ed ho aggiunto con "sfoglia" il mio controllo pescato dalla bin/release vedrai che se hai fatto tutto uguale si chiamerà LED1.dll e nel pannello apparirà come "LedRettangolare"

    Bene....una volta nel pannello....NUOVO PROGETTO windows form....trascina dal tuo pannello appena fatto il controllo LedRettangolare....io ce ne ho messi 5!
    Li nominerà
    LedRettangolare1 LedRettangolare2.....etc etc mettili accanto quanto vuoi
    nel Button
    
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Me.LedRettangolare3.ColoreLed = LED1.LedRettangolare.EnumColoreLed.Giallo
            Me.LedRettangolare5.ColoreLed = LED1.LedRettangolare.EnumColoreLed.Rosso
        End Sub
    
    TA DAH....buon divertimento!
    Fade ombre sfumature icone....tutto possibile lo lascio fare a te....basta giocare con l'oggetto GRAPHICS...trovi mille tutorial nella rete!!!
  • Re: Domanda su "SPIE e MANOMETRI"

    Se poi vuoi "giochicciarci" un po costruendo a runtime una barra led stile Kit di autocar
    Metti nei rferimenti di un progetto LED1

    ed incolla
    
    Imports LED1
    
    Public Class FrmTestLed
        Private WithEvents myTimer As New Timer
        Private conta As Integer = 0
        Private direzioneUP As Boolean = True
        Dim BarraLed As New List(Of LED1.LedRettangolare)
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            myTimer.Interval = 100
            myTimer.Start()
        End Sub
    
        Private Sub myTimer_Tick(sender As Object, e As System.EventArgs) Handles myTimer.Tick
            BarraLed(conta).ColoreLed = LED1.LedRettangolare.EnumColoreLed.Verde
            If direzioneUP = True Then
                conta += 1
            Else
                conta -= 1
            End If
            If conta >= BarraLed.Count Then
                conta = BarraLed.Count - 1
                direzioneUP = False
            End If
            If conta < 0 Then
                conta = 0
                direzioneUP = True
            End If
            BarraLed(conta).ColoreLed = LED1.LedRettangolare.EnumColoreLed.Rosso
        End Sub
    
    
    
        Private Sub FrmTestLed_Load(sender As Object, e As System.EventArgs) Handles Me.Load
            'crea barra led
            BarraLed.Add(New LED1.LedRettangolare)
            BarraLed.Add(New LED1.LedRettangolare)
            BarraLed.Add(New LED1.LedRettangolare)
            BarraLed.Add(New LED1.LedRettangolare)
            BarraLed.Add(New LED1.LedRettangolare)
            BarraLed.Add(New LED1.LedRettangolare)
            BarraLed.Add(New LED1.LedRettangolare)
            BarraLed.Add(New LED1.LedRettangolare)
            BarraLed.Add(New LED1.LedRettangolare)
            BarraLed.Add(New LED1.LedRettangolare)
            'piazza barra led
            Dim Xpos As Integer = 50
            Dim Ypos As Integer = 100
            For Each ct As LED1.LedRettangolare In BarraLed
                ct.Top = Ypos
                ct.Left = Xpos
    
                Xpos += (ct.Width + 4)
                Me.Controls.Add(ct)
            Next
    
        End Sub
    End Class
    
    
    Voilà!
  • Re: Domanda su "SPIE e MANOMETRI"

    Ciao progetto interessante, ma ho provato a realizzare quello che avete postato sono arrivato fino ad avere la dll LED1.

    non riesco a fare questo passaggio

    progetto di wodka40

    Progetto di test....ho fatto un pannello in Visual studio l'ho chiamato MieiControlli ed ho aggiunto con "sfoglia" il mio controllo pescato dalla bin/release vedrai che se hai fatto tutto uguale si chiamerà LED1.dll e nel pannello apparirà come "LedRettangolare"
  • Re: Domanda su "SPIE e MANOMETRI"

    Ciao,

    anche se il post è datato e viola il regolamento penso che possa essere di grande utilizzo anche oggi, visto l'avvento dell'industria 4.0.
    Qui in italiano:
    https://www.settorezero.com/wordpress/software/aquagauge-control-for-net/
    Qui ulteriori dettagli in inglese:
    https://www.codeproject.com/articles/20341/aqua-gaug

    Ciao e buona lettura
Devi accedere o registrarti per scrivere nel forum
4 risposte