> I found that when I toggled the passed to ADStatus (alternating from 3 to 4 and back), the caget read the new value.
> It looks like it only updates on change.
Yes, that is true. callParamCallbacks() only does the callbacks to device support if the value set by setXXXParam has changed since the last time callParamCallbacks() was called. As you observed the only way to force a callback at present is to write a dummy value and then the desired value before calling callParamCallbacks().
Mark
________________________________________
From: Iain Marcuson [[email protected]]
Sent: Wednesday, May 10, 2017 8:11 AM
To: Mark Rivers; [email protected] >> EPICS Tech Talk
Subject: RE: AreaDetector bindings and RBV propagation
Thank you for your response, and sorry for not getting back to you sooner.
> >10. Caget $(P)$(R)DetectorState_RBV. It is "Readout" (numeric value 2),
> not 3 as would be expected from step 9.
>
> That does not make sense to me. If your driver called
> setIntegerParam(ADStatus, 3) and then callParamCallbacks(addr) then the
> record should have the value 3, not 2.
>
I found that when I toggled the passed to ADStatus (alternating from 3 to 4 and back), the caget read the new value. It looks like it only updates on change.
Iain.
>
> -----Original Message-----
> From: [email protected] [
> The Get Status code is
>
> if (function == detector_get_status_)
> {
> printf("Received SDGetStaus command.\n");
> // XXX Does putting a Get make the set take effect?
> getIntegerParam(ADStatus, &det_status);
> printf("Detector status before set is %i.\n", det_status);
> setIntegerParam(ADStatus, 3);
> }
>
> And the GetStatus record is:
> record(longout, $(P)$(R)GetStatus)
> {
> field(DTYP, "asynInt32")
> field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))SDGETSTATUS")
> }
- References:
- AreaDetector bindings and RBV propagation Iain Marcuson
- RE: AreaDetector bindings and RBV propagation Mark Rivers
- RE: AreaDetector bindings and RBV propagation Iain Marcuson
- Navigate by Date:
- Prev:
RE: AreaDetector bindings and RBV propagation Iain Marcuson
- Next:
Re: Switched PDUs with EPICS support Tomaž Šuštar
- 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
- Navigate by Thread:
- Prev:
RE: AreaDetector bindings and RBV propagation Iain Marcuson
- Next:
CSS PyDev - capturing mouse event Mogamad-Amien Crombie
- 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
|