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