You are here: Foswiki>FESA Web>FESA3UserSpace>HowToCreateEmptyFESAProject (19 Sep 2019, TobiasHabermann)Edit Attach

How to create a "Hello SCU" FESA-Class?

Note: Most of this is obsolete with FESA 7.x

Prerequisite: Eclipse with FESA-Plugin installed

Aim: Create a minimum GSI-FESA-Class Project with a deploy unit and an instance file. The instance is configured to run in mixed mode and can be deployed and run on a SCU for testing.

Not covered: Nothing will be checked in to SVN and no DB entries will be made, no timing will be used

Works with: FESA 5.0.2, Eclipse plugin 2.9.9, (01.04.2019)
  • Create new projects:
    • New -> FESA Class project (dont share project in repository)
      • GSIClass Template & create default deploy-unit project
  • scheduling unit (design)
    • rt-wizard (my_locigal_event (timer), My_rt_action, My_scheduling_unit)
    • validate
    • synchronize
  • more scheduling unit (deploy)
    • add child -> scheduler
    • scheduler -> concurrency-layer -> scheduling-unit -> scheduling-unit-ref = CLASSNAME::My_scheduling_unit
    • scheduler -> concurrency-layer -> name = my_concurrency_layer
  • set mixed-modex (deploy)
    • executable remove -> server
    • executable add child -> mixed
    • validate
    • synchronize
  • create FEC (deploy)
    • add FEC (keep "create instance for this FEC" checked and Timing network = NONE)
  • configure instance (instance)
    • classes->CLASSNAME->device-instance->name = my_instance
    • classes->CLASSNAME->events-mapping->my_logical_event->event_configuration-> name = my_event_config
    • check that classes->CLASSNAME->events-mapping->my_logical_event->event-configuration->Timer->timer-event->period is not 0 !!
    • clases->CLASSNAME->device-instance->events-mapping->my_logical_event->event-configuration-ref->name = my_event_config
  • optional: edit src/CLASSNAME/RealTime/My_rt_action.cpp to do something
  • first release
    • dont check in to SVN: eclipse->window->preferences->FESA->Expert->DeliveryOptions->Dont check source code repository
    • Make Targets->CLASSNAME->all
    • Make Targets->CLASSNAME_DU->all
    • deploy unit -> release
  • run
    • execute start_manually..

If the deploy target is not a standard scu (eg vmla014):
  • edit the start script
    • go to cd /common/export/fesa/local/vmla014/CLASSNAME_DU/
    • emacs startManually_DEPLOYUNITNAME_M.sh
      • CONFIG_PATH=${SCRIPTPATH}
      • INSTANCE=${SCRIPTPATH}/${DU_NAME}.instance
      • BINARY=${SCRIPTPATH}/${DU_NAME}${EXEC_APPENDIX} or without $(EXEC_APPENDIX}
      • FESA_CFG=${CONFIG_PATH}/fesa.cfg
      • export LD_LIBRARY_PATH=${SCRIPTPATH}/lib/:${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
      • ARGUMENTS = " ...... -noRTSched"
    • prevent overwriting on next deploy: mv startManually_DEPLOYUNITNAME_M.sh startXManually_DEPLOYUNITNAME_M.sh
    • "manual deploy" : scp * vmla014:/home/directory where to put the instance
  • get saftlib
    • mkdir lib
    • cp somewhere/* ./lib/

-- TobiasHabermann - 15 Oct 2018
Topic revision: r4 - 19 Sep 2019, TobiasHabermann
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