Skip to content

Commit 02900cc

Browse files
committed
Discovery responses now match to the exact repeater based on full key
Removed error log that displayed dropped packets based on user filter Added debug logs around distance measuring Bluetooth timeout after 15 seconds now provides a clean, user-friendly message
1 parent 4784d5b commit 02900cc

16 files changed

+6133
-26121
lines changed

.claude/settings.local.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@
3333
"Bash(flutter test:*)",
3434
"WebFetch(domain:raw.githubusercontent.com)",
3535
"Bash(file:*)",
36-
"Bash(wc:*)"
36+
"Bash(wc:*)",
37+
"Bash(xargs cat:*)"
3738
]
3839
}
3940
}

android/local.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ sdk.dir=/opt/homebrew/share/android-commandlinetools
22
flutter.sdk=/opt/homebrew/share/flutter
33
flutter.buildMode=release
44
flutter.versionName=1.0.0
5-
flutter.versionCode=1770694673
5+
flutter.versionCode=1770696177

debuglog/meshmapper-debug-1770323201.txt

Lines changed: 0 additions & 26106 deletions
This file was deleted.

debuglog/meshmapper-debug-1770757854.txt

Lines changed: 6085 additions & 0 deletions
Large diffs are not rendered by default.

ios/Flutter/Generated.xcconfig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ COCOAPODS_PARALLEL_CODE_SIGN=true
55
FLUTTER_TARGET=lib/main.dart
66
FLUTTER_BUILD_DIR=build
77
FLUTTER_BUILD_NAME=1.0.0
8-
FLUTTER_BUILD_NUMBER=1770694673
8+
FLUTTER_BUILD_NUMBER=1770696177
99
EXCLUDED_ARCHS[sdk=iphonesimulator*]=i386
1010
EXCLUDED_ARCHS[sdk=iphoneos*]=armv7
11-
DART_DEFINES=QVBQX1ZFUlNJT049QVBQLTE3NzA2OTQ2NzM=,RkxVVFRFUl9WRVJTSU9OPTMuMzguOQ==,RkxVVFRFUl9DSEFOTkVMPXN0YWJsZQ==,RkxVVFRFUl9HSVRfVVJMPWh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIuZ2l0,RkxVVFRFUl9GUkFNRVdPUktfUkVWSVNJT049NjczMjNkZTI4NQ==,RkxVVFRFUl9FTkdJTkVfUkVWSVNJT049NTg3YzE4Zjg3Mw==,RkxVVFRFUl9EQVJUX1ZFUlNJT049My4xMC44
11+
DART_DEFINES=QVBQX1ZFUlNJT049QVBQLTE3NzA2OTYxNzc=,RkxVVFRFUl9WRVJTSU9OPTMuMzguOQ==,RkxVVFRFUl9DSEFOTkVMPXN0YWJsZQ==,RkxVVFRFUl9HSVRfVVJMPWh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIuZ2l0,RkxVVFRFUl9GUkFNRVdPUktfUkVWSVNJT049NjczMjNkZTI4NQ==,RkxVVFRFUl9FTkdJTkVfUkVWSVNJT049NTg3YzE4Zjg3Mw==,RkxVVFRFUl9EQVJUX1ZFUlNJT049My4xMC44
1212
DART_OBFUSCATION=false
1313
TRACK_WIDGET_CREATION=false
1414
TREE_SHAKE_ICONS=true

ios/Flutter/flutter_export_environment.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ export "COCOAPODS_PARALLEL_CODE_SIGN=true"
66
export "FLUTTER_TARGET=lib/main.dart"
77
export "FLUTTER_BUILD_DIR=build"
88
export "FLUTTER_BUILD_NAME=1.0.0"
9-
export "FLUTTER_BUILD_NUMBER=1770694673"
10-
export "DART_DEFINES=QVBQX1ZFUlNJT049QVBQLTE3NzA2OTQ2NzM=,RkxVVFRFUl9WRVJTSU9OPTMuMzguOQ==,RkxVVFRFUl9DSEFOTkVMPXN0YWJsZQ==,RkxVVFRFUl9HSVRfVVJMPWh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIuZ2l0,RkxVVFRFUl9GUkFNRVdPUktfUkVWSVNJT049NjczMjNkZTI4NQ==,RkxVVFRFUl9FTkdJTkVfUkVWSVNJT049NTg3YzE4Zjg3Mw==,RkxVVFRFUl9EQVJUX1ZFUlNJT049My4xMC44"
9+
export "FLUTTER_BUILD_NUMBER=1770696177"
10+
export "DART_DEFINES=QVBQX1ZFUlNJT049QVBQLTE3NzA2OTYxNzc=,RkxVVFRFUl9WRVJTSU9OPTMuMzguOQ==,RkxVVFRFUl9DSEFOTkVMPXN0YWJsZQ==,RkxVVFRFUl9HSVRfVVJMPWh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIuZ2l0,RkxVVFRFUl9GUkFNRVdPUktfUkVWSVNJT049NjczMjNkZTI4NQ==,RkxVVFRFUl9FTkdJTkVfUkVWSVNJT049NTg3YzE4Zjg3Mw==,RkxVVFRFUl9EQVJUX1ZFUlNJT049My4xMC44"
1111
export "DART_OBFUSCATION=false"
1212
export "TRACK_WIDGET_CREATION=false"
1313
export "TREE_SHAKE_ICONS=true"

lib/models/log_entry.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,13 +202,15 @@ class DiscoveredNodeEntry {
202202
final double localSnr; // SNR as seen by local device (dB)
203203
final int localRssi; // RSSI as seen by local device (dBm)
204204
final double remoteSnr; // SNR as seen by remote node (dB)
205+
final String? pubkeyHex; // Full public key hex (64 chars) for exact repeater matching
205206

206207
DiscoveredNodeEntry({
207208
required this.repeaterId,
208209
required this.nodeType,
209210
required this.localSnr,
210211
required this.localRssi,
211212
required this.remoteSnr,
213+
this.pubkeyHex,
212214
});
213215

214216
/// Get short display label: "(R)" for REPEATER, "(RM)" for ROOM

lib/models/noise_floor_session.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,16 @@ class MarkerRepeaterInfo extends HiveObject {
4949
@HiveField(2)
5050
final int rssi;
5151

52+
/// Full public key hex from DISC responses (64 chars) for exact repeater matching.
53+
/// Null for TX/RX pings which only have 1-byte IDs.
54+
@HiveField(3)
55+
final String? pubkeyHex;
56+
5257
MarkerRepeaterInfo({
5358
required this.repeaterId,
5459
required this.snr,
5560
required this.rssi,
61+
this.pubkeyHex,
5662
});
5763
}
5864

lib/models/noise_floor_session.g.dart

Lines changed: 5 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/providers/app_state_provider.dart

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1223,6 +1223,7 @@ class AppStateProvider extends ChangeNotifier with WidgetsBindingObserver {
12231223
repeaterId: n.repeaterId,
12241224
snr: n.localSnr,
12251225
rssi: n.localRssi,
1226+
pubkeyHex: n.pubkeyHex,
12261227
)).toList();
12271228
}
12281229
}
@@ -1338,7 +1339,12 @@ class AppStateProvider extends ChangeNotifier with WidgetsBindingObserver {
13381339
}
13391340
} else {
13401341
_isAuthError = false;
1341-
_connectionError = errorStr.replaceFirst('Exception: ', '');
1342+
// Provide clean user-facing messages for common BLE errors
1343+
if (errorStr.contains('timeout') || errorStr.contains('Timeout') || errorStr.contains('timed out')) {
1344+
_connectionError = 'Bluetooth connection scan timed out';
1345+
} else {
1346+
_connectionError = errorStr.replaceFirst('Exception: ', '');
1347+
}
13421348
}
13431349
_connectionStep = ConnectionStep.error;
13441350
notifyListeners();

0 commit comments

Comments
 (0)