выбор драйвера дисплея по DISPLAY_CLASS, правки SH1106 и OLED_RU
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:
@@ -0,0 +1,41 @@
|
||||
#pragma once
|
||||
|
||||
// Единая точка подключения драйвера дисплея по макросу DISPLAY_CLASS.
|
||||
//
|
||||
// Вариант задаёт в platformio.ini только имя класса, например
|
||||
// -D DISPLAY_CLASS=SH1106Display
|
||||
// и больше ничего не правит: ни target.h, ни build_src_filter (последний
|
||||
// обрабатывает build_as_lib.py, либо он задан явно в env).
|
||||
//
|
||||
// Приём: имена классов на время вычисления подменяются числовыми маркерами,
|
||||
// поэтому DISPLAY_CLASS можно сравнить через #if. Маркеры снимаются до
|
||||
// include драйвера, чтобы имя класса осталось обычным идентификатором, а не
|
||||
// макросом (иначе `extern DISPLAY_CLASS display;` превратился бы в `extern 1
|
||||
// display;`).
|
||||
//
|
||||
// Чтобы добавить драйвер: дописать маркер, ветку и #include ниже.
|
||||
|
||||
#ifdef DISPLAY_CLASS
|
||||
|
||||
#define SSD1306Display 1
|
||||
#define SH1106Display 2
|
||||
|
||||
#if DISPLAY_CLASS == 1
|
||||
#define MC_DISPLAY_SSD1306
|
||||
#elif DISPLAY_CLASS == 2
|
||||
#define MC_DISPLAY_SH1106
|
||||
#else
|
||||
#error "DisplaySelect.h: unsupported DISPLAY_CLASS (SSD1306Display or SH1106Display expected)"
|
||||
#endif
|
||||
|
||||
#undef SSD1306Display
|
||||
#undef SH1106Display
|
||||
|
||||
#ifdef MC_DISPLAY_SSD1306
|
||||
#include "SSD1306Display.h"
|
||||
#endif
|
||||
#ifdef MC_DISPLAY_SH1106
|
||||
#include "SH1106Display.h"
|
||||
#endif
|
||||
|
||||
#endif // DISPLAY_CLASS
|
||||
Reference in New Issue
Block a user