Fix NodeStatus flooding and GUI responsiveness issues#88
Open
Bwooce wants to merge 2 commits intodronecan:masterfrom
Open
Fix NodeStatus flooding and GUI responsiveness issues#88Bwooce wants to merge 2 commits intodronecan:masterfrom
Bwooce wants to merge 2 commits intodronecan:masterfrom
Conversation
f384a34 to
383ce8e
Compare
Author
|
Apologies for the churn here, on further testing there were...more problems. I've attempted to keep this PR seperate from the ACK/NACK change one to facilitate testing/validation that it's not broken the world before the ACK/NACK change gets merged. |
a1794f7 to
d9acd2e
Compare
When SLCAN ACK/NACK waits were removed to support adapters without confirmation, the scheduler's timing assumptions broke. The periodic scheduler would re-register the next NodeStatus event before the current callback completed, causing a runaway loop when SLCAN frame transmission included time.sleep() calls. This fix prevents callback overlap by: - Adding callback_running flag to track execution state - Skipping overlapping executions and rescheduling for next period - Using try/finally to ensure flag is always reset Resolves 6000+ NodeStatus messages/second flooding issue while maintaining proper 1Hz timing and DroneCAN compliance.
- Fix periodic scheduler callback overlap preventing NodeStatus flooding - Add GUI responsiveness protection by limiting frames per spin cycle - Improve transfer reassembly with proactive cleanup and shorter timeouts - Fix dictionary iteration bug in transfer cleanup These changes resolve NodeStatus flooding and GUI freezing issues while improving frame decode reliability.
d9acd2e to
7011c14
Compare
Member
|
@Bwooce can you describe how I can reproduce the issue? |
This file contains hidden or 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
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.
Summary
Technical Details