Ach ja, die oben genannten verstecken sich aktuell im GetIt.
Es gab dort doch auch mal einen TComPort oder war's TSerialPort ... aber scheinbar nicht mehr.
https://github.com/CWBudde/ComPort-Library
https://sourceforge.net/projects/comport/
Ich glaub davon haben wir eine Version im Programm. Ich kann mich jetzt nicht erinnern, dass es knallte, wenn das USB-Gerät gezogen wurde, aber normals macht das bei uns auch niemand.
Und meißtens verwenden wir eine
DLL für den Zugriff auf die meist verwendetsten Geräte. Nur in selten Fällen direkt via ComPort auf ältere, bzw. andere alternative Geräte.
Am Billigesten kann man ja mit CreateFile (oder AssignFile, TFileStream, ...) den Port öffnen.
'\\.\COM3'
Das Lesen aber leider im Thread (es ist leider nicht sicher zu lesen oder den Buffer zu prüfen, z.B. in einem Timer oder manuell im direkt z.B. nach dem Senden, ohne dass es hängen bleibt, falls/wenn grade keine Daten vorhanden sind und man vorher nicht definitiv sagen kann ob und wie viele Daten rein kommen)
Aber wenn man nur sendet und praktisch nichts empfangen muß, dann geht das super und man hat die minimalste Implementation.
BAUD usw. zu setzen kann man sich oft sparen, da meistens die Defaults/Systemvorgaben reichen und am Ende heutzutage selten wirklich seriell Daten übertragen werden, womit die physischen BAUD irrelevant sind.
(ja, ich weiß dass USB auch seriell ist, aber das taktet sich selbst, inkl. Fehlerprüfung usw.)