[Lazarus] SdpoSerial Tx and Rx buffers?

dennis martin visionstaff at yahoo.com
Wed Feb 16 07:17:47 CET 2011


may i suggest looking at elecomm for an ideal it's a old pascal serial library but would fit your needs

--- On Tue, 2/15/11, Bo Berglund <bo.berglund at gmail.com> wrote:

> From: Bo Berglund <bo.berglund at gmail.com>
> Subject: Re: [Lazarus] SdpoSerial Tx and Rx buffers?
> To: lazarus at lists.lazarus.freepascal.org
> Date: Tuesday, February 15, 2011, 2:53 PM
> On Tue, 15 Feb 2011 00:49:56 +0000,
> Paulo Costa <paco at fe.up.pt>
> wrote:
> 
> >Synaser is blocking both for writing and reading.
> >The SdpoSerial component creates a thread to listen and
> generates an 
> >event when bytes are received. So reading can be
> non-blocking.
> >The write methods are direct calls to the Synaser ones
> and they are 
> >blocking.
> 
> I just checked by setting up a transfer of 100.000 bytes at
> 38400
> baud. With a breakpoint at the FComm.WriteData method I
> could time
> this function using the step-over command. It returned in
> 30 s when
> the packet was 100006 bytes long, an effective baudrate of
> 33300 baud.
> So it really looks like the WriteData *is* blocking...
> 
> >For that, you must break your transmission in small
> block and use the 
> >completion of each transfer to signal the progress.
> 
> Sadly this seems to be the case...
> 
> I would have to send in chunks of 1500 bytes or so to get 2
> progress
> ticks per second. The application will probably be stone
> dead and
> nonresponsive too, which is one of the things I really like
> to
> *always* avoid.
> 
> What one would need to do to fix this is to put the
> SdpoSerial into a
> thread and let the thread send data out from a buffer that
> can be
> loaded by the main application. But then we have the
> problem of
> transferring the Tx data into the thread environment in a
> threadsafe
> way...
> 
> My project just grew. :-(
> 
> 
> Bo Berglund
> 
> 
> --
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
> 


      




More information about the Lazarus mailing list