evRxchar
何か文字を受信した時に、割り込みを発生させるのには、
EventMask の
evRxchar を
True にします。
OnCommReceive を使用して文字の受信を行います。
通常の受信方法です。
OnCommReceive
の実行行は、オブジェクトインスペクタのイベントの入力欄をダブルクリックする事により追加されます。
EventMask
の
evRxflag は、
False に設定します。
evRxcharを
Trueにした場合は、
evRxflagは無効です。
RxflagReceive は、は必ず
eventOff にします。
evRxflagを
Trueにして文字指定をしたい場合は、
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;
データー受信イベント
を見てください。