Oppure

Loading
01/04 16:53
nightwolf
adesso questo errore, ho letto un po ingiro, ma non ci ho capito quasi niente
aaa
01/04 17:10
nightwolf
questo è il mio intero progetto
mega.nz/folder/…
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:33
nightwolf
seconda foto
aaa
02/04 9:34
nightwolf
terza foto
ps. ho messo il delay di arduino a 500
aaa