FESA3 Support Library (FESL)

Goal

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.

Structure

FESL overview

Development sources: https://www-acc.gsi.de/viewvc/view/fesa/device/driver/feSupport/

Contact Person: MatthiasWiebel

Versioning

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

  • FESA class -> Makefile.specific (additions in red):
PRO_OR_DEV = pro # Can also be 'dev'
FE_SUPPORT = /common/usr/cscofe/opt/feSupport/$(PRO_OR_DEV)
# Additional compiler warning flags WARNFLAGS += # Additional compiler flags COMPILER_FLAGS += -I$(FE_SUPPORT)/include LINKER_FLAGS += # Additional headers (Custom.h Specific.h ...) which need to be installed EXTRA_HEADERS +=
  • FESA deploy-unit -> Makefile.specific (additions in red):
PRO_OR_DEV = pro # Can also be 'dev'
FE_SUPPORT = /common/usr/cscofe/opt/feSupport/$(PRO_OR_DEV)
ETHERBONE = /common/usr/timing/etherbone/x86_64/

FRONTEND_INCLUDES = -I$(FE_SUPPORT)/include -I$(ETHERBONE)/include
FRONTEND_LIB = -L$(FE_SUPPORT)/lib \
-lpowerSupply -lcomponents -lbusAdapters -lbusSlaves -letherboneScu -lutility \
-L$(ETHERBONE)/lib \
-letherbone
# Additional compiler warning flags WARNFLAGS += # Additional libs and flags which are common to both the Realtime and the Server part COMPILER_FLAGS += LINKER_FLAGS += # Additional libs and flags which are specific to the Realtime part COMPILER_RT_FLAGS += $(FRONTEND_INCLUDES) LINKER_RT_FLAGS += $(FRONTEND_LIB) # 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

TODO

Documentation

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
Topic attachments
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: r12 - 08 Jul 2020, 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