EPICS Home

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  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024  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  <20192020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: asyn R4-36 available
From: Mark Rivers via Tech-talk <[email protected]>
To: Abdalla Ahmad <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Wed, 21 Aug 2019 12:04:28 +0000
> Can you please explain in more details what the parseAsynUser method is used for?

It is a convenience method that parses the pasynUser and returns the pasynUser->reason, the asyn address, and the parameter name encoded  by that pasynUser.  So it combines several calls into one, which is useful because this needs to be done frequently, i.e. in all of the derived methods writeInt32, readInt32, writeFloat64, readFloat64, etc.

This is the code:

asynStatus asynPortDriver::parseAsynUser(asynUser *pasynUser, int *reason, int *address, const char **paramName)
{
    //static const char *functionName = "parseAsynUser";
    asynStatus status;

    *reason = pasynUser->reason;
    status = this->getAddress(pasynUser, address);
    if (status) return status;
    status = this->getParamName(*reason, paramName);
    return status;
}

Mark




________________________________
From: Abdalla Ahmad <[email protected]>
Sent: Wednesday, August 21, 2019 3:28 AM
To: Mark Rivers
Cc: [email protected]
Subject: RE: asyn R4-36 available


Hello Mark



Many thanks on your efforts with the asyn driver. Can you please explain in more details what the parseAsynUser method is used for?



Best Regards,

Abdalla.



From: [email protected] <[email protected]> On Behalf Of Mark Rivers via Tech-talk
Sent: Friday, August 09, 2019 2:03 AM
To: '[email protected]' <[email protected]>
Subject: asyn R4-36 available



Folks,



asyn R4-36 is now available.



asyn is available on github here:

https://github.com/epics-modules/asyn



tar and zip files are available here:

https://github.com/epics-modules/asyn/releases



Soon you will be able to find links to the new documentation and release notes here:

http://www.aps.anl.gov/epics/modules/soft/asyn



These are from the R4-36 release notes:



- asynManager

  - Improved debugging output when scheduling queue request timeout.



- drvAsynIPPort

  - Improved diagnostic messages.



- asynPortDriver

  - Added new parseAsynUser() method. Changed all readXXX and writeXXX methods to use this, rather than getAddress().

  - Use asynPortDriver::getAddress() in callback functions, rather than pasynManager::getAddress(). This allows the getAddress() to be overridden in derived classes.

  - Fix to prevent a potentially locked mutex from being destroyed, as well as use-after-free bugs on other members of asynPortDriver. Thanks to Martin Konrad for this.



- asynInterposeDelay, asynInteposeEcho

  - Fixes to compile on Visual Studio 2010.



Mark





References:
asyn R4-36 available Mark Rivers via Tech-talk
RE: asyn R4-36 available Abdalla Ahmad via Tech-talk

Navigate by Date:
Prev: EPICS support for HORIBA iHR320 monochromator ? Heinz Junkes via Tech-talk
Next: pvput and enum (EPICS 7.0.3) Alfio Rizzo via Tech-talk
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  <20192020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: asyn R4-36 available Abdalla Ahmad via Tech-talk
Next: areaDetector R3-7 released Mark Rivers via Tech-talk
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  <20192020  2021  2022  2023  2024