RS232C文字受信割り込みの指定

evRxchar

 何か文字を受信した時に、割り込みを発生させるのには、EventMask evRxchar True にします。

OnCommReceive を使用して文字の受信を行います。

通常の受信方法です。

OnCommReceiveの実行行は、オブジェクトインスペクタのイベントの入力欄をダブルクリックする事により追加されます。

EventMask evRxflag は、False に設定します。

evRxcharTrueにした場合は、evRxflagは無効です。

RxflagReceive は、は必ずeventOff にします。

evRxflagTrueにして文字指定をしたい場合は、evRxcharは必ずFalseにして下さい。

RxflagReceive を、eventOff に設定すると、evRxflagの割り込みは、一般割り込みの OnCommEventが使用されます。

RxflagReceiveは、evRxflagによる割り込みが、OnCommReceiveを使用するか、OnCommEventを使用するかの切り替えです。

プログラム例

Comm1. RxflagReceive := eventOff;

Comm1.EventMask := [evRxchar];

if not Comm1.OpenCheck then Comm1.Open;

オブジェクトインスペクタで設定してもOKです。

(当然の事ですが、プログラムによる指定が優先されます)

Procedure TForm1.Comm1CommReceive(Sender: TObject; Size:Cardinal);

var

Buf: pchar;

begin

Buf := AllocMem(Size + 1); // メモリ確保します。

Comm1.Read(Buf,Size);

ここでBufの内容により必要な処理を行います。

FreeMem(Buf, Size + 1); // メモリーの解放 メモリ確保をした場合必ず実行します。

end;

データー受信イベントを見てください。