投稿者 daive  (社会人) 投稿日時 2015/8/20 10:19:25
<機器>                                  <アプリ>

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

この流れの場合では、
問答無用で、
 <STX>テキスト<ETX><BCC>
まで、受信します。⇒固定長データですよね?

受信したデータから、
<BCC>は、チェックデータなので、当然除外して、
仕様書にて「テキストの先頭文字からETXまでの文字単位での
排他論理和で1バイトのバイナリで構成」
にしたがって、残った部分から、BCCを計算します。

<STX>テキスト<ETX>

この時に、STXが入るか、入らないか、BCCの初期値が与えられているかいないかで
計算結果が変わるのは、理解できる筈です。
⇒受信したデータを、演算するのは、表計算ソフトを使うと、
  シュミレーションが出来ると、以前に書きました。

受信した、<BCC>と、計算した BCCが
同じであれば、
ACK送信
同じでなければ、
NAK送信
ということです。