投稿日 | : 2006/11/20(Mon) 18:51 |
投稿者 | : よしあき |
Eメール | : |
URL | : |
タイトル | : VB6でシリアルポート通信 |
VB6でシリアルポート通信を行おうとしています。
バイナリで26バイト(3バイト目が『50』)と22バイト(3バイト目が『51』)のデータをそれぞれ受信したいのですが、comEvReceiveを使って1バイトずつ読みとるようにする方法がよくわかりません。
とりあえず、以下のようなプログラムを組んでみました。
Private Sub Form_Load()
With MSComm1()
.CommPort = 1
.Settings = "19200,N,8,1"
.PortOpen = True
.InputLen = 1
.RThreshold = 1
.InputMode = comInputModeBinary
End With
t = 0
End Sub
Private Sub MSComm1_OnComm()
Dim inp() As Byte
Dim strwork(25) As String
Select Case MSComm1.CommEvent
Case comEvReceive
inp = MSComm1.Input
strwork(t) = CStr(inp(0))
t = t + 1
If strwork(3) = "50" Then
If t = 26 Then t = 0
Do
Label2(i).Caption = strwork(i)
i = i + 1
Loop Until i = 25
ElseIf strwork(3) = "51" Then
If t = 22 Then t = 0
Do
Label2(i).Caption = strwork(i)
i = i + 1
Loop Until i = 21
End If
End Select
End Sub
Label2(0)〜(25)もしくはLabel2(0)〜(21)に受信データを表示させたいのですが、表示されません。
どなたか、ご教示下さいますようお願いいたします。