* Fix position exchange throttling race condition
Separate tracking of position broadcasts vs replies to fix exchange position functionality.
Previously, allocReply() would refuse to send position replies if any position packet
(broadcast or reply) was sent within the last 3 minutes. This caused the exchange
position feature to fail when a device had recently sent a position broadcast.
Changes:
- Add lastSentReply member to track position reply timestamps separately
- Update allocReply() to only throttle based on previous replies, not broadcasts
- This allows position exchange to work even after recent position broadcasts
The fix maintains the 3-minute throttling for replies to prevent spam while allowing
legitimate position exchange functionality to work properly.
* Remove unused lastSentToMesh variable
Variable was no longer used after separating reply throttling logic.
* Space out periodic broadcasts of modules automatically
* Add warning for function usage
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* uclibc compatibility
Adds compatibility with uclibc, the officially supported toolchain of the luckfox pico
* Explicitly link stdc++fs for std::filesystem
Bringing this over from buildroot-meshtastic
remove newline from logging statements in code. The LOG_* functions will now magically add it at the end.
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Refactor and consolidate windowing logic
* Trunk
* Fixes
* More
* Fix braces and remove unused now variables.
There was a brace in src/mesh/RadioLibInterface.cpp that was breaking
compile on some architectures.
Additionally, there were some brace errors in
src/modules/Telemetry/AirQualityTelemetry.cpp
src/modules/Telemetry/EnvironmentTelemetry.cpp
src/mesh/wifi/WiFiAPClient.cpp
Move throttle include in WifiAPClient.cpp to top.
Add Default.h to sleep.cpp
rest of files just remove unused now variables.
* Remove a couple more meows
---------
Co-authored-by: Tom Fifield <tom@tomfifield.net>
* feature: default to fuzzy GPS location on the Default Channel
* Default to 13
* 13 default
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Guard against timesources from the mesh if we have good time
* Trunk
* Consider phone time in the past 24 hours authoritative as well
* Rename
* GPS can be null
* Declaration
* Remove RemoteHardware
* Explicitly remove GPS
* Exclude GPS earlier for RAK2560
* Make SPI frequency configurable on Native
* Make the tophone queue size configurable for Portduino
* The modified SPISettings must be configured in setup(), after config.yaml is processed
* make MeshService a pointer, so we can configure MAX_RX_TOPHONE at run time
* Got a little over excited with refactoring
* Silence a warning
* Add congestion scaling coefficient
* Added active mesh sized based interval scaling
* Moved back to bottom
* Format
* Add observers and use correct number of online nodes
* Add MaxNodes to Native
* It compiles...
* Convert nodedb to use new
* Closer but still broken.
* Finally working
* Remove unintended lines
* Don't include a pointer
* Capitalization matters.
* avoid rename in protocol regen
* When trimming the nodeDB, start with a cleanup
* Remove extra cleanupMeshDB() call for now
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>