CANParser: expose MessageState
to Cython to eliminate data copying
#1382
+44
−89
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 greatly simplifies the update logic, resulting in reduced code complexity and eliminating unnecessary data copying.
Main Changes:
SignalValue
Struct andCANParser::query_latest
Function: These components, previously used for copying updated values to Cython, have been removed. This change streamlines the data flow between C++ and Cython.MessageState
to Cython:MessageState
is now directly accessible from Cython, allowing values to be read straight from the C++ object. This eliminates the need for intermediate copying, optimizing performance and simplifying the overall code structure.Additionally, this PR includes changes from #1381, where value dictionaries are now initialized directly from DBC messages, though it does not include the
test_parser_empty_list()
function.