-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FPP v1.3.0 integration #2103
FPP v1.3.0 integration #2103
Conversation
@tiffany1618 @bocchino how much work is the component implementations? I heard a suggestion of a point release, however; it will increase the CMake integration effort as we'll still need AiXML files generated....but specifically to disable AI XML autocoding. We should also track somewhere the CMake integration for this work. Lastly, this is sooooo fantastic! |
Thank you! I have the code generation part of component implementations done (it was simpler than expected), so all that is left is to integrate it with the fprime tools, which might require some CMake work. |
Fantastic! Please clue us in when you need anything from our side (e.g. CMake). |
This is great! Thanks, Tiffany.
This is already working for C++ component base classes. When you run the build, FPP generates the component XML and the component C++. CMake detects that the component C++ is there and compiles it. As Tiffany said, we still need to integrate the generation of C++ component implementation skeletons into the F Prime tools. |
* Start functional tests for FPP component autocoder * Add test components and formal param template types * Create general formal param types and update test components * Fix FppTest utilities * Update test component and formal param types * Add telemetry tests for FPP components * Add macros to generate test code in FPP component autocoder tests * Add telemetry tests for queued and passive FPP components * Use formal param types in FPP port autocoder tests * Share a main test file between FPP component tests * Add empty FPP component test * Add event tests for active FPP components * Add event tests for all FPP component types * Start parameter tests for FPP components * Add parameter tests for FPP components * Update parameter tests for FPP components * Merge port tests into FPP component tests * Update port tests for FPP components * Format macros * Reorganize FPP tests * Add command tests for FPP components * Add parameter command tests for FPP components * Update FPP tests * Update FPP tests * Update FPP tests * Remove unnecessary ports * Add async FPP component tests * Revise FPP port tests * Reorganize FPP tests * Format macros * Update FPP tests * Add headers * Fix typo * Update expected words for spell checker * Update expected words for spell checker * Run clang format * Update fprime-fpp version * Update FPP version --------- Co-authored-by: bocchino <bocchino@jpl.nasa.gov>
Change Description
This PR will integrate FPP v1.3.0, which adds support for the C++ generation of component base and implementation classes, with F Prime.
Unit tests for the FPP component autocoder have been added to the FppTest deployment. Unit tests for the FPP port autocoder have been combined with the new component tests, since the port tests are a subset of the component tests.
Changes to Generated C++ Code for Components
Component base classes
public
PROTECTED
PRIVATE
Example:
https://github.com/fprime-community/fpp/blob/22dc4207987e0f30ac8c75a6c91fd9fd14ccb3e7/compiler/tools/fpp-to-cpp/test/component/ActiveSerialComponentAc.ref.cpp#L2849-L2853
Example:
https://github.com/fprime-community/fpp/blob/22dc4207987e0f30ac8c75a6c91fd9fd14ccb3e7/compiler/tools/fpp-to-cpp/test/component/ActiveSerialComponentAc.ref.hpp#L39-L42
getParam()
, which does not appear to be used by either the component base class itself or any of the F Prime framework classesComponent implementation templates
init
function.{hpp,cpp}-template
to.template.{hpp,cpp}
Todo before this is ready to merge