ブレークの受信を確認したい場合は、
OnCommEvent を使用します。
EventMaskの
evBreak を
True にします。
この時、
evRxchar が同時に、
True になっていないと文字の受信が出来なくなります。
(evRxflag 使用時は、
evRxchar ではなく、
evRxflagを
Trueにします。
)
プログラム例(通常文字受信割り込み)
Comm1.EventFlag := Null; // Null,Ah,Dh,UserIn
Comm1.FlagIn :=
#0; // #0 = 00h(Null)
Comm1.EventMask := [evRxChar,evBreak]; // evBreak
はブレーク割り込みマスク
Comm1.RxflagReceive := eventOff; // Receive
割り込みに
evRxflagを非使用、
evRxCharを使用します。
EventFlagが
UserIn以外は、
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;
evErrを
Trueに設定
Comm1.EventMask := [evRxChar,evBreak,evErr]; とした場合は、
OnCommEventに
Break受信割り込みは発生しなくなります。
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の受信が出来ないのが普通です、送信は可能です。