Skip to content

Commit edc898f

Browse files
ADD: Purge
1 parent 1a4c869 commit edc898f

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

data_control/uuart.pas

+15-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
(******************************************************************************)
22
(* uuart.pas 01.02.2021 *)
33
(* *)
4-
(* Version : 0.02 *)
4+
(* Version : 0.03 *)
55
(* *)
66
(* Author : Uwe Schächterle (Corpsman) *)
77
(* *)
@@ -24,6 +24,7 @@
2424
(* *)
2525
(* History : 0.01 - Initial version *)
2626
(* 0.02 - do not kill uart connection on a error *)
27+
(* 0.03 - Add: "Purge" *)
2728
(* *)
2829
(******************************************************************************)
2930

@@ -101,6 +102,7 @@
101102

102103
FOnReceive: TOnReceive;
103104
fNeedDisconnect: Boolean;
105+
fNeedPurge: Boolean;
104106

105107
fCom: TBlockSerial; // Handle auf die COM-Schnittstelle
106108

@@ -134,6 +136,8 @@
134136
Function Connect(aPort: String; aBaudrate, aBits: Integer; aParity: Char; aStop: Integer; asoftflow, ahardflow: boolean): Boolean;
135137
Procedure Disconnect();
136138

139+
Procedure Purge;
140+
137141
Function SendBytes(Value: TBytes): Boolean;
138142
Function SendString(Value: String): Boolean;
139143

@@ -256,6 +260,7 @@
256260
freceived := TBytesFifo.create;
257261
fSend := TBytesFifo.create;
258262
fNeedDisconnect := false;
263+
fNeedPurge := false;
259264
End;
260265

261266
Procedure TUart.Shutdown();
@@ -362,6 +367,11 @@
362367
fNeedDisconnect := true;
363368
End;
364369

370+
Procedure TUart.Purge();
371+
Begin
372+
fNeedPurge := true;
373+
End;
374+
365375
Function TUart.SendBytes(Value: TBytes): Boolean;
366376
Begin
367377
result := IsConnected;
@@ -407,6 +417,10 @@
407417
Init();
408418
fIsRunning := true;
409419
While Not Terminated Do Begin
420+
If fNeedPurge And assigned(fCom) Then Begin
421+
fCom.Purge;
422+
fNeedPurge := false;
423+
End;
410424
If fNeedDisconnect And assigned(fCom) Then Begin
411425
fNeedDisconnect := false;
412426
CheckComState(true);

0 commit comments

Comments
 (0)