Experimental Physics and Industrial Control System
The latest release of ASYN is now available at http://www.aps.anl.gov/epics/modules/soft/asyn/
asynOctet
=========
The asynOctet writeRaw and readRaw methods have been removed. In most
cases, if your code now calls readRaw or writeRaw it should be safe to
simply change these calls to their non-Raw equivalent. If you're
paranoid about someone interposing the end-of-string processing layer
you could add something like the following to ensure that there is no
end-of-string to match:
pasynOctet->setInputEos(asynOctetPvt,pasynUser,NULL,0);
If you need to switch to 'raw' mode for a while and then back to 'eos
mode', you can use code similar to that in
devGpib.c:readArbitraryBlockProgramData:
char saveEosBuf[5]; int saveEosLen; . . . status = pasynOctet-
>getInputEos(asynOctetPvt,pasynUser,saveEosBuf,sizeof
saveEosBuf,&saveEosLen); if (status != asynSuccess)
{ epicsSnprintf(pasynUser->errorMessage,pasynUser-
>errorMessageSize,"Device EOS too long!"); return -1; } if
(saveEosLen) pasynOctet->setInputEos(asynOctetPvt,pasynUser,NULL,
0); . . . . if (saveEosLen) pasynOctet-
>setInputEos(asynOctetPvt,pasynUser,saveEos,saveEosLen);
When compiling your code against this new version of asyn you should
pay particular attention to warning messages of the form "warning:
initialization from incompatible pointer type". These are a good
indication that you're initializing an asynOctet structure with the
old-style I/O methods.
asynManager
===========
Add a strStatus method to convert an asynStatus code to a string.
drvAsynIPPort
===========
Cleaned up timeout handling.
Fix memory leak (one epicsAtExit entry was allocated for every connect).
asynReport no longer reports as connected a port which has
successfully disconnected.
Improved diagnostic messages.
drvAsynIPServerPort
================
Fixed bugs that caused the thread that listened for new connections to
exit when errors occurred. Such errors included too many simultaneous
connections.
Interfaces
========
Added three new array interfaces, asynInt8Array, asynInt16Array, and
asynFloat32Array. asynInt8Array and asynInt16Array are the same as
asynInt32Array except that the data types are for epicsInt8 and
epicsInt16 respectively. asynFloat32Array is the same as
asynFloat64Array except that the data type is for epicsFloat32.
Added asyn(XXX)ArraySyncIO for synchronous I/O to all array interfaces.
Added new asynGenericPointer interface. The datatype for this
interface is void*, so it can be used to pass a pointer to anything.
Includes asynGenericPointerSyncIO for synchronous I/O.
Added asynStandardInterfaces.h and asynStandardInterfacesBase.c to
simplify driver initialization when using the standard asyn interfaces
defined in asyn/interfaces (common, octet, int32, etc.)
devEpics
=======
Undid the change that was done in R4-9 with direct calls to dbScanLock
and process in the interrupt callback functions. This could lead to
deadlocks in some circumstances. The original reason for changing from
scanIoRequest to (dbScanLock, process) was because callback values
would be lost if the callbacks came so close together in time that the
single callback value stored in device support was overwritten before
scanIoRequest could process the record. This problem has been fixed by
adding a FIFO (ring buffer) to the device support for the scalar
interfaces asynInt32, asynUInt32Digital, and asynFloat64. The ring
buffer is only created when the record is put into I/O Intr scan, so
the storage is not allocated for records that are not I/O Intr
scanned. The ring buffer default size is 10 values, but this can be
changed on a per-record basis using the dbInfo string "FIFO" with a
value such as "100".
Added support for bi and bo records for asynInt32 interface.
Previously these records were only supported for the asynUInt32Digital
interface.
Added waveform record device support for the asynInt8Array,
asynInt16Array, and asynFloat32Array interfaces. These are the same as
devAsynInt32Array and devAsynFloat64Array with changes to the data
types.
asynShellCommands
=================
Remove duplicate windows function decorations.
asynInterposeEos
==============
Improved diagnostic messages.
testIPServerApp/ipSNCServer.st
=========================
Fixed timeout bug introduced in R4-6 when timeouts of 0.0 and -1.0
were defined.
--
Eric Norum <[email protected]>
Advanced Photon Source
Argonne National Laboratory
(630) 252-4793
- Replies:
- RE: ASYN R4.10 Release Rees, NP (Nick)
- Navigate by Date:
- Prev:
Looking for Ortec Trump 2K ISA board! [SEC=UNCLASSIFIED] WANG, Jian
- Next:
Modbus Mark Rivers
- 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:
Looking for Ortec Trump 2K ISA board! [SEC=UNCLASSIFIED] WANG, Jian
- Next:
RE: ASYN R4.10 Release Rees, NP (Nick)
- 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