fix flush

This commit is contained in:
2026-05-07 22:49:52 +03:00
parent 6067aae3dc
commit 28859d3e16
3 changed files with 34 additions and 0 deletions
+12
View File
@@ -324,6 +324,7 @@ type
procedure PushDDCPacket(const Buf: array of Byte;
DataOffset: Integer;
IQPairs: Integer);
procedure FlushRX;
// RX управление
procedure SetMode(Mode: Integer);
@@ -1112,6 +1113,17 @@ begin
RTLEventSetEvent(FQueueSem); // будим DSP поток (как sem_post в piHPSDR)
end;
procedure TWDSPEngine.FlushRX;
begin
FQueueHead := FQueueTail;
FRXAccPos := 0;
FDispPos := 0;
if Length(FRXAccI) > 0 then FillChar(FRXAccI[0], Length(FRXAccI) * SizeOf(Double), 0);
if Length(FRXAccQ) > 0 then FillChar(FRXAccQ[0], Length(FRXAccQ) * SizeOf(Double), 0);
if Length(FRXIn) > 0 then FillChar(FRXIn[0], Length(FRXIn) * SizeOf(Double), 0);
if Length(FRXOut) > 0 then FillChar(FRXOut[0], Length(FRXOut) * SizeOf(Double), 0);
end;
procedure TWDSPEngine.PushIQItemToDSP(const Item: TIQQueueItem);
// Вызывается из DSP потока — декодирует IQ и накапливает до FBufSize
var