nightwolf (Normal User)
Pro
Messaggi: 149
Iscritto: 14/09/2010
|
|
|
Carlo (Member)
Guru
Messaggi: 1364
Iscritto: 29/01/2018
|
Postato originariamente da nightwolf:
adesso questo errore, ho letto un po ingiro, ma non ci ho capito quasi niente |
Ha perfettamente ragione, la lettura della com avviene in modo asincrono usando un thread diverso... ci avrei dovuto pensare ma senza provare mi è sfuggito.
Non ritengo che farti imbarcare nel passaggio dati crossthread sia consigliabile.
Intanto ti propongo queso codice che scrive crossthread sulla listbox, ma è solo per verificare la ricezione.
Codice sorgente - presumibilmente VB.NET |
Private Sub serialport_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles serialport1.DataReceived Dim sp As SerialPort = DirectCast(sender, SerialPort) ' cast dell'oggetto sender in SerialPort Dim str As String = sp.ReadExisting() ' Legge tutti i dati presenti nel buffer di input Invoke(New Action(Sub() ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Ricevuto = " & str.Replace(vbCrLf, "\n")) ListBox1.TopIndex = ListBox1.Items.Count - 1 ListBox1.HorizontalScrollbar = True End Sub)) End Sub
|
Controlla se nella listbox hai una ricezione pulita.
Mi dispiace hai anche l'AxMediaPlayer che lavora su un ulteriore thread, senza provare non sono in grado di risolvere tutti i conflitti crossthread che si possono generare.
Si potrebbe scrivere i dati su una label crossthread e poi usare l'evento textchanged della label per l'aggiornamento.
Teoricamente sono tutte info che hai ricevuto, lo potresti fare anche da solo.
Mi raccomando posta la schermata della listbox quando riceve i dati, poi ti dico come fare. Ultima modifica effettuata da Carlo il 01/04/2024 alle 23:43
in programmazione tutto è permesso |
|
nightwolf (Normal User)
Pro
Messaggi: 149
Iscritto: 14/09/2010
|
Grazie mille ancora e scusa se ti sto facendo tribulare così tanto, ma non credevo che fosse così complicato, credevo che era una cosa semplice, ricevo 2 dati, li splitto e li invio dove devono andare, invece in programmazione ci sono mille fattori da tenere in considerazione.
|
|
Carlo (Member)
Guru
Messaggi: 1364
Iscritto: 29/01/2018
|
Postato originariamente da nightwolf:
Grazie mille ancora e scusa se ti sto facendo tribulare così tanto, ma non credevo che fosse così complicato, credevo che era una cosa semplice, ricevo 2 dati, li splitto e li invio dove devono andare, invece in programmazione ci sono mille fattori da tenere in considerazione. |
E' semplice, con la seriale collegata ad arduino, scrivere il codice e debaggarlo per fare quello che vuoi tu, ci vogliono 5 minuti.
Considera che anche tutti gli altri approci funzionano per certo.
Questo terzo approcio però secondo me è il più corretto.
Senza la com collegata ad arduino, mi devo attenere alle tue info, i tempi si allungano ma io sempre qualche minuto ci dedico, però dilazionati.
Spero che i vari approci abbiano ampliato le tue conoscenze e non ti abbiano invece creato confusione, se fosse chiedi non restare nel dubbio. Ultima modifica effettuata da Carlo il 02/04/2024 alle 10:59
in programmazione tutto è permesso |
|
nightwolf (Normal User)
Pro
Messaggi: 149
Iscritto: 14/09/2010
|
questo è quello che riceve, tutto molto frastagliato
|
|
nightwolf (Normal User)
Pro
Messaggi: 149
Iscritto: 14/09/2010
|
seconda foto
|
|
nightwolf (Normal User)
Pro
Messaggi: 149
Iscritto: 14/09/2010
|
terza foto
ps. ho messo il delay di arduino a 500
|
|
nightwolf (Normal User)
Pro
Messaggi: 149
Iscritto: 14/09/2010
|
Sto cercando di capire il perché da arduino il potenziometro si azzera anziché rimanere sul valore stesso. Mentre se lo tocco invia il valore corrente, non so se è un problema di cablaggio o altro.
|
|