-
Notifications
You must be signed in to change notification settings - Fork 153
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
mesh.checkConnection via parent not master #250
Conversation
Specifically for PRs that only change the lib src code and not examples.
use doxygen references
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Memory usage change @ 8c494ae
Click for full report table
Click for full report CSV
|
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.
Compiling for Arduino Nano
The generic non-master node example shows a significant decrease in flash memory (-152 bytes). For some reason the Node2Node examples both show a slight increase in flash memory (+64 and +70 bytes). It isn't apparent why the flash memory increased for the Node2Node examples, but I think the generic non-master node example is a more relevant result.
Compiling for cortex-based MCU
The ATSAMD21 showed negligible increase in flash memory (+40 to +44 bytes) on generic non-master node and Node2Node examples, but that family of processors is well equipped for any changes in compile size.
also defaults RF24_DRIVER to SPIDEV (per nRF24/RF24#971)
I also added the ability to use the old behavior in CMake builds: Lines 146 to 149 in 458e964
cd RF24Mesh/build
cmake .. -DRF24MESH_CONN_CHECK_TYPE=RF24MESH_CONN_CHECK_MASTER
make I haven't actually tested this yet. It might be more effective to add the CMake option to examples_RPi/CMakeLists.txt (instead of root/lib CMakeLists.txt). |
I think this would apply to any macro wrapped with |
Would it make sense to return true if
|
Damn, you've been busy @2bndy5
I was thinking the same thing. Will have to look at your other comments tomorrow probably, but at a glance they all add up. |
Thanks for making the necessary changes! Been testing extensively and there are some drawbacks:
|
* mesh.checkConnection via parent not master - Adjust mesh.checkConnection function to verify connectivity with parent only. Leave old functionality in place with a #define - Suggestions in place per @2bndy5 closes #249 * Fix last commit - _nodeID not nodeID * review changes * trigger compile size reports for PRs Specifically for PRs that only change the lib src code and not examples. * doc review use doxygen references * [docs] clarify return value of checkConnection() * format RF24Mesh.h Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * review supported CMake options also defaults RF24_DRIVER to SPIDEV (per nRF24/RF24#971) * add reference to new config macro in checkConnection() doc. --------- Co-authored-by: Brendan <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
cherry picked to v1.x |
These changes tend to allow more nodes on a network, especially helping distant nodes (far from master node) with verifying connectivity as they only have to verify a connection with their parent node, instead of the master node. Tends to help with keeping the mesh together as nodes closer to the master node change their postition and/or address as the mesh changes physically or logically.
Since this fundamentally changes behaviour of the mesh, I've tested the changes pretty well, and its looking good for these changes. I'm seeing greater connectivity, less packet loss, and a mesh that behaves a bit better.
Its not 5-9s, but its probably about as good as it gets after 1 day of testing with most nodes upgraded to this new functionality: