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