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

投稿日: 2002/10/05(Sat) 18:52
投稿者Syokka-
URL
タイトルバイナリデータの受信(MSComm)

[OSのVER]:WindowsNT4+Sp6a
[VBのVER]:VB6+SP5
現在英語環境で開発された計測機器との通信プログラムを日本語環境で使用するための作業をしてい
ます。
計測機器からのデータを取得する際に英語版ではMSCommのInputModeを[TEXT]で受信していたのですが
、8bit以上の値が送られてくるため文字コードの関係でうまく動作しません。
バイナリーモードで受信しなければならない事はわかるのですが、受信したデータをどのようにして
扱えばよいのか理解できません。
そこで皆様のご教授を賜りたいと考えています。
現在のコードを下記致します。
宜しくお願い致します。
-----------------------------------
Private Sub MSComm_OnComm()
Static iiii As Integer

MSComm.RThreshold = 0

Select Case MSComm.CommEvent
Case comEvReceive

ReadData:
rbuf = MSComm.Input
If rbuf = "" Then MSComm.RThreshold = 1: Exit Sub
Select Case gintNumber
Case 1
If Asc(rbuf) = &HAA Then gintNumber = 2
gintArrey = 0
Case 2
gintNumber = 1
If Asc(rbuf) = &H2 Then gintNumber = 3
Case 3
If Asc(rbuf) = &HAA Then
gintNumber = 4
Else
gintArrey = gintArrey + 1
gstrReadData(gintArrey - 1) = Asc(rbuf)
End If
Case 4
Select Case Asc(rbuf)
Case &HAA
gintNumber = 3
gintArrey = gintArrey + 1
gstrReadData(gintArrey - 1) = Asc(rbuf)
Case &H3

objReadPacket.Caption = 1
gintNumber = 1
Case Else
gintNumber = 1
End Select

End Select
If MSComm.InBufferCount > 0 Then GoTo ReadData
End Select

MSComm.RThreshold = 1
End Sub


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

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

- Web Forum -