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
>
- Replies:
- Re: processCallbacks() never called in areaDetector plugin Alexander Söderqvist
- 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
- Navigate by Date:
- Prev:
Re: processCallbacks() never called in areaDetector plugin Siniša Veseli
- Next:
Re: processCallbacks() never called in areaDetector plugin 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 Siniša Veseli
- Next:
Re: processCallbacks() never called in areaDetector plugin 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
|