ui_manager.h
Arduino/ui_manager.h
#ifndef UI_MANAGER_H
#define UI_MANAGER_H
#include <lvgl.h>
// Screen IDs
typedef enum {
SCREEN_MAIN,
SCREEN_CLOCK_ANALOG,
SCREEN_CLOCK_DIGITAL,
SCREEN_TEMPERATURE,
SCREEN_HEART_RATE,
SCREEN_SPO2,
SCREEN_SETTINGS
} screen_id_t;
class UIManager {
public:
UIManager();
void init();
void update();
void showScreen(screen_id_t screen);
void updateClock();
void updateTemperature(float temp);
void updateHeartRate(uint8_t hr);
void updateSpO2(uint8_t spo2);
screen_id_t getCurrentScreen() { return _currentScreen; }
private:
static UIManager *_instance;
lv_obj_t *_mainScreen;
lv_obj_t *_clockAnalogScreen;
lv_obj_t *_clockDigitalScreen;
lv_obj_t *_temperatureScreen;
lv_obj_t *_heartRateScreen;
lv_obj_t *_spo2Screen;
lv_obj_t *_settingsScreen;
// Clock widgets
lv_obj_t *_analogClock;
lv_obj_t *_hourHand;
lv_obj_t *_minuteHand;
lv_obj_t *_secondHand;
lv_obj_t *_digitalClockLabel;
// Data display labels
lv_obj_t *_tempLabel;
lv_obj_t *_hrLabel;
lv_obj_t *_spo2Label;
// Settings widgets
lv_obj_t *_brightnessSlider;
lv_obj_t *_clockFormatSwitch;
lv_obj_t *_tempUnitSwitch;
screen_id_t _currentScreen;
void createMainScreen();
void createClockAnalogScreen();
void createClockDigitalScreen();
void createTemperatureScreen();
void createHeartRateScreen();
void createSpO2Screen();
void createSettingsScreen();
static void mainBtnEventHandler(lv_event_t *e);
static void settingsBtnEventHandler(lv_event_t *e);
static void backBtnEventHandler(lv_event_t *e);
static void clockFormatChangeHandler(lv_event_t *e);
static void brightnessChangeHandler(lv_event_t *e);
static void tempUnitChangeHandler(lv_event_t *e);
void drawAnalogClock();
void updateAnalogClock();
void updateDigitalClock();
};
#endif
Artigos relacionados
lv_conf.h
lv_conf.h — c source code from the Arduino learning materials (Arduino/CCIT4080_CL05_PKPD_Group2/lv_conf.h).
Ler artigo →2.4_max30102.cpp
2.4_max30102.cpp — cpp source code from the Arduino learning materials (Arduino/CCIT4080_CL05_PKPD_Group2/src/Combination/2.4_and_max30102_test/2.4_max30102.cpp).
Ler artigo →bluetooth.cpp
bluetooth.cpp — cpp source code from the Arduino learning materials (Arduino/CCIT4080_CL05_PKPD_Group2/src/Test_components/bluetooth_test/bluetooth.cpp).
Ler artigo →ec11.cpp
ec11.cpp — cpp source code from the Arduino learning materials (Arduino/CCIT4080_CL05_PKPD_Group2/src/Test_components/button_test/ec11.cpp).
Ler artigo →1.69_inch_display.cpp
1.69_inch_display.cpp — cpp source code from the Arduino learning materials (Arduino/CCIT4080_CL05_PKPD_Group2/src/Test_components/display_test/1.69_inch_display/1.69_inch_display.cpp).
Ler artigo →2.4_inch_display.cpp
2.4_inch_display.cpp — cpp source code from the Arduino learning materials (Arduino/CCIT4080_CL05_PKPD_Group2/src/Test_components/display_test/2.4_inch_display/2.4_inch_display.cpp).
Ler artigo →