FESA3 Support Library (FESL)


Getting ACU-USI-Interlock-Bits

  1. Login on FEC
  2. Stop running FESA-class
  3. Run AcuUsiTest
  4. Select '91 - read InterlockTexts'
  5. Use generated output for fesa-instance tool
    1. insert info in file e.g. statusBitsMIL
    2. e.g. check:
      fesa-instance statusAssignedMIL.txt -b statusBitsMIL.xml -d ../../ -t
    3. Read statusAssigned.1st_read in src/test of e.g. PowerSupplyHebt_DU for further info.


The FESL ist meant to provide a transparanet view of the components and bus slaves of an SCU. Therefore, we built up a set of libraries which interface the whole SCU functionality as well as the different types of power supplies in the field. Thus it is now possible to easily integrate new power converters and the SCU slave cards controlling them in the existing equipment software and to build up test programms quickly. Dealing with the equipment specifics should not be buried in the FESA-classes but instead be reusable for the implementation of other programs.


FESL overview

Development sources: https://git.acc.gsi.de/fesa-drivers/feSupport

Contact Person: MatthiasWiebel


On ASL go to /common/usr/cscofe/opt/feSupport an check out the available versions.
  • productive build -> pro
  • developement build -> dev

How to integrate FESL into any project

  • Use /common/usr/cscofe/opt/feSupport/VERSION/include
  • Use /common/usr/cscofe/opt/feSupport/VERSION/lib

​How to integrate FESL into FESA3 projects

  • libConfig.mk -> Usually one creates it in the dir of the class. Configuration of the external libs used is done here. This file is then included in the makefiles of the class and the according du.
# Versions 
ETHERBONE_VERSION         = tg-fallout-v6.1.2

# Base directories
FE_SUPPORT_DIR            = /common/usr/cscofe/opt/feSupport/$(FE_SUPPORT_VERSION)
ETHERBONE_DIR             = /common/export/timing-rte/$(ETHERBONE_VERSION)/x86_64
  • FESA class -> Makefile.specific (additions in blue):
#include libConfig.mk

# Additional compiler flags
COMPILER_FLAGS += -g -Igenerated/cpp/fooClass -Isrc/fooClass -I$(FE_SUPPORT_DIR) -I$(FE_SUPPORT_DIR)/include -I$(ETHERBONE_DIR)/include
# Additional headers (Custom.h Specific.h ...) which need to be installed EXTRA_HEADERS +=
  • FESA deploy-unit -> Makefile.specific (additions in blue):
#include ../fooClass/libConfig.mk

FRONTEND_LIB = -L$(FE_SUPPORT_DIR)/lib/ -lfesl -L$(ETHERBONE_DIR)lib/ -letherbone # Additional compiler warning flags WARNFLAGS += # Additional libs and flags which are common to both the Realtime and the Server part COMPILER_FLAGS += -g $(FRONTEND_INCLUDES) LINKER_FLAGS += $(FRONTEND_LIB) # Additional libs and flags which are specific to the Realtime part COMPILER_RT_FLAGS += LINKER_RT_FLAGS += # Additional libs and flags which are specific to the Server part COMPILER_SERVER_FLAGS += LINKER_SERVER_FLAGS += # Additional headers (Custom.h Specific.h ...) which need to be released EXTRA_HEADERS +=

How to use the FESL classes in Code of FESA Actions



Mainly done incode.

TODO Central availability. (Until this is done: Check out the sources and generate the docu with doxygen.)

Aktuelle TODOs

Meeting mit PKAIN und MAW 6.7.2020
  • alte DevAcc SW in FeSupport umsetzen -> neue Standardklassen mit Subsets
  • Code refactoring
    • Exceptions
    • ...
    • Handler separieren von BusSlaves
      • neuer Ordner / Namespace auf Ebende scu
      • Umbenennen der Handler
      • Anpassen in allen Klassen
  • Logging verbessern -> THAB wollte irgendwann mal zeigen, was er macht
  • Durchdokumentieren -> MAW teilt auf, wer was macht
  • valToDac-Funktionen gibt es an verschiedenen Stellen PKAIN
    • vereinheitlichen
    • Bitbreite konfigurierbar machen
  • Test des online-modes MAW
  • Coding-Konventionen einführen
    • Benennung von Dateien
    • Variablen, etc.
  • Instanziierung der IFCs vereinfachen -> MAW recherchiert
    • mit Struct?
    • mit Pattern? -> Cosylab hatte was auf ne Art gemacht
I Attachment Action Size Date Who Comment
FESL.pngpng FESL.png manage 128 K 22 Jan 2015 - 15:18 MatthiasWiebel FESL overview
MakefileEXT Makefile manage 1 K 19 Feb 2015 - 15:08 MatthiasWiebel Example file to build your project with make
Topic revision: r15 - 12 Oct 2023, MatthiasWiebel
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback