Salve a tutti,
sono più un hardwarista che un softwarista e chiedo il vs aiuto.
Il mio intendimento è quello di porre su un grafico cartesiano tre variabili acquisite dai adc del pic.
Più precisamente un tracciacurve x valvole dove Ianodica in ordinata, Vanodica in ascissa in funzione di diverse tensioni di griglia.
Qualcuno mi può dare qualche spunto e stralcio di codice per gestire i buffer dalla porta seriale?
Sono 253 variabili testo (5 caratteri) a gruppi di 3 con virgola e punto e virgola usati come separatori.
es: " 1023, 45, 945; 1021, 4, 45; ecc...."
Vado un passo alla volta.
Ho cominciato con la lettura del buffer ed ho il primo problema, apro il programma e invio i dati ma OnComm() non li rileva se chiudo il programma e lo riapro comincia a leggere il buffer e lo visualizza su txtRicezione.
Un amico mi ha dato una mano e ho cominciato anche l'algoritmo di estrazione.
Grazie dell'aiutocodice:Private Sub Esci_Click() End End Sub Private Sub Form_Load() ' Apre la porta seriale MSComm1.CommPort = 1 MSComm1.Settings = "9600,n,8,1" On Error Resume Next MSComm1.PortOpen = True If Err Then MsgBox "Impossibile aprire la porta" & MSComm1.CommPort & vbCrLf & Error$ End If MSComm1.RThreshold = 1 End Sub Private Sub MSComm1_OnComm() Dim Messaggio$ Dim buffer As String Dim terne() As String Dim i As Integer Dim j As Integer Dim terna As String Dim valoriTerna() As String Dim valoreTerna As Integer Messaggio$ = MSComm1.Input If Len(Messaggio$) Then txtRicezione = txtRicezione.Text & Messaggio$ buffer = txtRicezione 'buffer = "1023, 45, 945; 1021, 4, 45;" terne = Split(buffer, ";") For i = 0 To UBound(terne) terna = terne(i) valoriTerna = Split(terna, ",") For j = 0 To UBound(valoriTerna) valoreTerna = CInt(Trim(valoriTerna(j))) MsgBox "Terna " & cstr(i) & " - Valore " &cstr( j )& " : " & cstr(valoreTerna) Next j Next i End If End Sub
Antonio

Rispondi quotando