Download

Copyright and Licence

All the results of this project are publicly available under the Eclipse Public License (EPL) . This includes the project documentation and all the software developed in the project in both source and compiled form. It includes in particular the FW Profile definition and FW Profile validator Eclipse plug-ins.

ETH Demonstrator Framework

The ETH Framework UML2 model can be downloaded here (version 0.2.0). The framework model contains both telecommand and telemetry packages as decribed in the ASSERT technical note D4.2.4-4 .

ASSERTive Days Demonstration of ETH Demonstrator Framework Instantiation

The ETH Demostrator Framework has been used for the demostration prepared by Alcatel Alenia Space and presented during the ASSERTive days in ESTEC on 22nd March 2007. For the purpose of this demostration the framework has been instatiated and three telommands commanding the batery managment system were added. The UML2 model can be downloaded here . The model covers only the ch.ethz.pus.telecommand package. The ch.ethz.pus.telemetry package will be deployed in the future as a part of the ASSERT V3 Demonstrator.

FW Profile Validation

Note that FW Profile is required to open the model in Eclipse UML2 editor or in TOPCASED. See the FW Profile website for installation instructions.

Also note that the validating the model against FW Profile results in tne validation errors. There are the error messages "[ETH FW Profile Validator] In 'Transition tll/tpl': Identifier (method) 'isPacketArrived' not found in symbol table. (error in guard 'tcStream.isPacketArrived()', in transition 'tll', in class 'TelecommandLoader', in package 'ch.ethz.pus.telecommand')". This is a known bug in implementation of the action language parser which is scheduled to be fixed in the second half of May 2007. Further there are eight messages related to the names of operations that conflict the reserved keywords of some commonly used programming languages. They are not errors per se and as such they will be reported as warning in the upcoming version of the of the FW Profile validator.
The ETH Demonstrator Framework model is valid.

Functional Code Generator

Functional Code Generator was developed to transform the UML2 model to an Ada 2005 code. The generator can be downloaded from here .

The generator is implemented in MOFScript language. To execute the generator the MOFScript Eclipse plug-in is required. The plug-in is available from http://modelbased.net/mofscript/ .

To execute the generator, unzip the the uml2ada05.zip to any folder in the your Eclipse workspace, locate the file fv2Ada2005.m2t, right-click it and choose MOFScript | Execute. Then locate the UML2 model (TcTmFramework-BateryManagement-V2D.uml) and press open. You may wish to see the processing messages of the MOFScript processor in the Console view.

The files are generated to the location specified in the Eclipse Preferences item "Root Generation Dir". It is recommended to change the location of the generated code by right-clicking the fv2Ada2005.m2t file and choosing Properties | MOFScript Properties | Select Root Output Directory.

Note that the Functional Code Generator available form this website is not the code generator that was used for the V2 demonstrator where, due to several HW/SW interfacing problems a makeshift Ada95 code generator had to be used in order to compile and run the generated code with the legacy code provided by Alcatel Alenia Space. For V3 demostrator it is planned to identify and solve these problems in order to use Ada 2005 for V3 Demonstrator.

The current version of the Functional Code Generator doesn't yet support the following features:

  • UML2 Interfaces are ignored by the generator. No code is generated for interfaces. There are no interfaces in the ETH Demonstrator Framework.
  • UML2 Enumerations are not generated. There is an enumeration package that contains the five enumeration data types defined in the model .
  • UML2 Primitive Types are not generated from the model. Instead, basictypes.ads file defines the primitive types defined in the model.



To learn more about how to operate the the model and the generator see the demo.