投稿者 YUU  (社会人) 投稿日時 2015/8/14 12:13:13
>PC側アプリで、電文の内容を確認後、

やはり何らかの形で返答する必要があったのですね・・・。ハンドシェイクについての理解が足りていないようです。

通信内容はハンドシェイク設定の場合

<機器>                                  <アプリ>

<STX>テキスト<ETX><BCC> → アプリケーション受信
       <ACK>または<NAK>  ←
       <EOT>             →

1データのみの場合はこのようなやり取りのようです。

無手順設定の場合は垂れ流しの状態で受信ができたので注視していませんでした。

ハンドシェイク設定でも一文は取得できると思い受信ができてから次の処理と考えていたのです。

テキストの長さは100文字。項目ごとに区切りがあり決まりもあるのですがそれらは無手順と変わりないので

判定の方はできております。


            Dim strDataReceived As String
            Dim intSTR As Integer
            Dim chrDATA As String

            strDataReceived = SerialPort.ReadExisting

            intSTR = Len(strDataReceived)

            For i As Integer = 1 To intSTR
                chrDATA = Mid(strDataReceived, i, 1)
                Select Case chrDATA
                    Case Chr(STX)

                    Case Chr(ACK)

                End Select

            Next i

↑の様に制御コードを取得し取得出来次第処理をかけるという感じなのでしょうか?
<BCC>というものがよくわからずどのタイミングで正否の応答を返すものなのでしょうか?