basic repeater chan util

just repeater stats for now

total channel utilization over uptime i.e. util =
(rxsecs+txsecs) / upsecs
chore/offband-rebrand
Enot (ded) Skelly 3 months ago
parent f1d93bd5e8
commit c09af98bef
No known key found for this signature in database
GPG Key ID: 2FE5B19B03656304

@ -1168,6 +1168,7 @@
"repeater_noiseFloor": "Noise Floor",
"repeater_txAirtime": "TX Airtime",
"repeater_rxAirtime": "RX Airtime",
"repeater_chanUtil": "Channel Utilization",
"repeater_packetStatistics": "Packet Statistics",
"repeater_sent": "Sent",
"repeater_received": "Received",

@ -3909,6 +3909,12 @@ abstract class AppLocalizations {
/// **'RX Airtime'**
String get repeater_rxAirtime;
/// No description provided for @repeater_chanUtil.
///
/// In en, this message translates to:
/// **'Channel Utilization'**
String get repeater_chanUtil;
/// No description provided for @repeater_packetStatistics.
///
/// In en, this message translates to:

@ -2180,6 +2180,9 @@ class AppLocalizationsBg extends AppLocalizations {
@override
String get repeater_rxAirtime => 'RX Airtime';
@override
String get repeater_chanUtil => 'Channel Utilization';
@override
String get repeater_packetStatistics => 'Статистика на пакетите';

@ -2176,6 +2176,9 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get repeater_rxAirtime => 'RX Airtime';
@override
String get repeater_chanUtil => 'Channel Utilization';
@override
String get repeater_packetStatistics => 'Paketstatistiken';

@ -2135,6 +2135,9 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get repeater_rxAirtime => 'RX Airtime';
@override
String get repeater_chanUtil => 'Channel Utilization';
@override
String get repeater_packetStatistics => 'Packet Statistics';

@ -2172,6 +2172,9 @@ class AppLocalizationsEs extends AppLocalizations {
@override
String get repeater_rxAirtime => 'RX Airtime';
@override
String get repeater_chanUtil => 'Channel Utilization';
@override
String get repeater_packetStatistics => 'Estadísticas del Paquete';

@ -2186,6 +2186,9 @@ class AppLocalizationsFr extends AppLocalizations {
@override
String get repeater_rxAirtime => 'RX Airtime';
@override
String get repeater_chanUtil => 'Channel Utilization';
@override
String get repeater_packetStatistics => 'Statistiques des paquets';

@ -2189,6 +2189,9 @@ class AppLocalizationsHu extends AppLocalizations {
@override
String get repeater_rxAirtime => 'RX Airtime';
@override
String get repeater_chanUtil => 'Channel Utilization';
@override
String get repeater_packetStatistics => 'Csomagok statisztikája';

@ -2175,6 +2175,9 @@ class AppLocalizationsIt extends AppLocalizations {
@override
String get repeater_rxAirtime => 'RX Airtime';
@override
String get repeater_chanUtil => 'Channel Utilization';
@override
String get repeater_packetStatistics => 'Statistiche del Pacchetto';

@ -2086,6 +2086,9 @@ class AppLocalizationsJa extends AppLocalizations {
@override
String get repeater_rxAirtime => 'RX 空き時間';
@override
String get repeater_chanUtil => 'Channel Utilization';
@override
String get repeater_packetStatistics => 'パケット統計';

@ -2083,6 +2083,9 @@ class AppLocalizationsKo extends AppLocalizations {
@override
String get repeater_rxAirtime => 'RX 에어타임';
@override
String get repeater_chanUtil => 'Channel Utilization';
@override
String get repeater_packetStatistics => '패킷 통계';

@ -2161,6 +2161,9 @@ class AppLocalizationsNl extends AppLocalizations {
@override
String get repeater_rxAirtime => 'RX-zendtijd';
@override
String get repeater_chanUtil => 'Channel Utilization';
@override
String get repeater_packetStatistics => 'Pakketstatistieken';

@ -2190,6 +2190,9 @@ class AppLocalizationsPl extends AppLocalizations {
@override
String get repeater_rxAirtime => 'Czas odbioru RX';
@override
String get repeater_chanUtil => 'Channel Utilization';
@override
String get repeater_packetStatistics => 'Statystyki pakietów';

@ -2172,6 +2172,9 @@ class AppLocalizationsPt extends AppLocalizations {
@override
String get repeater_rxAirtime => 'RX Airtime';
@override
String get repeater_chanUtil => 'Channel Utilization';
@override
String get repeater_packetStatistics => 'Estatísticas de Pacote';

@ -2177,6 +2177,9 @@ class AppLocalizationsRu extends AppLocalizations {
@override
String get repeater_rxAirtime => 'Время эфира (приём)';
@override
String get repeater_chanUtil => 'Channel Utilization';
@override
String get repeater_packetStatistics => 'Статистика пакетов';

@ -2162,6 +2162,9 @@ class AppLocalizationsSk extends AppLocalizations {
@override
String get repeater_rxAirtime => 'RX Airtime';
@override
String get repeater_chanUtil => 'Channel Utilization';
@override
String get repeater_packetStatistics => 'Statistiky balíka';

@ -2159,6 +2159,9 @@ class AppLocalizationsSl extends AppLocalizations {
@override
String get repeater_rxAirtime => 'RX Airtime';
@override
String get repeater_chanUtil => 'Channel Utilization';
@override
String get repeater_packetStatistics => 'Statistika paketa';

@ -2148,6 +2148,9 @@ class AppLocalizationsSv extends AppLocalizations {
@override
String get repeater_rxAirtime => 'RX Airtime';
@override
String get repeater_chanUtil => 'Channel Utilization';
@override
String get repeater_packetStatistics => 'Paketstatistik';

@ -2173,6 +2173,9 @@ class AppLocalizationsUk extends AppLocalizations {
@override
String get repeater_rxAirtime => 'Ефірний час RX';
@override
String get repeater_chanUtil => 'Channel Utilization';
@override
String get repeater_packetStatistics => 'Статистика пакетів';

@ -2043,6 +2043,9 @@ class AppLocalizationsZh extends AppLocalizations {
@override
String get repeater_rxAirtime => '接收空中时间';
@override
String get repeater_chanUtil => 'Channel Utilization';
@override
String get repeater_packetStatistics => '数据包统计';

@ -56,6 +56,7 @@ class _RepeaterStatusScreenState extends State<RepeaterStatusScreen> {
int? _directRx;
int? _dupFlood;
int? _dupDirect;
double? _chanUtil;
PathSelection? _pendingStatusSelection;
@override
@ -192,6 +193,7 @@ class _RepeaterStatusScreenState extends State<RepeaterStatusScreen> {
_lastSnr = lastSnrRaw / 4.0;
_dupDirect = directDups;
_dupFlood = floodDups;
_chanUtil = ((txAirSecs + rxAirSecs) / uptimeSecs) * 100;
});
final connector = Provider.of<MeshCoreConnector>(context, listen: false);
connector.updateRepeaterBatterySnapshot(
@ -283,6 +285,7 @@ class _RepeaterStatusScreenState extends State<RepeaterStatusScreen> {
_directRx = null;
_dupFlood = null;
_dupDirect = null;
_chanUtil = null;
});
try {
@ -570,6 +573,7 @@ class _RepeaterStatusScreenState extends State<RepeaterStatusScreen> {
_buildInfoRow(l10n.repeater_sent, _packetTxText()),
_buildInfoRow(l10n.repeater_received, _packetRxText()),
_buildInfoRow(l10n.repeater_duplicates, _duplicateText()),
_buildInfoRow(l10n.repeater_chanUtil, _chanUtilText()),
],
),
),
@ -673,6 +677,11 @@ class _RepeaterStatusScreenState extends State<RepeaterStatusScreen> {
return l10n.repeater_packetRxTotal(_packetsRecv!, flood, direct);
}
String _chanUtilText() {
if (_chanUtil == null) return '';
return _formatPercent(_chanUtil);
}
String _duplicateText() {
final l10n = context.l10n;
if (_dupFlood != null || _dupDirect != null) {
@ -693,6 +702,11 @@ class _RepeaterStatusScreenState extends State<RepeaterStatusScreen> {
return suffix == null ? value.toString() : '$value$suffix';
}
String _formatPercent(double? p) {
if (p == null) return '';
return '${p.toStringAsFixed(2)}%';
}
String _formatSnr(double? snr) {
if (snr == null) return '';
return snr.toStringAsFixed(2);

@ -8,6 +8,7 @@ list(APPEND FLUTTER_PLUGIN_LIST
list(APPEND FLUTTER_FFI_PLUGIN_LIST
flserial
jni
)
set(PLUGIN_BUNDLED_LIBRARIES)

@ -1,86 +1,103 @@
{
"bg": [
"chat_markAsUnread",
"chat_newMessages"
"chat_newMessages",
"repeater_chanUtil"
],
"de": [
"chat_markAsUnread",
"chat_newMessages"
"chat_newMessages",
"repeater_chanUtil"
],
"es": [
"chat_markAsUnread",
"chat_newMessages"
"chat_newMessages",
"repeater_chanUtil"
],
"fr": [
"chat_markAsUnread",
"chat_newMessages"
"chat_newMessages",
"repeater_chanUtil"
],
"hu": [
"chat_markAsUnread",
"chat_newMessages"
"chat_newMessages",
"repeater_chanUtil"
],
"it": [
"chat_markAsUnread",
"chat_newMessages"
"chat_newMessages",
"repeater_chanUtil"
],
"ja": [
"chat_markAsUnread",
"chat_newMessages"
"chat_newMessages",
"repeater_chanUtil"
],
"ko": [
"chat_markAsUnread",
"chat_newMessages"
"chat_newMessages",
"repeater_chanUtil"
],
"nl": [
"chat_markAsUnread",
"chat_newMessages"
"chat_newMessages",
"repeater_chanUtil"
],
"pl": [
"chat_markAsUnread",
"chat_newMessages"
"chat_newMessages",
"repeater_chanUtil"
],
"pt": [
"chat_markAsUnread",
"chat_newMessages"
"chat_newMessages",
"repeater_chanUtil"
],
"ru": [
"chat_markAsUnread",
"chat_newMessages"
"chat_newMessages",
"repeater_chanUtil"
],
"sk": [
"chat_markAsUnread",
"chat_newMessages"
"chat_newMessages",
"repeater_chanUtil"
],
"sl": [
"chat_markAsUnread",
"chat_newMessages"
"chat_newMessages",
"repeater_chanUtil"
],
"sv": [
"chat_markAsUnread",
"chat_newMessages"
"chat_newMessages",
"repeater_chanUtil"
],
"uk": [
"chat_markAsUnread",
"chat_newMessages"
"chat_newMessages",
"repeater_chanUtil"
],
"zh": [
"chat_markAsUnread",
"chat_newMessages"
"chat_newMessages",
"repeater_chanUtil"
]
}

@ -11,6 +11,7 @@ list(APPEND FLUTTER_PLUGIN_LIST
list(APPEND FLUTTER_FFI_PLUGIN_LIST
flserial
flutter_local_notifications_windows
jni
)
set(PLUGIN_BUNDLED_LIBRARIES)

Loading…
Cancel
Save

Powered by TurnKey Linux.