Subject: |
Re: processCallbacks() never called in areaDetector plugin |
From: |
Alexander Söderqvist <[email protected]> |
To: |
[email protected] |
Date: |
Tue, 8 Nov 2016 15:11:09 +0100 |
Hi Jonas,
require is ESS site specific. Please contact me for further support offline.
Alexander
On 2016-11-08 15:00, Jonas Nilsson wrote:
I am getting slightly closer to a solution. I had to replace "return
pPlugin->start();" with the old "return(asynSuccess);" as the compiler
complained that the class did not have a member with the name "start".
However, when trying to require an older version of adcore (e.g. "require
adcore,2.4.4") iocsh complains that my plugin depends on adcore 2.5+.
Furthermore, disabling multithread support when starting my module (i.e.
using "MyPluginConfig("I1", 3, 1, "$(S_PORT)", 0)" instead of
"MyPluginConfig("I1", 3, 0, "$(S_PORT)", 0)") processCallbacks() is
called correctly.
My conclusion is that the EPICS build system where I work is set up wrong
so that it includes header files from an old version of adcore but links
agains a new version.
Thanks for your help!
Regards,
Jonas
On 2016-11-08 14:33, "[email protected] on behalf of Siniša
Veseli" <[email protected] on behalf of [email protected]>
wrote:
Uhh, thanks, I keep forgetting that it should be in the configure code.
What was causing the problem with this being handled in the base class
as before?
Sinisa
On 11/8/16 7:08 AM, Mark Rivers wrote:
Actually I think you need to call start() in the code that created the
object, not in the constructor. The problem is that the derived class
needs to be completely constructed before start() is called.
This is the example from NDPluginStdArrays:
/* Configuration routine. Called directly, or from the iocsh function
*/
extern "C" int NDStdArraysConfigure(const char *portName, int
queueSize, int blockingCallbacks,
const char *NDArrayPort, int
NDArrayAddr, size_t maxMemory,
int priority, int stackSize)
{
NDPluginStdArrays *pPlugin = new NDPluginStdArrays(portName,
queueSize, blockingCallbacks, NDArrayPort, NDArrayAddr, maxMemory,
priority,
stackSize);
return pPlugin->start();
}
________________________________________
From: [email protected] [[email protected]] on
behalf of Siniša Veseli [[email protected]]
Sent: Tuesday, November 08, 2016 7:03 AM
To: [email protected]
Subject: Re: processCallbacks() never called in areaDetector plugin
Hi,
If you are using ADCore 2-5, you probably need to call start() in your
plugin's constructor.
Sinisa
On 11/8/16 6:28 AM, Jonas Nilsson wrote:
Hi,
I am trying to learn how to write an areaDetector plugin. As a
starting point I have tried to use the "NDStdArrays" plugin and simply
switched all the names in the relevant source files to something else
so as to not cause a conflict with the existing NDStdArrays plugin.
The problem is that whereas the original NDStdArrays plugin appears to
work correctly (ArrayCounter_RBV increases), my version does not
appear to do so.
I have put some simple debug messages into all the functions and
member functions in the source file and while the plugin appears to
initialize correctly, processCallbacks(NDArray *pArray) is never
called.
The plugin is enabled (EnableCallbacks_RBV returns "Enable") and I can
see no error or warning messages when starting iocsh. Does anyone have
a good idea on what might be a common beginners problem or how to
debug the problem?
Regards,
Jonas
--
Siniša Veseli
Scientific Software Engineering & Data Management
Advanced Photon Source
Argonne National Laboratory
[email protected]
(630)252-9182
--
Siniša Veseli
Scientific Software Engineering & Data Management
Advanced Photon Source
Argonne National Laboratory
[email protected]
(630)252-9182
--
Alexander Söderqvist
Software and Hardware Developer
Cosylab Sweden
Phone: +46 (0)73 65 62 133
- References:
- processCallbacks() never called in areaDetector plugin Jonas Nilsson
- Re: processCallbacks() never called in areaDetector plugin Siniša Veseli
- RE: processCallbacks() never called in areaDetector plugin Mark Rivers
- Re: processCallbacks() never called in areaDetector plugin Siniša Veseli
- Re: processCallbacks() never called in areaDetector plugin Jonas Nilsson
- Navigate by Date:
- Prev:
Re: processCallbacks() never called in areaDetector plugin Jonas Nilsson
- Next:
Multiple NDPluginPva issues Alexander Söderqvist
- 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: processCallbacks() never called in areaDetector plugin Jonas Nilsson
- Next:
RE: processCallbacks() never called in areaDetector plugin 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
|