Optimize BLE mesh network for robustness and range (#314)

- Fixed relay probability calculation for 2-node networks (0% relay needed)
- Added protocol ACKs to prevent unnecessary retransmissions
- Implemented MessageState for enhanced duplicate detection
- Added exponential backoff for collision avoidance
- Fixed duplicate sends for bidirectional connections
- Resolved packet ID generation issues using immutable fields only
- Implemented smart rate limiting with progressive throttling
- Removed unnecessary debug logging and fixed build warnings
- Optimized message routing to prevent flooding in small networks

Co-authored-by: jack <jackjackbits@users.noreply.github.com>
This commit is contained in:
jack
2025-07-24 19:49:37 +02:00
committed by GitHub
co-authored by jack
parent 498bb30d82
commit 492f90edd5
8 changed files with 831 additions and 172 deletions
@@ -73,7 +73,8 @@ class MockBluetoothMeshService: BluetoothMeshService {
timestamp: UInt64(Date().timeIntervalSince1970 * 1000),
payload: payload,
signature: nil,
ttl: 3
ttl: 3,
sequenceNumber: 1
)
sentMessages.append((message, packet))
@@ -111,7 +112,8 @@ class MockBluetoothMeshService: BluetoothMeshService {
timestamp: UInt64(Date().timeIntervalSince1970 * 1000),
payload: payload,
signature: nil,
ttl: 3
ttl: 3,
sequenceNumber: 1
)
sentMessages.append((message, packet))