Risultati da 1 a 4 di 4

Discussione: [VB6] gestione buffer mscomm

  1. #1
    New Member
    Data Registrazione
    23-08-2006
    Messaggi
    17

    [VB6] gestione buffer mscomm

    Premetto che non conosco molto bene questo sw, io per lo più traffico con i compilatori MikroC e Mikrobasic relativo ai microcontrollori PIC.
    Sono riuscito a leggere dei segnali analogici convertirli in digitale a 10bit e inviarli attraverso la seriale e visualizzarli su LCD e su Yperterminal.
    Ora sto combattendo con l'interfaccia col PC.
    Sto provando con VB6 e con Excel ma ho difficoltà.
    Il mio intendimento è quello di porre su un grafico cartesiano tre variabili acquisite dagli 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...."

    Grazie
    Antonio

  2. #2
    New Member
    Data Registrazione
    23-08-2006
    Messaggi
    17
    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.

    Codice:
    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
    Grazie dell'aiuto
    Antonio

  3. #3
    Software Zone Fanatic L'avatar di MANDRAKE
    Data Registrazione
    28-12-2002
    Messaggi
    3.100

  4. #4
    New Member
    Data Registrazione
    23-08-2006
    Messaggi
    17
    Grazie,
    è uno dei primi documenti che mi sono letto ma ho ancora difficoltà ma probabilmente dipende dalla mia scarsa abilità a programmare, sono più un hardwerista

    ciao
    Antonio

Segnalibri

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •