mirror of
https://github.com/pelgraine/Meck.git
synced 2026-08-10 18:52:44 +02:00
Add on-device Rx Log packet sniffer and RX packet counter
RX packet counter: shows total received packets (flood + direct) on the radio details page; RAM-only, resets on boot and on any SF/freq/BW change. Rx Log: app-style packet sniffer opened from Settings > "Rx Log >>". Captures the last 100 received packets pre-filter via Dispatcher::logRx into a PSRAM ring, with decoded "sender: message" lines matched by packet hash for decryptable channels. Each entry shows route/type, time, size, hash, path, channel or From/To, SNR. W/S scroll, Q back to Settings; T5S3 swipe-scroll rides the same path. Files: MyMesh.h/.cpp, RxLogScreen.h (new), UITask.h/.cpp, SettingsScreen.h, main.cpp.
This commit is contained in:
@@ -4797,6 +4797,11 @@ void handleKeyboardInput() {
|
||||
}
|
||||
}
|
||||
#endif
|
||||
// Check for Rx Log open request from the settings screen
|
||||
if (settings->isRxLogRequested()) {
|
||||
settings->clearRxLogRequest();
|
||||
ui_task.gotoRxLogScreen();
|
||||
}
|
||||
// Check for channel share request from the settings screen
|
||||
if (settings->isShareRequested()) {
|
||||
int contactIdx = settings->getShareContactIdx();
|
||||
@@ -5337,6 +5342,7 @@ void handleKeyboardInput() {
|
||||
#ifdef MECK_AUDIO_VARIANT
|
||||
|| ui_task.isOnAlarmScreen()
|
||||
#endif
|
||||
|| ui_task.isOnRxLogScreen()
|
||||
) {
|
||||
ui_task.injectKey('S');
|
||||
}
|
||||
@@ -5357,6 +5363,7 @@ void handleKeyboardInput() {
|
||||
|| ui_task.isOnAlarmScreen()
|
||||
#endif
|
||||
|| ui_task.isHomeOnShutdownPage()
|
||||
|| ui_task.isOnRxLogScreen()
|
||||
) {
|
||||
ui_task.injectKey('s'); // Pass directly for scrolling
|
||||
} else {
|
||||
@@ -5379,6 +5386,7 @@ void handleKeyboardInput() {
|
||||
#ifdef MECK_AUDIO_VARIANT
|
||||
|| ui_task.isOnAlarmScreen()
|
||||
#endif
|
||||
|| ui_task.isOnRxLogScreen()
|
||||
) {
|
||||
ui_task.injectKey('W');
|
||||
}
|
||||
@@ -5398,6 +5406,7 @@ void handleKeyboardInput() {
|
||||
#ifdef MECK_AUDIO_VARIANT
|
||||
|| ui_task.isOnAlarmScreen()
|
||||
#endif
|
||||
|| ui_task.isOnRxLogScreen()
|
||||
) {
|
||||
ui_task.injectKey('w'); // Pass directly for scrolling
|
||||
} else {
|
||||
@@ -5758,6 +5767,11 @@ void handleKeyboardInput() {
|
||||
ui_task.gotoContactsScreen();
|
||||
break;
|
||||
}
|
||||
// Rx Log screen: Q goes back to settings (screen handles it)
|
||||
if (ui_task.isOnRxLogScreen()) {
|
||||
ui_task.injectKey('q');
|
||||
break;
|
||||
}
|
||||
// Path editor: Q goes back to contacts (discards unsaved changes)
|
||||
if (ui_task.isOnPathEditor()) {
|
||||
Serial.println("Nav: PathEditor -> Contacts");
|
||||
|
||||
Reference in New Issue
Block a user