Avant de commencer une reception, vide le buffer de reception
MSComm1.InBufferCount = 0
puis
1 2 3 4 5 6 7 8 9 10
| Private Sub MSComm1_OnComm()
Dim InBuff As String
If MSComm1.CommEvent = comEvReceive Then 'reception d'un message
If MSComm1.InBufferCount >= 12 Then
'je recupere la trame faisant au moins 12 caractéres
InBuff = MSComm1.Input
MSComm1.InBufferCount = 0 'vide le buffer de reception
End If
End If
End Sub |
tanto un mélange de l'ancienne trame avec la suivante
Si tu as un code de fin renvoyé par ton peripherique ("HOR" dans mon source)
1 2 3 4 5 6 7
| If MSComm1.InBufferCount >= 12 Then
'je recupere la trame faisant au moins 12 caractéres
InBuff = MSComm1.Input
If Right$(Trim$(InBuff ), 3) = "HOR" Then
InBuff = len(InBuff) - 3
End If
End If |
Partager