01/04 16:53
nightwolf
adesso questo errore, ho letto un po ingiro, ma non ci ho capito quasi niente
aaa
01/04 19:08
Carlo
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.
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 01/04 21:43
in programmazione tutto è permesso
02/04 8:27
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.
aaa
02/04 8:53
Carlo
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 02/04 8:59
in programmazione tutto è permesso
02/04 9:33
nightwolf
questo è quello che riceve, tutto molto frastagliato
aaa
02/04 9:34
nightwolf
terza foto
ps. ho messo il delay di arduino a 500
aaa