.. _Folder_fswAuto: fswAuto ======= .. toctree:: :hidden: Auto-wrapping Flight Software ----------------------------- Because Basilisk is written in a combination of C, C++ and Python, when FSW is migrated out of the Basilisk desktop environment into an embeddable flight target, the Python portion of the architecture needs to be translated into other programming languages (like C, C++ or MicroPython). The ``fswAuto`` tools are meant to facilitate the migration of Basilisk flight algorithms into either: a pure C application (``autosetter``) or a C++ MicroPython application (``autowrapper``). For further details on migration strategies the reader is referred to `this paper `_. ``autosetter`` Directory ~~~~~~~~~~~~~~~~~~~~~~~~ The purpose of this script is to automatically translate the setup code from Basilisk Python scenarios into C. This facilitates the process to move a BSK simulation of algorithms into a pure C software architecture. The setup code encompasses: 1) C modules' variables initialization and 2) Grouping of modules in tasks Run the ``autosetter.py`` file that lives inside the ``autosetter`` directory. The expected output has one header and source file containing the setup code written in C will be created in a fresh local directory named ``outputFiles``. ``autowrapper`` Directory ~~~~~~~~~~~~~~~~~~~~~~~~~ The purpose of this script is to create C++ wrapper classes with setters and getters around each C module. For instance, autrowrapping the ``inertial3D`` C module will create an ``inertial3D.hpp`` wrapper class. In addition, source code required to integrate the generated C++ wrappers into MicroPython is also created (in ``module.hpp``). Note that this glue code is specific to MicroPython. Run the ``autowrapper.py`` file that lives inside the ``autowrapper.py`` directory to execute an example. The expected output are the C++ wrapper classes of the C FSW modules and the MicroPython integration/glue code in a fresh local directory named ``outputFiles``. ``fsw_examples`` Directory ~~~~~~~~~~~~~~~~~~~~~~~~~~ This directory contains the FSW simulation defining the modules upon which the ``autosetter.py`` and ``autowrapper.py`` will operate: ``desktopFswSim.py``. All the other scripts in the directory are helper scripts to set up the FSW simulation. .. toctree:: :maxdepth: 1 :caption: Files: .. toctree:: :maxdepth: 1 :caption: Directories: autosetter/index autowrapper/index fswExamples/index