Add SD logging and update docs

- Add optional microSD CSV logging per sender/day on receiver
- Wire logger into receiver packet handling
- Document new batch header fields, build envs, and SD logging
- Make sender links open in a new tab
This commit is contained in:
2026-02-02 00:22:35 +01:00
parent 5085b9ad3d
commit f3af5b3f1c
6 changed files with 149 additions and 4 deletions

View File

@@ -13,6 +13,7 @@
#include "web_server.h"
#include "display_ui.h"
#include "test_mode.h"
#include "sd_logger.h"
#include <stdarg.h>
#include <math.h>
#ifdef ARDUINO_ARCH_ESP32
@@ -625,6 +626,7 @@ void setup() {
update_battery_cache();
} else {
power_receiver_init();
sd_logger_init();
wifi_manager_init();
init_sender_statuses();
display_set_sender_statuses(g_sender_statuses, NUM_SENDERS);
@@ -806,6 +808,7 @@ static void receiver_loop() {
data.link_valid = true;
data.link_rssi_dbm = pkt.rssi_dbm;
data.link_snr_db = pkt.snr_db;
sd_logger_log_sample(data, data.last_error != FaultType::None);
for (uint8_t i = 0; i < NUM_SENDERS; ++i) {
if (pkt.device_id_short == EXPECTED_SENDER_IDS[i]) {
data.short_id = pkt.device_id_short;
@@ -897,6 +900,7 @@ static void receiver_loop() {
data.err_decode = batch.err_d;
data.err_lora_tx = batch.err_tx;
data.last_error = static_cast<FaultType>(batch.err_last);
sd_logger_log_sample(data, (s + 1 == count) && data.last_error != FaultType::None);
}
if (sender_idx >= 0) {