asyn R4-33 is now available.
asyn is available on github here:
tar and zip files are available here:
Soon you will be able to find links to the new documentation and release notes here:
These are the main items from the R4-33 release notes:
- Added support for ASLO/AOFF scaling and SMOO value smoothing to the float64 device support for ai and ao records. SMOO only applies to ai records. devAsynFloat64 directly writes to the record's VAL/OVAL fields, so the conversion
routines in the record that use RVAL/VAL don't work.
- devAsynInt32.c, devAsynUInt32Digital.c, devAsynFloat64.c, devAsynOctet.c
- Fixed a problem with output records that have the asyn:READBACK info tag, i.e. output records that update on callbacks from the driver. Previously it did not correctly distinguish between record processing due to a driver callback
(in which case it should not call the driver) and normal record processing (in which case the driver should be called). A new test application, testOutputCallbackApp, was added to test this.
- Fixed bug where the record alarm status was not set correctly if a write or read failed with a synchronous driver.
- Improved error messages from autoconnect attempts. Messages are now printed only when the autoconnect status changes, rather than each time there is a failure. Thanks to Ben Franksen for this.
- Changed the logic so it creates maxClients drvAsynIPPort drivers at initialization rather than on-demand when clients connect. This makes it possible to use these ports before iocInit, which is much more useful. They can be used in
input and output links in EPICS records, for example. This change should be backwards compatible, since it was transparent when the ports were created.
- The first drvAsynIPPort created is now named PORT_NAME:0 rather than PORT_NAME:1, where PORT_NAME is the name of the drvAsynIPServer port created by this driver. This might break backwards compatibility, but clients were normally getting
the name from a callback, so probably not.
- Set the socket option SO_REUSEADDR when creating the listening socket. Previously if a client was connected and the IOC exited it could not be restarted again immediately. One needed to wait for the operating system to time out the
connection. This change allows the IOC to be run again with the same listening port immediately, without waiting for the operating system timeout.
- Added an exit handler to close the listen socket and delete the private structure.
- Improved the report() function so it shows all the drvAsynIPPort drivers that were created.
Fixed typo in constructor for asynUInt32DigitalClient, it was calling asynInt32SyncIO->connect rather than asynUInt32DigitalClient->connect.
- OPI screens
- Added new opi/Makefile. This automatically converts all opi/medm/*.adl files into corresponding files in edm/autoconvert, caqtdm/autoconvert, and boy/autoconvert. It uses new RULES_OPI and CONFIG_SITE.linux-x86_64 files in synApps/support/configure
directory. The upper-level edm, caqtdm, and boy directories should be used only for manually tweaked files.
- The medm adl files were improved to make the autoconverted files work better. The size of text graphics and text update widgets were set to the actual text size, and text update widgets were set to the correct datatype, e.g. string
type for enum PVs.
- asynDriver.html has been improved. All level 3 headings are now links in the Contents at the start of the file. This makes it much easier to find a particular topic and jump to it quickly. Many of the test applications are
now documented, including medm screen shots to show how they work.