Forum Delphi.cz

FreePascal (FPC) a Lazarus => Obecné => Téma založeno: JindraHavel 28-01-2021, 05:53:22

Název: COM PORT větší než 9
Přispěvatel: JindraHavel 28-01-2021, 05:53:22
Jak se prosím ve WIN7/10 pripojit ke COM portům, které jsou větší než 9? Používám Lazarus, s "jednocifernými" porty žádný problém není...

Kód níže mi bohužel nefunguje - serialhandle je (pro porty nad 9) stále 0.
Kód: [Vybrat]
if ComNr > 9 then
  ComPortName:= Format('\\\\.\\COM%d', [ComNr])
else
  ComPortName:= Format('COM%d', [ComNr]);

serialhandle := SerOpen(ComPortName);
Název: Re:COM PORT větší než 9
Přispěvatel: KarelHorky 28-01-2021, 09:00:19
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:
Kód: [Vybrat]
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;