Include client repeat info

This commit is contained in:
Janez T
2026-03-02 09:02:20 +01:00
parent aa2a194b0b
commit 4d0c45c11c
3 changed files with 67 additions and 0 deletions

View File

@@ -535,6 +535,7 @@ class ConnectionProvider with ChangeNotifier {
firmwareBuildDate: deviceInfo['firmwareBuildDate'] as String?,
manufacturerModel: deviceInfo['manufacturerModel'] as String?,
semanticVersion: deviceInfo['semanticVersion'] as String?,
clientRepeat: deviceInfo['clientRepeat'] as bool?,
);
notifyListeners();
debugPrint('✅ [Provider] Device info updated with DeviceInfo');
@@ -624,6 +625,12 @@ class ConnectionProvider with ChangeNotifier {
});
};
_bleService.onAllowedRepeatFreqReceived = (ranges) {
debugPrint('📥 [Provider] Received AllowedRepeatFreq: $ranges');
_deviceInfo = _deviceInfo.copyWith(allowedRepeatFreqRanges: ranges);
notifyListeners();
};
_bleService.onTxActivity = () {
_txActivity = true;
notifyListeners();
@@ -1652,6 +1659,7 @@ class ConnectionProvider with ChangeNotifier {
required int bandwidth,
required int spreadingFactor,
required int codingRate,
bool? repeat,
}) async {
if (!_bleService.isConnected) {
_error = 'Not connected to device';
@@ -1665,6 +1673,7 @@ class ConnectionProvider with ChangeNotifier {
bandwidth: bandwidth,
spreadingFactor: spreadingFactor,
codingRate: codingRate,
repeat: repeat,
);
} catch (e) {
_error = 'Failed to set radio params: $e';
@@ -1672,6 +1681,16 @@ class ConnectionProvider with ChangeNotifier {
}
}
/// Request the list of allowed repeat frequency ranges from the device (firmware v9+)
Future<void> getAllowedRepeatFreq() async {
if (!_bleService.isConnected) return;
try {
await _bleService.getAllowedRepeatFreq();
} catch (e) {
debugPrint('Failed to get allowed repeat freq: $e');
}
}
/// Set transmit power
Future<void> setTxPower(int powerDbm) async {
if (!_bleService.isConnected) {
@@ -1725,6 +1744,8 @@ class ConnectionProvider with ChangeNotifier {
try {
// The device query command triggers a SelfInfo response
await _bleService.refreshDeviceInfo();
// Also request allowed repeat frequencies (firmware v9+, no-op on older firmware)
await _bleService.getAllowedRepeatFreq();
} catch (e) {
_error = 'Failed to refresh device info: $e';
notifyListeners();