New MAJOR release 07.00.00 Changes since 06.10.00: *** INCOMPATIBLE CHANGES WITH PREVIOUS llrfctrl v6 RELEASES (list may be incomplete) *** - Changed scheme how the power is computed for the AdcChannel. - The variable Automation/Rampup/OVC/erorrTarget is now in digits (was before in G.U.) - /Configuration/globalSamplingPosition no longer exists, use /Configuration/SamplingPosition/offset - /Controller/errorMessage now needs to be reset by operator (see /Controller/resetErrorMessage) - only compute amplitude and phase for the controller channels vector sum and error - Rename the project, the application class and the configuration files into a more consistent naming scheme. The project is called "llrfctrl" and everything is now named accordingly. This completely breaks the compatibility with configuration files of older versions. - renamed variables in control system: "/Board0/CommonCalibration/scale" and ".../angle" -> "/Configuration/CommonCalibration/scale" and ".../angle" These act now on all ADC channels (of all boards) where Calibration/CommonCalibration/enable has been set - removed internal channel name mapping - this should now be done in the control system adapter mapping New features: - Implemented support for multi-cavity systems throughout the server (incl. master-slave systems e.g.f for EuXFEL) - Added support for multiple flattops - Individual ADC channels are now scaled with /Configuration/lengthScale and the unit has been changed to /Configuration/gradientUnitPerLength. This allows to display the signals in e.g. MV/m, but the old behaviour is still possible. - Added special UserVariables module needed for EuXFEL/FLASH - Added support for vector sum bit shift required for multi-cavity systems - Added support for beam loading compensation - Added PhaseSetter module (for EuXFEL) - Learning feed forward: rotate current state when controller setpoint phase is changed (like in llrfctrlsrf recently implemented) - Publish the global sampling position not only as an index but also in microseconds for each flattop - Publish server version also as a string - added amplitude and phase slope, and transition time offset - introduced trigger limiters (for DCMs) - Add AmplitudePhaseError module which computes amplitude and phase error and a fault flag (e.g. user for the XFEL FSM) - made adc channel statistics optional - make separate FF correction enable variables for user FFC and LFF FFC - make use of bidirectional variables to put the result of the VM offset calibration into the corresponding control system variables - added absolute limit for OVC Performance improvements: - Allow switching off controller channel statistics - Allow switching individual adc boards to RAW mode instead of all at the same time - Do not always read and demultiplex raw adc data Other changes: - Error messages are no longer printed to console unless compiled in debug mode - Improve handling when server starts with out-of-range initial values. This was presumably also causing race-conditions in the tests. - some minor bug fixes and code cleanup - prevent table generation if not needed - link against DOOCS backend instead of symlink gymnastics - generate tables immediately after parameter change, not only at next trigger - OVC: prevent averaging window indices to go out of range - added tests for OVC - added test for VM offset calibration - fixed interlock latcher reset happening too quick to be testable (and maybe too quick for the firmware to detect it) - extended test for interlock detection - rework test for Automation module - refactoring to make the code simpler - do not use slashes in module names and accessor names (now forbidden in ApplicationCore) - move most directly connected device variables out of the application