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: | asynPortDriver, I/O INTR and missing updates |
From: | Jimmy Johnson <[email protected]> |
To: | "[email protected]" <[email protected]> |
Date: | Sat, 7 Apr 2012 00:58:47 +0000 |
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 |