темы ST7735: янтарь для T096, официальная схема для трекеров, правка индикатора страниц
Build and deploy Docs site to GitHub Pages / github-pages (push) Canceled after 0s
PR Build Check / build (Heltec_v3_companion_radio_ble) (push) Canceled after 0s
PR Build Check / build (Heltec_v3_repeater) (push) Canceled after 0s
PR Build Check / build (Heltec_v3_room_server) (push) Canceled after 0s
PR Build Check / build (LilyGo_Tlora_C6_repeater_) (push) Canceled after 0s
PR Build Check / build (PicoW_repeater) (push) Canceled after 0s
PR Build Check / build (RAK_4631_companion_radio_ble) (push) Canceled after 0s
PR Build Check / build (RAK_4631_companion_radio_ethernet) (push) Canceled after 0s
PR Build Check / build (RAK_4631_repeater) (push) Canceled after 0s
PR Build Check / build (RAK_4631_repeater_ethernet) (push) Canceled after 0s
PR Build Check / build (RAK_4631_room_server) (push) Canceled after 0s
PR Build Check / build (RAK_4631_room_server_ethernet) (push) Canceled after 0s
PR Build Check / build (Tbeam_SX1276_repeater) (push) Canceled after 0s
PR Build Check / build (wio-e5-mini_repeater) (push) Canceled after 0s
PR Build Check / build (wio_wm1110_repeater) (push) Canceled after 0s
Run Unit Tests / test (push) Canceled after 0s
Build and deploy Docs site to GitHub Pages / github-pages (push) Canceled after 0s
PR Build Check / build (Heltec_v3_companion_radio_ble) (push) Canceled after 0s
PR Build Check / build (Heltec_v3_repeater) (push) Canceled after 0s
PR Build Check / build (Heltec_v3_room_server) (push) Canceled after 0s
PR Build Check / build (LilyGo_Tlora_C6_repeater_) (push) Canceled after 0s
PR Build Check / build (PicoW_repeater) (push) Canceled after 0s
PR Build Check / build (RAK_4631_companion_radio_ble) (push) Canceled after 0s
PR Build Check / build (RAK_4631_companion_radio_ethernet) (push) Canceled after 0s
PR Build Check / build (RAK_4631_repeater) (push) Canceled after 0s
PR Build Check / build (RAK_4631_repeater_ethernet) (push) Canceled after 0s
PR Build Check / build (RAK_4631_room_server) (push) Canceled after 0s
PR Build Check / build (RAK_4631_room_server_ethernet) (push) Canceled after 0s
PR Build Check / build (Tbeam_SX1276_repeater) (push) Canceled after 0s
PR Build Check / build (wio-e5-mini_repeater) (push) Canceled after 0s
PR Build Check / build (wio_wm1110_repeater) (push) Canceled after 0s
Run Unit Tests / test (push) Canceled after 0s
This commit is contained in:
@@ -208,18 +208,17 @@ public:
|
||||
// battery voltage
|
||||
renderBatteryIndicator(display, _task->getBattMilliVolts());
|
||||
|
||||
// curr page indicator
|
||||
if (UIColor::title_bkg == UIColor::window_bkg) {
|
||||
display.setColor(UIColor::title_txt);
|
||||
} else {
|
||||
display.setColor(UIColor::title_bkg);
|
||||
}
|
||||
// curr page indicator: активная точка — акцентным цветом, остальные — вторичным.
|
||||
// Раньше неактивные точки красились в title_bkg, и на тёмных палитрах
|
||||
// (тёмная полоса на тёмном фоне) индикатор становился неразличим.
|
||||
int y = 14;
|
||||
int x = display.width() / 2 - 5 * (HomePage::Count-1);
|
||||
for (uint8_t i = 0; i < HomePage::Count; i++, x += 10) {
|
||||
if (i == _page) {
|
||||
display.setColor(UIColor::warning_txt);
|
||||
display.fillRect(x-1, y-1, 4, 4);
|
||||
} else {
|
||||
display.setColor(UIColor::secondary_txt);
|
||||
display.fillRect(x, y, 2, 2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -421,15 +421,98 @@ bool ST7735Display::i2c_probe(TwoWire& wire, uint8_t addr) {
|
||||
#endif
|
||||
|
||||
// Color scheme
|
||||
ColorVal UIColor::window_bkg = ST77XX_BLACK;
|
||||
ColorVal UIColor::title_bkg = ST77XX_BLUE;
|
||||
ColorVal UIColor::title_txt = ST77XX_WHITE;
|
||||
ColorVal UIColor::primary_txt = ST77XX_WHITE;
|
||||
ColorVal UIColor::secondary_txt = (18 << 11) | (36 << 5) | 18; // mid-gray
|
||||
ColorVal UIColor::warning_txt = ST77XX_ORANGE;
|
||||
ColorVal UIColor::popup_bkg = ST77XX_CYAN;
|
||||
ColorVal UIColor::popup_txt = ST77XX_WHITE;
|
||||
ColorVal UIColor::corp_blue = 0x001A;
|
||||
//
|
||||
// Тема по умолчанию зависит от платы:
|
||||
// - Heltec T096 — AMBER (графит + янтарь);
|
||||
// - остальные платы на этом драйвере (heltec_t1 / tracker / tracker_v2) —
|
||||
// официальная схема MeshCore, её же можно включить явно: ST7735_THEME_CLASSIC.
|
||||
// Любую тему можно включить на любой плате флагом ST7735_THEME_* в platformio.ini
|
||||
// варианта (см. variants/heltec_t096).
|
||||
//
|
||||
// Тема CLASSIC взята из upstream: github.com/meshcore-dev/MeshCore, ветка main,
|
||||
// src/helpers/ui/ST7735Display.cpp. Это светлая схема: белый фон, чёрный текст.
|
||||
// В форке она была перекрашена в тёмную вручную, здесь восстановлен оригинал.
|
||||
|
||||
#if (defined(ST7735_THEME_CLASSIC) + defined(ST7735_THEME_AMBER) + defined(ST7735_THEME_TEAL) + defined(ST7735_THEME_SIGNAL) + defined(ST7735_THEME_NEON)) > 1
|
||||
#error "ST7735Display: выбрана более чем одна тема ST7735_THEME_*"
|
||||
#endif
|
||||
|
||||
#define MC_CLASSIC_WINDOW_BKG ST77XX_WHITE
|
||||
#define MC_CLASSIC_TITLE_BKG ST77XX_BLUE
|
||||
#define MC_CLASSIC_TITLE_TXT ST77XX_WHITE
|
||||
#define MC_CLASSIC_PRIMARY_TXT ST77XX_BLACK
|
||||
#define MC_CLASSIC_SECONDARY_TXT ((18 << 11) | (36 << 5) | 18) // mid-gray
|
||||
#define MC_CLASSIC_WARNING_TXT ST77XX_ORANGE
|
||||
#define MC_CLASSIC_POPUP_BKG ST77XX_CYAN
|
||||
#define MC_CLASSIC_POPUP_TXT ST77XX_BLACK
|
||||
#define MC_CLASSIC_CORP_BLUE 0x001A
|
||||
|
||||
#if defined(ST7735_THEME_CLASSIC) // официальная схема MeshCore (светлая)
|
||||
ColorVal UIColor::window_bkg = MC_CLASSIC_WINDOW_BKG;
|
||||
ColorVal UIColor::title_bkg = MC_CLASSIC_TITLE_BKG;
|
||||
ColorVal UIColor::title_txt = MC_CLASSIC_TITLE_TXT;
|
||||
ColorVal UIColor::primary_txt = MC_CLASSIC_PRIMARY_TXT;
|
||||
ColorVal UIColor::secondary_txt = MC_CLASSIC_SECONDARY_TXT;
|
||||
ColorVal UIColor::warning_txt = MC_CLASSIC_WARNING_TXT;
|
||||
ColorVal UIColor::popup_bkg = MC_CLASSIC_POPUP_BKG;
|
||||
ColorVal UIColor::popup_txt = MC_CLASSIC_POPUP_TXT;
|
||||
ColorVal UIColor::corp_blue = MC_CLASSIC_CORP_BLUE;
|
||||
|
||||
#elif defined(ST7735_THEME_TEAL) // B. ночная бирюза
|
||||
ColorVal UIColor::window_bkg = 0x0883; // #081018
|
||||
ColorVal UIColor::title_bkg = 0x1187; // #103038
|
||||
ColorVal UIColor::title_txt = 0xEFDF; // #E8F8F8
|
||||
ColorVal UIColor::primary_txt = 0xF7DF; // #F0F8F8
|
||||
ColorVal UIColor::secondary_txt = 0x8515; // #80A0A8
|
||||
ColorVal UIColor::warning_txt = 0xFE4A; // #FFC850
|
||||
ColorVal UIColor::popup_bkg = 0x1696; // #10D0B0
|
||||
ColorVal UIColor::popup_txt = 0x0881; // #081008
|
||||
ColorVal UIColor::corp_blue = 0x45DF; // #40B8F8
|
||||
|
||||
#elif defined(ST7735_THEME_SIGNAL) // C. чёрный + оранжевый сигнал
|
||||
ColorVal UIColor::window_bkg = 0x0000; // #000000
|
||||
ColorVal UIColor::title_bkg = 0xEB07; // #E86038
|
||||
ColorVal UIColor::title_txt = 0x1082; // #101010
|
||||
ColorVal UIColor::primary_txt = 0xFFDF; // #F8F8F8
|
||||
ColorVal UIColor::secondary_txt = 0x9D15; // #98A0A8
|
||||
ColorVal UIColor::warning_txt = 0xFE8C; // #FFD060
|
||||
ColorVal UIColor::popup_bkg = 0xFB46; // #FF6830
|
||||
ColorVal UIColor::popup_txt = 0x1082; // #101010
|
||||
ColorVal UIColor::corp_blue = 0x5D5F; // #58A8FF
|
||||
|
||||
#elif defined(ST7735_THEME_NEON) // D. неон на чёрном
|
||||
ColorVal UIColor::window_bkg = 0x0000; // #000000
|
||||
ColorVal UIColor::title_bkg = 0x0000; // #000000 (полоса слита с фоном)
|
||||
ColorVal UIColor::title_txt = 0xEF5D; // #E8E8E8
|
||||
ColorVal UIColor::primary_txt = 0xFFFF; // #FFFFFF
|
||||
ColorVal UIColor::secondary_txt = 0x8C52; // #888890
|
||||
ColorVal UIColor::warning_txt = 0xFEA0; // #FFD400
|
||||
ColorVal UIColor::popup_bkg = 0x18C3; // #181818
|
||||
ColorVal UIColor::popup_txt = 0xFEA0; // #FFD400 (рамка и текст)
|
||||
ColorVal UIColor::corp_blue = 0x555F; // #50A8FF
|
||||
|
||||
#elif defined(ST7735_THEME_AMBER) || defined(HELTEC_T096) // A. графит + янтарь (по умолчанию для T096)
|
||||
ColorVal UIColor::window_bkg = 0x1082; // #101010
|
||||
ColorVal UIColor::title_bkg = 0x2146; // #202830
|
||||
ColorVal UIColor::title_txt = 0xF79E; // #F0F0F0
|
||||
ColorVal UIColor::primary_txt = 0xFFDF; // #F8F8F8
|
||||
ColorVal UIColor::secondary_txt = 0x9493; // #909098
|
||||
ColorVal UIColor::warning_txt = 0xFD84; // #FFB020
|
||||
ColorVal UIColor::popup_bkg = 0xFD84; // #FFB020
|
||||
ColorVal UIColor::popup_txt = 0x10A3; // #101418
|
||||
ColorVal UIColor::corp_blue = 0x551F; // #50A0FF
|
||||
|
||||
#else // остальные платы: официальная схема MeshCore
|
||||
ColorVal UIColor::window_bkg = MC_CLASSIC_WINDOW_BKG;
|
||||
ColorVal UIColor::title_bkg = MC_CLASSIC_TITLE_BKG;
|
||||
ColorVal UIColor::title_txt = MC_CLASSIC_TITLE_TXT;
|
||||
ColorVal UIColor::primary_txt = MC_CLASSIC_PRIMARY_TXT;
|
||||
ColorVal UIColor::secondary_txt = MC_CLASSIC_SECONDARY_TXT;
|
||||
ColorVal UIColor::warning_txt = MC_CLASSIC_WARNING_TXT;
|
||||
ColorVal UIColor::popup_bkg = MC_CLASSIC_POPUP_BKG;
|
||||
ColorVal UIColor::popup_txt = MC_CLASSIC_POPUP_TXT;
|
||||
ColorVal UIColor::corp_blue = MC_CLASSIC_CORP_BLUE;
|
||||
#endif
|
||||
|
||||
bool ST7735Display::begin() {
|
||||
if (!sprite) {
|
||||
@@ -538,7 +621,7 @@ void ST7735Display::turnOff() {
|
||||
}
|
||||
|
||||
void ST7735Display::clear() {
|
||||
sprite->fillScreen(ST77XX_BLACK);
|
||||
sprite->fillScreen(UIColor::window_bkg);
|
||||
}
|
||||
|
||||
void ST7735Display::startFrame(ColorVal bkg) {
|
||||
|
||||
@@ -21,6 +21,9 @@ public:
|
||||
_peripher_power(peripher_power)
|
||||
{
|
||||
_isOn = false;
|
||||
#ifdef OLED_RU
|
||||
_size = 1;
|
||||
#endif
|
||||
}
|
||||
#else
|
||||
ST7735Display(RefCountedDigitalPin* peripher_power=NULL) : DisplayDriver(128, 64),
|
||||
@@ -28,6 +31,9 @@ public:
|
||||
_peripher_power(peripher_power)
|
||||
{
|
||||
_isOn = false;
|
||||
#ifdef OLED_RU
|
||||
_size = 1;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
bool begin();
|
||||
|
||||
@@ -43,6 +43,12 @@ build_flags = ${nrf52_base.build_flags}
|
||||
-D PIN_BAT_CTL=47
|
||||
-D DISPLAY_CLASS=ST7735Display
|
||||
-D DISPLAY_ROTATION=1
|
||||
; Тема дисплея ST7735 (см. src/helpers/ui/ST7735Display.cpp).
|
||||
; По умолчанию — янтарь (AMBER, графит + янтарь). Раскомментировать одну строку, чтобы сменить:
|
||||
; -D ST7735_THEME_TEAL ; B. ночная бирюза: холодный тёмный фон, бирюзовый попап
|
||||
; -D ST7735_THEME_SIGNAL ; C. чёрный + оранжевый сигнал: яркая полоса заголовка, оранжевый попап
|
||||
; -D ST7735_THEME_NEON ; D. неон на чёрном: полоса слита с фоном, попап с неоновой рамкой
|
||||
; -D ST7735_THEME_CLASSIC ; официальная светлая схема MeshCore (её же получают трекеры)
|
||||
build_src_filter = ${nrf52_base.build_src_filter}
|
||||
+<helpers/*.cpp>
|
||||
+<helpers/sensors>
|
||||
|
||||
Reference in New Issue
Block a user