Refactor radio settings and localization updates

fixes #72

- Removed preset configurations for 915 MHz, 868 MHz, and 433 MHz from the RadioSettings model.
- Introduced a new list of regional preset configurations for various countries.
- Updated the settings screen to use a dropdown for selecting presets instead of chips.
- Added a switch for enabling client repeat functionality with appropriate warnings for frequency usage.
- Updated localization files for multiple languages to reflect changes in settings related to client repeat functionality.
This commit is contained in:
zjs81
2026-02-17 23:42:04 -07:00
parent 72f0aa7208
commit 947fafbbb7
35 changed files with 660 additions and 526 deletions
+14 -1
View File
@@ -90,6 +90,8 @@ class MeshCoreConnector extends ChangeNotifier {
int? _currentBwHz; int? _currentBwHz;
int? _currentSf; int? _currentSf;
int? _currentCr; int? _currentCr;
bool? _clientRepeat;
int? _firmwareVerCode;
int? _batteryMillivolts; int? _batteryMillivolts;
double? _selfLatitude; double? _selfLatitude;
double? _selfLongitude; double? _selfLongitude;
@@ -200,6 +202,8 @@ class MeshCoreConnector extends ChangeNotifier {
int? get currentBwHz => _currentBwHz; int? get currentBwHz => _currentBwHz;
int? get currentSf => _currentSf; int? get currentSf => _currentSf;
int? get currentCr => _currentCr; int? get currentCr => _currentCr;
bool? get clientRepeat => _clientRepeat;
int? get firmwareVerCode => _firmwareVerCode;
Map<String, String>? get currentCustomVars => _currentCustomVars; Map<String, String>? get currentCustomVars => _currentCustomVars;
int? get batteryMillivolts => _batteryMillivolts; int? get batteryMillivolts => _batteryMillivolts;
int get maxContacts => _maxContacts; int get maxContacts => _maxContacts;
@@ -916,6 +920,8 @@ class MeshCoreConnector extends ChangeNotifier {
_selfName = null; _selfName = null;
_selfLatitude = null; _selfLatitude = null;
_selfLongitude = null; _selfLongitude = null;
_clientRepeat = null;
_firmwareVerCode = null;
_batteryMillivolts = null; _batteryMillivolts = null;
_batteryRequested = false; _batteryRequested = false;
_awaitingSelfInfo = false; _awaitingSelfInfo = false;
@@ -1820,6 +1826,13 @@ class MeshCoreConnector extends ChangeNotifier {
void _handleDeviceInfo(Uint8List frame) { void _handleDeviceInfo(Uint8List frame) {
if (frame.length < 4) return; if (frame.length < 4) return;
_firmwareVerCode = frame[1];
// Parse client_repeat from firmware v9+ (byte 80)
if (frame.length >= 81) {
_clientRepeat = frame[80] != 0;
}
// Firmware reports MAX_CONTACTS / 2 for v3+ device info. // Firmware reports MAX_CONTACTS / 2 for v3+ device info.
final reportedContacts = frame[2]; final reportedContacts = frame[2];
final reportedChannels = frame[3]; final reportedChannels = frame[3];
@@ -1840,8 +1853,8 @@ class MeshCoreConnector extends ChangeNotifier {
unawaited(getChannels(maxChannels: nextMaxChannels)); unawaited(getChannels(maxChannels: nextMaxChannels));
} }
} }
notifyListeners();
} }
notifyListeners();
} }
void _handleNoMoreMessages() { void _handleNoMoreMessages() {
+8 -2
View File
@@ -550,18 +550,24 @@ Uint8List buildSetChannelFrame(int channelIndex, String name, Uint8List psk) {
} }
// Build CMD_SET_RADIO_PARAMS frame // Build CMD_SET_RADIO_PARAMS frame
// Format: [cmd][freq x4][bw x4][sf][cr] // Format: [cmd][freq x4][bw x4][sf][cr] (pre-v9)
// [cmd][freq x4][bw x4][sf][cr][repeat] (firmware v9+)
// freq: frequency in Hz (300000-2500000) // freq: frequency in Hz (300000-2500000)
// bw: bandwidth in Hz (7000-500000) // bw: bandwidth in Hz (7000-500000)
// sf: spreading factor (5-12) // sf: spreading factor (5-12)
// cr: coding rate (5-8) // cr: coding rate (5-8)
Uint8List buildSetRadioParamsFrame(int freqHz, int bwHz, int sf, int cr) { // clientRepeat: enable off-grid packet repeat (firmware v9+, omit for older)
Uint8List buildSetRadioParamsFrame(int freqHz, int bwHz, int sf, int cr,
{bool? clientRepeat}) {
final writer = BufferWriter(); final writer = BufferWriter();
writer.writeByte(cmdSetRadioParams); writer.writeByte(cmdSetRadioParams);
writer.writeUInt32LE(freqHz); writer.writeUInt32LE(freqHz);
writer.writeUInt32LE(bwHz); writer.writeUInt32LE(bwHz);
writer.writeByte(sf); writer.writeByte(sf);
writer.writeByte(cr); writer.writeByte(cr);
if (clientRepeat != null) {
writer.writeByte(clientRepeat ? 1 : 0);
}
return writer.toBytes(); return writer.toBytes();
} }
+4 -6
View File
@@ -131,9 +131,6 @@
"settings_infoContactsCount": "Брой контакти", "settings_infoContactsCount": "Брой контакти",
"settings_infoChannelCount": "Брой канали", "settings_infoChannelCount": "Брой канали",
"settings_presets": "Предварителни настройки", "settings_presets": "Предварителни настройки",
"settings_preset915Mhz": "915 MHz",
"settings_preset868Mhz": "868 MHz",
"settings_preset433Mhz": "433 MHz",
"settings_frequency": "Честота (MHz)", "settings_frequency": "Честота (MHz)",
"settings_frequencyHelper": "300.0 - 2500.0", "settings_frequencyHelper": "300.0 - 2500.0",
"settings_frequencyInvalid": "Невалидна честота (300-2500 MHz)", "settings_frequencyInvalid": "Невалидна честота (300-2500 MHz)",
@@ -143,8 +140,6 @@
"settings_txPower": "TX Мощност (dBm)", "settings_txPower": "TX Мощност (dBm)",
"settings_txPowerHelper": "0 - 22", "settings_txPowerHelper": "0 - 22",
"settings_txPowerInvalid": "Невалидна мощност на TX (0-22 dBm)", "settings_txPowerInvalid": "Невалидна мощност на TX (0-22 dBm)",
"settings_longRange": "Дълъг обхват",
"settings_fastSpeed": "Бърза скорост",
"settings_error": "Грешка: {message}", "settings_error": "Грешка: {message}",
"@settings_error": { "@settings_error": {
"placeholders": { "placeholders": {
@@ -1598,5 +1593,8 @@
"map_tapToAdd": "Натиснете върху възлите, за да ги добавите към пътя.", "map_tapToAdd": "Натиснете върху възлите, за да ги добавите към пътя.",
"scanner_bluetoothOff": "Bluetooth е изключен.", "scanner_bluetoothOff": "Bluetooth е изключен.",
"scanner_enableBluetooth": "Активирайте Bluetooth", "scanner_enableBluetooth": "Активирайте Bluetooth",
"scanner_bluetoothOffMessage": "Моля, активирайте Bluetooth, за да сканирате за устройства." "scanner_bluetoothOffMessage": "Моля, активирайте Bluetooth, за да сканирате за устройства.",
"settings_clientRepeatSubtitle": "Позволете на това устройство да предава пакети към мрежата за други устройства.",
"settings_clientRepeatFreqWarning": "За повторение извън мрежата са необходими честоти от 433, 869 или 918 MHz.",
"settings_clientRepeat": "Без електричество – повторение"
} }
+4 -6
View File
@@ -131,9 +131,6 @@
"settings_infoContactsCount": "Anzahl Kontakte", "settings_infoContactsCount": "Anzahl Kontakte",
"settings_infoChannelCount": "Anzahl Kanäle", "settings_infoChannelCount": "Anzahl Kanäle",
"settings_presets": "Voreinstellungen", "settings_presets": "Voreinstellungen",
"settings_preset915Mhz": "915 MHz",
"settings_preset868Mhz": "868 MHz",
"settings_preset433Mhz": "433 MHz",
"settings_frequency": "Frequenz (MHz)", "settings_frequency": "Frequenz (MHz)",
"settings_frequencyHelper": "300,00 - 2.500,00", "settings_frequencyHelper": "300,00 - 2.500,00",
"settings_frequencyInvalid": "Ungültige Frequenz (300-2500 MHz)", "settings_frequencyInvalid": "Ungültige Frequenz (300-2500 MHz)",
@@ -143,8 +140,6 @@
"settings_txPower": "TX-Leistung (dBm)", "settings_txPower": "TX-Leistung (dBm)",
"settings_txPowerHelper": "0 - 22", "settings_txPowerHelper": "0 - 22",
"settings_txPowerInvalid": "Ungültige TX-Leistung (0-22 dBm)", "settings_txPowerInvalid": "Ungültige TX-Leistung (0-22 dBm)",
"settings_longRange": "Grosse Reichweite",
"settings_fastSpeed": "Schnelle Geschwindigkeit",
"settings_error": "Fehler: {message}", "settings_error": "Fehler: {message}",
"@settings_error": { "@settings_error": {
"placeholders": { "placeholders": {
@@ -1626,5 +1621,8 @@
"map_pathTraceCancelled": "Pfadverfolgung abgebrochen.", "map_pathTraceCancelled": "Pfadverfolgung abgebrochen.",
"scanner_bluetoothOffMessage": "Bitte aktivieren Sie Bluetooth, um nach Geräten zu suchen.", "scanner_bluetoothOffMessage": "Bitte aktivieren Sie Bluetooth, um nach Geräten zu suchen.",
"scanner_bluetoothOff": "Bluetooth ist deaktiviert.", "scanner_bluetoothOff": "Bluetooth ist deaktiviert.",
"scanner_enableBluetooth": "Bluetooth aktivieren" "scanner_enableBluetooth": "Bluetooth aktivieren",
"settings_clientRepeat": "Wiederholung, ohne Stromanschluss",
"settings_clientRepeatFreqWarning": "Die Kommunikation ohne Stromversorgung erfordert Frequenzen von 433, 869 oder 918 MHz.",
"settings_clientRepeatSubtitle": "Ermöglichen Sie diesem Gerät, Mesh-Pakete für andere zu wiederholen."
} }
+398 -169
View File
File diff suppressed because it is too large Load Diff
+4 -6
View File
@@ -131,9 +131,6 @@
"settings_infoContactsCount": "Número de contactos", "settings_infoContactsCount": "Número de contactos",
"settings_infoChannelCount": "Número de canales", "settings_infoChannelCount": "Número de canales",
"settings_presets": "Preajustes", "settings_presets": "Preajustes",
"settings_preset915Mhz": "915 MHz",
"settings_preset868Mhz": "868 MHz",
"settings_preset433Mhz": "433 MHz",
"settings_frequency": "Frecuencia (MHz)", "settings_frequency": "Frecuencia (MHz)",
"settings_frequencyHelper": "300,0 - 2500,0", "settings_frequencyHelper": "300,0 - 2500,0",
"settings_frequencyInvalid": "Frecuencia inválida (300-2500 MHz)", "settings_frequencyInvalid": "Frecuencia inválida (300-2500 MHz)",
@@ -143,8 +140,6 @@
"settings_txPower": "TX Potencia (dBm)", "settings_txPower": "TX Potencia (dBm)",
"settings_txPowerHelper": "0 - 22", "settings_txPowerHelper": "0 - 22",
"settings_txPowerInvalid": "Potencia de TX inválida (0-22 dBm)", "settings_txPowerInvalid": "Potencia de TX inválida (0-22 dBm)",
"settings_longRange": "Largo Alcance",
"settings_fastSpeed": "Velocidad Rápida",
"settings_error": "Error: {message}", "settings_error": "Error: {message}",
"@settings_error": { "@settings_error": {
"placeholders": { "placeholders": {
@@ -1626,5 +1621,8 @@
"map_pathTraceCancelled": "Rastreo de ruta cancelado.", "map_pathTraceCancelled": "Rastreo de ruta cancelado.",
"scanner_bluetoothOffMessage": "Por favor, active el Bluetooth para escanear dispositivos.", "scanner_bluetoothOffMessage": "Por favor, active el Bluetooth para escanear dispositivos.",
"scanner_bluetoothOff": "Bluetooth está desactivado.", "scanner_bluetoothOff": "Bluetooth está desactivado.",
"scanner_enableBluetooth": "Habilitar Bluetooth" "scanner_enableBluetooth": "Habilitar Bluetooth",
"settings_clientRepeatFreqWarning": "Para la comunicación fuera de la red, se requiere una frecuencia de 433, 869 o 918 MHz.",
"settings_clientRepeat": "Repetir sin conexión",
"settings_clientRepeatSubtitle": "Permita que este dispositivo repita los paquetes de red para otros usuarios."
} }
+4 -6
View File
@@ -131,9 +131,6 @@
"settings_infoContactsCount": "Nombre de contacts", "settings_infoContactsCount": "Nombre de contacts",
"settings_infoChannelCount": "Nombre de canaux", "settings_infoChannelCount": "Nombre de canaux",
"settings_presets": "Préréglages", "settings_presets": "Préréglages",
"settings_preset915Mhz": "915 MHz",
"settings_preset868Mhz": "868 MHz",
"settings_preset433Mhz": "433 MHz",
"settings_frequency": "Fréquence (MHz)", "settings_frequency": "Fréquence (MHz)",
"settings_frequencyHelper": "300,0 - 2 500,0", "settings_frequencyHelper": "300,0 - 2 500,0",
"settings_frequencyInvalid": "Fréquence invalide (300-2500 MHz)", "settings_frequencyInvalid": "Fréquence invalide (300-2500 MHz)",
@@ -143,8 +140,6 @@
"settings_txPower": "TX Puissance (dBm)", "settings_txPower": "TX Puissance (dBm)",
"settings_txPowerHelper": "0 - 22", "settings_txPowerHelper": "0 - 22",
"settings_txPowerInvalid": "Puissance TX invalide (0-22 dBm)", "settings_txPowerInvalid": "Puissance TX invalide (0-22 dBm)",
"settings_longRange": "Portée Longue",
"settings_fastSpeed": "Vitesse Rapide",
"settings_error": "Erreur : {message}", "settings_error": "Erreur : {message}",
"@settings_error": { "@settings_error": {
"placeholders": { "placeholders": {
@@ -1598,5 +1593,8 @@
"map_runTrace": "Exécuter la traçage de chemin", "map_runTrace": "Exécuter la traçage de chemin",
"scanner_bluetoothOffMessage": "Veuillez activer le Bluetooth pour rechercher des appareils.", "scanner_bluetoothOffMessage": "Veuillez activer le Bluetooth pour rechercher des appareils.",
"scanner_bluetoothOff": "Le Bluetooth est désactivé.", "scanner_bluetoothOff": "Le Bluetooth est désactivé.",
"scanner_enableBluetooth": "Activer le Bluetooth" "scanner_enableBluetooth": "Activer le Bluetooth",
"settings_clientRepeatFreqWarning": "Pour les transmissions hors réseau, il est nécessaire d'utiliser les fréquences de 433, 869 ou 918 MHz.",
"settings_clientRepeatSubtitle": "Permettez à cet appareil de répéter les paquets de données pour les autres.",
"settings_clientRepeat": "Répétition hors réseau"
} }
+4 -6
View File
@@ -131,9 +131,6 @@
"settings_infoContactsCount": "Numero contatti", "settings_infoContactsCount": "Numero contatti",
"settings_infoChannelCount": "Numero Canale", "settings_infoChannelCount": "Numero Canale",
"settings_presets": "Preset", "settings_presets": "Preset",
"settings_preset915Mhz": "915 MHz",
"settings_preset868Mhz": "868 MHz",
"settings_preset433Mhz": "433 MHz",
"settings_frequency": "Frequenza (MHz)", "settings_frequency": "Frequenza (MHz)",
"settings_frequencyHelper": "300,0 - 2500,0", "settings_frequencyHelper": "300,0 - 2500,0",
"settings_frequencyInvalid": "Frequenza non valida (300-2500 MHz)", "settings_frequencyInvalid": "Frequenza non valida (300-2500 MHz)",
@@ -143,8 +140,6 @@
"settings_txPower": "TX Potenza (dBm)", "settings_txPower": "TX Potenza (dBm)",
"settings_txPowerHelper": "0 - 22", "settings_txPowerHelper": "0 - 22",
"settings_txPowerInvalid": "Potere TX non valido (0-22 dBm)", "settings_txPowerInvalid": "Potere TX non valido (0-22 dBm)",
"settings_longRange": "Lungo Raggio",
"settings_fastSpeed": "Velocità Rapida",
"settings_error": "Errore: {message}", "settings_error": "Errore: {message}",
"@settings_error": { "@settings_error": {
"placeholders": { "placeholders": {
@@ -1598,5 +1593,8 @@
"map_tapToAdd": "Tocca i nodi per aggiungerli al percorso.", "map_tapToAdd": "Tocca i nodi per aggiungerli al percorso.",
"scanner_bluetoothOff": "Il Bluetooth è disattivato.", "scanner_bluetoothOff": "Il Bluetooth è disattivato.",
"scanner_bluetoothOffMessage": "Si prega di attivare il Bluetooth per effettuare la scansione dei dispositivi.", "scanner_bluetoothOffMessage": "Si prega di attivare il Bluetooth per effettuare la scansione dei dispositivi.",
"scanner_enableBluetooth": "Abilita il Bluetooth" "scanner_enableBluetooth": "Abilita il Bluetooth",
"settings_clientRepeat": "Ripetizione \"fuori dalla rete\"",
"settings_clientRepeatFreqWarning": "Per la comunicazione fuori rete, è necessario utilizzare frequenze di 433, 869 o 918 MHz.",
"settings_clientRepeatSubtitle": "Permetti a questo dispositivo di ripetere i pacchetti di rete per gli altri."
} }
+12 -24
View File
@@ -748,24 +748,6 @@ abstract class AppLocalizations {
/// **'Presets'** /// **'Presets'**
String get settings_presets; String get settings_presets;
/// No description provided for @settings_preset915Mhz.
///
/// In en, this message translates to:
/// **'915 MHz'**
String get settings_preset915Mhz;
/// No description provided for @settings_preset868Mhz.
///
/// In en, this message translates to:
/// **'868 MHz'**
String get settings_preset868Mhz;
/// No description provided for @settings_preset433Mhz.
///
/// In en, this message translates to:
/// **'433 MHz'**
String get settings_preset433Mhz;
/// No description provided for @settings_frequency. /// No description provided for @settings_frequency.
/// ///
/// In en, this message translates to: /// In en, this message translates to:
@@ -820,17 +802,23 @@ abstract class AppLocalizations {
/// **'Invalid TX power (0-22 dBm)'** /// **'Invalid TX power (0-22 dBm)'**
String get settings_txPowerInvalid; String get settings_txPowerInvalid;
/// No description provided for @settings_longRange. /// No description provided for @settings_clientRepeat.
/// ///
/// In en, this message translates to: /// In en, this message translates to:
/// **'Long Range'** /// **'Off-Grid Repeat'**
String get settings_longRange; String get settings_clientRepeat;
/// No description provided for @settings_fastSpeed. /// No description provided for @settings_clientRepeatSubtitle.
/// ///
/// In en, this message translates to: /// In en, this message translates to:
/// **'Fast Speed'** /// **'Allow this device to repeat mesh packets for others'**
String get settings_fastSpeed; String get settings_clientRepeatSubtitle;
/// No description provided for @settings_clientRepeatFreqWarning.
///
/// In en, this message translates to:
/// **'Off-grid repeat requires 433, 869, or 918 MHz frequency'**
String get settings_clientRepeatFreqWarning;
/// No description provided for @settings_error. /// No description provided for @settings_error.
/// ///
+7 -11
View File
@@ -350,15 +350,6 @@ class AppLocalizationsBg extends AppLocalizations {
@override @override
String get settings_presets => 'Предварителни настройки'; String get settings_presets => 'Предварителни настройки';
@override
String get settings_preset915Mhz => '915 MHz';
@override
String get settings_preset868Mhz => '868 MHz';
@override
String get settings_preset433Mhz => '433 MHz';
@override @override
String get settings_frequency => 'Честота (MHz)'; String get settings_frequency => 'Честота (MHz)';
@@ -387,10 +378,15 @@ class AppLocalizationsBg extends AppLocalizations {
String get settings_txPowerInvalid => 'Невалидна мощност на TX (0-22 dBm)'; String get settings_txPowerInvalid => 'Невалидна мощност на TX (0-22 dBm)';
@override @override
String get settings_longRange => 'Дълъг обхват'; String get settings_clientRepeat => 'Без електричество – повторение';
@override @override
String get settings_fastSpeed => 'Бърза скорост'; String get settings_clientRepeatSubtitle =>
'Позволете на това устройство да предава пакети към мрежата за други устройства.';
@override
String get settings_clientRepeatFreqWarning =>
'За повторение извън мрежата са необходими честоти от 433, 869 или 918 MHz.';
@override @override
String settings_error(String message) { String settings_error(String message) {
+7 -11
View File
@@ -344,15 +344,6 @@ class AppLocalizationsDe extends AppLocalizations {
@override @override
String get settings_presets => 'Voreinstellungen'; String get settings_presets => 'Voreinstellungen';
@override
String get settings_preset915Mhz => '915 MHz';
@override
String get settings_preset868Mhz => '868 MHz';
@override
String get settings_preset433Mhz => '433 MHz';
@override @override
String get settings_frequency => 'Frequenz (MHz)'; String get settings_frequency => 'Frequenz (MHz)';
@@ -381,10 +372,15 @@ class AppLocalizationsDe extends AppLocalizations {
String get settings_txPowerInvalid => 'Ungültige TX-Leistung (0-22 dBm)'; String get settings_txPowerInvalid => 'Ungültige TX-Leistung (0-22 dBm)';
@override @override
String get settings_longRange => 'Grosse Reichweite'; String get settings_clientRepeat => 'Wiederholung, ohne Stromanschluss';
@override @override
String get settings_fastSpeed => 'Schnelle Geschwindigkeit'; String get settings_clientRepeatSubtitle =>
'Ermöglichen Sie diesem Gerät, Mesh-Pakete für andere zu wiederholen.';
@override
String get settings_clientRepeatFreqWarning =>
'Die Kommunikation ohne Stromversorgung erfordert Frequenzen von 433, 869 oder 918 MHz.';
@override @override
String settings_error(String message) { String settings_error(String message) {
+7 -11
View File
@@ -342,15 +342,6 @@ class AppLocalizationsEn extends AppLocalizations {
@override @override
String get settings_presets => 'Presets'; String get settings_presets => 'Presets';
@override
String get settings_preset915Mhz => '915 MHz';
@override
String get settings_preset868Mhz => '868 MHz';
@override
String get settings_preset433Mhz => '433 MHz';
@override @override
String get settings_frequency => 'Frequency (MHz)'; String get settings_frequency => 'Frequency (MHz)';
@@ -379,10 +370,15 @@ class AppLocalizationsEn extends AppLocalizations {
String get settings_txPowerInvalid => 'Invalid TX power (0-22 dBm)'; String get settings_txPowerInvalid => 'Invalid TX power (0-22 dBm)';
@override @override
String get settings_longRange => 'Long Range'; String get settings_clientRepeat => 'Off-Grid Repeat';
@override @override
String get settings_fastSpeed => 'Fast Speed'; String get settings_clientRepeatSubtitle =>
'Allow this device to repeat mesh packets for others';
@override
String get settings_clientRepeatFreqWarning =>
'Off-grid repeat requires 433, 869, or 918 MHz frequency';
@override @override
String settings_error(String message) { String settings_error(String message) {
+7 -11
View File
@@ -347,15 +347,6 @@ class AppLocalizationsEs extends AppLocalizations {
@override @override
String get settings_presets => 'Preajustes'; String get settings_presets => 'Preajustes';
@override
String get settings_preset915Mhz => '915 MHz';
@override
String get settings_preset868Mhz => '868 MHz';
@override
String get settings_preset433Mhz => '433 MHz';
@override @override
String get settings_frequency => 'Frecuencia (MHz)'; String get settings_frequency => 'Frecuencia (MHz)';
@@ -384,10 +375,15 @@ class AppLocalizationsEs extends AppLocalizations {
String get settings_txPowerInvalid => 'Potencia de TX inválida (0-22 dBm)'; String get settings_txPowerInvalid => 'Potencia de TX inválida (0-22 dBm)';
@override @override
String get settings_longRange => 'Largo Alcance'; String get settings_clientRepeat => 'Repetir sin conexión';
@override @override
String get settings_fastSpeed => 'Velocidad Rápida'; String get settings_clientRepeatSubtitle =>
'Permita que este dispositivo repita los paquetes de red para otros usuarios.';
@override
String get settings_clientRepeatFreqWarning =>
'Para la comunicación fuera de la red, se requiere una frecuencia de 433, 869 o 918 MHz.';
@override @override
String settings_error(String message) { String settings_error(String message) {
+7 -11
View File
@@ -348,15 +348,6 @@ class AppLocalizationsFr extends AppLocalizations {
@override @override
String get settings_presets => 'Préréglages'; String get settings_presets => 'Préréglages';
@override
String get settings_preset915Mhz => '915 MHz';
@override
String get settings_preset868Mhz => '868 MHz';
@override
String get settings_preset433Mhz => '433 MHz';
@override @override
String get settings_frequency => 'Fréquence (MHz)'; String get settings_frequency => 'Fréquence (MHz)';
@@ -385,10 +376,15 @@ class AppLocalizationsFr extends AppLocalizations {
String get settings_txPowerInvalid => 'Puissance TX invalide (0-22 dBm)'; String get settings_txPowerInvalid => 'Puissance TX invalide (0-22 dBm)';
@override @override
String get settings_longRange => 'Portée Longue'; String get settings_clientRepeat => 'Répétition hors réseau';
@override @override
String get settings_fastSpeed => 'Vitesse Rapide'; String get settings_clientRepeatSubtitle =>
'Permettez à cet appareil de répéter les paquets de données pour les autres.';
@override
String get settings_clientRepeatFreqWarning =>
'Pour les transmissions hors réseau, il est nécessaire d\'utiliser les fréquences de 433, 869 ou 918 MHz.';
@override @override
String settings_error(String message) { String settings_error(String message) {
+7 -11
View File
@@ -346,15 +346,6 @@ class AppLocalizationsIt extends AppLocalizations {
@override @override
String get settings_presets => 'Preset'; String get settings_presets => 'Preset';
@override
String get settings_preset915Mhz => '915 MHz';
@override
String get settings_preset868Mhz => '868 MHz';
@override
String get settings_preset433Mhz => '433 MHz';
@override @override
String get settings_frequency => 'Frequenza (MHz)'; String get settings_frequency => 'Frequenza (MHz)';
@@ -383,10 +374,15 @@ class AppLocalizationsIt extends AppLocalizations {
String get settings_txPowerInvalid => 'Potere TX non valido (0-22 dBm)'; String get settings_txPowerInvalid => 'Potere TX non valido (0-22 dBm)';
@override @override
String get settings_longRange => 'Lungo Raggio'; String get settings_clientRepeat => 'Ripetizione \"fuori dalla rete\"';
@override @override
String get settings_fastSpeed => 'Velocità Rapida'; String get settings_clientRepeatSubtitle =>
'Permetti a questo dispositivo di ripetere i pacchetti di rete per gli altri.';
@override
String get settings_clientRepeatFreqWarning =>
'Per la comunicazione fuori rete, è necessario utilizzare frequenze di 433, 869 o 918 MHz.';
@override @override
String settings_error(String message) { String settings_error(String message) {
+7 -11
View File
@@ -344,15 +344,6 @@ class AppLocalizationsNl extends AppLocalizations {
@override @override
String get settings_presets => 'Presets'; String get settings_presets => 'Presets';
@override
String get settings_preset915Mhz => '915 MHz';
@override
String get settings_preset868Mhz => '868 MHz';
@override
String get settings_preset433Mhz => '433 MHz';
@override @override
String get settings_frequency => 'Frequentie (MHz)'; String get settings_frequency => 'Frequentie (MHz)';
@@ -381,10 +372,15 @@ class AppLocalizationsNl extends AppLocalizations {
String get settings_txPowerInvalid => 'Ongeldige TX-vermogen (0-22 dBm)'; String get settings_txPowerInvalid => 'Ongeldige TX-vermogen (0-22 dBm)';
@override @override
String get settings_longRange => 'Lange Afstand'; String get settings_clientRepeat => 'Herhalen: Afgekoppeld';
@override @override
String get settings_fastSpeed => 'Hoge Snelheid'; String get settings_clientRepeatSubtitle =>
'Laat dit apparaat de mesh-pakketten opnieuw verzenden voor andere apparaten.';
@override
String get settings_clientRepeatFreqWarning =>
'Om een signaal buiten het netwerk te versturen, zijn frequenties van 433, 869 of 918 MHz vereist.';
@override @override
String settings_error(String message) { String settings_error(String message) {
+7 -11
View File
@@ -347,15 +347,6 @@ class AppLocalizationsPl extends AppLocalizations {
@override @override
String get settings_presets => 'Preset'; String get settings_presets => 'Preset';
@override
String get settings_preset915Mhz => '915 MHz';
@override
String get settings_preset868Mhz => '868 MHz';
@override
String get settings_preset433Mhz => '433 MHz';
@override @override
String get settings_frequency => 'Częstotliwość (MHz)'; String get settings_frequency => 'Częstotliwość (MHz)';
@@ -385,10 +376,15 @@ class AppLocalizationsPl extends AppLocalizations {
String get settings_txPowerInvalid => 'Nieprawidłowa moc TX (0-22 dBm)'; String get settings_txPowerInvalid => 'Nieprawidłowa moc TX (0-22 dBm)';
@override @override
String get settings_longRange => 'Długi zasięg'; String get settings_clientRepeat => 'Powtórzenie: Niezależne od sieci';
@override @override
String get settings_fastSpeed => 'Szybka prędkość'; String get settings_clientRepeatSubtitle =>
'Pozwól temu urządzeniu powtarzać pakiety danych dla innych urządzeń.';
@override
String get settings_clientRepeatFreqWarning =>
'Powtórka poza siecią wymaga częstotliwości 433, 869 lub 918 MHz.';
@override @override
String settings_error(String message) { String settings_error(String message) {
+7 -11
View File
@@ -348,15 +348,6 @@ class AppLocalizationsPt extends AppLocalizations {
@override @override
String get settings_presets => 'Presets'; String get settings_presets => 'Presets';
@override
String get settings_preset915Mhz => '915 MHz';
@override
String get settings_preset868Mhz => '868 MHz';
@override
String get settings_preset433Mhz => '433 MHz';
@override @override
String get settings_frequency => 'Frequência (MHz)'; String get settings_frequency => 'Frequência (MHz)';
@@ -385,10 +376,15 @@ class AppLocalizationsPt extends AppLocalizations {
String get settings_txPowerInvalid => 'Potência de TX inválida (0-22 dBm)'; String get settings_txPowerInvalid => 'Potência de TX inválida (0-22 dBm)';
@override @override
String get settings_longRange => 'Alcance Longo'; String get settings_clientRepeat => 'Repetição sem rede';
@override @override
String get settings_fastSpeed => 'Velocidade Rápida'; String get settings_clientRepeatSubtitle =>
'Permita que este dispositivo repita pacotes de rede para outros dispositivos.';
@override
String get settings_clientRepeatFreqWarning =>
'A repetição fora da rede requer frequências de 433, 869 ou 918 MHz.';
@override @override
String settings_error(String message) { String settings_error(String message) {
+7 -11
View File
@@ -345,15 +345,6 @@ class AppLocalizationsRu extends AppLocalizations {
@override @override
String get settings_presets => 'Пресеты'; String get settings_presets => 'Пресеты';
@override
String get settings_preset915Mhz => '915 МГц';
@override
String get settings_preset868Mhz => '868 МГц';
@override
String get settings_preset433Mhz => '433 МГц';
@override @override
String get settings_frequency => 'Частота (МГц)'; String get settings_frequency => 'Частота (МГц)';
@@ -383,10 +374,15 @@ class AppLocalizationsRu extends AppLocalizations {
'Недопустимая мощность передачи (0–22 дБм)'; 'Недопустимая мощность передачи (0–22 дБм)';
@override @override
String get settings_longRange => 'Дальний радиус'; String get settings_clientRepeat => 'Повторение \"вне сети\"';
@override @override
String get settings_fastSpeed => 'Высокая скорость'; String get settings_clientRepeatSubtitle =>
'Позвольте этому устройству повторять пакеты данных для других устройств.';
@override
String get settings_clientRepeatFreqWarning =>
'Для работы в режиме \"без подключения к сети\" требуется частота 433, 869 или 918 МГц.';
@override @override
String settings_error(String message) { String settings_error(String message) {
+7 -11
View File
@@ -344,15 +344,6 @@ class AppLocalizationsSk extends AppLocalizations {
@override @override
String get settings_presets => 'Prednastavenia'; String get settings_presets => 'Prednastavenia';
@override
String get settings_preset915Mhz => '915 MHz';
@override
String get settings_preset868Mhz => '868 MHz';
@override
String get settings_preset433Mhz => '433 MHz';
@override @override
String get settings_frequency => 'Frekvencia (MHz)'; String get settings_frequency => 'Frekvencia (MHz)';
@@ -381,10 +372,15 @@ class AppLocalizationsSk extends AppLocalizations {
String get settings_txPowerInvalid => 'Neplatná hodnota výkonu TX (0-22 dBm)'; String get settings_txPowerInvalid => 'Neplatná hodnota výkonu TX (0-22 dBm)';
@override @override
String get settings_longRange => 'Dlhý dosah'; String get settings_clientRepeat => 'Opätovné použitie bez elektrickej siete';
@override @override
String get settings_fastSpeed => 'Rýchla rýchlosť'; String get settings_clientRepeatSubtitle =>
'Umožnite, aby toto zariadenie opakovávalo siete pre ostatných.';
@override
String get settings_clientRepeatFreqWarning =>
'Použitie off-grid systému vyžaduje frekvencie 433, 869 alebo 918 MHz.';
@override @override
String settings_error(String message) { String settings_error(String message) {
+7 -11
View File
@@ -343,15 +343,6 @@ class AppLocalizationsSl extends AppLocalizations {
@override @override
String get settings_presets => 'Prednastavitve'; String get settings_presets => 'Prednastavitve';
@override
String get settings_preset915Mhz => '915 MHz';
@override
String get settings_preset868Mhz => '868 MHz';
@override
String get settings_preset433Mhz => '433 MHz';
@override @override
String get settings_frequency => 'Frekvenca (MHz)'; String get settings_frequency => 'Frekvenca (MHz)';
@@ -380,10 +371,15 @@ class AppLocalizationsSl extends AppLocalizations {
String get settings_txPowerInvalid => 'Neveljavna TX moč (0-22 dBm)'; String get settings_txPowerInvalid => 'Neveljavna TX moč (0-22 dBm)';
@override @override
String get settings_longRange => 'DDolg doseg'; String get settings_clientRepeat => 'Neovadno ponavljanje';
@override @override
String get settings_fastSpeed => 'Visoka hitrost'; String get settings_clientRepeatSubtitle =>
'Omogočite temu naprave, da ponavlja paketne sporočila za druge.';
@override
String get settings_clientRepeatFreqWarning =>
'Za ponovni prenos na brezžični način so potrebne frekvence 433, 869 ali 918 MHz.';
@override @override
String settings_error(String message) { String settings_error(String message) {
+7 -11
View File
@@ -341,15 +341,6 @@ class AppLocalizationsSv extends AppLocalizations {
@override @override
String get settings_presets => 'Fördefinierade inställningar'; String get settings_presets => 'Fördefinierade inställningar';
@override
String get settings_preset915Mhz => '915 MHz';
@override
String get settings_preset868Mhz => '868 MHz';
@override
String get settings_preset433Mhz => '433 MHz';
@override @override
String get settings_frequency => 'Frekvens (MHz)'; String get settings_frequency => 'Frekvens (MHz)';
@@ -378,10 +369,15 @@ class AppLocalizationsSv extends AppLocalizations {
String get settings_txPowerInvalid => 'Ogiltig TX-effekt (0-22 dBm)'; String get settings_txPowerInvalid => 'Ogiltig TX-effekt (0-22 dBm)';
@override @override
String get settings_longRange => 'Lång räckvidd'; String get settings_clientRepeat => 'Upprepa utan elnät';
@override @override
String get settings_fastSpeed => 'Snabb hastighet'; String get settings_clientRepeatSubtitle =>
'Låt enheten repetera nätpaket för andra användare.';
@override
String get settings_clientRepeatFreqWarning =>
'För att kunna kommunicera utanför elnätet krävs frekvenserna 433, 869 eller 918 MHz.';
@override @override
String settings_error(String message) { String settings_error(String message) {
+7 -11
View File
@@ -346,15 +346,6 @@ class AppLocalizationsUk extends AppLocalizations {
@override @override
String get settings_presets => 'Попередні налаштування'; String get settings_presets => 'Попередні налаштування';
@override
String get settings_preset915Mhz => '915 МГц';
@override
String get settings_preset868Mhz => '868 МГц';
@override
String get settings_preset433Mhz => '433 МГц';
@override @override
String get settings_frequency => 'Частота (МГц)'; String get settings_frequency => 'Частота (МГц)';
@@ -383,10 +374,15 @@ class AppLocalizationsUk extends AppLocalizations {
String get settings_txPowerInvalid => 'Некоректна потужність TX (0-22 дБм)'; String get settings_txPowerInvalid => 'Некоректна потужність TX (0-22 дБм)';
@override @override
String get settings_longRange => 'Дальній діапазон'; String get settings_clientRepeat => 'Автономна система';
@override @override
String get settings_fastSpeed => 'Висока швидкість'; String get settings_clientRepeatSubtitle =>
'Дозвольте цьому пристрою повторювати пакети даних для інших пристроїв.';
@override
String get settings_clientRepeatFreqWarning =>
'Повтор без підключення до мережі вимагає частоти 433, 869 або 918 МГц.';
@override @override
String settings_error(String message) { String settings_error(String message) {
+6 -11
View File
@@ -331,15 +331,6 @@ class AppLocalizationsZh extends AppLocalizations {
@override @override
String get settings_presets => '预设'; String get settings_presets => '预设';
@override
String get settings_preset915Mhz => '915 兆赫';
@override
String get settings_preset868Mhz => '868 兆赫';
@override
String get settings_preset433Mhz => '433 兆赫';
@override @override
String get settings_frequency => '频率 (MHz)'; String get settings_frequency => '频率 (MHz)';
@@ -368,10 +359,14 @@ class AppLocalizationsZh extends AppLocalizations {
String get settings_txPowerInvalid => '无效的发射功率(0-22 dBm'; String get settings_txPowerInvalid => '无效的发射功率(0-22 dBm';
@override @override
String get settings_longRange => '远距'; String get settings_clientRepeat => '网重复';
@override @override
String get settings_fastSpeed => '高速'; String get settings_clientRepeatSubtitle => '允许此设备重复发送网状数据包给其他设备';
@override
String get settings_clientRepeatFreqWarning =>
'离网重复通信需要使用 433、869 或 918 兆赫兹的频率。';
@override @override
String settings_error(String message) { String settings_error(String message) {
+4 -6
View File
@@ -131,9 +131,6 @@
"settings_infoContactsCount": "Aantal Contacten", "settings_infoContactsCount": "Aantal Contacten",
"settings_infoChannelCount": "Aantal Kanalen", "settings_infoChannelCount": "Aantal Kanalen",
"settings_presets": "Presets", "settings_presets": "Presets",
"settings_preset915Mhz": "915 MHz",
"settings_preset868Mhz": "868 MHz",
"settings_preset433Mhz": "433 MHz",
"settings_frequency": "Frequentie (MHz)", "settings_frequency": "Frequentie (MHz)",
"settings_frequencyHelper": "300,0 - 2500,0", "settings_frequencyHelper": "300,0 - 2500,0",
"settings_frequencyInvalid": "Ongeldige frequentie (300-2500 MHz)", "settings_frequencyInvalid": "Ongeldige frequentie (300-2500 MHz)",
@@ -143,8 +140,6 @@
"settings_txPower": "TX Vermogen (dBm)", "settings_txPower": "TX Vermogen (dBm)",
"settings_txPowerHelper": "0 - 22", "settings_txPowerHelper": "0 - 22",
"settings_txPowerInvalid": "Ongeldige TX-vermogen (0-22 dBm)", "settings_txPowerInvalid": "Ongeldige TX-vermogen (0-22 dBm)",
"settings_longRange": "Lange Afstand",
"settings_fastSpeed": "Hoge Snelheid",
"settings_error": "Fout: {message}", "settings_error": "Fout: {message}",
"@settings_error": { "@settings_error": {
"placeholders": { "placeholders": {
@@ -1598,5 +1593,8 @@
"map_runTrace": "Padeshulp traceren", "map_runTrace": "Padeshulp traceren",
"scanner_enableBluetooth": "Activeer Bluetooth", "scanner_enableBluetooth": "Activeer Bluetooth",
"scanner_bluetoothOffMessage": "Zorg ervoor dat Bluetooth is ingeschakeld om naar apparaten te zoeken.", "scanner_bluetoothOffMessage": "Zorg ervoor dat Bluetooth is ingeschakeld om naar apparaten te zoeken.",
"scanner_bluetoothOff": "Bluetooth is uitgeschakeld" "scanner_bluetoothOff": "Bluetooth is uitgeschakeld",
"settings_clientRepeat": "Herhalen: Afgekoppeld",
"settings_clientRepeatSubtitle": "Laat dit apparaat de mesh-pakketten opnieuw verzenden voor andere apparaten.",
"settings_clientRepeatFreqWarning": "Om een signaal buiten het netwerk te versturen, zijn frequenties van 433, 869 of 918 MHz vereist."
} }
+4 -6
View File
@@ -131,9 +131,6 @@
"settings_infoContactsCount": "Liczba kontaktów", "settings_infoContactsCount": "Liczba kontaktów",
"settings_infoChannelCount": "Liczba kanałów", "settings_infoChannelCount": "Liczba kanałów",
"settings_presets": "Preset", "settings_presets": "Preset",
"settings_preset915Mhz": "915 MHz",
"settings_preset868Mhz": "868 MHz",
"settings_preset433Mhz": "433 MHz",
"settings_frequency": "Częstotliwość (MHz)", "settings_frequency": "Częstotliwość (MHz)",
"settings_frequencyHelper": "300,0 - 2500,0", "settings_frequencyHelper": "300,0 - 2500,0",
"settings_frequencyInvalid": "Nieprawidłowa częstotliwość (300-2500 MHz)", "settings_frequencyInvalid": "Nieprawidłowa częstotliwość (300-2500 MHz)",
@@ -143,8 +140,6 @@
"settings_txPower": "TX Moc (dBm)", "settings_txPower": "TX Moc (dBm)",
"settings_txPowerHelper": "0 - 22", "settings_txPowerHelper": "0 - 22",
"settings_txPowerInvalid": "Nieprawidłowa moc TX (0-22 dBm)", "settings_txPowerInvalid": "Nieprawidłowa moc TX (0-22 dBm)",
"settings_longRange": "Długi zasięg",
"settings_fastSpeed": "Szybka prędkość",
"settings_error": "Błąd: {message}", "settings_error": "Błąd: {message}",
"@settings_error": { "@settings_error": {
"placeholders": { "placeholders": {
@@ -1598,5 +1593,8 @@
"map_tapToAdd": "Kliknij na węzły, aby dodać je do ścieżki.", "map_tapToAdd": "Kliknij na węzły, aby dodać je do ścieżki.",
"scanner_bluetoothOffMessage": "Prosimy włączyć Bluetooth, aby przeskanować urządzenia.", "scanner_bluetoothOffMessage": "Prosimy włączyć Bluetooth, aby przeskanować urządzenia.",
"scanner_bluetoothOff": "Bluetooth jest wyłączony", "scanner_bluetoothOff": "Bluetooth jest wyłączony",
"scanner_enableBluetooth": "Włącz Bluetooth" "scanner_enableBluetooth": "Włącz Bluetooth",
"settings_clientRepeatSubtitle": "Pozwól temu urządzeniu powtarzać pakiety danych dla innych urządzeń.",
"settings_clientRepeat": "Powtórzenie: Niezależne od sieci",
"settings_clientRepeatFreqWarning": "Powtórka poza siecią wymaga częstotliwości 433, 869 lub 918 MHz."
} }
+4 -6
View File
@@ -131,9 +131,6 @@
"settings_infoContactsCount": "Número de Contatos", "settings_infoContactsCount": "Número de Contatos",
"settings_infoChannelCount": "Número do Canal", "settings_infoChannelCount": "Número do Canal",
"settings_presets": "Presets", "settings_presets": "Presets",
"settings_preset915Mhz": "915 MHz",
"settings_preset868Mhz": "868 MHz",
"settings_preset433Mhz": "433 MHz",
"settings_frequency": "Frequência (MHz)", "settings_frequency": "Frequência (MHz)",
"settings_frequencyHelper": "300,0 - 2500,0", "settings_frequencyHelper": "300,0 - 2500,0",
"settings_frequencyInvalid": "Frequência inválida (300-2500 MHz)", "settings_frequencyInvalid": "Frequência inválida (300-2500 MHz)",
@@ -143,8 +140,6 @@
"settings_txPower": "TX Potência (dBm)", "settings_txPower": "TX Potência (dBm)",
"settings_txPowerHelper": "0 - 22", "settings_txPowerHelper": "0 - 22",
"settings_txPowerInvalid": "Potência de TX inválida (0-22 dBm)", "settings_txPowerInvalid": "Potência de TX inválida (0-22 dBm)",
"settings_longRange": "Alcance Longo",
"settings_fastSpeed": "Velocidade Rápida",
"settings_error": "Erro: {message}", "settings_error": "Erro: {message}",
"@settings_error": { "@settings_error": {
"placeholders": { "placeholders": {
@@ -1598,5 +1593,8 @@
"map_tapToAdd": "Toque nos nós para adicioná-los ao caminho.", "map_tapToAdd": "Toque nos nós para adicioná-los ao caminho.",
"scanner_enableBluetooth": "Ative o Bluetooth", "scanner_enableBluetooth": "Ative o Bluetooth",
"scanner_bluetoothOff": "Bluetooth está desativado", "scanner_bluetoothOff": "Bluetooth está desativado",
"scanner_bluetoothOffMessage": "Por favor, ative o Bluetooth para escanear por dispositivos." "scanner_bluetoothOffMessage": "Por favor, ative o Bluetooth para escanear por dispositivos.",
"settings_clientRepeatFreqWarning": "A repetição fora da rede requer frequências de 433, 869 ou 918 MHz.",
"settings_clientRepeat": "Repetição sem rede",
"settings_clientRepeatSubtitle": "Permita que este dispositivo repita pacotes de rede para outros dispositivos."
} }
+4 -6
View File
@@ -101,9 +101,6 @@
"settings_infoContactsCount": "Количество контактов", "settings_infoContactsCount": "Количество контактов",
"settings_infoChannelCount": "Количество каналов", "settings_infoChannelCount": "Количество каналов",
"settings_presets": "Пресеты", "settings_presets": "Пресеты",
"settings_preset915Mhz": "915 МГц",
"settings_preset868Mhz": "868 МГц",
"settings_preset433Mhz": "433 МГц",
"settings_frequency": "Частота (МГц)", "settings_frequency": "Частота (МГц)",
"settings_frequencyHelper": "300.0 2500.0", "settings_frequencyHelper": "300.0 2500.0",
"settings_frequencyInvalid": "Недопустимая частота (300–2500 МГц)", "settings_frequencyInvalid": "Недопустимая частота (300–2500 МГц)",
@@ -113,8 +110,6 @@
"settings_txPower": "Мощность передачи (дБм)", "settings_txPower": "Мощность передачи (дБм)",
"settings_txPowerHelper": "0 22", "settings_txPowerHelper": "0 22",
"settings_txPowerInvalid": "Недопустимая мощность передачи (0–22 дБм)", "settings_txPowerInvalid": "Недопустимая мощность передачи (0–22 дБм)",
"settings_longRange": "Дальний радиус",
"settings_fastSpeed": "Высокая скорость",
"settings_error": "Ошибка: {message}", "settings_error": "Ошибка: {message}",
"appSettings_title": "Настройки приложения", "appSettings_title": "Настройки приложения",
"appSettings_appearance": "Внешний вид", "appSettings_appearance": "Внешний вид",
@@ -838,5 +833,8 @@
"map_runTrace": "Запустить трассировку пути", "map_runTrace": "Запустить трассировку пути",
"scanner_enableBluetooth": "Включите Bluetooth", "scanner_enableBluetooth": "Включите Bluetooth",
"scanner_bluetoothOff": "Bluetooth выключен", "scanner_bluetoothOff": "Bluetooth выключен",
"scanner_bluetoothOffMessage": "Пожалуйста, включите Bluetooth, чтобы найти устройства." "scanner_bluetoothOffMessage": "Пожалуйста, включите Bluetooth, чтобы найти устройства.",
"settings_clientRepeatFreqWarning": "Для работы в режиме \"без подключения к сети\" требуется частота 433, 869 или 918 МГц.",
"settings_clientRepeatSubtitle": "Позвольте этому устройству повторять пакеты данных для других устройств.",
"settings_clientRepeat": "Повторение \"вне сети\""
} }
+4 -6
View File
@@ -131,9 +131,6 @@
"settings_infoContactsCount": "Počet kontaktov", "settings_infoContactsCount": "Počet kontaktov",
"settings_infoChannelCount": "Počet kanálov", "settings_infoChannelCount": "Počet kanálov",
"settings_presets": "Prednastavenia", "settings_presets": "Prednastavenia",
"settings_preset915Mhz": "915 MHz",
"settings_preset868Mhz": "868 MHz",
"settings_preset433Mhz": "433 MHz",
"settings_frequency": "Frekvencia (MHz)", "settings_frequency": "Frekvencia (MHz)",
"settings_frequencyHelper": "300,0 2500,0", "settings_frequencyHelper": "300,0 2500,0",
"settings_frequencyInvalid": "Neplatná frekvencia (300-2500 MHz)", "settings_frequencyInvalid": "Neplatná frekvencia (300-2500 MHz)",
@@ -143,8 +140,6 @@
"settings_txPower": "TX Výkon (dBm)", "settings_txPower": "TX Výkon (dBm)",
"settings_txPowerHelper": "0 - 22", "settings_txPowerHelper": "0 - 22",
"settings_txPowerInvalid": "Neplatná hodnota výkonu TX (0-22 dBm)", "settings_txPowerInvalid": "Neplatná hodnota výkonu TX (0-22 dBm)",
"settings_longRange": "Dlhý dosah",
"settings_fastSpeed": "Rýchla rýchlosť",
"settings_error": "Chyba: {message}", "settings_error": "Chyba: {message}",
"@settings_error": { "@settings_error": {
"placeholders": { "placeholders": {
@@ -1598,5 +1593,8 @@
"map_pathTraceCancelled": "Zrušenie stopáže cesty bolo zrušené.", "map_pathTraceCancelled": "Zrušenie stopáže cesty bolo zrušené.",
"scanner_bluetoothOffMessage": "Prosím, zapnite Bluetooth, aby ste mohli skenovať pre zariadenia.", "scanner_bluetoothOffMessage": "Prosím, zapnite Bluetooth, aby ste mohli skenovať pre zariadenia.",
"scanner_bluetoothOff": "Bluetooth je vypnutý", "scanner_bluetoothOff": "Bluetooth je vypnutý",
"scanner_enableBluetooth": "Povolte Bluetooth" "scanner_enableBluetooth": "Povolte Bluetooth",
"settings_clientRepeat": "Opätovné použitie bez elektrickej siete",
"settings_clientRepeatFreqWarning": "Použitie off-grid systému vyžaduje frekvencie 433, 869 alebo 918 MHz.",
"settings_clientRepeatSubtitle": "Umožnite, aby toto zariadenie opakovávalo siete pre ostatných."
} }
+4 -6
View File
@@ -131,9 +131,6 @@
"settings_infoContactsCount": "Število stikov", "settings_infoContactsCount": "Število stikov",
"settings_infoChannelCount": "Število kanalov", "settings_infoChannelCount": "Število kanalov",
"settings_presets": "Prednastavitve", "settings_presets": "Prednastavitve",
"settings_preset915Mhz": "915 MHz",
"settings_preset868Mhz": "868 MHz",
"settings_preset433Mhz": "433 MHz",
"settings_frequency": "Frekvenca (MHz)", "settings_frequency": "Frekvenca (MHz)",
"settings_frequencyHelper": "300,00 - 2500,00", "settings_frequencyHelper": "300,00 - 2500,00",
"settings_frequencyInvalid": "Neveljavna frekvenca (300-2500 MHz)", "settings_frequencyInvalid": "Neveljavna frekvenca (300-2500 MHz)",
@@ -143,8 +140,6 @@
"settings_txPower": "TX Moč (dBm)", "settings_txPower": "TX Moč (dBm)",
"settings_txPowerHelper": "0 - 22", "settings_txPowerHelper": "0 - 22",
"settings_txPowerInvalid": "Neveljavna TX moč (0-22 dBm)", "settings_txPowerInvalid": "Neveljavna TX moč (0-22 dBm)",
"settings_longRange": "DDolg doseg",
"settings_fastSpeed": "Visoka hitrost",
"settings_error": "Napaka: {message}", "settings_error": "Napaka: {message}",
"@settings_error": { "@settings_error": {
"placeholders": { "placeholders": {
@@ -1598,5 +1593,8 @@
"map_pathTraceCancelled": "Spremljanje poti je prekinjeno.", "map_pathTraceCancelled": "Spremljanje poti je prekinjeno.",
"scanner_enableBluetooth": "Omogočite Bluetooth", "scanner_enableBluetooth": "Omogočite Bluetooth",
"scanner_bluetoothOffMessage": "Prosimo, vklopite Bluetooth, da lahko poiščete naprave.", "scanner_bluetoothOffMessage": "Prosimo, vklopite Bluetooth, da lahko poiščete naprave.",
"scanner_bluetoothOff": "Bluetooth je izklopljen" "scanner_bluetoothOff": "Bluetooth je izklopljen",
"settings_clientRepeatFreqWarning": "Za ponovni prenos na brezžični način so potrebne frekvence 433, 869 ali 918 MHz.",
"settings_clientRepeatSubtitle": "Omogočite temu naprave, da ponavlja paketne sporočila za druge.",
"settings_clientRepeat": "Neovadno ponavljanje"
} }
+4 -6
View File
@@ -131,9 +131,6 @@
"settings_infoContactsCount": "Kontakterantal", "settings_infoContactsCount": "Kontakterantal",
"settings_infoChannelCount": "Kanalantal", "settings_infoChannelCount": "Kanalantal",
"settings_presets": "Fördefinierade inställningar", "settings_presets": "Fördefinierade inställningar",
"settings_preset915Mhz": "915 MHz",
"settings_preset868Mhz": "868 MHz",
"settings_preset433Mhz": "433 MHz",
"settings_frequency": "Frekvens (MHz)", "settings_frequency": "Frekvens (MHz)",
"settings_frequencyHelper": "300,0 - 2500,0", "settings_frequencyHelper": "300,0 - 2500,0",
"settings_frequencyInvalid": "Ogiltig frekvens (300-2500 MHz)", "settings_frequencyInvalid": "Ogiltig frekvens (300-2500 MHz)",
@@ -143,8 +140,6 @@
"settings_txPower": "TX-effekt (dBm)", "settings_txPower": "TX-effekt (dBm)",
"settings_txPowerHelper": "0 - 22", "settings_txPowerHelper": "0 - 22",
"settings_txPowerInvalid": "Ogiltig TX-effekt (0-22 dBm)", "settings_txPowerInvalid": "Ogiltig TX-effekt (0-22 dBm)",
"settings_longRange": "Lång räckvidd",
"settings_fastSpeed": "Snabb hastighet",
"settings_error": "Fel: {message}", "settings_error": "Fel: {message}",
"@settings_error": { "@settings_error": {
"placeholders": { "placeholders": {
@@ -1598,5 +1593,8 @@
"map_removeLast": "Ta bort sista", "map_removeLast": "Ta bort sista",
"scanner_enableBluetooth": "Aktivera Bluetooth", "scanner_enableBluetooth": "Aktivera Bluetooth",
"scanner_bluetoothOffMessage": "Vänligen aktivera Bluetooth för att söka efter enheter.", "scanner_bluetoothOffMessage": "Vänligen aktivera Bluetooth för att söka efter enheter.",
"scanner_bluetoothOff": "Bluetooth är avstängt" "scanner_bluetoothOff": "Bluetooth är avstängt",
"settings_clientRepeatSubtitle": "Låt enheten repetera nätpaket för andra användare.",
"settings_clientRepeat": "Upprepa utan elnät",
"settings_clientRepeatFreqWarning": "För att kunna kommunicera utanför elnätet krävs frekvenserna 433, 869 eller 918 MHz."
} }
+4 -6
View File
@@ -131,9 +131,6 @@
"settings_infoContactsCount": "Кількість контактів", "settings_infoContactsCount": "Кількість контактів",
"settings_infoChannelCount": "Кількість каналів", "settings_infoChannelCount": "Кількість каналів",
"settings_presets": "Попередні налаштування", "settings_presets": "Попередні налаштування",
"settings_preset915Mhz": "915 МГц",
"settings_preset868Mhz": "868 МГц",
"settings_preset433Mhz": "433 МГц",
"settings_frequency": "Частота (МГц)", "settings_frequency": "Частота (МГц)",
"settings_frequencyHelper": "300.0 - 2500.0", "settings_frequencyHelper": "300.0 - 2500.0",
"settings_frequencyInvalid": "Некоректна частота (300-2500 МГц)", "settings_frequencyInvalid": "Некоректна частота (300-2500 МГц)",
@@ -143,8 +140,6 @@
"settings_txPower": "Потужність TX (дБм)", "settings_txPower": "Потужність TX (дБм)",
"settings_txPowerHelper": "0 - 22", "settings_txPowerHelper": "0 - 22",
"settings_txPowerInvalid": "Некоректна потужність TX (0-22 дБм)", "settings_txPowerInvalid": "Некоректна потужність TX (0-22 дБм)",
"settings_longRange": "Дальній діапазон",
"settings_fastSpeed": "Висока швидкість",
"settings_error": "Помилка: {message}", "settings_error": "Помилка: {message}",
"@settings_error": { "@settings_error": {
"placeholders": { "placeholders": {
@@ -1598,5 +1593,8 @@
"map_pathTraceCancelled": "Відмінується трасування шляху", "map_pathTraceCancelled": "Відмінується трасування шляху",
"scanner_enableBluetooth": "Увімкніть Bluetooth", "scanner_enableBluetooth": "Увімкніть Bluetooth",
"scanner_bluetoothOffMessage": "Будь ласка, увімкніть Bluetooth, щоб сканувати пристрої.", "scanner_bluetoothOffMessage": "Будь ласка, увімкніть Bluetooth, щоб сканувати пристрої.",
"scanner_bluetoothOff": "Bluetooth вимкнено" "scanner_bluetoothOff": "Bluetooth вимкнено",
"settings_clientRepeatFreqWarning": "Повтор без підключення до мережі вимагає частоти 433, 869 або 918 МГц.",
"settings_clientRepeatSubtitle": "Дозвольте цьому пристрою повторювати пакети даних для інших пристроїв.",
"settings_clientRepeat": "Автономна система"
} }
+4 -6
View File
@@ -136,9 +136,6 @@
"settings_infoContactsCount": "联系人数量", "settings_infoContactsCount": "联系人数量",
"settings_infoChannelCount": "通道数量", "settings_infoChannelCount": "通道数量",
"settings_presets": "预设", "settings_presets": "预设",
"settings_preset915Mhz": "915 兆赫",
"settings_preset868Mhz": "868 兆赫",
"settings_preset433Mhz": "433 兆赫",
"settings_frequency": "频率 (MHz)", "settings_frequency": "频率 (MHz)",
"settings_frequencyHelper": "300.0 - 2500.0", "settings_frequencyHelper": "300.0 - 2500.0",
"settings_frequencyInvalid": "无效频率(300-2500 MHz", "settings_frequencyInvalid": "无效频率(300-2500 MHz",
@@ -148,8 +145,6 @@
"settings_txPower": "TX 功率(dBm", "settings_txPower": "TX 功率(dBm",
"settings_txPowerHelper": "0 - 22", "settings_txPowerHelper": "0 - 22",
"settings_txPowerInvalid": "无效的发射功率(0-22 dBm", "settings_txPowerInvalid": "无效的发射功率(0-22 dBm",
"settings_longRange": "远距离",
"settings_fastSpeed": "高速",
"settings_error": "[保存:{message}]\n错误:{message}", "settings_error": "[保存:{message}]\n错误:{message}",
"@settings_error": { "@settings_error": {
"placeholders": { "placeholders": {
@@ -1598,5 +1593,8 @@
"map_runTrace": "运行路径跟踪", "map_runTrace": "运行路径跟踪",
"scanner_bluetoothOffMessage": "请打开蓝牙功能,以便搜索设备。", "scanner_bluetoothOffMessage": "请打开蓝牙功能,以便搜索设备。",
"scanner_bluetoothOff": "蓝牙已关闭", "scanner_bluetoothOff": "蓝牙已关闭",
"scanner_enableBluetooth": "启用蓝牙" "scanner_enableBluetooth": "启用蓝牙",
"settings_clientRepeat": "离网重复",
"settings_clientRepeatSubtitle": "允许此设备重复发送网状数据包给其他设备",
"settings_clientRepeatFreqWarning": "离网重复通信需要使用 433、869 或 918 兆赫兹的频率。"
} }
+23 -40
View File
@@ -59,46 +59,29 @@ class RadioSettings {
required this.txPowerDbm, required this.txPowerDbm,
}); });
// Preset configurations // Regional preset configurations
static RadioSettings get preset915MHz => RadioSettings( static final List<(String, RadioSettings)> presets = [
frequencyMHz: 915.0, ('Australia', RadioSettings(frequencyMHz: 915.8, bandwidth: LoRaBandwidth.bw250, spreadingFactor: LoRaSpreadingFactor.sf10, codingRate: LoRaCodingRate.cr4_5, txPowerDbm: 20)),
bandwidth: LoRaBandwidth.bw125, ('Australia (Narrow)', RadioSettings(frequencyMHz: 916.575, bandwidth: LoRaBandwidth.bw62_5, spreadingFactor: LoRaSpreadingFactor.sf7, codingRate: LoRaCodingRate.cr4_5, txPowerDbm: 20)),
spreadingFactor: LoRaSpreadingFactor.sf7, ('Australia SA, WA, QLD', RadioSettings(frequencyMHz: 923.125, bandwidth: LoRaBandwidth.bw62_5, spreadingFactor: LoRaSpreadingFactor.sf8, codingRate: LoRaCodingRate.cr4_5, txPowerDbm: 20)),
codingRate: LoRaCodingRate.cr4_5, ('Czech Republic', RadioSettings(frequencyMHz: 869.432, bandwidth: LoRaBandwidth.bw62_5, spreadingFactor: LoRaSpreadingFactor.sf7, codingRate: LoRaCodingRate.cr4_5, txPowerDbm: 14)),
txPowerDbm: 20, ('EU 433MHz', RadioSettings(frequencyMHz: 433.650, bandwidth: LoRaBandwidth.bw250, spreadingFactor: LoRaSpreadingFactor.sf11, codingRate: LoRaCodingRate.cr4_5, txPowerDbm: 20)),
); ('EU/UK (Long Range)', RadioSettings(frequencyMHz: 869.525, bandwidth: LoRaBandwidth.bw250, spreadingFactor: LoRaSpreadingFactor.sf11, codingRate: LoRaCodingRate.cr4_5, txPowerDbm: 14)),
('EU/UK (Medium Range)', RadioSettings(frequencyMHz: 869.525, bandwidth: LoRaBandwidth.bw250, spreadingFactor: LoRaSpreadingFactor.sf10, codingRate: LoRaCodingRate.cr4_5, txPowerDbm: 14)),
static RadioSettings get preset868MHz => RadioSettings( ('EU/UK (Narrow)', RadioSettings(frequencyMHz: 869.618, bandwidth: LoRaBandwidth.bw62_5, spreadingFactor: LoRaSpreadingFactor.sf8, codingRate: LoRaCodingRate.cr4_5, txPowerDbm: 14)),
frequencyMHz: 868.0, ('New Zealand', RadioSettings(frequencyMHz: 917.375, bandwidth: LoRaBandwidth.bw250, spreadingFactor: LoRaSpreadingFactor.sf11, codingRate: LoRaCodingRate.cr4_5, txPowerDbm: 20)),
bandwidth: LoRaBandwidth.bw125, ('New Zealand (Narrow)', RadioSettings(frequencyMHz: 917.375, bandwidth: LoRaBandwidth.bw62_5, spreadingFactor: LoRaSpreadingFactor.sf7, codingRate: LoRaCodingRate.cr4_5, txPowerDbm: 20)),
spreadingFactor: LoRaSpreadingFactor.sf7, ('Portugal 433', RadioSettings(frequencyMHz: 433.375, bandwidth: LoRaBandwidth.bw62_5, spreadingFactor: LoRaSpreadingFactor.sf9, codingRate: LoRaCodingRate.cr4_5, txPowerDbm: 20)),
codingRate: LoRaCodingRate.cr4_5, ('Portugal 869', RadioSettings(frequencyMHz: 869.618, bandwidth: LoRaBandwidth.bw62_5, spreadingFactor: LoRaSpreadingFactor.sf7, codingRate: LoRaCodingRate.cr4_5, txPowerDbm: 14)),
txPowerDbm: 14, ('Switzerland', RadioSettings(frequencyMHz: 869.618, bandwidth: LoRaBandwidth.bw62_5, spreadingFactor: LoRaSpreadingFactor.sf8, codingRate: LoRaCodingRate.cr4_5, txPowerDbm: 14)),
); ('USA Arizona', RadioSettings(frequencyMHz: 908.205, bandwidth: LoRaBandwidth.bw62_5, spreadingFactor: LoRaSpreadingFactor.sf10, codingRate: LoRaCodingRate.cr4_5, txPowerDbm: 20)),
('USA/Canada', RadioSettings(frequencyMHz: 910.525, bandwidth: LoRaBandwidth.bw62_5, spreadingFactor: LoRaSpreadingFactor.sf7, codingRate: LoRaCodingRate.cr4_5, txPowerDbm: 20)),
static RadioSettings get preset433MHz => RadioSettings( ('Vietnam', RadioSettings(frequencyMHz: 920.250, bandwidth: LoRaBandwidth.bw250, spreadingFactor: LoRaSpreadingFactor.sf11, codingRate: LoRaCodingRate.cr4_5, txPowerDbm: 20)),
frequencyMHz: 433.0, // Off-grid repeat presets (valid client_repeat frequencies)
bandwidth: LoRaBandwidth.bw125, ('Off-Grid 433', RadioSettings(frequencyMHz: 433.0, bandwidth: LoRaBandwidth.bw250, spreadingFactor: LoRaSpreadingFactor.sf11, codingRate: LoRaCodingRate.cr4_5, txPowerDbm: 20)),
spreadingFactor: LoRaSpreadingFactor.sf7, ('Off-Grid 869', RadioSettings(frequencyMHz: 869.0, bandwidth: LoRaBandwidth.bw250, spreadingFactor: LoRaSpreadingFactor.sf11, codingRate: LoRaCodingRate.cr4_5, txPowerDbm: 14)),
codingRate: LoRaCodingRate.cr4_5, ('Off-Grid 918', RadioSettings(frequencyMHz: 918.0, bandwidth: LoRaBandwidth.bw250, spreadingFactor: LoRaSpreadingFactor.sf11, codingRate: LoRaCodingRate.cr4_5, txPowerDbm: 20)),
txPowerDbm: 20, ];
);
static RadioSettings get presetLongRange => RadioSettings(
frequencyMHz: 915.0,
bandwidth: LoRaBandwidth.bw125,
spreadingFactor: LoRaSpreadingFactor.sf12,
codingRate: LoRaCodingRate.cr4_8,
txPowerDbm: 20,
);
static RadioSettings get presetFastSpeed => RadioSettings(
frequencyMHz: 915.0,
bandwidth: LoRaBandwidth.bw500,
spreadingFactor: LoRaSpreadingFactor.sf7,
codingRate: LoRaCodingRate.cr4_5,
txPowerDbm: 20,
);
int get frequencyHz => (frequencyMHz * 1000).round(); int get frequencyHz => (frequencyMHz * 1000).round();
int get bandwidthHz => bandwidth.hz; int get bandwidthHz => bandwidth.hz;
+45 -41
View File
@@ -862,6 +862,7 @@ class _RadioSettingsDialogState extends State<_RadioSettingsDialog> {
LoRaSpreadingFactor _spreadingFactor = LoRaSpreadingFactor.sf7; LoRaSpreadingFactor _spreadingFactor = LoRaSpreadingFactor.sf7;
LoRaCodingRate _codingRate = LoRaCodingRate.cr4_5; LoRaCodingRate _codingRate = LoRaCodingRate.cr4_5;
final _txPowerController = TextEditingController(text: '20'); final _txPowerController = TextEditingController(text: '20');
bool _clientRepeat = false;
@override @override
void initState() { void initState() {
@@ -911,6 +912,8 @@ class _RadioSettingsDialogState extends State<_RadioSettingsDialog> {
if (widget.connector.currentTxPower != null) { if (widget.connector.currentTxPower != null) {
_txPowerController.text = widget.connector.currentTxPower.toString(); _txPowerController.text = widget.connector.currentTxPower.toString();
} }
_clientRepeat = widget.connector.clientRepeat ?? false;
} }
@override @override
@@ -960,9 +963,23 @@ class _RadioSettingsDialogState extends State<_RadioSettingsDialog> {
widget.connector.currentCr, widget.connector.currentCr,
); );
final supportsRepeat =
(widget.connector.firmwareVerCode ?? 0) >= 9;
if (supportsRepeat) {
const validRepeatFreqsKHz = {433000, 869000, 918000};
if (_clientRepeat && !validRepeatFreqsKHz.contains(freqHz)) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text(l10n.settings_clientRepeatFreqWarning)),
);
return;
}
}
try { try {
await widget.connector.sendFrame( await widget.connector.sendFrame(
buildSetRadioParamsFrame(freqHz, bwHz, sf, cr), buildSetRadioParamsFrame(freqHz, bwHz, sf, cr,
clientRepeat: supportsRepeat ? _clientRepeat : null),
); );
await widget.connector.sendFrame(buildSetRadioTxPowerFrame(txPower)); await widget.connector.sendFrame(buildSetRadioTxPowerFrame(txPower));
await widget.connector.refreshDeviceInfo(); await widget.connector.refreshDeviceInfo();
@@ -1001,37 +1018,25 @@ class _RadioSettingsDialogState extends State<_RadioSettingsDialog> {
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text( DropdownButtonFormField<int>(
l10n.settings_presets, decoration: InputDecoration(
style: const TextStyle(fontWeight: FontWeight.bold), labelText: l10n.settings_presets,
), border: const OutlineInputBorder(),
const SizedBox(height: 8), ),
Wrap( items: [
spacing: 8, for (var i = 0; i < RadioSettings.presets.length; i++)
children: [ DropdownMenuItem(
_PresetChip( value: i,
label: l10n.settings_preset915Mhz, child: Text(RadioSettings.presets[i].$1),
onTap: () => _applyPreset(RadioSettings.preset915MHz), ),
),
_PresetChip(
label: l10n.settings_preset868Mhz,
onTap: () => _applyPreset(RadioSettings.preset868MHz),
),
_PresetChip(
label: l10n.settings_preset433Mhz,
onTap: () => _applyPreset(RadioSettings.preset433MHz),
),
_PresetChip(
label: l10n.settings_longRange,
onTap: () => _applyPreset(RadioSettings.presetLongRange),
),
_PresetChip(
label: l10n.settings_fastSpeed,
onTap: () => _applyPreset(RadioSettings.presetFastSpeed),
),
], ],
onChanged: (index) {
if (index != null) {
_applyPreset(RadioSettings.presets[index].$2);
}
},
), ),
const SizedBox(height: 24), const SizedBox(height: 16),
TextField( TextField(
controller: _frequencyController, controller: _frequencyController,
decoration: InputDecoration( decoration: InputDecoration(
@@ -1103,6 +1108,16 @@ class _RadioSettingsDialogState extends State<_RadioSettingsDialog> {
), ),
keyboardType: TextInputType.number, keyboardType: TextInputType.number,
), ),
if ((widget.connector.firmwareVerCode ?? 0) >= 9) ...[
const SizedBox(height: 16),
SwitchListTile(
title: Text(l10n.settings_clientRepeat),
subtitle: Text(l10n.settings_clientRepeatSubtitle),
value: _clientRepeat,
onChanged: (value) => setState(() => _clientRepeat = value),
contentPadding: EdgeInsets.zero,
),
],
], ],
), ),
), ),
@@ -1117,14 +1132,3 @@ class _RadioSettingsDialogState extends State<_RadioSettingsDialog> {
} }
} }
class _PresetChip extends StatelessWidget {
final String label;
final VoidCallback onTap;
const _PresetChip({required this.label, required this.onTap});
@override
Widget build(BuildContext context) {
return ActionChip(label: Text(label), onPressed: onTap);
}
}