Path: csiph.com!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: "P E Schoen" Newsgroups: comp.lang.pascal.delphi.misc Subject: Re: Delphi D4: using pointers to transfer data from COMM queue to circular queue Date: Fri, 19 Aug 2016 03:58:01 -0400 Organization: A noiseless patient Spider Lines: 2 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=response Content-Transfer-Encoding: 7bit Injection-Date: Fri, 19 Aug 2016 07:58:08 -0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="b1af19846bb81aaa3b3db89d0d6b1b2f"; logging-data="3313"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19j0r3JOfPyRG3S8GC6KTOAyySeW1f0H2E=" X-MimeOLE: Produced By Microsoft MimeOLE V16.4.3564.1216 In-Reply-To: X-Newsreader: Microsoft Windows Live Mail 16.4.3564.1216 Importance: Normal Cancel-Lock: sha1:B/yBdr1/E+90yfr1NzEDWxeHAwo= X-Priority: 3 X-MSMail-Priority: Normal Xref: csiph.com comp.lang.pascal.delphi.misc:715 I mentioned elsewhere that I used TCriticalSections previously during the transfers from the ComDrv32 component input buffer to the larger CommBuffer, and also when processing the CommBuffer to detect and compensate for errors. This seemed to work for the SerialNG component, but for ComDrv32 it seemed to increase the errors. Removing them, I got some errors starting at 20 seconds as before, but after 700 seconds there are only 146 errors compared to nearly 1000 previously. There is probably a thread running to receive the characters into the COM16 file. I tried various settings for the serial port component with inconsistent results. What is consistent is that errors always start when the CommBuffer is nearly full and the data must be split to fill the buffer and then start again at the beginning. I may need to check my arithmetic. Paul