Hab das Problem gefunden.
Delphi-Quellcode:
//Quelle: Comm_async.pas
function TComm.GetStopBits: TStopBits;
begin
case fDCB.StopBits of
ONESTOPBIT : Result:= csbONE;
ONE5STOPBITS : Result:= csbONE5;
else Result:= csbTWO;
end; //case
end;
Dies scheint nicht ganz hiermit zu passen:
Delphi-Quellcode:
function Getstopbit: Tstopbits;
var
st_3: string;
i: integer;
begin;
try;
st_3 :=copy(form1.LMDedit1.text,5,1);
i := strtoint(st_3);
case i of
0: Result:= csbONE;
1: Result:= csbONE5;
2: Result:= csbTWO;
else begin
Result:= csbONE;
Messagebox(0, 'Bitte gültige Anzahl Datenbits angeben (0-2), Wert 0 übernommen.','Falsche Anzahl Stopbits', MB_ICONError );
end;
end;
except;
end;
end;
Da scheint ein Zahlendreher vorzuherrschen.
1 Stopbit ist anscheinend csbONE
0 ist csb ONE5
und 2 csb TWO.
Wenn ich die 0 Eingebe, dann passen die Daten.
Danach ist es egal was ich an Anzahl Stopbits reinschreib.
Jetzt geht es zwar, aber ich weiß immer noch nicht warum