Skip to content
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