program SerialPortListener;
{$mode objfpc}{$H+}
uses
cthreads, SysUtils, synaser;
var
Serial: TBlockSerial;
ReceivedData: string;
begin
// Initialize the serial port
Serial := TBlockSerial.Create;
try
// Set the device to the appropriate serial port (e.g., /dev/ttyS0 or /dev/ttyUSB0)
Serial.Connect('/dev/ttyS0');
// Set the baud rate to 19200, 8 data bits, no parity, 1 stop bit
Serial.Config(19200, 8, 'N', SB1, False, False);
// Loop to read data from the serial port
while True do
begin
// Check if data is available
if Serial.CanRead(1000) then
begin
// Read the data
ReceivedData := Serial.RecvPacket(1000);
// Print the received data
WriteLn('Received: ', ReceivedData);
end;
end;
finally
// Clean up
Serial.Free;
end;
end.