掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
RS232Cの制御電文におけるBCC(Block Checking Code)算出について (ID:150617)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Delphiアプリケーションにクレジット決済機能を付けるために、決済端末を借用し開発を行うところですが、BCC(Block Checking Code)を求めなければならず、コードを書いてみたのですが上手くいかず悩んでおります。 教えて頂けませんでしょうか。 <BCCの仕様> <STX>より後ろから<ETX>または<ETB>までを1バイトごとにEX-OR(排他的論理和)をとった値 <求めるBCC> コマンド電文例①<STX>10110110000001001<ETX> この場合は、2 コマンド電文例②<STX>2011010000200000<ETX> この場合は、<02H> <書いてみたコード> const STX = #$02; ETX = #$03; EOT = #$04; ENQ = #$05; ACK = #$06; NAK = #$07; function BCC(str: String): String var i, x: Integer; begin x := 0; for i := 1 to Length(str) do x := x xor Ord(str[i]); // 最終的なxの値は51と出ました Result := Char(x); end; function TForm1.Button1Click(Sender: Object); var bccTarget: String; sendStr: Striing; begin bccTarget := Edit1.Text + ETX; sendStr := STX + Edit1.Text + BCC(bccTarget); ShowMessage(sendStr); } <教えて頂きたいこと> ES232Cの電文を作成するのが初めてなので、何かコードが間違っていましたら是非教えて頂けませんでしょうか(m_m)
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.