dashboard: split config and status model headers

This commit is contained in:
2026-06-09 23:10:58 -06:00
parent 24cf07a997
commit 626ebadc94
4 changed files with 52 additions and 32 deletions
+13
View File
@@ -52,3 +52,16 @@ Current screen shows:
- Touch test button - Touch test button
This is intentionally not connected to WiFi or the Cargo ESP yet. This is intentionally not connected to WiFi or the Cargo ESP yet.
## Firmware Structure
Current dashboard firmware files:
- `esp32-s3-dashboard.ino` - Main Arduino entry point, LVGL screen, WiFi/API loop
- `dashboard_config.h` - Dashboard version, Cargo ESP WiFi credentials, `/api/v1` endpoint URLs
- `dashboard_status_model.h` - Parsed Cargo ESP status data model
- `lvgl_v8_port.cpp/.h` - Waveshare LVGL port support
- `esp_panel_board_custom_conf.h` - Waveshare board/display configuration
This refactor keeps behavior unchanged while preparing for later `api` and `ui` file splits.
@@ -0,0 +1,10 @@
#pragma once
static const char *DASHBOARD_VERSION = "0.0.8-refactor-config-model";
// Update these if your Cargo ESP AP credentials are different.
static const char *CARGO_WIFI_SSID = "OverlandController";
static const char *CARGO_WIFI_PASSWORD = "overland1234";
static const char *CARGO_API_STATUS_URL = "http://192.168.4.1/api/v1/status";
static const char *CARGO_API_RELAY_SET_URL = "http://192.168.4.1/api/v1/relay/set";
@@ -0,0 +1,27 @@
#pragma once
#include <Arduino.h>
struct DashboardStatus {
bool api_ok = false;
int http_code = 0;
bool bms_connected = false;
int soc = -1;
float voltage = 0.0;
float current = 0.0;
float battery_temp_f = 0.0;
float remaining_ah = 0.0;
float capacity_ah = 0.0;
int cell_delta_mv = -1;
String temps_text;
String outputs_text;
String hardware_profile = "unknown";
int output_count = 0;
String firmware_version = "unknown";
unsigned long uptime_seconds = 0;
String cargo_ap_ssid = "unknown";
String cargo_sta_ip = "unknown";
};
@@ -6,18 +6,12 @@
#include <lvgl.h> #include <lvgl.h>
#include "lvgl_v8_port.h" #include "lvgl_v8_port.h"
#include "dashboard_config.h"
#include "dashboard_status_model.h"
using namespace esp_panel::drivers; using namespace esp_panel::drivers;
using namespace esp_panel::board; using namespace esp_panel::board;
static const char *DASHBOARD_VERSION = "0.0.7-optimistic-relay-ui";
// Update these if your Cargo ESP AP credentials are different.
static const char *CARGO_WIFI_SSID = "OverlandController";
static const char *CARGO_WIFI_PASSWORD = "overland1234";
static const char *CARGO_API_STATUS_URL = "http://192.168.4.1/api/v1/status";
static const char *CARGO_API_RELAY_SET_URL = "http://192.168.4.1/api/v1/relay/set";
static lv_obj_t *battery_label = nullptr; static lv_obj_t *battery_label = nullptr;
static lv_obj_t *temps_label = nullptr; static lv_obj_t *temps_label = nullptr;
static lv_obj_t *outputs_label = nullptr; static lv_obj_t *outputs_label = nullptr;
@@ -42,30 +36,6 @@ static String last_outputs_text;
static String last_system_text; static String last_system_text;
static String last_wifi_text; static String last_wifi_text;
struct DashboardStatus {
bool api_ok = false;
int http_code = 0;
bool bms_connected = false;
int soc = -1;
float voltage = 0.0;
float current = 0.0;
float battery_temp_f = 0.0;
float remaining_ah = 0.0;
float capacity_ah = 0.0;
int cell_delta_mv = -1;
String temps_text;
String outputs_text;
String hardware_profile = "unknown";
int output_count = 0;
String firmware_version = "unknown";
unsigned long uptime_seconds = 0;
String cargo_ap_ssid = "unknown";
String cargo_sta_ip = "unknown";
};
static DashboardStatus status_model; static DashboardStatus status_model;
static String on_off(bool value) static String on_off(bool value)