update mainmenu

This commit is contained in:
cheykrym 2026-03-30 05:45:56 +03:00
parent 11a0457b64
commit 802ae35166

View File

@ -59,20 +59,20 @@ static void drawHeader() {
}
static void drawFooter() {
// Разделительная линия
display.drawLine(0, SCREEN_HEIGHT - 12, SCREEN_WIDTH, SCREEN_HEIGHT - 12, SSD1306_WHITE);
// Разделительная линия (опущена ниже)
// display.drawLine(0, SCREEN_HEIGHT - 10, SCREEN_WIDTH, SCREEN_HEIGHT - 10, SSD1306_WHITE);
display.setTextColor(SSD1306_WHITE);
display.setTextSize(1);
if (systemReady && debugMode) {
// Инвертированный фон для DEBUG режима
display.fillRect(0, SCREEN_HEIGHT - 11, SCREEN_WIDTH, 11, SSD1306_WHITE);
display.fillRect(0, SCREEN_HEIGHT - 9, SCREEN_WIDTH, 9, SSD1306_WHITE);
display.setTextColor(SSD1306_BLACK);
// Кнопка Menu (левый угол)
const char* menuBtn = "[MENU]";
display.setCursor(2, SCREEN_HEIGHT - 9);
display.setCursor(2, SCREEN_HEIGHT - 8);
display.print(menuBtn);
// Uptime (правый угол)
@ -80,7 +80,7 @@ static void drawFooter() {
char uptimeStr[12];
snprintf(uptimeStr, sizeof(uptimeStr), "UP=%lus", uptime);
int textWidth = strlen(uptimeStr) * 6;
display.setCursor(SCREEN_WIDTH - textWidth - 2, SCREEN_HEIGHT - 9);
display.setCursor(SCREEN_WIDTH - textWidth - 2, SCREEN_HEIGHT - 8);
display.print(uptimeStr);
} else if (systemReady) {
// Uptime (правый угол)
@ -88,12 +88,12 @@ static void drawFooter() {
char uptimeStr[12];
snprintf(uptimeStr, sizeof(uptimeStr), "UP=%lus", uptime);
int textWidth = strlen(uptimeStr) * 6;
display.setCursor(SCREEN_WIDTH - textWidth - 2, SCREEN_HEIGHT - 10);
display.setCursor(SCREEN_WIDTH - textWidth - 2, SCREEN_HEIGHT - 8);
display.print(uptimeStr);
} else {
// Версия (правый угол)
int textWidth = strlen(FIRMWARE_VERSION) * 6;
display.setCursor(SCREEN_WIDTH - textWidth - 2, SCREEN_HEIGHT - 10);
display.setCursor(SCREEN_WIDTH - textWidth - 2, SCREEN_HEIGHT - 8);
display.print(FIRMWARE_VERSION);
}
}
@ -274,25 +274,28 @@ void oledDrawMainMenu(const char* ip, const char* mode) {
// Заголовок
drawHeader();
// Основной контент
// Основной контент (центрирован между шапкой и подвалом)
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 20);
display.setTextSize(1);
// Строка 1: IP адрес
// Строка 1: IP адрес (y=17)
display.setCursor(0, 17);
display.print("IP: ");
display.println(ip);
// Строка 2: Режим
// Строка 2: Режим (y=27)
display.setCursor(0, 27);
display.print("Mode: ");
display.println(mode);
// Строка 3: Дистанция и RSSI
// Строка 3: Дистанция и RSSI (y=37)
display.setCursor(0, 37);
int dist = ultrasonicReadCm();
int rssi = WiFi.RSSI();
display.printf("DIST: %dcm RSSI: %d", dist, rssi);
// Строка 4: Скорости
// Строка 4: Скорости (y=47)
display.setCursor(0, 47);
display.printf("L: %d R: %d", robot.speedL, robot.speedR);
// Подвал