mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-07-26 14:58:12 +00:00
Settings screen (UI_HAS_JOYSTICK_UPDOWN build variant): - Display brightness (5 levels, contrast curve tuned for SH1106 non-linearity) - Buzzer on/off (respected at startup, no more forced unmute) - TX power (2–22 dBm) - Auto-off delay (5s / 15s / 30s / 60s / never) - GPS update interval (off / 30s / 1min / 5min / 15min / 30min) - Timezone offset (UTC-12..+14) for clock screen - Low battery auto-shutdown threshold (off / 3.0–3.5V, default 3.4V) - Battery display mode (icon / % / voltage) Battery: - EMA filter (alpha=0.2) on ADC readings to smooth voltage spikes from uneven load - Battery % calculated using low_batt_mv as 0% anchor - Mute icon repositions dynamically based on battery display width Clock screen on HomeScreen showing time/date with timezone support. Build: - _settings variants added for USB and BLE companion radio builds - Automatic UF2 generation on every build via create-uf2.py post-script - UI_HAS_JOYSTICK_UPDOWN flag guards joystick_up/down to avoid breaking other boards Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
42 lines
1.6 KiB
C++
42 lines
1.6 KiB
C++
#pragma once
|
|
#include <cstdint> // For uint8_t, uint32_t
|
|
|
|
#define TELEM_MODE_DENY 0
|
|
#define TELEM_MODE_ALLOW_FLAGS 1 // use contact.flags
|
|
#define TELEM_MODE_ALLOW_ALL 2
|
|
|
|
#define ADVERT_LOC_NONE 0
|
|
#define ADVERT_LOC_SHARE 1
|
|
|
|
struct NodePrefs { // persisted to file
|
|
float airtime_factor;
|
|
char node_name[32];
|
|
float freq;
|
|
uint8_t sf;
|
|
uint8_t cr;
|
|
uint8_t multi_acks;
|
|
uint8_t manual_add_contacts;
|
|
float bw;
|
|
int8_t tx_power_dbm;
|
|
uint8_t telemetry_mode_base;
|
|
uint8_t telemetry_mode_loc;
|
|
uint8_t telemetry_mode_env;
|
|
float rx_delay_base;
|
|
uint32_t ble_pin;
|
|
uint8_t advert_loc_policy;
|
|
uint8_t buzzer_quiet;
|
|
uint8_t gps_enabled; // GPS enabled flag (0=disabled, 1=enabled)
|
|
uint32_t gps_interval; // GPS read interval in seconds
|
|
uint8_t autoadd_config; // bitmask for auto-add contacts config
|
|
uint8_t rx_boosted_gain; // SX126x RX boosted gain mode (0=power saving, 1=boosted)
|
|
uint8_t client_repeat;
|
|
uint8_t path_hash_mode; // which path mode to use when sending
|
|
uint8_t autoadd_max_hops; // 0 = no limit, 1 = direct (0 hops), N = up to N-1 hops (max 64)
|
|
char default_scope_name[31];
|
|
uint8_t default_scope_key[16];
|
|
uint8_t display_brightness; // 0=min..4=max, default 2 (medium)
|
|
uint16_t auto_off_secs; // display auto-off: 0=never, else seconds (default 15)
|
|
int8_t tz_offset_hours; // timezone offset from UTC, -12..+14 (default 0)
|
|
uint16_t low_batt_mv; // auto-shutdown threshold: 0=disabled, 3000-3500 mV
|
|
uint8_t batt_display_mode; // 0=icon, 1=percent, 2=voltage
|
|
}; |