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
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