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 2025 | 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 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | asynDriver - update record (timestamp), on no change |
From: | Joao Afonso via Tech-talk <[email protected]> |
To: | "[email protected]" <[email protected]> |
Date: | Thu, 28 Feb 2019 17:16:39 +0000 |
Hello,
I have an asyn driver IOC that periodically receives new data, updates the parameters (and timestamps), and runs the callbacks for the "I/O Intr" records.
It has an extra thread that runs something like this:
while(1)
{
int value = wait_for_data();
setIntegerParam(dev_addr, param_id, value)
updateTimeStamp();
callParamCallbacks(dev_addr);
}
However, 'callParamCallbacks' will not update the record timestamp if the value received keeps being the same.
From what I understand, this is the intended behaviour of asynDriver - no updates if data is the same -, but I would like to know if there a way to enforce it (to update the record timestamp)?
One possible solution I think will work is to update the parameter with a random value first, to trigger the 'new data' flag, but it feels like an hack...
Example:
setIntegerParam(dev_addr, param_id, 0)
setIntegerParam(dev_addr, param_id, value)
Thank you,
Joao Afonso
|