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 <[email protected]> wrote: > From: Bo Berglund <[email protected]> > Subject: Re: [Lazarus] SdpoSerial Tx and Rx buffers? > To: [email protected] > Date: Tuesday, February 15, 2011, 2:53 PM > On Tue, 15 Feb 2011 00:49:56 +0000, > Paulo Costa <[email protected]> > 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 > [email protected] > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus > -- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
