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: asyn R4-22 available
From: Mark Rivers <[email protected]>
To: EPICS Tech-Talk <[email protected]>
Date: Thu, 31 Oct 2013 21:45:47 +0000
Folks,

asyn R4-22 is now available.  Links to the new documentation, release notes and tar file can be found here:

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

asyn is also available via the APS Subversion repository here:

https://svn.aps.anl.gov/epics/asyn/


This is from the R4-22 release notes:

                                         asynDriver

Added support functions for setting timestamps in asyn port drivers. These can be used to set the timestamp when the port driver received data. The driver can then set the asynUser->timeStamp field to this value for all input records on read and callback operations. Records that have TSE=-2 will have this timestamp. There is support for registering a user-supplied function to provide the timestamp, which will override the default source that just calls epicsTimeGetCurrent(). 
   
Added a new bit to asynTraceMask, ASYN_TRACE_WARNING. This is intended to be used for messages that are less serious than ASYN_TRACE_ERROR, but more serious than ASYN_TRACE_FLOW.

Added new asynTraceInfoMask. This mask controls the information printed at the beginning of each message by asynPrint and asynPrintIO. 
* ASYN_TRACEINFO_TIME prints what has been printed in previous versions of asyn, the date and time of the message. 
* ASYN_TRACEINFO_PORT prints [port,addr,reason], where port is the port name, addr is the asyn address, and reason is pasynUser->reason. These are the 3 pieces of "addressing" information in asyn. 
* ASYN_TRACEINFO_SOURCE prints the file name and line number, i.e. [__FILE__,__LINE__] where the asynPrint statement occurs. 
* ASYN_TRACEINFO_THREAD prints the thread name, thread ID and thread priority, i.e. [epicsThreadGetNameSelf(), epicsThreadGetIdSelf(), epicsThreadGetPrioritySelf()]. 

Added a new shell command to control this mask.
    asynSetTraceInfoMask port,addr,mask
    


                                    asynOctetSyncIO

Use simple lock/unlock operations rather than queueLockPort/queueUnlockPort for end-of-string manipulations (setInputEos, getInputEos, setOutputEos, getOutputEos). This ensures that these operations can take place even with the device disconnected.


                                     devEpics

Finished the support for setting the record TIME field for input records, both for read operations and for callback operations (i.e. records with SCAN=I/O Intr). This work was begun in R4-20, but it was not complete. Fixes were made in devAsynOctet, devAsynInt32, devAsynFloat64, and devAsynUInt32Digital.


                                  drvAsynIPPort

Fixed a bug in calling poll(). Previously the status return from poll() was not being checked; it was assumed that when poll() returned the port either had new data or had timed out. This is not correct, because poll() can return prematurely with errno=EINTR if a Posix signal occurs before data is received or the timeout expires. This can happen, for example, when the Posix high-resolution timer routines (timer_create, etc.) are used in the IOC. The Prosilica vendor library uses the Posix timer routines, and there were problems using asyn IP ports in IOCs that were also running Prosilica cameras. The problem was fixed by calling poll() again if it returns EINTR and the desired timeout time has not expired since poll() was first called.

Added support for AF_UNIX sockets on systems that provide them.


                               drvAsynSerialPort

Support for all baud rates supported by the operating system.

Fix for XON/XOFF support from Dirk Zimoch.


                       Changes to work with EPICS base 3.15

Removed include of asyn.dbd, from drvAsynSerialPort.dbd, drvAsynIPPort.dbd, drvVxi11.dbd, and drvGsIP488.dbd. 

Fixed Makefile rule for vxi11intr.h for parallel builds.


                               drvLinuxGpib

Fixes for eomReason and EOS handling from Dirk Zimoch.


                          asynOctetSyncIO interface

Removed the openSocket() function from this interface. This method really did not belong in this interface, since it just wrapped the call to drvAsynIPPortConfigure().


                                asynRecord

Added 4 additional baud rates to the BAUD field (460800, 576000, 921600, 1152000). However, the BAUD field can still only support 16 fixed baud rates because it is type DBF_ENUM.

Added a new LBAUD (long baud rate) field of type DBF_LONG. This allows selection of any baud rate, not just those in the BAUD menu. Changing the BAUD field changes the LBAUD field. Changing the LBAUD field changes the BAUD field to the appropriate selection if it is a supported value, or to "Unknown" if not.

Added support for ASYN_TRACE_WARNING and asynTraceInfoMask, including the opi screens.


                             asynPortDriver

Added new virtual methods to support Eos operations on the asynOctet interface. These are setInputEosOctet(), getInputEosOctet(), setOutputEosOctet(), getOutputEosOctet(). Changed the report() method to print the current values of the inputEos and outputEos.

Added new virtual methods for timestamp support. These are updateTimeStamp(), setTimeStamp(), getTimeStamp().

Changed the functions that do callbacks when callParamCallbacks() is called to call pasynManager->getTimeStamp() and set the pasynUser->timestamp field to this value in the callbacks.

Changed the base class readXXX() functions (e.g. readInt32(), readFloat64(), etc.) to call pasynManager->getTimeStamp() and set the pasynUser->timestamp field to this value. The readXXX() functions in derived classes should also do this, so that records with TSE=-2 will get the timestamp from the driver.


                          testErrorApp, iocTestErrors

Added an example of a user-supplied timestamp source.


                            testAsynPortDriver

Added calls to lock() and unlock() in simTask. This was previously a serious omission in this example driver. Thanks to Kay Kasemir for spotting this.



Replies:
Re: asyn R4-22 available Pearson, Matthew R.

Navigate by Date:
Prev: Re: Channel access over wireless? Ralph Lange
Next: Epics getting started יקיר בן-עליז
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: Channel access over wireless? Ralph Lange
Next: Re: asyn R4-22 available Pearson, Matthew R.
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 ·