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: "Paduan Donadio, Marcio via Tech-talk" <tech-talk at aps.anl.gov>
To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Fri, 24 Jul 2020 17:08:18 +0000

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

 


Replies:
Re: Changing Asyn Port Driver paramList dynamically Lucas Russo via Tech-talk
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

Navigate by Date:
Prev: Re: Changing Asyn Port Driver paramList dynamically Lucas Russo via Tech-talk
Next: Re: Changing Asyn Port Driver paramList dynamically Lucas Russo 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 Lucas Russo via Tech-talk
Next: Re: Changing Asyn Port Driver paramList dynamically Lucas Russo 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 ·