I am missing something, as I am getting garbage. Also I get a lockup when disconnecting the VaComm
Ray.
type
TCapturestate = (csNone, csCaptureStart, csCaptureEnd);
TCapturestate = (csNone, csCaptureStart, csCaptureEnd);
var // Global varaialbes
cs: TCaptureState;
RxData: array[0..1000] of byte;
RxData: array[0..1000] of byte;
procedure TSymCommsDlg.VaComm1RxChar(Sender: TObject; Count: Integer);
var
sig_start, sig_end: byte;
b: byte;
i: integer;
begin
cs := csNone;
sig_start := $24;
sig_end := $7E;
i := 0;
var
sig_start, sig_end: byte;
b: byte;
i: integer;
begin
cs := csNone;
sig_start := $24;
sig_end := $7E;
i := 0;
while cs <> csCaptureEnd do begin
if vacomm1.ReadBufUsed > 0 then begin
vacomm1.ReadBuf(b,1);
case cs of
csCaptureStart: begin
if b = sig_end then
cs := csCaptureEnd
else begin
RxData := b;
inc(i);
end;
end;
csNone: if (b = sig_Start) then
cs := csCaptureStart;
end;
application.ProcessMessages;
ProcessData;
end;
end;
end;
cs := csCaptureStart;
end;
application.ProcessMessages;
ProcessData;
end;
end;
end;