1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 <2013> 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 <2013> 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Stream Device and Asyn |
From: | Dirk Zimoch <[email protected]> |
To: | EPICS <[email protected]>, [email protected] |
Date: | Wed, 10 Apr 2013 10:33:10 +0200 |
Hi AlanIt is the "flush". Before each out command, I flush the input in order not to get any old unprocessed input in the queue. However, I found that when I call flush(), "I/O Intr" records that might be interested in that input don't get it. Thus I emulated the flush() by reading until the input queue is empty (and feeding the input to any registered "I/O Intr" record). I did not think about device that must not be read. I will check that.
Which asyn port drive do you use? Something from asyn or something self-written? In the second case, please send me your code.
Dirk On 08.04.2013 18:40, Alan Greer wrote:
Thank you for the suggestion, I will give it a try. Kind regards, Alan On 04/08/2013 04:59 PM, Eric Norum wrote:Perhaps this could be related to the patch: StreamDevice-2-6-patch20121113 <http://epics.web.psi.ch/software/streamdevice/StreamDevice-2-6-patch20121113> Try applying that to the 2-6 code and see if it fixes things. On Apr 8, 2013, at 8:51 AM, Alan Greer <[email protected] <mailto:[email protected]>> wrote:
Hi, I have been carrying out some additional tests. I checked the flush operation in my driver and it does print "flush". I then started looking at versions. I have discovered that it works as expected if I use stream device version 2-5 instead of 2-6. In this situation I see a flush followed by a write. Kind regards, Alan On 04/08/2013 04:35 PM, Mark Rivers wrote:I can't think of any reason why it would be doing a read. asyn device support does attempt a read at iocInit on many output records, but not on stringout records. Could this be from a "flush" operation? Your driver is printing the message "device read"? Mark-- Eric Norum [email protected] <mailto:[email protected]>