MScommを用いてRS232C通信を行っておりますが、下記のような
問題があります。
送信側で出力しているデータ
Dim aabData() As Byte
Dim babForward() As Byte
Dim cabBackward() As Byte
Dim dsSource As String
d = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123 "
b = StrConv(Chr$(5), vbFromUnicode)
ReDim c(0& To 1&)
c(0&) = &HF5
c(1&) = &H8
* Cはchecksumです。
a = CStr(abForward) & StrConv(sSource, vbFromUnicode) & CStr(abBackward)
MSComm1.Output = a
上記プログラムで送信されてきたデータを受信した時に、
dim varbuffer as string
dim recbuf as string
varBuffer = MSComm1.Input
recbuf = recbuf & varBuffer
If Mid(varBuffer, 1, 1) = chr$(&h5) Then
で先頭の05hがきたのを探そうとしていますが、うまくいきません。
最終目的は、送られてきたデータのチェックサムを計算して正しいか
判断する事なのですが。
byte型で受けると、mid$が使えないので何文字目から何文字目(Byte目)という
指定が出来ないのでサム計算の方法がよくわからないで困っています。
ご存知の方、宜しくお願い致します。
まず、マルチポストする前に、自分で何が矛盾しているのかを
認識できなければ無能であることをたださらすだけになります。
受け取り側でもバイト型の配列を使って解析するべきでは。
ツイート | ![]() |