Public Access
The Sniffer lists packets newest first (time, RSSI, SNR, and for Meshtastic the sender, receiver and hops), with the clear header and a hex dump on Enter (Q96); `p` picks an EU868 preset, kept in Settings (Q95). `c` starts a Capture: pcap with LoRaTap in /captures/lora, its own Clean-up category, recorded by a small Service so it carries on with the App closed (Q97, Q100). The Status Bar shows L while listening, bright on each packet, and CAP while capturing (Q101). StorageService gains raw appends for binary files. Debug Builds get `lora inject` to test all of this with no transmitter in range: a Capture made on the device reads back in TShark field for field. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EhqxQ49eCju4CzKYNjZzwT
43 lines
1.2 KiB
C++
43 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
namespace roro {
|
|
|
|
struct StoredFile {
|
|
std::string path;
|
|
uint64_t bytes;
|
|
};
|
|
|
|
// What Storage Clean-up offers (see CONTEXT.md). Notes are deliberately absent.
|
|
struct CleanupCategory {
|
|
const char* label;
|
|
const char* folder;
|
|
};
|
|
inline const CleanupCategory kCleanupCategories[] = {
|
|
{"IRC logs", "/irc"},
|
|
{"Wi-Fi scan logs", "/wifi/scans"},
|
|
{"Wi-Fi captures", "/captures/wifi"},
|
|
{"LoRa captures", "/captures/lora"},
|
|
{"GNSS tracks", "/gnss/tracks"},
|
|
};
|
|
|
|
enum class CleanupAge { OneMonth, ThreeMonths, SixMonths, OneYear, Everything };
|
|
inline const char* const kCleanupAgeLabels[] = {"Older than 1 month", "Older than 3 months", "Older than 6 months",
|
|
"Older than 1 year", "Everything"};
|
|
|
|
// The files a clean-up would delete, and how much space that frees. Dates come from file names;
|
|
// undated files are only removed by Everything.
|
|
struct CleanupPlan {
|
|
std::vector<std::string> paths;
|
|
uint64_t bytes = 0;
|
|
|
|
static CleanupPlan make(const std::vector<StoredFile>& files, CleanupAge age, int todayDay);
|
|
};
|
|
|
|
std::string formatBytes(uint64_t bytes);
|
|
|
|
} // namespace roro
|