[Lazarus] Portiung Windows application to Linux, what about serial comm?

Bo Berglund bo.berglund at gmail.com
Fri Apr 24 21:48:27 CEST 2020


I am trying to port a Windows application written in Delphi7/2007 back
in 2004-2012 to FPC/Lazarus so it can later be moved to Linux.
THis application is used to talk via RS232 to a data collection system
for control and data retrieval.

Unfortunately there was no built-in support in Delphi for serial comm
so we used external components for this, at first a very simple
TSerial component from a developer in the UK and later Turbo Async
Pro.

The TSerial component is contained in a single source file whereas
AsyncPro is splitting its serial component in a large set of units,
very hard to navigate.

In both cases the application is written using the event model for
receiving data and non-blocking send functions.

I would rather not want to port these components (at least not Async
Pro) since they are inherently Windows centric.
Instead I want to use the built-in Serial component, but it needs to
be packaged with a wrapper such that an OnRxData event is added and
such that there is a non-blocking transmit.
Must be possible to set the RX/Tx buffer size too.

What is the best way to accomplish the move of serial comm to
FPC/Lazarus?

Is there a way to add receive events and non-blocking send to the
built-in serial object in FPC?
I mean if I make a custom component by inheriting from the built-in
serial, how can these extra features be added?

Maybe it has already been done?


-- 
Bo Berglund
Developer in Sweden



More information about the lazarus mailing list