projet crepp_git/crepp-projects/station-meteo/firmware/receiver/v1.0 · branche main
// Tabs.h - Dessin des onglets de l'interface
#pragma once
#include <TFT_eSPI.h>
#include "Theme.h"

// ─── Structures ──────────────────────────────────────────────────────────────
struct IndoorSensor {
    char name[20];
    float temperature;
    int battery;
    bool connected;
};

#include "WidgetUpdater.h"
#include "UpdatableWidgets.h"
#include "WeatherData.h"

// ─── Variables définies dans Tabs.cpp ────────────────────────────────────────
extern IndoorSensor gSensors[4];
extern int  gSensorCount;
extern int  gCurrentSensorPage;
extern char debugBuffer[2048];
extern int  debugIndex;

// ─── BME280 — définies dans main.cpp ─────────────────────────────────────────
extern bool  bmeInitialized;
extern float bmeTemperature;
extern float bmeHumidity;
extern float bmePressure;

// ─── Widgets — définis dans Tabs.cpp ─────────────────────────────────────────
extern WidgetManager              weatherWidgetManager;
extern UpdatableMainTempWidget*   mainTempWidget;
extern UpdatableForecastWidget*   forecastWidget;
extern UpdatableChartWidget*      chartWidget;
extern UpdatableSunWidget*        sunWidget;
extern UpdatableAQIWidget*        aqiWidget;

// ─── Fonctions des onglets ────────────────────────────────────────────────────
void initWeatherTab();
void drawWeatherTab(TFT_eSPI& tft);
void updateWeatherTab();

void drawDebugTab(TFT_eSPI& tft);
void updateDebugTab();

void drawIndoorTab(TFT_eSPI& tft);
void updateIndoorTab();

void drawStatsTab(TFT_eSPI& tft);
void updateStatsTab();

void drawTabBar(TFT_eSPI& tft, int currentTab);
void addDebugMessage(const char* format, ...);