RS232Cブレーク受信の設定

 ブレークの受信を確認したい場合は、OnCommEvent を使用します。

EventMaskの evBreak True にします。

この時、evRxchar が同時に、True になっていないと文字の受信が出来なくなります。

(evRxflag 使用時は、evRxchar ではなく、evRxflagTrueにします。)

 プログラム例(通常文字受信割り込み)

Comm1.EventFlag := Null; // Null,Ah,Dh,UserIn

Comm1.FlagIn := #0; // #0 = 00h(Null)

Comm1.EventMask := [evRxChar,evBreak]; // evBreakはブレーク割り込みマスク

Comm1.RxflagReceive := eventOff; // Receive 割り込みにevRxflagを非使用、evRxCharを使用します。

EventFlagUserIn以外は、FlagInは無効です。

 プログラム例(指定文字受信割り込み)

Comm1.EventFlag := UserIn; //この例ではユーザー入力 Ahを指定してもかまいません。

Comm1.FlagIn := #10; //改行(0Ah)を指定  #10 = 0Ah

Comm1.EventMask := [evRxflag,evBreak]; // evBreakはブレーク割り込みマスクです。

Comm1.RxflagReceive := eventOn; //Receive 割り込みにRxflagを指定します。

注意EventMask := [evRxChar,evRxflag,evBreak];とすると、evRxflag の意味がなくなります。

procedure TForm1.Comm1CommEvent(Sender: TObject;EventMask: TCommEventMask);

begin

if evBreak in EventMask then // 割り込みの発生がブレーク信号だったら

begin

ここにブレーク受信時の実行文が入る。

end;

end;

evErrTrueに設定 Comm1.EventMask := [evRxChar,evBreak,evErr]; とした場合は、OnCommEventBreak受信割り込みは発生しなくなります。

OnCommErrEventで割り込みが発生します。

ShowOff evErr (True)で、通常のCommErrEvnt 例

procedure TForm1.Comm1CommErrEvent(Sender: TObject;; ErrCode: Cardinal);

begin

ここにエラー時の実行文を入れます。

if (ErrorCode and CE_RXPARITY) <> 0 then msg := '受信パリティエラー';

if (ErrorCode and CE_BREAK) <> 0 then *****; // evErr 使用時のBreak受信処理

end;

ブレークは、相手に、通信を最初から開始するため、初期化するように求めるのに使用するのが、一般的です。

(注)USB RS232C 変換ケーブルは、Breakの受信が出来ないのが普通です、送信は可能です。