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  2016  2017  2018  2019  <20202021  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  2016  2017  2018  2019  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Changing Asyn Port Driver paramList dynamically
From: Lucas Russo via Tech-talk <tech-talk at aps.anl.gov>
To: "Paduan Donadio, Marcio" <marcio at slac.stanford.edu>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Fri, 24 Jul 2020 14:18:17 -0300
Oh I see.

That's good to know!

Cheers,

Lucas

On Fri, Jul 24, 2020 at 2:08 PM Paduan Donadio, Marcio via Tech-talk <tech-talk at aps.anl.gov> wrote:

Hi, Lucas.

 

After talking with Mark Rivers I figured out that I was following an old R4-12 documentation without noticing. paramList, at that time, was a tiny class with only a few set of methods.

 

Once I’ve opened the newest version of the paramList Doxigen I could see the createParam() method. (facepalm)

 

Regarding the interface masks, Mark Rivers confirmed that it is not possible to change them after the constructor, but “the overhead in having an unused interface initialized in the asynPortDriver constructor is very low, so simply setting all standard interfaces in the mask would be a work-around for this”.

 

Thank you a lot for the answer. I have my IOC now running the way I intended.

 

My best,

 

Márcio

 

From: Lucas Russo <lerwys at gmail.com>
Date: Friday, July 24, 2020 at 9:23 AM
To: "Paduan Donadio, Marcio" <marcio at slac.stanford.edu>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Subject: Re: Changing Asyn Port Driver paramList dynamically

 

Hi Marcio,

 

From Asyn version 4-31 onwards you don't need to specify the number of parameters in advance (see https://epics-modules.github.io/master/asyn/R4-31/RELEASE_NOTES.html). You can just use createParam() and the c++ std::vector will handle this for you. So, in your child class I believe you can just call createParam() as usual. You just need to call the father class method if the parameter ID does not belong to your class.

 

Regarding specifying interfaces/masks I'm not sure if you can modify this after the father class has already initialized. Of course you can always pass these interface/interrupt mask parameters via the constructor, but I think that's not what you want.

 

You can also take a look at the QuadEM module that does more or less what you want, apparently: https://github.com/epics-modules/quadEM/tree/master/quadEMApp/src

 

drvQuadEM would be your father class and drvTetrAMM, drvNSLS_EM, etc would be your child classes.

 

Hope this helps,

 

Cheers,

 

Lucas

 

On Thu, Jul 23, 2020 at 12:16 AM Paduan Donadio, Marcio via Tech-talk <tech-talk at aps.anl.gov> wrote:

Hello.

 

I have this class inheritance scenario:

asynPortDriver <- fatherClass <- childClass

 

fatherClass constructor is calling asynPortDriver constructor, informing the number of elements of paramList as well as masks for interfaces used.

 

I’d like childClass to add more parameters to paramList after fatherClass already created this list and, eventually, add interfaces to the Asyn mask.

 

Is it possible?

 

Thank you,

 

Márcio Paduan Donadio

Control Systems Engineer - SLAC

 


References:
Changing Asyn Port Driver paramList dynamically Paduan Donadio, Marcio via Tech-talk
Re: Changing Asyn Port Driver paramList dynamically Lucas Russo via Tech-talk
Re: Changing Asyn Port Driver paramList dynamically Paduan Donadio, Marcio via Tech-talk

Navigate by Date:
Prev: Re: Changing Asyn Port Driver paramList dynamically Paduan Donadio, Marcio via Tech-talk
Next: Re: ADProsilica crashing on RHEL7 3.10.0-1127 Michael Dunning via Tech-talk
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  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Changing Asyn Port Driver paramList dynamically Paduan Donadio, Marcio via Tech-talk
Next: AW: database method to copy string to char waveform Malte Gotz via Tech-talk
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  <20202021  2022  2023  2024 
ANJ, 24 Jul 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·