asynDriver: Asynchronous Driver Support - Release Notes
June 22, 2004
Release 3-2
Changed and obsolete features
- INCOMPATIBLE CHANGE -- The units of the
respond2Writes
field, if greater than 0, are now seconds
rather than milliseconds. This change was made so that all time values
set in the instrument support initialization routine are specified
uniformly in units of seconds. Very few instrument support files are
likely to be affected by this change
- The contents of asynRecDevDrv.dbd have been placed in asyn.dbd and
asynRecDevDrv.dbd has been removed. This allows applications to get
correct dbior reports and access to asynRecords by including any
low-level driver .dbd file.
- The drvAsynTCPPort driver has been renamed drvAsynIPPort since it now
supports both UDP and TCP protocols. The protocol is selected by adding a
"UDP" or "TCP" after the "hostname:port" in the drvAsynIPPortConfigure
command. A missing protocol is taken to be "TCP".
- Work around 'missing SPD' bug in HP E2050 GPIB/LAN adapter. SRQ
handling is much more robust on all supported hardware.
Major New Features
- National Instruments NI1014 VME GPIB interface is now supported.
- GPIB - All low level GPIB support (vxi11, gsip488, and ni1014) now
fully support the GPIB specific features defined by asynGpibDriver.h
- Implementation of asynTrace is more consistent across the low level
drivers.
- Added makeSupport script and template instrument support. Updated
tutorials to reflect these additions.
Release 3-1
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.
- asynRecord
- asynOctetRecord has been renamed to asynRecord
- TIOM, TMSK, TSIZ, TFIL, AUCT, ENBL, CNCT, ERRS, TINP, NAWT fields
have been added
- 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
Release 2-1
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
device.
- 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
an ioc.
- 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.
- asynManager.h
- 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.
- asynGpib
- registerPort has additional arguments multiDevice and
autoConnect.
- setPortOption,getPortOption are setOption,getOption
Release 1-2
- 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.
Release 1-1
This release includes support for the following:
- asynTrace - A trace facility is now implemented.
- gsIP488 - The Greensprings Industry Pack IP488 is now supported
Modifications include:
- Added asynSetPortOption and asynGetPortOption to manipulate port
options.
- 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
routines.
- Added dbior support.
- Changed devGPIB to no longer cache EOS.
Release 1-0alpha2
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
Ethernet/Serial converter.
Future Support
- Other device support methods especially streams, devSerial, and
mpfSerial.
- NI1014 VME Gpib driver.
- Industry Pack IP488 Gpib driver.
- Successor to GI (GPIB Interact).
Testing
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:
- xvWorks with a GreenSprings Octal UART Industry-Pack module on a VME
carrier.
- Linux and Windows XP (Cygwin) with PC hardware serial port
(/dev/ttyS0).
- Solaris hardware serial port (/dev/cua/a).
- Linux, Solaris, Darwin, vxWorks, and Windows XP (Cygwin) with a Moxa
NPort Ethernet/Serial converter.
Two Device Support modules have been converted from the 3.13 gpib support:
DG535 and TDS3014B Scope.