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  <20132014  2015  2016  2017  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  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: asynAddress, asynPortDriver maxAddr, and addr in setXXXParam
From: Emmanuel Mayssat <[email protected]>
To: Mark Rivers <[email protected]>, "[email protected]" <[email protected]>
Date: Thu, 11 Apr 2013 16:37:02 -0700
ASYN_MULTIDEVICE was the issue.
Thank you.

BTW, why aren't multi-devices and all interfaces enabled by default?
--
Emmanuel

> From: [email protected]
> To: [email protected]; [email protected]
> Subject: RE: asynAddress, asynPortDriver maxAddr, and addr in setXXXParam
> Date: Sat, 6 Apr 2013 14:33:13 +0000
>
> Hi Emmanuel,
>
> You've sent 2 questions/problems about asyn to tech-talk recently:
>
> In the first query you asked:
> > But when I start the IOC,   that line cause the following error:
> > WATCH:8:CrntTimeSI devAsynOctet::initCommon interface asynOctet not found
> > which apparently means that the asynOctet interface is not registered.
> > Isn't the asynPortDriver supposed to take care of that?
>
> I replied:
> > One of the arguments passed to the asynPortDriver constructor is a bit-mask of all of the asyn interfaces your driver will support.
> > You forgot to set the asynOctetMask bit in your call to the constructor. Here is an example from asyn/testErrorsApp/src/testErrors.cpp
>
> In the second query you asked:
> > My understanding of maxAddr is that the parameter library is an array of param lists x maxAddr
> > So if I set the asynAddress to a value between 0 and maxAddr, I should be able to 'browse' the whole parameter library.
>
> I replied:
> > That is correct.
> > Did you set the ASYN_MULTIDEVICE bit in the "asynFlags" parameter in your call to the asynPortDriver base class constructor?
>
> But you have not posted a follow up on these so that we would know if my suggestions solved your problems.
>
> It's helpful for me to know if there is a problem I don't know about in asyn, and it's helpful for the tech-talk community to know if the suggestion worked, in case others have a similar problem in the future.
>
> Mark
>
>
> From: Mark Rivers
> Sent: Thursday, April 04, 2013 7:29 PM
> To: 'Emmanuel Mayssat'; [email protected]
> Subject: RE: asynAddress, asynPortDriver maxAddr, and addr in setXXXParam
>
> > My understanding of maxAddr is that the parameter library is an array of param lists x maxAddr
>
> That is correct.
>
> > So if I set the asynAddress to a value between 0 and maxAddr, I should be able to 'browse' the whole parameter library.
>
> That is correct.
>
> Did you set the ASYN_MULTIDEVICE bit in the "asynFlags" parameter in your call to the asynPortDriver base class constructor?
>
> Mark
>
>
> From: [email protected] [mailto:[email protected]] On Behalf Of Emmanuel Mayssat
> Sent: Thursday, April 04, 2013 7:14 PM
> To: [email protected]
> Subject: asynAddress, asynPortDriver maxAddr, and addr in setXXXParam
>
> My understanding of maxAddr is that the parameter library is an array of param lists x maxAddr
> So if I set the asynAddress to a value between 0 and maxAddr, I should be able to 'browse' the whole parameter library.
>
> In other words, 2 records with the INP field as 
>  field(INP,  "@asyn(asynPort,1,$(asynTimeout))REASON")    <-- asynAddress = 1
> and
>  field(INP,  "@asyn(asynPort,2,$(asynTimeout))REASON")
> and with 
>  field(PINI, "1")
> should immediately read different values.
>
> A quick test with 
> /* setDoubleParam(0, P_Reason, 1.0) */
> setDoubleParam(1, P_Reason, 2.0)
> setDoubleParam(2, P_Reason, 3.0)
> in asynPortDriver constructor and after firing up the ioc, both of the records want to read the address 0.
>
> Are those addresses related? What am i missing?
>
> --
> Emmanuel
>
>

Replies:
RE: asynAddress, asynPortDriver maxAddr, and addr in setXXXParam Emmanuel Mayssat
References:
asynAddress, asynPortDriver maxAddr, and addr in setXXXParam Emmanuel Mayssat
RE: asynAddress, asynPortDriver maxAddr, and addr in setXXXParam Mark Rivers
RE: asynAddress, asynPortDriver maxAddr, and addr in setXXXParam Mark Rivers

Navigate by Date:
Prev: Re: Conversion problem from double to 32 bit unsigned int (in ao) Benjamin Franksen
Next: autosave limitation? Emmanuel Mayssat
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: asynAddress, asynPortDriver maxAddr, and addr in setXXXParam Mark Rivers
Next: RE: asynAddress, asynPortDriver maxAddr, and addr in setXXXParam Emmanuel Mayssat
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 20 Apr 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·