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: Thu, 18 Apr 2013 00:00:37 +0000
Each asyn address has its own asynTraceMask.

If you want to print ASYN_TRACE_ERROR and ASYN_TRACEIO_DRIVER messages for a record with asyn address=0 then you do

asynSetTraceMask "myPort",0,0x9

If you want to print ASYN_TRACE_ERROR and ASYN_TRACEIO_DRIVER messages for a record with asyn address=1 then you do

asynSetTraceMask "myPort",1,0x9

If you want to print ASYN_TRACE_ERROR and ASYN_TRACEIO_DRIVER messages for a records with ANY asyn address then you do

asynSetTraceMask "myPort",-1,0x9

Is this what you are asking?

Mark



________________________________
From: Emmanuel Mayssat [[email protected]]
Sent: Wednesday, April 17, 2013 6:32 PM
To: Mark Rivers; [email protected]
Subject: RE: asynAddress, asynPortDriver maxAddr, and addr in setXXXParam

Mark,

I noticed that asynPrint only works when the asynAddress of the epics record is 0. Is this expected?

It seems to be because all asynPrint calls in the asyn source, never print the asynAddress.
I guess it means that if it works for asynAddress=0, then it work for all asynAddresses<MAX_ADDRESS

Is that what is intended?

--
Emmanuel

________________________________
From: [email protected]
To: [email protected]; [email protected]
Subject: RE: asynAddress, asynPortDriver maxAddr, and addr in setXXXParam
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
RE: asynAddress, asynPortDriver maxAddr, and addr in setXXXParam Emmanuel Mayssat
RE: asynAddress, asynPortDriver maxAddr, and addr in setXXXParam Emmanuel Mayssat

Navigate by Date:
Prev: RE: asynAddress, asynPortDriver maxAddr, and addr in setXXXParam Emmanuel Mayssat
Next: RE: sscan/ saveData problem with RW permission, and not an NFS issue Vesna Samardzic-Boban
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 Emmanuel Mayssat
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 ·