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: Mark Rivers <[email protected]>
To: "'Emmanuel Mayssat'" <[email protected]>, "'[email protected]'" <[email protected]>
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

Navigate by Date:
Prev: Re: EPICS performance test/benchmark Andrew Johnson
Next: Newport Piezo USB Controllers Andrew Gomella
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 ·