RS232Cで通信するには?


こまったちゃん  2005-05-02 06:53:03  No: 89674

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目)という
指定が出来ないのでサム計算の方法がよくわからないで困っています。

ご存知の方、宜しくお願い致します。


K.J.K.  2005-05-02 19:56:38  No: 89675

まず、マルチポストする前に、自分で何が矛盾しているのかを
認識できなければ無能であることをたださらすだけになります。

受け取り側でもバイト型の配列を使って解析するべきでは。


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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