Experimental Physics and Industrial Control System
Hi Iain,
> I set $(P)$(R)ArrayCallbacks and $(P)$(R)EnableCallbacks to Enable and verified that with caget.
> TimeStamp_RBV and UniqueId_RBV do not update.
I suspect the problem could be that you used the wrong $(P)$(R)ArrayCallbacks record. That must be set using the $(R) for the detector driver (perhaps it is cam1:), while $(P)$(R)EnableCallbacks must be set for the $(R) of the NDPluginStdArrays plugin (perhaps image1:). The former tells your driver to do callbacks to plugins (and controls the if(arrayCallbacks) you said was false. The latter controls whether the NDPluginStdArrays plugin subscribes to callbacks from the driver.
If you set $(P)$(R)ArrayCallbacks for the NDPluginStdArrays plugin instead that would control whether that plugin does callbacks to any downstream plugins subscribed to it. That would be an unusual thing to do, since normal the NDPluginStdArrays plugin is not connected to any downstream plugins.
Mark
________________________________________
From: Iain Marcuson [[email protected]]
Sent: Thursday, May 04, 2017 7:25 AM
To: Mark Rivers; [email protected] >> EPICS Tech Talk
Subject: RE: EPICS PV for data in Area Detector
> > I note there are no NDArrayCallbacks.
>
> Please explain exactly what you mean by that statement. What are you
> observing?
>
> - Is your driver calling doCallbacksGenericPointer()?
The code is based on Mythen, and looks like:
getIntegerParam(NDArrayCallbacks, &arrayCallbacks);
if (arrayCallbacks) {
this->unlock();
doCallbacksGenericPointer(pImage, NDArrayData, 0);
this->lock();
}
I put some printf()s to trace the flow and found that the if statement doesn't evaluate to true
>
> - Are ArrayCallbacks enabled in your driver?
>
> - Is the NDPluginStdArrays plugin enabled (EnableCallbacks)? Is it configured
> to get its data from your driver? Are the TimeStamp_RBV and UniqueId_RBV
> records in NDPluginStdArrays updating?
>
I set $(P)$(R)ArrayCallbacks and $(P)$(R)EnableCallbacks to Enable and verified that with caget. TimeStamp_RBV and UniqueId_RBV do not update.
> > When I look at $(P)$(R)ArrayData, it appears to be all zeroes except the
> first value
>
> How are you looking at $(P)$(R)ArrayData, i.e. with what tool?
>
I am using caget -# 100 $(P)$(R)ArrayData.
> -----Original Message-----
> From: Mark Rivers [mailto:[email protected]]
> Sent: Wednesday, May 03, 2017 9:52 PM
> To: Iain Marcuson <[email protected]>; tech-
> [email protected] >> EPICS Tech Talk <[email protected]>
> Subject: RE: EPICS PV for data in Area Detector
>
> Hi Iain,
>
> Some questions:
>
> > I note there are no NDArrayCallbacks.
>
> Please explain exactly what you mean by that statement. What are you
> observing?
>
> - Is your driver calling doCallbacksGenericPointer()?
>
> - Are ArrayCallbacks enabled in your driver?
>
> - Is the NDPluginStdArrays plugin enabled (EnableCallbacks)? Is it configured
> to get its data from your driver? Are the TimeStamp_RBV and UniqueId_RBV
> records in NDPluginStdArrays updating?
>
> > When I look at $(P)$(R)ArrayData, it appears to be all zeroes except the
> first value
>
> How are you looking at $(P)$(R)ArrayData, i.e. with what tool?
>
> Mark
>
>
> ________________________________________
> From: [email protected] [[email protected]] on
> behalf of Iain Marcuson [[email protected]]
> Sent: Wednesday, May 03, 2017 3:43 PM
> To: [email protected] >> EPICS Tech Talk
> Subject: EPICS PV for data in Area Detector
>
> I am trying to transfer pixel values from an Area Detector driver's private
> variable into an NDArray for viewing with ImageJ. I have verified that the
> ImageJ plugin works. I have also verified that the test data are generated
> correctly. My code follows that of the Mythen driver, except with two
> dimensions instead of one. I alloc() an NDArray and copy the pixel values
> over. I have verified that the pixel values are transferred correctly to the
> pImage. I note there are no NDArrayCallbacks. When I look at
> $(P)$(R)ArrayData, it appears to be all zeroes except the first value, which
> appears to increment on both acquisition and "caget $(P)$(R)ArrayData".
> What might I be missing?
>
> Thank you,
>
> Iain.
- Replies:
- RE: EPICS PV for data in Area Detector Iain Marcuson
- References:
- EPICS PV for data in Area Detector Iain Marcuson
- RE: EPICS PV for data in Area Detector Mark Rivers
- RE: EPICS PV for data in Area Detector Iain Marcuson
- Navigate by Date:
- Prev:
RE: EPICS PV for data in Area Detector Iain Marcuson
- Next:
RE: Question about build StreamDevice application 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: EPICS PV for data in Area Detector Iain Marcuson
- Next:
RE: EPICS PV for data in Area Detector Iain Marcuson
- 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