Experimental Physics and Industrial Control System
I checked and I do have a callParamCallbacks(addr) call at the end of the function.
Iain.
> -----Original Message-----
> From: Mark S. Engbretson [mailto:[email protected]]
> Sent: Monday, May 08, 2017 4:51 PM
> To: Iain Marcuson <[email protected]>; tech-
> [email protected]
> Subject: RE: AreaDetector bindings and RBV propagation
>
> You might be missing the
>
> callParamCallbacks();
>
> any time that you perform a set command.
>
> -----Original Message-----
> From: [email protected] [mailto:tech-talk-
> [email protected]]
> On Behalf Of Iain Marcuson
> Sent: Monday, May 08, 2017 3:29 PM
> To: [email protected] >> EPICS Tech Talk <[email protected]>
> Subject: AreaDetector bindings and RBV propagation
>
> I have completed a basic AreaDetector module for my camera and am
> working on adding enhancements. Presently, I am attempting to add
> readback of acquisition status. I am unfamiliar with the normal operations of
> the RBV PVs, but tried manipulating one for practice. The sequence of
> events is:
> 1. Start IOC.
> 2. Caget $(P)$(R)DetectorState_RBV. It is idle.
> 3. Run acquisition command.
> 4. Caget $(P)$(R)DetectorState_RBV. It is idle.
> 5. Caput $(P)$(R)GetStatus 1. PV and function are detailed below.
> Initially reported value is 0, as expected.
> 6. Caget $(P)$(R)DetectorState_RBV. It is "Correct" (numeric value 3, as
> expected from GetStatus code).
> 7. Caput $(P)$(R)DetectorState_RBV 2.
> 8. Caget $(P)$(R)DetectorState_RBV. It is "Readout" (as expected from
> ADBase.template, numeric value 2).
> 9. Caput $(P)$(R)GetStatus 1. Initially reported value is 3, not 2 as would be
> expected from step 8.
> 10. Caget $(P)$(R)DetectorState_RBV. It is "Readout" (numeric value 2), not
> 3 as would be expected from step 9.
>
> 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")
> }
>
> Why are the values not propagating between parameter library and PVs, and
> how does one update these readback value PVs?
>
> Thank you,
>
> Iain Marcuson.
- References:
- AreaDetector bindings and RBV propagation Iain Marcuson
- RE: AreaDetector bindings and RBV propagation Mark S. Engbretson
- Navigate by Date:
- Prev:
RE: AreaDetector bindings and RBV propagation Mark S. Engbretson
- Next:
RE: AreaDetector bindings and RBV propagation Mark Rivers
- 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 Mark S. Engbretson
- Next:
RE: AreaDetector bindings and RBV propagation Mark Rivers
- 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