Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - creare una bussola
Forum - C# / VB.NET - creare una bussola - Pagina 13

Pagine: [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ] Precedente | Prossimo
Avatar
nightwolf (Normal User)
Pro


Messaggi: 149
Iscritto: 14/09/2010

Segnala al moderatore
Postato alle 0:51
Venerdì, 29/03/2024
questo è un altro errore


nightwolf ha allegato un file: errore3.png (174560 bytes)
Clicca qui per guardare l'immagine
PM Quote
Avatar
nightwolf (Normal User)
Pro


Messaggi: 149
Iscritto: 14/09/2010

Segnala al moderatore
Postato alle 10:40
Venerdì, 29/03/2024
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

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1364
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 12:52
Venerdì, 29/03/2024
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:
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
  2.     Dim str As String = str = RiceviDati()
  3.  
  4.     ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Ricevuto = " & str.Replace(vbCrLf, "\n"))
  5.     ListBox1.TopIndex = ListBox1.Items.Count - 1
  6.     ListBox1.HorizontalScrollbar = True
  7.  
  8.     Dim righe() = str.Split(vbCrLf)
  9.     Dim uso = 0 ' la prima riga
  10.     If righe.Length = 0 Then Return
  11.     If righe.Length > 1 Then uso = 1 ' la seconda riga
  12.  
  13.     ' Elaboro la stringa
  14.     Dim valoriDivisi() As String = righe(uso).Split(";")
  15.     If valoriDivisi.Length <> 2 Then
  16.         ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Elaborato = Errore i valori non sono due")
  17.         Return
  18.     End If
  19.     ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Selezionato = " & righe(uso))
  20.     If valoriDivisi(0) = "E" Then
  21.         lblgradi.Text = "errore"
  22.         ' in valoriDivisi(1) ' il tipo d'errore da mostrare dove vuoi
  23.         ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Elaborato = Errore " & valoriDivisi(0) & " - " & valoriDivisi(1))
  24.     Else
  25.         ' Il primo dato è riferito ai gradi della bussola
  26.         valoriDivisi(0) = valoriDivisi(0).Replace(".", ",") ' se ci fosse il punto decimale viene sostituito con la virgola decimale
  27.         If Double.TryParse(valoriDivisi(0), avanzamento) Then
  28.             If avanzamento <= 0 Or avanzamento >= 360 Then
  29.                 ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Elaborato Bussola = Errore il valore " & avanzamento.ToString() & " è fuori range")
  30.             Else
  31.                 lblgradi.Text = avanzamento.ToString("000°")
  32.                 Pcboxbussola.Invalidate()
  33.                 ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Elaborato Bussola = " & avanzamento.ToString("000°"))
  34.             End If
  35.         Else
  36.             ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Elaborato = Errore " & valoriDivisi(0).Substring(0, 3) & " non è un intero")
  37.         End If
  38.  
  39.         '' Il dato in: valoriDivisi(1), è riferito al volume e è una stringa
  40.  
  41.         Dim volume As Integer = 0
  42.         If Integer.TryParse(valoriDivisi(1), volume) Then
  43.             If volume < 0 Or volume > 100 Then
  44.                 ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Elaborato Volume = Errore il valore " & volume.ToString() & " è fuori range")
  45.             Else
  46.                 ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Elaborato Volume = " & valoriDivisi(1))
  47.                 media_pleyer.lb_volume.Text = valoriDivisi(1) + "%"
  48.                 media_pleyer.Volume_control1.value = valoriDivisi(1)
  49.                 lb_volume.Text = valoriDivisi(1) + "%"
  50.                 Volume_control1.value = valoriDivisi(1)
  51.                 media_pleyer.Timer3.Start()
  52.                 media_pleyer.AxWindowsMediaPlayer1.settings.volume = media_pleyer.Volume_control1.value
  53.                 AxWindowsMediaPlayer1.settings.volume = media_pleyer.Volume_control1.value
  54.                 video.Wmp1.settings.volume = video.Volume_control1.value
  55.             End If
  56.         Else
  57.             ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Elaborato = Errore " & valoriDivisi(1) & " non è un intero")
  58.         End If
  59.     End If
  60. End Sub


sulla function rimetti SerialPort1.ReadExisting, perchè prendiamo la seconda riga se c'è
Codice sorgente - presumibilmente VB.NET

  1. Function RiceviDati() As String
  2.         Dim Ricevuti As String
  3.         Try
  4.             Ricevuti = SerialPort1.ReadExisting
  5.             If Ricevuti = Nothing Then
  6.                 Return "E;null" ' ritorna con la E
  7.             else
  8.                 Return Ricevuti
  9.             End If
  10.         Catch ex As Exception      
  11.             Return "E;" & ex.Message ' ritorna con la E
  12.         End Try
  13. End Function



Ricorda che con la SOLUZIONE 3, hai la lettura sincrona...


Carlo ha allegato un file: viewattachment.png (122440 bytes)
Clicca qui per guardare l'immagine

Ultima modifica effettuata da Carlo il 29/03/2024 alle 14:29


in programmazione tutto è permesso
PM Quote
Avatar
nightwolf (Normal User)
Pro


Messaggi: 149
Iscritto: 14/09/2010

Segnala al moderatore
Postato alle 13:15
Venerdì, 29/03/2024
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.

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2316
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 14:55
Venerdì, 29/03/2024
Testo quotato

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.  



:ot:
Tranquillo nightwolf.
Un form di supporto serve proprio a questo.
Altrimenti non eravamo qui.

Non andiamo OT, altrimenti mi tocca cancellare i post.


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 15:05
Venerdì, 29/03/2024
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

Ultima modifica effettuata da il 29/03/2024 alle 15:10
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2316
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 15:13
Venerdì, 29/03/2024
Testo quotato


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.

Testo quotato


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.

Testo quotato


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.


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 15:22
Venerdì, 29/03/2024
Bene, allora hai fatto quasi tutto, attendo che cancelli il mio user.

PM Quote
Pagine: [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ] Precedente | Prossimo