Experimental Physics and Industrial Control System
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
<2013>
2014
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
<2013>
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024