EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: asyn R4-25 available
From: Mark Rivers <[email protected]>
To: "[email protected]" <[email protected]>
Date: Thu, 11 Dec 2014 20:58:41 +0000
Folks,

asyn R4-25 is now available.  Links to the new documentation, release notes and tar file can be found here:

http://www.aps.anl.gov/epics/modules/soft/asyn/

asyn is also available via the APS Subversion repository here:

https://svn.aps.anl.gov/epics/asyn/


These are the items from the R4-25 release notes:

- devAsynOctet
  Fixed 2 bugs:

  - The interrupt callback function for stringin records (e.g. with SCAN=I/O Intr) did not null-terminate the string 
    if the driver returned MAX_STRING_SIZE or more characters. Thanks to Freddie Akeroyd for fixing this. 

  - The interrupt callback function for stringin and waveform records were not properly locking the record when modifying the record fields. 

- devAsynXXXArray
  - Added optional support for ring buffers with waveform records. 
    Ring buffers were added to asyn device support for scalar (non-array) records in R4-10. 
    To enable ring buffer support on a waveform record the record info tag FIFO can be set to a value greater than 0. 
    For example this line in a db file for a waveform record sets a ring buffer size of 20 elements.
       info("FIFO", "20") 
    Ring buffers are only used when records have SCAN=I/O Intr. 
    They allow the record to process all of the arrays from a rapid burst of callbacks from the driver. 
    However, because Channel Access does not provide any buffering for arrays, even if the record processes for each new array callback, 
    Channel Access will not necessarily send events for each value, because it just sends the current record value when the CA callbacks are done.

- A new test application, testArrayRingBufferApp was added to test this array ring buffer support. A new iocBoot/ioctestRingBuffer directory was also added.

- Interfaces
  - Added new asynOptionSyncIO interface. This interface is needed so that the asynOption interface can be called synchronously when it is OK to block.


- Building asyn with only using libCom from EPICS base
-  It has always been asserted that except for devEpics asyn only really depends on libCom from EPICS base. 
   People who are interested in using asyn drivers from other control systems, want to minimize the dependencies of libraries from EPICS base. 
   The following lines have been added to asyn/configure/CONFIG_SITE:

   -------------------------------------------------------------------------------
   # If you want to build asyn so the only dependency on EPICS base is libCom then set the following flag
   #EPICS_LIBCOM_ONLY=YES 
   -------------------------------------------------------------------------------
   If EPICS_LIBCOM_ONLY is YES then the build is done so that only libCom is needed. This does the following:

   - Omits building all of the device support for EPICS records 
   - Omits building the test applications that create IOC applications 
   - Sets asyn_LIBS to Com rather than $(EPICS_BASE_IOCS_LIBS) when creating the library 
   - Changes the logic in asynPortDriver which uses interruptAccept. 
     If EPICS_LIBCOM_ONLY is set then dbDefs.h is not included and interruptAccept is defined as a static variable set to 1. 

- A new C++ class was added, asyn/asynPortClient/asynPortClient.cpp. 
   This class makes it easy to write a C++ application that starts existing asyn port drivers and 
   communicates with them over standard asyn interfaces without running an IOC.

- A new test application directory was added testAsynPortClient. 
  This tests running C++ applications that communicate with asyn port drivers without running an IOC. 
  This currently contains a single test application, testAsynIPPortClient.cpp. 
  This program creates an asynIPPort driver, and uses the command line arguments to set the hostInfo string, 
  a single command string to send to the server, and optionally the input and output EOS. 
  It then prints out the response from the server. 
  There are 3 example shell scripts that show how to use testAsynIPPortClient to communicate with a Web server, XPS motor controller, and a telnet host respectively.


- drvAsynUSBTMC
  - Bruno Martins found and fixed a problem with data transfers that spanned multiple USB packets.



Navigate by Date:
Prev: Re: Changing the Timeout for drvAsynSerialPort? Franklin Fuller
Next: Re: Build system EXPAND not working with INC Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Build system EXPAND not working with INC Andrew Johnson
Next: caQtDM on ipad Mezger Anton Christian (PSI)
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 17 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·