-
Notifications
You must be signed in to change notification settings - Fork 128
Refactor rtde parsing #419
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
base: master
Are you sure you want to change the base?
Conversation
Creating new objects on the heap isn't really RT-capable and undeterministic. This adds the possibility to parse incoming data packages into a pre-allocated package to avoid having to create new objects on the fly. To achieve this, the pipeline in the RTDE client has been replaced by a double buffer with two pre-allocated objects.
This should be a lot faster in accessing/storing objects in the data package
Before that change we were basically allocating strings and a new DataPackage on each send operation. This change will preallocate a data package and re-use that for future send operations. The necessary RTDE dictionary keys are also preallocated.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #419 +/- ##
==========================================
- Coverage 43.13% 38.03% -5.10%
==========================================
Files 99 100 +1
Lines 8685 8766 +81
Branches 1182 1182
==========================================
- Hits 3746 3334 -412
- Misses 4657 5200 +543
+ Partials 282 232 -50
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
| // loop. | ||
| my_client.start(); | ||
| my_client.start(false); | ||
| const std::string key = "target_speed_fraction"; |
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.
variable should have a more explaning name and maybe also in UPPERCAST letters as it is a constant
This is a refactor of RTDE communication effectively improving two things:
There's currently some documentation and testing missing, hence the draft status.