1
0
mirror of https://github.com/thooge/esp32-nmea2000-obp60.git synced 2025-12-15 15:03:07 +01:00

First working system page

This commit is contained in:
2025-01-20 19:20:37 +01:00
parent 9d395c719a
commit a73f50ba74
6 changed files with 263 additions and 39 deletions

View File

@@ -5,6 +5,10 @@
#include "images/logo64.xbm"
#include <esp_clk.h>
#define STRINGIZE_IMPL(x) #x
#define STRINGIZE(x) STRINGIZE_IMPL(x)
#define VERSINFO STRINGIZE(GWDEVVERSION)
/*
* Special system page, called directly with fast key sequence 5,4
* Out of normal page order.
@@ -14,10 +18,12 @@ class PageSystem : public Page
{
uint64_t chipid;
bool simulation;
String env_sensor;
String buzzer_mode;
uint8_t buzzer_power;
String cpuspeed;
String rtc_module;
String gps_module;
String env_module;
char mode = 'N'; // (N)ormal, (D)evice list
@@ -27,12 +33,12 @@ public:
common.logger->logDebug(GwLog::LOG,"Instantiate PageSystem");
chipid = ESP.getEfuseMac();
simulation = common.config->getBool(common.config->useSimuData);
env_sensor = common.config->getString(common.config->useEnvSensor);
buzzer_mode = common.config->getString(common.config->buzzerMode);
buzzer_power = common.config->getInt(common.config->buzzerPower);
cpuspeed = common.config->getString(common.config->cpuSpeed);
// useRTC off oder typ
// useGPS off oder typ
env_module = common.config->getString(common.config->useEnvSensor);
rtc_module = common.config->getString(common.config->useRTC);
gps_module = common.config->getString(common.config->useGPS);
}
virtual void setupKeys(){
@@ -46,8 +52,8 @@ public:
virtual int handleKey(int key){
// do *NOT* handle key #1 this handled by obp60task as exit
// Switch display mode
commonData->logger->logDebug(GwLog::LOG, "System keyboard handler");
if (key == 2) {
if (mode == 'N') {
mode = 'D';
@@ -57,6 +63,10 @@ public:
if (hasFRAM) fram.write(FRAM_VOLTAGE_MODE, mode);
return 0;
}
// grab cursor keys to disable page navigation
if (key == 3 or key == 4) {
return 0;
}
// Code for keylock
if (key == 11) {
commonData->keylock = !commonData->keylock;
@@ -94,6 +104,8 @@ public:
getdisplay().setCursor(20, 50);
getdisplay().print("System Information");
getdisplay().drawXBitmap(320, 25, logo64_bits, logo64_width, logo64_height, commonData->fgcolor);
getdisplay().setFont(&Ubuntu_Bold8pt7b);
char ssid[23];
@@ -105,38 +117,65 @@ public:
getdisplay().setCursor(2, y0);
getdisplay().print("Simulation:");
getdisplay().setCursor(140, y0);
getdisplay().setCursor(120, y0);
getdisplay().print(simulation ? "on" : "off");
getdisplay().setCursor(202, y0);
getdisplay().print("Wifi:");
getdisplay().setCursor(340, y0);
getdisplay().print("on");
getdisplay().setCursor(300, y0);
getdisplay().print(commonData->status.wifiApOn ? "On" : "Off");
getdisplay().setCursor(2, y0 + 16);
getdisplay().print("Environment:");
getdisplay().setCursor(140, y0 + 16);
getdisplay().print(env_sensor);
getdisplay().setCursor(120, y0 + 16);
getdisplay().print(env_module);
getdisplay().setCursor(2, y0 + 32);
getdisplay().print("Buzzer:");
getdisplay().setCursor(140, y0 + 32);
getdisplay().setCursor(120, y0 + 32);
getdisplay().print(buzzer_mode);
getdisplay().setCursor(2, y0 + 48);
getdisplay().print("CPU speed:");
getdisplay().setCursor(140, y0 + 48);
getdisplay().setCursor(120, y0 + 48);
getdisplay().print(cpuspeed);
getdisplay().print(" ");
int cpu_freq = esp_clk_cpu_freq();
getdisplay().print(" / ");
int cpu_freq = esp_clk_cpu_freq() / 1000000;
getdisplay().print(String(cpu_freq));
getdisplay().drawXBitmap(320, 25, logo64_bits, logo64_width, logo64_height, commonData->fgcolor);
getdisplay().setCursor(2, y0 + 64);
getdisplay().print("RTC:");
getdisplay().setCursor(120, y0 + 64);
getdisplay().print(rtc_module);
getdisplay().setCursor(202, y0 + 64);
getdisplay().print("GPS:");
getdisplay().setCursor(300, y0 + 64);
getdisplay().print(gps_module);
getdisplay().setCursor(2, y0 + 80);
getdisplay().print("FRAM:");
getdisplay().setCursor(120, y0 + 80);
getdisplay().print(hasFRAM ? "available" : "not found");
getdisplay().setCursor(2, y0 + 120);
getdisplay().print("Firmware Version: ");
getdisplay().print(VERSINFO);
} else {
// NMEA2000 device list
getdisplay().setFont(&Ubuntu_Bold12pt7b);
getdisplay().setCursor(20, 50);
getdisplay().print("NMEA2000 device list");
getdisplay().setFont(&Ubuntu_Bold8pt7b);
getdisplay().setCursor(20, 80);
getdisplay().print("RxD: ");
getdisplay().print(String(commonData->status.n2kRx));
getdisplay().setCursor(20, 100);
getdisplay().print("TxD: ");
getdisplay().print(String(commonData->status.n2kTx));
}
// Update display