README.TXT: DAPL 3000 Version 2.20 Release
==========================================

DAPL 3000 Version 2.20 offers new enhancement in DAPL expressions. See the latest
manual "DAPL 3000 Extensions for xDAP Family" on the CD for more information. 

DAPL 3000 version 2.10
======================
DAPL 3000 Version 2.10 release supports all features DAPL 3000 Version 2.00 
supports. 

DAPL 3000 version 2.00
======================
DAPL 3000 version 2.00 supports new hardware models xDAP7410 and xDAP7420. 
For more information about xDAP7410 and xDAP7420, see the document "HWDIF.HTM" 
included in the release media.

DAPL 3000 version 1.10
======================
DAPL 3000 version 1.10 supports multiple concurrent sampling configurations. 
For multiple concurrent sampling configurations, see the document "SUPXDAP.DOC" 
included in the release media.

DAPL 3000 Version 1.00
======================
DAPL 3000 system supports the xDAP family of Data Acquisition Processors. 
Though the new DAPL 3000 system offers a high degree of compatibility with 
earlier DAPL system configuration script files and compiled binary extension 
modules, it is almost completely different internally. 

* The "pipe system" that supports streaming data transfers between
sample processing hardware, processing tasks, and the host system is
completely new, and necessary to support the much higher data transfer
rates possible on the xDAP architecture. There is much more emphasis
on avoiding data copy or move operations. 

* Processing, both on the system and data management level, has been
reorganized into multiple layers of prioritized tasks coordinated by
signalling mechanisms. With all tasks coordinated through one scheduling
scheme, processing is distributed more evenly, and all processing time
not necessary for critical processing is made available for improved
efficiency. 

* Though system optimizations were primarily intended for moving bulk
measurements efficiently, a side effect of regular process scheduling is
greatly reduced variability in processing delays. Tasks requiring
guaranteed response with minimal delay perform better under DAPL 3000.

* The new processing command library for DAPL 3000 lifts most of the
restrictions on the data types supported for on-board processing. Most 
commands for DAPL 2000 were geared to use the fixed-point data types
directly from digitizer hardware. But in DAPL 3000, an operation that
makes sense to do in another data type can be done that way. For
example, convert your data streams to floating point numbers scaled to
engineering units, filter your measurements in that form, and send them
ready for post-processing with the host software of your choice.

* Better error management. Errors are reported and logged on your 
host system, and you can access these independent of your data streams.


Installation
============

The installation is discussed in a new "DAP USB Installation Manual"
available on your DAPtools Software CD and on the Microstar Laboratories
web site. The installation is constrained to follow the rules for USB
devices, and this makes it a little different, but easier. 


New Features
============

This is just a quick survey of some of the new features available with the 
DAPL 3000 system.

* Tasking priority and the PRIORITY command. Commands that must respond
quickly to events in real time can do so almost as if all of the other
acquisition and processing activities were not there.

* Event management. Display and clear events from past operating history
with the DISPLAY and RESET commands.

* Reorganize input channels before processing. If hardware restrictions
force capture of data samples in a sequence that is inconvenient for
processing, the Input Channel Pipes can reorganize samples as they are
delivered to the processing tasks.

* Input channel timing is now determined by a SCAN command. Regardless
of the multiple converters to which signals connect, a capture of one
value for each channel is guaranteed within each SCAN interval.

* Updates sent to output ports can now be controlled using new, optional
timing parameters. These can set a policy for regular updates on a
different time scale than the bulk sampling or updating. 

* WAIT commands now allow an option to select data blocks displaced
from the location of the triggering event.

* Some new signal processing features: 
  - A DFT command for selectively processing narrow frequency bands
  - A MIXRFFT command for transforms of large data blocks
  - A CHIRP command for swept frequency tests
  - Simplified configuration of CORRELATE analysis
  - A RSUM command for flexible running sum processing
  - Integrated MRBLOCK and MTSFILT processing commands

New DTD digital input function supported
========================================
To use the function, you need to have the Developer's Toolkit for DAPL version
5.20 or newer and the hardware that supports reading from digital input ports,
such as xDAP7400, xDAP7410 and xDAP7420. 

    unsigned long __stdcall digital_in( int port_number, unsigned long flags)   
         - reads data from the specified asynchronous digital input port. 

New DTD timing functions supported
==================================

To use these DAPL system functions, you need to have the Developer's
Toolkit for DAPL version 5.10 or newer.

  void __stdcall Sleep(unsigned long uS) 
        - yields control for the specified microseconds.

  unsigned __int64 __stdcall SleepUntil(unsigned __int64 ticks) 
        -  yields control until the specified system ticks expire. Called with
           an expired tick specification, the function returns immediately.
           In either case, the return value is the current system ticks.

   unsigned __int64 __stdcall u64SystemTicksGet() 
        - returns the current system ticks.

   unsigned __int64 __stdcall u64UsToSysTicks(unsigned __int64 uS) 
        - converts the specified number from microseconds to system tick units.

   unsigned __int64 __stdcall u64SysTicksToUs(unsigned __int64 t) 
        - converts the specified number from system ticks to microseconds.

    
Other Changes
=============

 (1) Buffers for communication pipes are now dynamic except for $SysIn and 
     $SysOut. As a result, after using $BinOut, the memory usage display 
     may not match the initial usage even after a RESET.

 (2) $SysIn and $SysOut are now reserved on the DAP. Applications running on 
     the DAP side are no longer able to open a handle to them.

 (3) OutputWait is now treated as a threshold. As a result, longer latency
     in starting output updating could occur.

 (4) 16-bit DTD macro functions get_pbuf_cnt_ptr(), get_pbuf_min_cnt_ptr() 
     and get_pbuf_max_cnt_ptr() are retired.

 (5) Older TRIGGER command syntax with "reader count" is no longer supported.

 (6) The pipe_purge() function in DTD is no longer supported.

 (7) Careful! Command variants that were supported in a limited "back
     compatibility" mode and obsolete in the DAPL 2000 system are not 
     supported in the DAPL 3000 system.

 (8) Previously, processing tasks that required no paremeters could omit
     the parameter list notations in the DAPL configuration scripts. 
     This is no longer the case. An empty parameter list still requires 
     the bracketing parentheses. 
