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 14

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 11:34
Sabato, 30/03/2024
buon giorno a tutti e buon sabato, so di essere logorroico, ma non se ne viene a capo in questo progetto, mettendo il codice di carlo, adesso mi dice:
ricevuto=false
elaborato=errori i valori non sono due
questo sono i due video di arduino che funziona e visual basic
https://youtu.be/ExD6C5wRz1U
https://youtu.be/EpQqa__s9lM
cosa vuol dire che i valori non sono due?

PM Quote
Avatar
nightwolf (Normal User)
Pro


Messaggi: 149
Iscritto: 14/09/2010

Segnala al moderatore
Postato alle 12:01
Sabato, 30/03/2024
cosa vuol dire questa scritta di errore
Eccezione generata: 'System.InvalidCastException' in Microsoft.VisualBasic.dll

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1364
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 12:58
Sabato, 30/03/2024
Testo quotato

Postato originariamente da nightwolf:

buon giorno a tutti e buon sabato, so di essere logorroico, ma non se ne viene a capo in questo progetto, mettendo il codice di carlo, adesso mi dice:
ricevuto=false
elaborato=errori i valori non sono due
questo sono i due video di arduino che funziona e visual basic
https://youtu.be/ExD6C5wRz1U
https://youtu.be/EpQqa__s9lM
cosa vuol dire che i valori non sono due?


è scritto tutto sul codice.
L'errore non è in timer2, perché se non ricevi nulla è ovvio che i dati non sono due.
la function l'hai modificata?
Per caso hai messo WithEvents? Quello non lo devi mettere finquando leggi con timer2
La COM è collegata?
Vedo che non invii più le due cifre decimali sui gradi, in VB alcune istruzioni sono diventate superflue ma non dovrebbero causare problemi.

Ultima modifica effettuata da Carlo il 30/03/2024 alle 13:19


in programmazione tutto è permesso
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1364
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 13:04
Sabato, 30/03/2024
Testo quotato

Postato originariamente da nightwolf:

cosa vuol dire questa scritta di errore
Eccezione generata: 'System.InvalidCastException' in Microsoft.VisualBasic.dll



Stai cercando di copiare un oggetto generico in uno tipizzato senza aver effettuato la conversione di tipo o cast.

Se hai modificato la dicharazione della seriale in: Dim WithEvents serialport1 As New SerialPort

Timer2 lo devi spegnere perché devi leggere i dati nell'evento:
Codice sorgente - presumibilmente VB.NET

  1. Private Sub serialport_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles serialport1.DataReceived
  2.     Dim sp As SerialPort = DirectCast(sender, SerialPort) ' cast dell'oggetto sender in SerialPort
  3.     Dim str As String = sp.ReadExisting() ' Legge tutti i dati presenti nel buffer di input
  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
  10.     If righe.Length = 0 Then Return ' forse non serve
  11.     If righe.Length > 1 Then uso = 1
  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) & " 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


Ultima modifica effettuata da Carlo il 30/03/2024 alle 13:24


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


Messaggi: 149
Iscritto: 14/09/2010

Segnala al moderatore
Postato alle 14:08
Sabato, 30/03/2024
Testo quotato

Postato originariamente da Carlo:

Testo quotato

Postato originariamente da nightwolf:

cosa vuol dire questa scritta di errore
Eccezione generata: 'System.InvalidCastException' in Microsoft.VisualBasic.dll



Stai cercando di copiare un oggetto generico in uno tipizzato senza aver effettuato la conversione di tipo o cast.

Se hai modificato la dicharazione della seriale in: Dim WithEvents serialport1 As New SerialPort




perdonami ma sta dichiarazione di seriale dove va messa, perchè mi da errore in serialport1 dicendo che è gia dichiarata, abbi pazienza, l ho messa insieme alle altre variabili e niente.:d
grazie

PM Quote
Avatar
nightwolf (Normal User)
Pro


Messaggi: 149
Iscritto: 14/09/2010

Segnala al moderatore
Postato alle 14:31
Sabato, 30/03/2024

PM Quote
Avatar
nightwolf (Normal User)
Pro


Messaggi: 149
Iscritto: 14/09/2010

Segnala al moderatore
Postato alle 14:32
Sabato, 30/03/2024
questa è la mia intera solution

PM Quote
Avatar
nightwolf (Normal User)
Pro


Messaggi: 149
Iscritto: 14/09/2010

Segnala al moderatore
Postato alle 14:33
Sabato, 30/03/2024

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