投稿時間: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)に受信データを表示させたいのですが、表示されません。 どなたか、ご教示下さいますようお願いいたします。
|