Folks,
asyn R4-29 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
Links to the new documentation and release notes are here:
http://www.aps.anl.gov/epics/modules/soft/asyn/
These are the items from the R4-29 release notes:
drvAsynIPPort
- Revert the change made in R4-27 to drvAsynIPPortConfigure that changed the noProcessEos flag to userFlags. The final argument to drvAsynIPPortConfigure is now noProcessEos again.
- Implemented the asynOption interface which allows configuring options using key/value pairs. This interface is used in the drvAsynSerialPort driver for configuring baud rate, stop bits, etc. It is also used on drvAsynIPPort for configuring
these same items if the port was configured with the COM qualifier, used for Ethernet/Serial terminal servers that use the TELNET RFC 2217 protocol. For that drvAsynIPPort uses the asynInterposeCOM to interpose the asynOctet and asynOption interfaces.
- drvAsynIPPort now also directly supports the asynOption interface for 2 key/value pairs.
- key="disconnectOnReadTimeout", value="Y" or "N". This option replaces the USERFLAG_CLOSE_ON_READ_TIMEOUT that was introduced in R4-27. The advantage of using the asynOption interface is that this behavior can now be changed at
run-time, rather than being set once when the driver is created.
- key="hostInfo", value="host:port[:localport] [protocol]", i.e. the Internet host name, port number, optional local port number and optional protocol. This uses the same syntax as the drvAsynIPPortConfigure command. This allows
changing at run time the Internet host and port to which this asyn port is connected. The only restriction is that the setting of the COM (TELNET RFC 2217) protocol cannot be changed from that specified with drvAsynIPPortConfigure. This is because if COM is
specified in the drvAsynIPPortConfigure command then asynOctet and asynOption interpose interfaces are used, and asynManager does not support removing interpose interfaces.
- Improved debugging output with ASYN_TRACEIO_DRIVER. Previously there was no asynTrace output if recv() or recvfrom() returned ≤0. It is often useful to know if these functions returned 0, so the asynTrace output is now only suppressed
if these functions return <0.
- There was previously no ASYN_TRACEIO_DRIVER output from the flushIt() function, which repeatedly calls recv() until the return value is ≤0. ASYN_TRACEIO_DRIVER will now print a message with the total number of bytes flushed in this
function, if the number is greater than 0.
asynRecord
- Added 2 new record fields to read and control the new drvAsynIPPort options:
- DRTO (Disconnect on Read Timeout)
- HOSTINFO (hostInfo string)
- Added new OPI screen (asynIPPortSetup.[adl,.opi,.edl,.ui]). This screen allows display and control of the new DRTO and HOSTINFO fields. It also allows display and control of the serial port parameters for drvAsynIPPorts created with
the COM (RFC 2217) protocol. There was previously no GUI to control these options for IP ports. This screen is accessed via the More menu in asynRecord.adl.
asynPortDriver
- Add paramName to error messages for easier debugging.
- Throw exception if NULL pointer is passed to setStringParam().
asynDriver
- asynTrace now does flush after each write on files, previously it only did this on stdin and stderr. This prevents trace information in files being lost if the application crashes.
- Fixed syntax of call to cantProceed().
- Added definition of ASYN_EXCEPTION_STRINGS which provides strings corresponding to each asynException enum value.
testBroadcastApp
- Added new test application testBroadcastBurst. This application periodically sends a burst of broadcast packets. The number of packets per burst and the interval between bursts can be specified on the command line. It is useful for
testing devices to see how tolerant they are of broadcast bursts.
testConnectApp
- Added missing extern "C" required to build dynamically on Windows.
Many source files
- Replaced tab characters with spaces. Tabs in source files are bad practice.
Thanks to Bruce Hill, Scott Stubbs, and Torsten Bögershaus for contributions and testing of this release.
Mark