@Dimitrios Chr. Ioannidis
In your project I found lines that take me a lot further.
Interrupt the Com-Port when uploading and then open it again.
procedure TLSW.DoOpen;
begin
ShowMessage('Serial Öffnen');
// if Assigned(SerialMonitor) then
// SerialMonitor.RequestActivateMonitor(True);
end;
procedure TLSW.DoClose;
begin
ShowMessage('Serial Schliessen');
// if Assigned(SerialMonitor) then
// SerialMonitor.RequestActivateMonitor(False);
end;
....
// Run ( without or with debugger ) hooks
LazarusIDE.AddHandlerOnRunDebug(@LSW.RunHandler);
LazarusIDE.AddHandlerOnRunWithoutDebugInit(@LSW.RunNoDebugHandler);
LazarusIDE.AddHandlerOnRunFinished(@LSW.StopHandler, True);
Addendum:
I completely did without Synaser in my project, I now use the Serial unit, which is part of Lazarus.
I have discovered another error regarding this stopping of the Com-Port.
Overriding these functions is useless since they are only executed when avrdude is ready.
// Useless
LazarusIDE.AddHandlerOnRunDebug(@NewIDEHandle.RunHandler, False);
LazarusIDE.AddHandlerOnRunWithoutDebugInit(@NewIDEHandle.RunNoDebugHandler, False);
LazarusIDE.AddHandlerOnRunFinished(@NewIDEHandle.StopHandler, True);
[
You have to overwrite the following:
// correct
LazarusIDE.AddHandlerOnProjectBuilding(@NewIDEHandle.RunBuilding, False);
LazarusIDE.AddHandlerOnProjectBuildingFinished(@NewIDEHandle.StopBuilding, True);