Mám vyzkoušeno jen v Delphi, ale i pro FPC by měl fungovat SYNASER. A určitě používáme čísla COM portů vyšší než 9.
Takový nástin, je to vykouslé z objektu:
uses synaser;
Ser:TBlockSerial;
begin
Result := False;
Port := 'COM'+IntToStr(KFG.Zamky.Port);
Ser.RaiseExcept:=False;
Ser.Connect(Port);
if (Ser.LastError = 0) then begin
Ser.Config(Rychlost, Bitu, Parita, sb, False, False);
Result := True;
end
else begin
FRM.Zprava(Self, mtChyba, [tlOK], tlOK, _('Chyba při otevírání portu ')+Port,
'('+IntToStr(Ser.LastError)+') '+Ser.GetErrorDesc(Ser.LastError));
end;
end;