visual basic 6 MSComm receive data problem
visual basic 6 MSComm receive data problem
(OP)
Hello
Im using the MSComm to send and receive binary data to a video server, the sending part
works fine, but when a receive more than 8 byets, the input variable only keeps the bytes
over the eighth byte. ...Please some can some one tell me where im wrong??? these are the settings and the OnComm part
MSComm1.CommPort = 1
MSComm1.Settings = "38400,O,8,1"
MSComm1.InputMode = 1
MSComm1.InputLen = 0
MSComm1.RThreshold = 1
MSComm1.SThreshold = 1
MSComm1.DTREnable = True
MSComm1.RTSEnable = True
MSComm1.NullDiscard = False
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
Private Sub MSComm1_OnComm()
Dim buffer As Variant
Dim Arr() As Byte
Dim i As Integer
Dim iTemp As Integer
Dim sTemp As String
Dim strINPUT As String
Select Case MSComm1.CommEvent
Case comEvReceive
Do While MSComm1.InBufferCount > 0
buffer = MSComm1.Input
Arr = buffer
For i = LBound(Arr) To UBound(Arr)
iTemp = Asc(Chr$(Arr(i)))
sTemp = Hex$(iTemp)
If Len(sTemp) = 1 Then 'For display in a text box
strINPUT = strINPUT & "0" & sTemp & " "
Else
strINPUT = strINPUT & sTemp & " "
End If
Text1.Text = strINPUT
Next
Loop
Im using the MSComm to send and receive binary data to a video server, the sending part
works fine, but when a receive more than 8 byets, the input variable only keeps the bytes
over the eighth byte. ...Please some can some one tell me where im wrong??? these are the settings and the OnComm part
MSComm1.CommPort = 1
MSComm1.Settings = "38400,O,8,1"
MSComm1.InputMode = 1
MSComm1.InputLen = 0
MSComm1.RThreshold = 1
MSComm1.SThreshold = 1
MSComm1.DTREnable = True
MSComm1.RTSEnable = True
MSComm1.NullDiscard = False
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
Private Sub MSComm1_OnComm()
Dim buffer As Variant
Dim Arr() As Byte
Dim i As Integer
Dim iTemp As Integer
Dim sTemp As String
Dim strINPUT As String
Select Case MSComm1.CommEvent
Case comEvReceive
Do While MSComm1.InBufferCount > 0
buffer = MSComm1.Input
Arr = buffer
For i = LBound(Arr) To UBound(Arr)
iTemp = Asc(Chr$(Arr(i)))
sTemp = Hex$(iTemp)
If Len(sTemp) = 1 Then 'For display in a text box
strINPUT = strINPUT & "0" & sTemp & " "
Else
strINPUT = strINPUT & sTemp & " "
End If
Text1.Text = strINPUT
Next
Loop





RE: visual basic 6 MSComm receive data problem
buf = space$(256)
RE: visual basic 6 MSComm receive data problem
CODE
MSComm1.CommPort = 1
MSComm1.Settings = "38400,O,8,1"
MSComm1.InputMode = 0 'comInputModeText
MSComm1.InputLen = 0
MSComm1.RThreshold = 1
MSComm1.SThreshold = 1
MSComm1.DTREnable = True
MSComm1.RTSEnable = True
MSComm1.NullDiscard = False
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
End Sub
Private Sub MSComm1_OnComm()
Dim strBuffer As String
Dim i As Integer
Dim sTemp As String
Dim strINPUT As String
Select Case MSComm1.CommEvent
Case comEvReceive
strBuffer = MSComm1.Input
For i = 1 To len(Buffer)
sTemp = Right("0" & Hex(Asc(Mid(strBuffer, i, 1))), 2)
strINPUT = strINPUT & sTemp & " "
Text1.Text = strINPUT
Next
End Select
End Sub