> 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
>
>