*******************************************************************************
File: ReleaseNotes.txt

SCANLAB syncAXIS control Software Package Version 1.8.2

*******************************************************************************

Manufacturer

   SCANLAB GmbH
   Siemensstr. 2a
   82178 Puchheim
   Germany

   Tel. + 49 (89) 800 746-0
   Fax: + 49 (89) 800 746-199

   info@scanlab.de
   www.scanlab.de

*******************************************************************************

Scope of this Document
The scope of this document is to describe the changes in the syncAXIS control
software package.

Abbreviations
B   Bugfix
C   Change
N   New feature
K   Known issues

********* syncAXIS control changes in version 1.8.0 for version 1.8.1 ****

B   Fixed: RTC options now checked correctly in all operational modes
-------------------------------------------------------------------------------

********* syncAXIS control changes in version 1.6.0 for version 1.8.0 ****

-------------------------------------------------------------------------------
N   Due to significant performance improvements RTC6eth is now supported with up to 4 boards.

N   Added slsc_cfg_get_jump_time command which allows to calculate the duration of a jump for 
    the given start and end values using the current job configuration.

C   syncAXIS now checks for usage of minimal required versions of the RTC6 binaries.

B   Fixed: [BaseDirectoryPath] was not applied to the correction file configuration.
    
B   Fixed: Unusable options Debug and Trace are removed from configuration.

B:  Fixed: Paths with non-ASCII characters in the configuration file are now handled correctly.

B:  Fixed: Use individual ACS TARGRAD values for each stage axis.
-------------------------------------------------------------------------------

********* syncAXIS control changes in version 1.5.0 for version 1.6.0 ****

-------------------------------------------------------------------------------
N   Added slsc_list_set_laser_on_move command which allows the user to define
    a spatial offset for each following mark command after which the laser is
    to be turned on.
    
N   Added xml tags for calculation dynamics for the scan device, split into
    jump and mark dynamics.
	
N   Added commands to retrieve and set scan device calculation dynamics.

N   Added list commands for jumps with a minimum jump duration.
-------------------------------------------------------------------------------
C   Significant performance improvement for very short segments.

C   Optimized handling of collinear lines in trajectory planning.
-------------------------------------------------------------------------------
B   Fixed: After a failed attempt to switch from simulation mode to hardware
           mode via API command, the application sometimes crashes when the
		   instance is deleted.
           
B   Fixed: Binary simulation files generated by 64-bit syncAXIS 1.5 cannot be
           loaded by the viewer.
 
B   Fixed: Calling slsc_list_set_jump_speed directly after a jump command
           affects that previous jump command.

B   Fixed: Missing laser switches in some cases during subcycle switching.
 
B   Fixed: Output of "Laser Active" signals right before job start for a 
           duration of up to 50 microseconds.

B   Fixed: If in the xml Laser Configuration the Laser Control Flag 
           "PulseSwitchSetting" is set to true, Laser Standby pulses are 
           suppressed.

B   Fixed: In the xml Laser Configuration the parameters QSwitchDelay and
           FirstPulseKillerLength have no effect, i.e. they are always 
           effectively 0.

B   Fixed: Problem where a job with 0 length would hang indefinitely.

B   Fixed: Jump that was inserted before a module would not have heuristic
           applied.
-------------------------------------------------------------------------------
K   In the xml Laser Configuration the Laser Modes 1, 2 and 3 are all identical
    to Laser Mode 5, i.e. QSwitchDelay and FirstPulseKillerLength always have
    to be explicitly specified.
-------------------------------------------------------------------------------

********* syncAXIS control changes in version 1.4.0 for version 1.5.0 ****

-------------------------------------------------------------------------------
N   Added capability for "Subcycle Switching", allowing for the laser to be
    turned on and off up to once every microsecond.

N   Added "dashed" commands which allow the user to comfortably supply laser
    switch points for a given mark command.
    
N   Simulation file now contains any changes made to the configuration after
    initialization by api _cfg_ commands.
    
N   Added configuration commands to set and retrieve dynamic limits, dynamic
    monitoring level, dynamic violation reaction and simulation mode.
    
N   Added control command slsc_ctrl_stop_controlled which ends the execution
    of the current job by inserting a controlled breaking movement.
    
N   Added more details to log and error message if there is a warning or a job
    is aborted due to dynamic violation.
    
N   Added new job characteristics for minimal and maximal position values of
    scanner and stage, either in general or just when the laser is on. 
    
N   Added xml-tag HeuristicForJumpsOnly. If set to true, the dynamic reduction
    function is only applied to jump commands.
-------------------------------------------------------------------------------
C   Changed minimal value of xml-tag LaserMinOffTime to 1/64 us to allow for
    Subcycle Switching.

C   Several improvements to error handling and logging.

C   Reworked jumps and skywritings to be more straight, symmetrical and 
    rotation-invariant.
    
C   ACSC.dll is now linked at runtime. Is no longer contained in the syncAXIS
    release package. Instead the one installed on the user PC is used.
-------------------------------------------------------------------------------
B   Fixed: When a syncAXIS control instance is initialized in ScannerAndStage
           mode and thereafter the mode is changed to ScannerOnly without 
           resetting the used RTC6 boards first the Automatic Laser Control 
           settings for this ScannerOnly instance are ignored. 
           
B   Fixed: Radius factor curve is not correctly synchronized with the other
           signal parameters.

B   Fixed: Radius factor curve takes combined position in ScannerAndStage 
           instead of ScanDevice position.

B   Fixed: Radius factor curve for ActiveChannel parameters is not correctly 
           read from the xml.

B   Fixed: DelayShift in StageConfig only accepts positive values.
-------------------------------------------------------------------------------
K   If in the xml Laser Configuration the Laser Control Flag 
    "PulseSwitchSetting" is set to true, Laser Standby pulses are suppressed.

K   In the xml Laser Configuration the parameters QSwitchDelay and
    FirstPulseKillerLength have no effect, i.e. they are always effectively 0.
-------------------------------------------------------------------------------

********* syncAXIS control changes in version 1.3.0.32 for version 1.4.0 ****

-------------------------------------------------------------------------------
WARNING:
Potential readjustment of previous LaserSwitchOffsetTime and other hardware 
delay values necessary.

The internal delay difference compensation between scanner and stage was short 
by 10 µs. As a consequence a single fitting LaserSwitchOffsetTime could not be 
set for all operation modes at the same time. 
This error is now fixed, but a previous LaserSwitchOffsetTime used for 
ScannerAndStage mode has to be readjusted with this new release. 
We also recommend to check the other hardware delay parameters, especially if 
they were optimized.  
-------------------------------------------------------------------------------
N   New API functions
    slsc_cfg_reinitialize
    slsc_cfg_select_heuristic

N   Added function slsc_cfg_reinitialize to re-initialize an existing syncAXIS 
    control instance and maintain its current configuration.
    
N   Added possibility to define multiple DynamicReductionFunction entries in
    xml, along with API function slsc_cfg_select_heuristic to choose from the
    list.
-------------------------------------------------------------------------------
C   Change of logging library: Use spdlog instead of log4cplus.

C   Higher shift-accuracy for ActiveChannel control parameters.
    [The calculation of ActiveChannel values for automatic laser control is 
    based on trajectory dependent control parameters: velocity, radius and user 
    defined parameter ramp. The output of these control parameters is shifted 
    in time relative to the position signals by an amount determined by the sum
    of LaserSwitchOffsetTime and the ActiveChannel individual Shift value.
    Before this version, the control parameter shift was performed in 
    multiples of 10 µs only. Now, shifts below 10 µs are also accounted for.]

C   Include 64 bit version of syncAXIS control in release package.
-------------------------------------------------------------------------------
B   Fixed: Delay difference compensation between scanner and stage is short by
           10 µs. See WARNING above.

B   Fixed: Negative LaserPreTriggerTime is ignored if duration of mark command 
           is shorter than the absolute value of LaserPreTriggerTime.

B   Fixed: Configuration with negative LaserPreTriggerTime is rejected.

B   Fixed: If the scanner delay is larger than the stage delay 
           (based on CTIME and DelayShift), the laser switch points are not 
           sufficiently adjusted.
           
B   Fixed: A call of slsc_list_set_jump_speed or slsc_list_set_mark_speed 
           reverts the changes of slsc_MarkConfig parameters* via any previous 
           call of slsc_cfg_set_jump_speed, slsc_cfg_set_mark_speed or 
           slsc_cfg_set_trajectory_config. 
           *(JumpSpeed, MarkSpeed, MinimalMarkSpeed, LaserPreTriggerTime, 
            LaserSwitchOffsetTime, LaserMinOffTime)

B   Fixed: Setting CTIME = 0 in XML has the same effect as setting CTIME = -1,
           i.e. CTIME is read from ACS Controller.

B   Fixed: Spot distance control does not work when syncAXIS control instance
           is initialized in ScannerOnly mode.

B   Fixed: Broken slsc_JobCharacteristic MinimalMarkSpeed and MaximalMarkSpeed
           when using function slsc_list_playback_module.       
           
B   Fixed: Occasional dynamic violation at the very end of a job.
-------------------------------------------------------------------------------   

********* syncAXIS control changes in version 1.2.6 for version 1.3.0.32 ******

-------------------------------------------------------------------------------
N   Added support for the parallel use of up to four scan heads and three RTC6 
    PCIe boards in a single syncAXIS control instance.
    
N   Added support for the default setup (one stage, one scan head) using one
    RTC6eth board.

N   New release package content and directory structure.
    Among other things it now also includes the RTC tools iSCANcfg and RTC6conf 
    as well as syncAXIS Configurator and syncAXIS Viewer.
    See the file ./Readme.txt for a detailed package overview.

N   New feature of pre-calculating a job in simulation mode, where the result 
    of pre-filter trajectory planning is saved in a file.
    This recorded job, called "module", can be reinserted into another job 
    in hardware or simulation mode with any desired offset and rotation.
    The new feature is useful for computing-intensive jobs, where there is a 
    danger for buffer underruns during execution. 
    See slsc_list_begin_module, slsc_list_para_playback_module and
    slsc_list_playback_module in the API manual.
    
N   Added function slsc_cfg_initialize_copy to initialize a syncAXIS control 
    instance in simulation mode based on the current configuration of another 
    (hardware or simulation) instance.

N   Added function slsc_cfg_set_bandwidth to set the filter bandwidth for 
    more convenient optimization and variation between jobs.

N   Added utility function slsc_util_reset_pcie to reset all found RTC6 PCIe
    boards.

N   Added information on the maximal and minimal spot velocity in the job 
    characteristics.

N   New API functions
    slsc_cfg_initialize_copy
    slsc_cfg_set_bandwidth
    slsc_ctrl_get_syncaxis_simulation_filename
    slsc_list_begin_module
    slsc_list_para_playback_module
    slsc_list_playback_module
    slsc_util_reset_pcie

N   New job characteristics
    slsc_JobCharacteristic_MinimalMarkSpeed
    slsc_JobCharacteristic_MaximalMarkSpeed

N   New XML tags
    Configuration->RTCConfig->EthSearch (Broadcast, IPScan, IPList)
    Configuration->StageConfig->DelayShift, CTIME
-------------------------------------------------------------------------------
C   Updated syncAXIS control manuals to version 1.3.0

C   Rework of Installation Project.

C   Changed configuration of the stage delay. In the earlier versions the now
    removed XML parameter (Configuration->StageConfig->) Delay had to be 
    specified. With the current release, the default procedure is for syncAXIS 
    to read the CTIME parameter from ACS and automatically set a corresponding 
    stage delay. For finer control, the user may alter this stage delay value by 
    adjusting the XML parameter (Configuration->StageConfig->) DelayShift. 
    See the API manual for more information on CTIME and stage delay.

C   Deprecated API functions
    slsc_ctrl_get_simulation_filename

C   XML tags: changed from optional to mandatory
    Configuration->GeneralConfig->SimulationConfig

C   XML tags: changed from mandatory to optional
    Configuration->StageConfig->StageList
    
C   Call of slsc_cfg_delete disables the laser.

C   Use the ACS TARGRAD parameter as tolerance for the invalid position error.

C   Simulation output is now just a single file per job even in the case of 
    multiple scan heads.
-------------------------------------------------------------------------------
B   Fixed: Setting JumpSpeed < MarkSpeed causes problems.

B   Fixed: Planning position changes after a call of slsc_ctrl_follow in 
    ScannerOnly mode.

B   Fixed: Blending unnecessarily fails during marking of large objects.

B   Fixed: VariableBlending unnecessarily fails in some situations.

B   Fixed: Inadequate release of RTC6 card after a failed initialization. 

B   Fixed: Hard velocity jumps in certain jump to mark transitions.

B   Fixed: Functions slsc_ctrl_follow/unfollow reset the LaserDisable flag 
    to the initial configuration value.
    
B   Fixed: Low active laser fires during initialization.

B   Fixed: Arc segments are converted to line segments at low resolutions.

B   Fixed: Erroneous detection of dynamic limit breaches.

B   Fixed: Faulty initialization with multi instance setups.
-------------------------------------------------------------------------------

********* syncAXIS control changes in version 1.2.5.6 for version 1.2.6 *******

-------------------------------------------------------------------------------
N   New API function
    slsc_list_set_min_mark_speed
-------------------------------------------------------------------------------
C   Added a special transition between slsc_list_wait_with_laser_on and a 
    following slsc_list_mark when the minimal mark speed is set to zero. It now
    accelerates on the mark-vector and no jump is inserted.
-------------------------------------------------------------------------------
B   Fixed issue with wrong version number of installation manual. Installation
    manual is only valid for version v.1.1. A reworked installation manual for 
    the release package will be included soon.
B   Fixed issue where a blending failed in some circumstances, even if it 
    would be possible.
B   Fixed issue with the job characteristic: InsertedSkywritings

-------------------------------------------------------------------------------

********* syncAXIS control changes in version 1.2.5 for version 1.2.5.6 *********

-------------------------------------------------------------------------------
N   Added an installation manual for an initial setup to the release package.
    syncAXIS_V1.2.5_Installation_de-DE.pdf
    syncAXIS_V1.2.5_Installation_en-US.pdf
-------------------------------------------------------------------------------
C   Added return value if slsc_ctrl_follow fails due to InPos. (NotReady, 0x0020)
C   time units for callbacks now consistent in [ms].
-------------------------------------------------------------------------------
B   Fixed issue with not meaningful error message in case of wrong serial number.
B   Fixed issue with first job using wrong laser delays.
B   Fixed issue with wrong dynamic reduction for circles and arcs.
B   Fixed issue with not working C#-callbacks.
B   Fixed issue with slsc_list_arc-function. Arcs which are approximately straight
    lines are turned into lines.

-------------------------------------------------------------------------------

********* syncAXIS control changes in version 1.2.4 for version 1.2.5 *********

-------------------------------------------------------------------------------
N   New tags in XML to configure how to react on a dynamic breach
        MonitoringLevel for ScanDeviceConfig and StageConfig
        DynamicViolationReaction
-------------------------------------------------------------------------------
C   MinimalMarkSpeed can now be set to zero.
C   Vector resolution has a small rework, see API-Manual.
C   New calibration of stage delay value for CTIME 0.25: 0.0014951s +- 0.0000005s
C   New calibration of stage delay value for CTIME 0.5:  0.0029458s +- 0.0000005s
C   New calibration of laser delays needed: increase by 10us
-------------------------------------------------------------------------------
B   Fixed issue with changing SwitchOffsetTime via API.
B   Fixed issue with first job using wrong laser delays.
B   Fixed issue with wrong laser standby signals.
-------------------------------------------------------------------------------

********* syncAXIS control changes in version 1.2.3 for version 1.2.4 *********

-------------------------------------------------------------------------------
N   New c API function
    slsc_ctrl_set_laser_pulses
N   For each channel an additional time shift can be configured.
-------------------------------------------------------------------------------
C   Negative LaserPreTriggerTime are possible.
-------------------------------------------------------------------------------
B   Fixed issue with wait_with_laser_off and wait_with_laser_on.
B   Fixed issues with .NET wrapper.
B   In manual positioning mode, laser uses xml-pulse settings 
-------------------------------------------------------------------------------

********* syncAXIS control changes in version 1.2.0 for version 1.2.3 *********

-------------------------------------------------------------------------------
N   New c API function to get the current simulation filename
    slsc_ctrl_get_simulation_filename.
-------------------------------------------------------------------------------
C   Additional scan devices are now licensed via Dongle.
C   Reworked callbacks in .NET header.
-------------------------------------------------------------------------------
B   Fixed that some callbacks can cause a buffer underrun.
B   RTC6 initialization routines more stable.
B   Fixed (false) position mismatch on follow.
B   Fixed acceleration breach in homejump.
-------------------------------------------------------------------------------

********* syncAXIS control changes in version 1.1.0.12 for version 1.2.0 ******

-------------------------------------------------------------------------------
N   Extended XML-configuration for multi-head.
-------------------------------------------------------------------------------
C   Removed XML-system configuration.
-------------------------------------------------------------------------------
B   Fixed and cleanup of some internal structures.
-------------------------------------------------------------------------------

********* syncAXIS control changes in version 1.0.7.2 for version 1.1.0.12 ****

-------------------------------------------------------------------------------
N   New manual positioning mode and functions regarding correction files:
    slsc_ctrl_select_correction_file
    slsc_ctrl_laser_signal_off
    slsc_ctrl_laser_signal_on
    slsc_ctrl_move_scanner_abs
    slsc_ctrl_move_stage_abs
    slsc_ctrl_refresh_correction_file
N   New relative list begin for jobs starting relative to a stage position
    slsc_list_begin_relative
N   New function to set the list handling mode with context
    slsc_cfg_set_list_handling_mode_with_context
-------------------------------------------------------------------------------
C   Simulation files are now saved in separate files for each job
-------------------------------------------------------------------------------
B   None.
-------------------------------------------------------------------------------


********* syncAXIS control changes in version 1.0.7.1 for version 1.0.7.2 *****

-------------------------------------------------------------------------------
N   None.
-------------------------------------------------------------------------------
C   None.
-------------------------------------------------------------------------------
B   Fixed: Now laser delay has no longer a wrong offset of 1.2ms. 
           (Bug was added in test version 1.0.6.3)
-------------------------------------------------------------------------------


********* syncAXIS control changes in version 1.0.6 for version 1.0.7.1 *******

-------------------------------------------------------------------------------
N   Three new functions in API:
    slsc_ctrl_follow
    slsc_list_begin_absolute
    slsc_ctrl_unfollow
    More detailed explanations are provided in syncAXIS version 1.1
-------------------------------------------------------------------------------
C   None.
-------------------------------------------------------------------------------
B   Fixed: Loading and executing longer jobs no longer leads to unplanned 
    execution stops.
B   Fixed: Additional digital and analog Input/Output functions no longer leads
    to unplanned execution stops.
-------------------------------------------------------------------------------

********* syncAXIS control changes in version 1.0.5.1 for version 1.0.6 *******

-------------------------------------------------------------------------------
N   None.
-------------------------------------------------------------------------------
C   Corrected default value for StageDelay:
     - for CTime == 0.5,  specify StageDelay = 0.0029382
     - for CTime == 0.25, specify StageDelay = 0.0014881
C   Updated ACSCL_x86.dll to version 6.67.0.0 (of SPiiPlus ADK Suite v.2.60).
-------------------------------------------------------------------------------
B   Fixed: At job starts, now smaller position jumps (previously up to 10 nm).
-------------------------------------------------------------------------------

********* syncAXIS control changes in version 1.0.5.1 for version 1.0.5 *******

-------------------------------------------------------------------------------
N   None.
-------------------------------------------------------------------------------
C   None.
-------------------------------------------------------------------------------
B   Fixed: Upon exit, syncAXIS.dll now no longer blocks the user application.

********* syncAXIS control changes in version 1.0.2 for version 1.0.5 *********

-------------------------------------------------------------------------------
N   None.
-------------------------------------------------------------------------------
C   synxAXIS.dll now makes fewer calls to ACS controller which reduces TCP/IP 
    traffic. Among other things, bugfix on clicking sounds from v1.0.1 has been
    reverted as it is now solved by an ACS firmware update.
C   Release package (syncAXIS*.zip) now contains a newer version of ACSCL_x86.dll. 
C   syncAXIS control now stops with an error, if there is an issue with 
    functions sent to ACSCL_x86.dll.
C   With Master/Slave installations, MasterSlaveSynchronizer.exe now 
    synchronizes the ACS-EtherCAT network and RTC6 boards.
C   With Master/Slave installations, there is no longer a mandatory 
    initialization sequence of syncAXIS control instances. 
-------------------------------------------------------------------------------
B   Fixed: in trajectory planning, there are no longer memory leaks. 
B   Fixed: for some slsc_*-functions (slsc_cfg_release_stage, slsc_list_begin, 
           slsc_list_write_analog_x, slsc_list_write_digital_out, 
           slsc_list_write_digital_out_mask, slsc_ctrl_get_error_count, 
           slsc_ctrl_stop), there are no longer incorrect return values.
B   Fixed: sequential call of slsc_cfg_set_mode and slsc_cfg_select_stage_axis
           now work as expected.  
B   Fixed: short delay added in slsc_cfg_delete and slsc_cfg_release
           to make sure stage is not running (similar to head busy of excelliSCAN).
B   Fixed: internal timing problem. Has been relevant in cases where 
           slsc_cfg_initialize_from_file failed with a return code != 0 and 
           error count zero. 
B   Fixed: slsc_cfg_release and slsc_cfg_delete now verify that internal 
           resources are correctly released. Has been relevant in cases where 
           "Stage is still in follow" errors occurred.
B   Fixed: MasterSlaveSynchronizer.exe now synchronizes RTC6 as intended.  
           Furthermore, the delay between the cards is now shown. 
B   Fixed: 50 µs clock of RTC6 slave cards connected with a master has been unstable. 
-------------------------------------------------------------------------------

********* syncAXIS control changes in version 1.0.1 for version 1.0.2 *********

-------------------------------------------------------------------------------
N   None.
-------------------------------------------------------------------------------
C   None.
-------------------------------------------------------------------------------
B   Fixed: In rare cases some values returned by 
           slsc_ctrl_get_job_characteristic (velocity, acceleration and jerk) 
           were not correct. 
-------------------------------------------------------------------------------

********* syncAXIS control changes in version 1.0.0 for version 1.0.1 *********

-------------------------------------------------------------------------------
N   None.
-------------------------------------------------------------------------------
C   Duration of functions following slsc_cfg_acquire_stage and
    slsc_cfg_release_stage is now reduced (compared to previous version).
    Speeds up entire stage acquisition and release process.
-------------------------------------------------------------------------------
B   Fixed: upon stage acquisition, there are no longer clicking sounds.
B   Fixed: upon stage release, there are no longer clicking sounds.
    Note, if problem persists, contact ACS for a firmware update.
-------------------------------------------------------------------------------

