VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

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


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -