asynDriver: Asynchronous Driver Support - Release Notes
Major New Features
Changed and obsolete features
- The drvGenericSerial driver has been split into drvAsynSerialPort and
drvAsynTCPPort drivers for local and remote serial ports, respectively.
End-of-string processing has been moved to an interposed interface.
- The diagnostic facilities previously provided by asynTrace.db have been
replaced with the much more general asynRecord.db
- All asynManager,asynCommon, and asynOctet methods except report
now return asynStatus. Methods that previously returned a different value now
have an additional argument for this value.
- Low-level driver read and write methods now return asynStatus and
are passed an additional argument through which they store the actual number
of characters read or written.
- The createSocket method in the asynSyncIO interface has been replaced by
openSocket. openSocket does not call asynSyncIO->connect(), that must
now be done by the caller.
- Removed code for "flush" from gpib drivers. The implementation
caused infinite loops on devices that speak when not spoken to.
- asynOctetRecord has been renamed to asynRecord
- TIOM, TMSK, TSIZ, TFIL, AUCT, ENBL, CNCT, ERRS, TINP, NAWT fields have
- Default values of OMAX and IMAX decreased from 512 to 80
- Options that are unknown for a device (e.g. baud on a Moxa terminal
server) are shown as Unknown.
- Many bug fixes and improvements in logic and functionality
Major New Features
- Connection Management - A framework for connection management is
provided. It provides the ability to connect/disconnect to/from a port or
port,addr. It also provides enable/disable and autoConnect/noAutoConnect.
See the asynDriver for details.
- devAsyn - Generic device support for connect management for a specific
- devAsynGeneric - Generic support for connection management and
traceing. This support dynamically attaches to a port,addr. Thus one set
of records and one medm display can be used for all devices connected to
- asynOctetRecord - A generic record and medm display that allows
interactive access to many asynDriver features.
- asynSyncIO - A synchronous interface to asynDriver. This can be used
by code, e.g. SNC programs, that are willing to wait instead of following
an asynchronous model.
Changed and obsolete features
- devAsynTrace is replaced by devAsyn and devAsynGeneric.
- disconnectDevice has been renamed to disconnect.
- The interface to low level drivers has been drastically modified in
order to support the new connection management features. See the
asynDriver documentation for details.
- registerPort has additional arguments multiDevice and
- setPortOption,getPortOption are setOption,getOption
- Promote VXI-11 RPC definition files to vxi11 directory. Use rpcgen to
build RPC support files for targets for which this is possible.
- Run rpcgen on Solaris with 'multi-thread' flag.
- Use separate GPIB message/response buffer for each port instance.
- Use sscanf to convert GPIB stringin response.
- Fix race condition in GPIB finish routines.
This release includes support for the following:
- asynTrace - A trace facility is now implemented.
- gsIP488 - The Greensprings Industry Pack IP488 is now supported
- Added asynSetPortOption and asynGetPortOption to manipulate port
- Changed serial support to use asynSetPortOption/asynGetPortOption.
- Added devGPIB GPIBCVTIO commmand type to allow custom conversion
routine to perform all I/O operations.
- Changed rules for return value from devGPIB custom conversion
- Added dbior support.
- Changed devGPIB to no longer cache EOS.
Support Provided in addition to asynDriver and asynGpib
- devGpib - The Winans/Franksen gpib device support.
- vxi11 - Support for instruments that support the VXI-11 standard.
- drvGenericSerial - Support for devices connected to serial ports or to
- Other device support methods especially streams, devSerial, and
- NI1014 VME Gpib driver.
- Industry Pack IP488 Gpib driver.
- Successor to GI (GPIB Interact).
The vxi11 support has been tested on the following platforms: Solaris,
Linux (redhat 9), Darwin, Windows XP (Cygwin), and vxWorks. It has been
tested with the following vxi11 controllers:
- Agilent E2050A LAN/GPIB Gateway.
It's vxiName must start with "hpib" rather than "gpib".
- Agilent E5810A LAN/GPIB Gateway.
- Tektronix TDS3014B Scope.
When communicating with the Ethernet port it acts like a VXI-11.2
rather than a VXI-11.3 device. It seems to just accept any GPIB address.
SRQs did not work when connecting via the ethernet port but did when
communicating via a LAN/GPIB gateway.
The generic serial support has been tested with the following:
Two Device Support modules have been converted from the 3.13 gpib support:
DG535 and TDS3014B Scope.
- xvWorks with a GreenSprings Octal UART Industry-Pack module on a VME
- Linux and Windows XP (Cygwin) with PC hardware serial port
- Solaris hardware serial port (/dev/cua/a).
- Linux, Solaris, Darwin, vxWorks, and Windows XP (Cygwin) with a Moxa
NPort Ethernet/Serial converter.