Ciao a tutti
Espongo il mio problema:
Ho collegato uno strumento di misura di temperatura al pc tramite rs232 e vorrei visualizare i dati ricevuti in una textbox, e fino qui tutto bene solo che lo strumento invia 1 carattere alla volta e non riesco a comporre la stringa di testo come vorrei visualizzarla.
Un esempio:
ed il risultato è questo:Private Sub Form_Load()
MSComm1.Settings = "19200,N,8,1"
MSComm1.CommPort = 9
MSComm1.InputLen = 1
MSComm1.PortOpen = True
MSComm1.RThreshold = 1
End Sub
Private Sub MSComm1_OnComm()
Dim StrData As Variant 'define variable type as it is variant
StrData = MSComm1.Input
Text1.Text = Text1.Text & StrData
End Sub
Tutto scritto su una riga,allora ho messo un enter alla fine cosi':Flow[l/h]: +0.00 Temp[C]: +21.0,Flow[l/h]: +0.00 Temp[C]: +21.0,Flow[l/h]: +0.00 Temp[C]: +21.0,
Flow... ecc...
ed il risultao è questo:Text1.Text = Text1.Text & StrData & vbCrLf
ecc...F
l
o
w
[
l
/
h
]
:
+
0
.
0
0
T
e
m
p
[
C
]
:
+
2
1
.
1
,
Quindi deduco che lo strumento invia 1 lettera alla volta quindi dovrei creare un buffer che mi contenga la stringa da stampare completa ma pur avendo seguito degli esempi non riesco.
dovrei ottenere questo risultato:
L'ultima mia prova è stata:
Flow[l/h]: +0.00 Temp[C]: +21.1
Flow[l/h]: +0.00 Temp[C]: +21.1
Flow[l/h]: +0.00 Temp[C]: +21.1
Flow[l/h]: +0.00 Temp[C]: +21.1
ecc...
Mi restituisce
Private Sub MSComm1_OnComm()
Dim RxBuffer$
Dim Pos As Integer
Dim Rx$
Dim Pacchetto$
Rx$ = MSComm1.Input
If Len(Rx$) = 0 Then Exit Sub
RxBuffer$ = RxBuffer$ & Rx$
If Left$(RxBuffer$, 1) <> "F" Then
Pos = InStr(RxBuffer$, "F")
RxBuffer$ = Mid$(RxBuffer$, Pos)
If Len(RxBuffer$) = 0 Then
Exit Sub
End If
End If
Do
Pos = InStr(RxBuffer$, ",")
If Pos = 0 Then Exit Do
Pacchetto$ = Mid$(RxBuffer$, 2, Pos - 2)
RxBuffer$ = Mid$(RxBuffer$, Pos + 1)
Pos = InStr(Pacchetto$, "F")
If Pos Then
Pacchetto$ = Mid$(Pacchetto$, Pos + 1)
End If
Loop
Text1.Text =Pacchetto$
End Sub
"errore di rountine 5"
"chiamata di rountine o argomento non valido"
facendo il debug si ferma qui:
Scusate la lunghezza del post ma dopo 2 giorni che sto provando mi affido a voi.
RxBuffer$ = Mid$(RxBuffer$, Pos)
Grazie