Oppure

Loading
03/04 15:35
nightwolf
Stavo pensando, ma se da arduino inviassi i dati del potenziometro solamente quando lo aziono, per evitare il rimbalzo del timer3, cambierebbe qualcosa a livello di codice?
aaa
04/04 22:24
nightwolf
passiamo alle spiegazioni,
perche per i gradi usi

Double.TryParse


mentre per il volume usi

Integer.TryParse

non riceve sempre dei numeri?
spiegami gentilmente la differenza tra double.tryparse e integer.tryparse ma sopratutto cosa è questa funzione tryparse
grazie mille

aaa
05/04 16:50
Carlo
Sono in giro per aeroporti, non sempre posso rispondere.
Perché usi timer3 a che serve?

Postato originariamente da nightwolf:

passiamo alle spiegazioni,
perche per i gradi usi

Double.TryParse


mentre per il volume usi

Integer.TryParse

non riceve sempre dei numeri?
spiegami gentilmente la differenza tra double.tryparse e integer.tryparse ma sopratutto cosa è questa funzione tryparse
grazie mille


Non si ricevono dei numeri si ricevono stringhe.
TrayParse tenta di interpretare una stringa come fosse un valore numerico e se ci riesce mette il valore convertito nella variabile assegnata, nel nostro caso avanzamento con restituzione di true.
Se non ci riesce, lascia invariato avanzamento e restituisce false.
Siccome Double.TryParse(valoriDivisi(0), avanzamento) è dentro ad un If il codice all'interno dell'If viene eseguito solo se la conversione è avvenuta, infatti se guardi sull'else c'è evidenziato:
   Else
       ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Elaborato = Errore " & valoriDivisi(0) & " non è un intero")
   End If


inizialmente il valore dei gradi arrivava con il punto decimale
il punto veniva sostituito con la virgola
 valoriDivisi(0) = valoriDivisi(0).Replace(".", ",") ' se ci fosse il punto decimale viene sostituito con la virgola decimale

e
If Double.TryParse(valoriDivisi(0), avanzamento) Then convertiva se possibile la stringa ricevuta in double, che poi finendo in avanzamento, dichiarato come integer, veniva arrotondato all'intero più vicino.

ora che arrivano i gradi senza punto decimale la riga:
valoriDivisi(0) = valoriDivisi(0).Replace(".", ",";) non serve più
e Double.TryParse può essere [b]Integer.TryParse[/b]
Ultima modifica effettuata da Carlo 05/04 16:53
in programmazione tutto è permesso
05/04 18:22
Ma scusa vuoi spiegata dal forum la differenza tra Integer e Double?

Io non capisco in cosa si e' trasformato questo forum. Una domanda da centinaia di post e ora comincia un corso di base del linguaggio?

Ora capisco perche' questo forum e' praticamente abbandonato...
Ultima modifica effettuata da 06/04 0:45
05/04 22:47
nightwolf
Postato originariamente da Carlo:

Sono in giro per aeroporti, non sempre posso rispondere.
Perché usi timer3 a che serve?

Postato originariamente da nightwolf:

passiamo alle spiegazioni,
perche per i gradi usi

Double.TryParse


mentre per il volume usi

Integer.TryParse

non riceve sempre dei numeri?
spiegami gentilmente la differenza tra double.tryparse e integer.tryparse ma sopratutto cosa è questa funzione tryparse
grazie mille


Non si ricevono dei numeri si ricevono stringhe.
TrayParse tenta di interpretare una stringa come fosse un valore numerico e se ci riesce mette il valore convertito nella variabile assegnata, nel nostro caso avanzamento con restituzione di true.
Se non ci riesce, lascia invariato avanzamento e restituisce false.
Siccome Double.TryParse(valoriDivisi(0), avanzamento) è dentro ad un If il codice all'interno dell'If viene eseguito solo se la conversione è avvenuta, infatti se guardi sull'else c'è evidenziato:
   Else
       ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Elaborato = Errore " & valoriDivisi(0) & " non è un intero")
   End If


inizialmente il valore dei gradi arrivava con il punto decimale
il punto veniva sostituito con la virgola
 valoriDivisi(0) = valoriDivisi(0).Replace(".", ",") ' se ci fosse il punto decimale viene sostituito con la virgola decimale

e
If Double.TryParse(valoriDivisi(0), avanzamento) Then convertiva se possibile la stringa ricevuta in double, che poi finendo in avanzamento, dichiarato come integer, veniva arrotondato all'intero più vicino.

ora che arrivano i gradi senza punto decimale la riga:
valoriDivisi(0) = valoriDivisi(0).Replace(".", ",";) non serve più
e Double.TryParse può essere [b]Integer.TryParse[/b]


grazie mille per la spiegazione, timer3 lo uso perchè nella grafica il controllo del volume non è visibile, mentre con timer3 lo rendo visibile qualdo lo utilizzo. con questo codice
 Private Sub Timer3_Tick(sender As Object, e As EventArgs) Handles Timer3.Tick
        principale.Volume_control1.Visible = True
        principale.lb_volume.Visible = True
        Label1.Visible = True
        Volume_control1.Visible = True
        lb_volume.Visible = True
        video.Volume_control1.Visible = True
        video.lb_volume.Visible = True
        Timer4.Start()
    End Sub

    Private Sub Timer4_Tick(sender As Object, e As EventArgs) Handles Timer4.Tick
        Timer3.Stop()
        principale.Volume_control1.Visible = False
        principale.lb_volume.Visible = False
        Label1.Visible = False
        Volume_control1.Visible = False
        lb_volume.Visible = False

    End Sub

timer3 ha come interval 100
mentre timer4 ha come interval 3000
questo è solo per aspetto grafico perchè non mi piace vedere il controllo del volume sempre
aaa
06/04 5:14
Carlo
Postato originariamente da nightwolf:
grazie mille per la spiegazione, timer3 lo uso perchè nella grafica il controllo del volume non è visibile, mentre con timer3 lo rendo visibile qualdo lo utilizzo. con questo codice
 Private Sub Timer3_Tick(sender As Object, e As EventArgs) Handles Timer3.Tick
        principale.Volume_control1.Visible = True
        principale.lb_volume.Visible = True
        Label1.Visible = True
        Volume_control1.Visible = True
        lb_volume.Visible = True
        video.Volume_control1.Visible = True
        video.lb_volume.Visible = True
        Timer4.Start()
    End Sub

    Private Sub Timer4_Tick(sender As Object, e As EventArgs) Handles Timer4.Tick
        Timer3.Stop()
        principale.Volume_control1.Visible = False
        principale.lb_volume.Visible = False
        Label1.Visible = False
        Volume_control1.Visible = False
        lb_volume.Visible = False

    End Sub

timer3 ha come interval 100
mentre timer4 ha come interval 3000
questo è solo per aspetto grafico perchè non mi piace vedere il controllo del volume sempre

Perché pensi che possa essere associato ai salti di volume???
in programmazione tutto è permesso
06/04 5:17
Carlo
Postato originariamente da nightwolf:

Stavo pensando, ma se da arduino inviassi i dati del potenziometro solamente quando lo aziono, per evitare il rimbalzo del timer3, cambierebbe qualcosa a livello di codice?

Se da arduino ricevi ripetutamente sempre lo stesso valore di volume, perché dovrebbe causare dei rimbalzi??
in programmazione tutto è permesso
06/04 7:50
nightwolf
Beh!, credo che dipenda da quello, dal timer3, è l unico associato alla visualizzazione di controll_volume1, se tolgo timer3 il controllo non si vede, infatti se non viene attivato timer3, il control_volume1 non si vede. È l unica spiegazio e che posso dare.
aaa