-
Notifications
You must be signed in to change notification settings - Fork 1
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
Design document for syncing GUI ECM with server ECM #8
Conversation
Signed-off-by: Ashton Larkin <42042756+adlarkin@users.noreply.github.com>
Signed-off-by: Ashton Larkin <42042756+adlarkin@users.noreply.github.com>
Thanks for the feedback, @chapulina! I have spent some time revising the document (and a bit of the design itself) and have produced a second draft in 5650632, which is ready for another review. |
Now that the implementation is underway, it would be nice to eventually update the design to reflect the implementation. Has it diverged, @adlarkin ? |
Yeah, the design will need to be updated. I will update the design here to reflect the new changes discussed in gazebosim/gz-sim#1109 (comment) and let you know when this PR is ready for another review (I should have it done this week). |
Signed-off-by: Ashton Larkin <42042756+adlarkin@users.noreply.github.com>
The design document has been updated to reflect the implementation in gazebosim/gz-sim#1109 (comment). |
Signed-off-by: Ashton Larkin <42042756+adlarkin@users.noreply.github.com>
|
||
### Server/Client Same Process | ||
When running the server and client in the same process, the server and GUI share the same ECM. | ||
In this scenario, the GUI (`gazebo::GuiRunner`) does not need to share its ECM with the server (`gazebo::SimulationRunner`), but the server still needs to make sure that server plugins are updated according to any changes made to the ECM while paused. |
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.
@mjcarroll , do you think this is reasonable for same-process? Or do we need a mechanism to bundle the GUI-only changes and sync them with the server on play? My concern is that every little change to the GUI ECM will be immediately processed by the server separately unless we bundle them. I think we also need to take the Recreate
component into account somewhere in here.
Signed-off-by: Ashton Larkin <42042756+adlarkin@users.noreply.github.com>
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.
Thanks for iterating!
Does #8 (comment) need to be addressed before merging, or is that comment just something to think about for the same process work? |
I wouldn't block on that |
Signed-off-by: Ashton Larkin 42042756+adlarkin@users.noreply.github.com
I've added a design document for how we can go about updating the server's ECM if the GUI's ECM is modified directly while simulation is paused.