EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: processCallbacks() never called in areaDetector plugin
From: Jonas Nilsson <[email protected]>
To: "[email protected]" <[email protected]>
Date: Tue, 8 Nov 2016 14:00:02 +0000
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  <20162017  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  <20162017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 08 Nov 2016 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·