EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  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  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: asynPortDriver, I/O INTR and missing updates
From: Mark Rivers <[email protected]>
To: Eric Norum <[email protected]>, Jimmy Johnson <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Sat, 7 Apr 2012 13:47:26 +0000
Hi Eric,

No, that won't fix the problem.  The problem is lower down than that, in the driver.  The driver is never doing a callback to the record if the value has not changed.  This is the desired behavior most of the time. For example in Modbus read operations the poller thread should only call back the record when a value changes.  But in some case, like a device sending new data asynchronously, one may want the callback to occur even if the value is the same.

Mark

________________________________
From: [email protected] [[email protected]] on behalf of Eric Norum [[email protected]]
Sent: Friday, April 06, 2012 9:43 PM
To: Jimmy Johnson
Cc: [email protected]
Subject: Re: asynPortDriver, I/O INTR and missing updates

Would setting the record MDEL field to -1 solve your problem?

On Apr 6, 2012, at 5:58 PM, Jimmy Johnson wrote:

We have recently built a number of drivers using asynPortDriver. The process has been extremely easy and the results good. We did run into one problem recently which I’d like to get input on.  What we found was that we were missing updates from one driver when using “I/O INTR”. When we looked into it we discovered it was because the setDouble member of paramList checks to see whether the value being passed to it is different from the current parameter value before if updates its flag for inclusion as part of callCallbacks.About 1% of the time the data our driver retrived matched the previous value.

In our case we need the “I/O INTR” records to process regardless of whether the value differs or not (in addition to providing the currrent value it is triggering our servo processing). For now we just modified the asynPortDriver source but this is not how we want to proceed. Would it be possible to modify the setXXXParam calls to take a third defaulted parameter, e.g.  setDoubleParam(int index, double value,bool ignorevaluecheck = false), offer  an overloaded set of setXXXParam calls or is there a way to use the current class such that callbacks occur regardless of the value?

Thanks
Jimmy Johnson


--
Eric Norum
[email protected]<mailto:[email protected]>






References:
asynPortDriver, I/O INTR and missing updates Jimmy Johnson
Re: asynPortDriver, I/O INTR and missing updates Eric Norum

Navigate by Date:
Prev: Channel Access problem over SSH Pavel Masloff
Next: Goodbye and thanks for all the fish Rarback, Harvey M.
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: asynPortDriver, I/O INTR and missing updates Eric Norum
Next: Channel Access problem over SSH Pavel Masloff
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·