29/03 9:40
nightwolf
lo so, ma non se ne viene a capo, adesso credo di essere ad un buon punto bisogna capire il perchè il volume mi da errore o non funziona in modo fluido
aaa
29/03 11:52
Carlo
Con serialport1.readline non hai eliminato gli errori, leggi solo il primo dato presente nel buffer, quello che sta prima di VbCrLf (\n) che solitamente non è quello più corretto, se riguardi la foto che hai postato e che riallego il dato più congruo è il secondo
Di seguito il codice che filtra tutti gli errori usabile in Timer2:
sulla function rimetti SerialPort1.ReadExisting, perchè prendiamo la seconda riga se c'è
Ricorda che con la SOLUZIONE 3, hai la lettura sincrona...
Di seguito il codice che filtra tutti gli errori usabile in Timer2:
Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick Dim str As String = str = RiceviDati() ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Ricevuto = " & str.Replace(vbCrLf, "\n")) ListBox1.TopIndex = ListBox1.Items.Count - 1 ListBox1.HorizontalScrollbar = True Dim righe() = str.Split(vbCrLf) Dim uso = 0 ' la prima riga If righe.Length = 0 Then Return If righe.Length > 1 Then uso = 1 ' la seconda riga ' Elaboro la stringa Dim valoriDivisi() As String = righe(uso).Split(";") If valoriDivisi.Length <> 2 Then ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Elaborato = Errore i valori non sono due") Return End If ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Selezionato = " & righe(uso)) If valoriDivisi(0) = "E" Then lblgradi.Text = "errore" ' in valoriDivisi(1) ' il tipo d'errore da mostrare dove vuoi ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Elaborato = Errore " & valoriDivisi(0) & " - " & valoriDivisi(1)) Else ' Il primo dato è riferito ai gradi della bussola valoriDivisi(0) = valoriDivisi(0).Replace(".", ",") ' se ci fosse il punto decimale viene sostituito con la virgola decimale If Double.TryParse(valoriDivisi(0), avanzamento) Then If avanzamento <= 0 Or avanzamento >= 360 Then ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Elaborato Bussola = Errore il valore " & avanzamento.ToString() & " è fuori range") Else lblgradi.Text = avanzamento.ToString("000°") Pcboxbussola.Invalidate() ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Elaborato Bussola = " & avanzamento.ToString("000°")) End If Else ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Elaborato = Errore " & valoriDivisi(0).Substring(0, 3) & " non è un intero") End If '' Il dato in: valoriDivisi(1), è riferito al volume e è una stringa Dim volume As Integer = 0 If Integer.TryParse(valoriDivisi(1), volume) Then If volume < 0 Or volume > 100 Then ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Elaborato Volume = Errore il valore " & volume.ToString() & " è fuori range") Else ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Elaborato Volume = " & valoriDivisi(1)) media_pleyer.lb_volume.Text = valoriDivisi(1) + "%" media_pleyer.Volume_control1.value = valoriDivisi(1) lb_volume.Text = valoriDivisi(1) + "%" Volume_control1.value = valoriDivisi(1) media_pleyer.Timer3.Start() media_pleyer.AxWindowsMediaPlayer1.settings.volume = media_pleyer.Volume_control1.value AxWindowsMediaPlayer1.settings.volume = media_pleyer.Volume_control1.value video.Wmp1.settings.volume = video.Volume_control1.value End If Else ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Elaborato = Errore " & valoriDivisi(1) & " non è un intero") End If End If End Sub
sulla function rimetti SerialPort1.ReadExisting, perchè prendiamo la seconda riga se c'è
Function RiceviDati() As String Dim Ricevuti As String Try Ricevuti = SerialPort1.ReadExisting If Ricevuti = Nothing Then Return "E;null" ' ritorna con la E else Return Ricevuti End If Catch ex As Exception Return "E;" & ex.Message ' ritorna con la E End Try End Function
Ricorda che con la SOLUZIONE 3, hai la lettura sincrona...
Ultima modifica effettuata da Carlo 29/03 13:29
in programmazione tutto è permesso
29/03 12:15
nightwolf
Grazie mille, x laiuto che mi state dando, volevo rispondere a nessuno. quando ho iniziato a costruirmi il mio flipper virtuale prima di iniziare ho letto post lunghi anche 60 pagine, dove ognuno spiegava il proprio problema. Ed è grazie a quei post lunghi che l ho costruito senza avere nessun problema. Se sto avendo delle difficoltà nel completare una cosa che a parer mio è figa, non vedo il senso di chiudere un post e riaprirne un altro se poi l argomento è sempre quello.
aaa
29/03 13:55
Thejuster
Postato originariamente da nightwolf:
Grazie mille, x laiuto che mi state dando, volevo rispondere a nessuno. quando ho iniziato a costruirmi il mio flipper virtuale prima di iniziare ho letto post lunghi anche 60 pagine, dove ognuno spiegava il proprio problema. Ed è grazie a quei post lunghi che l ho costruito senza avere nessun problema. Se sto avendo delle difficoltà nel completare una cosa che a parer mio è figa, non vedo il senso di chiudere un post e riaprirne un altro se poi l argomento è sempre quello.
Grazie mille, x laiuto che mi state dando, volevo rispondere a nessuno. quando ho iniziato a costruirmi il mio flipper virtuale prima di iniziare ho letto post lunghi anche 60 pagine, dove ognuno spiegava il proprio problema. Ed è grazie a quei post lunghi che l ho costruito senza avere nessun problema. Se sto avendo delle difficoltà nel completare una cosa che a parer mio è figa, non vedo il senso di chiudere un post e riaprirne un altro se poi l argomento è sempre quello.
Tranquillo nightwolf.
Un form di supporto serve proprio a questo.
Altrimenti non eravamo qui.
Non andiamo OT, altrimenti mi tocca cancellare i post.
mire.forumfree.it/ - Mire Engine
C# UI Designer
C# UI Designer
29/03 14:05
Thejuster puoi eliminare i miei post se li ritieni OT anche se non ho capito cosa sia OT in un thread di oltre 100 post...
Anzi già che ci sei elimina il mio user così siete più intimi.
Però cerca di essere più coerente, non dire certe cose prima e poi il contrario.
Saluti
Anzi già che ci sei elimina il mio user così siete più intimi.
Però cerca di essere più coerente, non dire certe cose prima e poi il contrario.
Saluti
Ultima modifica effettuata da 29/03 14:10
29/03 14:13
Thejuster
Thejuster puoi eliminare i miei post se li ritieni OT anche se non ho capito cosa dia OT in un thread fi oltre 100 post...
Questo è un OT.
Tranquillo ho eliminato anche i miei messaggi.
Anzi già che ci sei elimina il mio user così siete più intimi.
Non mi piace eliminare utenti, solitamente elimino bot non utenti.
Per il resto tranquillo, Abbiamo appuntamento stasera al bar Grog e la Cacofonia.
Però cerca di essere più coerente, non dire certe cose prima e poi il contrario.
Hai ragione, Purtroppo avvolte sono impulsivo cercherò di fare ammenda.
mire.forumfree.it/ - Mire Engine
C# UI Designer
C# UI Designer