-
Notifications
You must be signed in to change notification settings - Fork 63
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
Ros serialization #449
Merged
Merged
Ros serialization #449
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…he C target) whether CMake is used to compile or not
… requested. Slight bug fix
…n federated execution
…g an instance of their parent. Added copy functions
…ll to see what happens
…or to not use CMake
…arget if using CMake
…and repopulating it
…egardless of target compiler status
cmnrd
approved these changes
Sep 20, 2021
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Except for the C++ compilation issue (which I believe is solved by #513), this is good to go!
Co-authored-by: Marten Lohstroh <[email protected]>
…th their file and target configs instead of keeping a list of resources
Co-authored-by: Marten Lohstroh <[email protected]>
…imported .lf resources
`cmake-include` improvements
CCpp target
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR proposes the following changes:
Implements ROS serialization (and a modular serialization framework) for our C target federated runtime.
Limitation: The port types need to be
std::shared_ptr<**ROS2MessageType**>
for the serialization to work correctly.Fixes the
_distribute.sh
scripts.Limitation: Platform support for remote federates is currently only enabled for Linux.
Modifies the C runtime so that all reactor definitions, including their actions, ports, reactions, and preambles are only selectively generated if they belong to a given federate (previously, all reactor definitions were being generated for all federates, causing linking conflicts in some cases).
Adds a C++ mode to the
CCmakeGenerator
that will compile all generated.c
files as if they were.cpp
(needed for ROS 2 compatibility).Adds support for multi-threaded compilation in the CGenerator for federated programs, where each federate is compiled (i.e., cmake is invoked for each federate) in a separate thread.
Fixes an issue where the
file
target property was not working correctly for federated programs.Changes the behavior for treating imported reactors that are used as federates:
.lf
file (previously all preambles in all imported federates' files were included for all federates).cmake-include
file is provided for an imported federate in the original.lf
file, that file is used to extend theCMakeLists.txt
for that federate, provided that nocmake-include
is provided in the current.lf
file. This is particularly useful to handle different dependencies that might interfere with each other for different federates.Fixes issues with the combination of federated banks and multiports and decentralized coordination.
Fixes an issue where the trace table generation was not considering federates.
Changes the federated AST transformation so that the receiver action is now of a special target-specific type (as opposed to mimicking the original port type). This type is reported by
getNetworkBufferType()
.Moves
FederateInstance.xtend
toorg.lflang.federated
.