10バイトをきちんと受信するには?

解決


don  2004-11-17 06:04:02  No: 117643

RS232C通信でバイナリデータを送信し,10バイトのバイナリデータが
返ってくるはずなのですが,テキストボックスで表示すると,
はじめに8バイト分表示された後に一瞬で消え,残りの2バイト分が
表示されるだけになってしまいます。

例)D0 0D E2 04 A1 05 67 02
       と表示されたあと
    00 00
       残りの2バイトに書き換えられてしまう

<コード>
Public Function get(bytArray() As Byte) As String
    
    Dim i       As Long
    Dim Max     As Long
    Dim Min     As Long
    Dim lngSize As Long
    Dim strBuff As String
        
    '最初に決められたバッファを用意して、高速化する。
    Max = UBound(bytArray)
    Min = LBound(bytArray)
    lngSize = Max + 1 - Min
    i = lngSize * 3 + Fix((lngSize + 15) / 16) - 2

strBuff=Space$(i)                                                            For lngSize = 48 To i Step 49
        
        Mid$(strBuff, lngSize, 2) = vbCrLf
    Next
    
        For i = Min To Max
        
        lngSize = (i - Min) * 3 + Fix((i - Min) / 16) + 1       
        Mid$(strBuff, lngSize, 2) = Right$("0" & Hex$(bytArray(i),2)
        Next
    ByteArrayToHexDumpString = strBuff

End Function

Private Sub Form_Load()
    ' MSCommコントロールの初期設定
    MSComm1.CommPort = 1
    MSComm1.Settings = "1200,n,8,1"
    MSComm1.InputMode = comInputModeBinary
    MSComm1.RThreshold = 1
    MSComm1.SThreshold = 1
End Sub

Private Sub Command1_Click()
        'Dim Buf(0) As Byte
        
        If MSComm1.PortOpen = False Then
                MSComm1.PortOpen = True
        End If

        Text2.Text = ""
        'Buf(0) = Chr(&HB)
        MSComm1.Output = Chr(&HB)
End Sub
 
Private Sub MSComm1_OnComm()
    Dim bytArray() As Byte

    Select Case MSComm1.CommEvent
        Case comEvReceive
            If MSComm1.InBufferCount > 0 Then
                bytArray = MSComm1.Input
                Text2.Text = ByteArrayToHexDumpString(bytArray)
            End If
==================================================================
長々と申し訳ありません。


こう  2004-11-17 06:45:09  No: 117644

http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200411/04110057.txt

これと同じ質問ですか?
回答も同じような。

RThresholdプロパティの意味を理解してください


don  2004-11-18 22:08:24  No: 117645

解決しました。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加