Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Tue, 17 May 2005 16:43:34 -0400 From: Christopher Faylor To: cygwin AT cygwin DOT com Subject: Re: Serial programming - Writing bytes in a blocking mode - Problem with tcdrain() ? Message-ID: <20050517204334.GA7435@trixie.casa.cgf.cx> Reply-To: cygwin AT cygwin DOT com References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.8i On Mon, May 16, 2005 at 10:22:00AM +0100, pbenito AT cemitec DOT com wrote: >I'm trying to use the serial port with Cygwin, and here is my problem: > >I can successfully write on the line, but I need to switch the RTS and DTR >lines just AFTER the last byte is written in the line. I put the bytes that >I want in the line with the command Write and I wait for the last byte to >be written with tcdrain() and then I switch the RTS and RTS lines. But when >I see the signals in the oscilloscope I realized that the tcdrain call is >not waiting till the output buffer is empty and I switch the RTS and DTR >lines before I write all the bytes !! I attach my code, is it something >wrong with it or is there a problem with the tcdrain call in cygwin? On a >Linux box, tcdrain call seems to work fine... > > I'm running Cygwin v1.65 on a Windows XP SP2 machine. > >Thanks for your help Corinna and I looked at the implementation of tcdrain in cygwin. It's pretty simple. It just calls FlushFileBuffers and, according to Microsoft: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/read_and_write_operations.asp it should be doing the right thing. I wonder if you're just seeing the effects of a buffer on the comm device itself not draining even though Windows has flushed everything from its own memory. -- Christopher Faylor spammer? -> aaaspam AT sourceware DOT org Cygwin Co-Project Leader aaaspam AT duffek DOT com TimeSys, Inc. -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/