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  2012  2013  2014  2015  2016  2017  2018  <20192020  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  <20192020 
<== Date ==> <== Thread ==>

Subject: Re: Fw: asynDriver - update record (timestamp), on no change
From: Rod Nussbaumer via Tech-talk <tech-talk@aps.anl.gov>
To: "tech-talk@aps.anl.gov" <tech-talk@aps.anl.gov>
Date: Fri, 1 Mar 2019 14:17:58 +0000
Does this mean that the records with unchanged data but new timestamps 
will post monitors to subscribed clients on each 'update'? That would 
potentially introduce a lot of unnecessary/unwanted CA traffic.

    --- rod.


On 2/28/19 11:15 AM, Mark Rivers via Tech-talk wrote:
> 
> 
> 
> ________________________________
> From: Mark Rivers
> Sent: Thursday, February 28, 2019 12:35 PM
> To: Joao Afonso
> Subject: Re: asynDriver - update record (timestamp), on no change
> 
> 
> Your proposed hack is indeed the workaround for now.  It would be nice to add another way to do this, perhaps forceParamCallback(addr, param).
> 
> 
> Mark
> 
> 
> 
> 
> ________________________________
> From: tech-talk-bounces@aps.anl.gov <tech-talk-bounces@aps.anl.gov> on behalf of Joao Afonso via Tech-talk <tech-talk@aps.anl.gov>
> Sent: Thursday, February 28, 2019 11:16 AM
> To: tech-talk@aps.anl.gov
> Subject: asynDriver - update record (timestamp), on no change
> 
> 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
> 

Replies:
Re: Fw: asynDriver - update record (timestamp), on no change Ralph Lange via Tech-talk
References:
asynDriver - update record (timestamp), on no change Joao Afonso via Tech-talk
Fw: asynDriver - update record (timestamp), on no change Mark Rivers via Tech-talk

Navigate by Date:
Prev: Re: Basic PVAccess question Marty Kraimer via Tech-talk
Next: Re: Fw: asynDriver - update record (timestamp), on no change Ralph Lange via Tech-talk
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  <20192020 
Navigate by Thread:
Prev: Fw: asynDriver - update record (timestamp), on no change Mark Rivers via Tech-talk
Next: Re: Fw: asynDriver - update record (timestamp), on no change Ralph Lange via Tech-talk
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  <20192020 
ANJ, 01 Mar 2019 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·