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

Subject: asyn R4-35 available
From: Mark Rivers via Tech-talk <tech-talk@aps.anl.gov>
To: "'tech-talk@aps.anl.gov'" <tech-talk@aps.anl.gov>
Date: Mon, 18 Mar 2019 23:36:46 +0000

Folks,

 

asyn R4-35 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-35 release notes:

 

- devAsynInt32, devAsynFloat64, devAsynUInt32Digital, devAsynOctet

  - Fixed a deadlock problem when asyn:READBACK was used on output records.

    In devAsynOctet there was still an isssue if asyn:READBACK=1 was used without asyn:FIFO, i.e. when ring buffers were not enabled.

    The code now forces a minimum ring buffer size of 1 if asyn:READBACK=1 to avoid the deadlock.

    asyn:FIFO can still be used to select a larger ring buffer size.

 

- drvAsynIPPort

  - Fixed a problem with the disconnectOnReadTimeout option.

    Previously it would disconnect even if pasynUser->timeout was 0.

    This is not logical, and meant this option could not be used with StreamDevice, because StreamDevices flushes the input by reading with a timeout of 0 to support I/O Intr scanned records.

 

  - Updated the documentation to say that in order to receive UDP broadcast messages the localPort parameter in the hostInfo string in drvAsynIPPortConfigure must be specified.

    Example: drvAsynIPPortConfigure("BD","255.255.255.255:1234:3956 UDP",0,0,0) will listen for broadcast messages on port 3956.

    If the port is only to be used to receive broadcast messages then the UDP protocol should be specified.

    If the port is also to be used to send UDP broadcasts then the UDP* protocol must be specified.

    Example: drvAsynIPPortConfigure("BD","255.255.255.255:1234:3956 UDP*",0,0,0).

    In this case it will send the broadcast messages on UDP port 1234 and listen for broadcast messages on UDP port 3956.

 

- asynShellCommands

  - Enhancement to allow using strings for the mask arguments of asynSetTraceMask, asynSetTraceIOMask, and asynSetTraceInfoMask shell functions.

    The mask can be specified as an integer (previous behavior) or as symbolic names connected with + or |.

    Spaces are allowed but require quotes.

    The symbolic names are like the macro names in asyn.h, but not case sensitive and the prefixes ASYN_, TRACE_, TRACEIO_, and TRACEINFO_ are optional. Thanks to Dirk Zimoch for this.

       Examples:

         asynSetTraceMask port,0,ASYN_TRACE_ERROR

        asynSetTraceIOMask port,0,ascii+escape

        asynSetTraceInfoMask port,0,1+port+TRACEINFO_SOURCE|ASYN_TRACEINFO_THREAD

 

- asynPortClient.h, asynPortClient.cpp

  - Renamed asynPortClient base class to asynParamClient. This is the class from which asynInt32Client, asynFloat64Client, etc. are derived.

    The new asynPortClient class connects to a specific asynPortDriver object.

    It creates an asynParamClient derived class object for each of the parameters in that driver.

    It uses the std::map class to map between the parameter name key and the asynParamClient object for that parameter.

    It also defines overloaded write() and read() methods that take a paramName argument and the value to be written or pointer to read into.

    The data type of the value or pointer must match the parameter type or a run-time exception will be thrown.

    This new class is more convenient to use because it is no longer necessary to create the asynInt32Client, asynFloat64Client, etc. objects for each parameter to be accessed.

 

- asynPortDriver

  - Added asynPortDriver::getNumParams() method to get the number of parameters currently defined.

 

- asynInterposeDelay

  - New interpose driver that waits for a user-specified time after sending each character before sending the next one. Some poorly designed devices require this. Thanks to Dirk Zimoch.

 

- asynInterposeEcho

  - New interpose driver that waits for a device to echo each character before sending the next one. Some poorly designed devices require this. Thanks to Dirk Zimoch.

 

Mark

 

 

 

 


Navigate by Date:
Prev: RE: drvAsynIPPort Not receiving broadcast UDP [SEC=UNCLASSIFIED] CORNALL, Terry via Tech-talk
Next: Re: Inter-module dependency between stream and calc Zimoch Dirk (PSI) 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 
Navigate by Thread:
Prev: Re: Inter-module dependency between stream and calc Ralph Lange via Tech-talk
Next: R3.15.6 calc string doesn't accept LA, LB, LC, etc...? Neil Hamilton Jr 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 
ANJ, 19 Mar 2019 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·