投稿日 | : 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