Some work on system page and SD-card integration

This commit is contained in:
Thomas Hooge 2025-06-14 10:09:48 +02:00
parent f5cf292804
commit 99c3470a22
3 changed files with 35 additions and 11 deletions

View File

@ -6,6 +6,11 @@
#include <esp32/clk.h>
#include "qrcode.h"
#ifdef BOARD_OBP40S3
#include <SD.h>
#include <FS.h>
#endif
#define STRINGIZE_IMPL(x) #x
#define STRINGIZE(x) STRINGIZE_IMPL(x)
#define VERSINFO STRINGIZE(GWDEVVERSION)
@ -39,7 +44,7 @@ String solar_sensor;
String gen_sensor;
String rot_sensor;
char mode = 'N'; // (N)ormal, (S)ettings, (D)evice list
char mode = 'N'; // (N)ormal, (S)ettings, (D)evice list, (C)ard
public:
PageSystem(CommonData &common){
@ -63,7 +68,7 @@ public:
batt_sensor = common.config->getString(common.config->usePowSensor1);
solar_sensor = common.config->getString(common.config->usePowSensor2);
gen_sensor = common.config->getString(common.config->usePowSensor3);
gen_sensor = common.config->getString(common.config->useRotSensor);
rot_sensor = common.config->getString(common.config->useRotSensor);
}
virtual void setupKeys(){
@ -84,6 +89,12 @@ public:
mode = 'S';
} else if (mode == 'S') {
mode = 'D';
} else if (mode == 'D') {
if (sdcard) {
mode = 'C';
} else {
mode = 'N';
}
} else {
mode = 'N';
}
@ -239,7 +250,12 @@ public:
getdisplay().setCursor(8, y0 + 48);
getdisplay().print("SD-Card:");
getdisplay().setCursor(90, y0 + 48);
getdisplay().print(sdcard ? "on" : "off");
if (sdcard) {
uint64_t cardsize = SD.cardSize() / (1024 * 1024);
getdisplay().print(String(cardsize) + String(" MB"));
} else {
getdisplay().print("off");
}
#endif
// CPU speed config / active
@ -265,7 +281,6 @@ public:
getdisplay().setCursor(300, y0 + 32);
getdisplay().print(String(RAM_free));
} else if (mode == 'S') {
// Settings
@ -328,6 +343,19 @@ public:
// Gyro sensor
} else if (mode == 'C') {
// Card info
getdisplay().setFont(&Ubuntu_Bold12pt7b);
getdisplay().setCursor(8, 48);
getdisplay().print("SD Card info");
getdisplay().setFont(&Ubuntu_Bold8pt7b);
x0 = 20;
y0 = 72;
getdisplay().setCursor(x0, y0);
getdisplay().print("Work in progress...");
} else {
// NMEA2000 device list

View File

@ -616,12 +616,8 @@
"name": "useSDCard",
"label": "SD Card",
"type": "boolean",
"default": "off",
"default": "false",
"description": "Use internal SD card interface [off|on]",
"list": [
"off",
"on"
],
"category": "OBP40 Hardware",
"capabilities": {
"obp40": "true"

View File

@ -79,8 +79,8 @@ void OBP60Init(GwApi *api){
}
#ifdef BOARD_OBP40S3
String sdcard = config->getConfigItem(config->useSDCard, true)->asString();
if (sdcard == "on") {
bool sdcard = config->getBool(config->useSDCard);
if (sdcard) {
SPIClass SD_SPI = SPIClass(HSPI);
SD_SPI.begin(SD_SPI_CLK, SD_SPI_MISO, SD_SPI_MOSI);
if (SD.begin(SD_SPI_CS, SD_SPI, 80000000)) {