掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
10バイトをきちんと受信するには? (ID:117643)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
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 ================================================================== 長々と申し訳ありません。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.