@@ -39,80 +39,71 @@ bool Board::init(void)
3939 std::shared_ptr<drivers::LCD> lcd_device = nullptr ;
4040 if (_config.flags .use_lcd ) {
4141 ESP_UTILS_LOGI (" Initialize LCD" );
42- std::shared_ptr<drivers::Bus> lcd_bus = nullptr ;
43- ESP_UTILS_CHECK_EXCEPTION_RETURN (
44- (lcd_bus = drivers::BusFactory::create (_config.lcd .bus_type , _config.lcd .bus_config )),
45- false , " Create LCD bus failed"
46- );
42+ std::shared_ptr<drivers::Bus> lcd_bus = drivers::BusFactory::create (
43+ _config.lcd .bus_type , _config.lcd .bus_config );
44+ ESP_UTILS_CHECK_NULL_RETURN (lcd_bus, false , " Create LCD bus failed" );
4745 ESP_UTILS_CHECK_FALSE_RETURN (lcd_bus->init (), false , " LCD bus init failed" );
48- // #if ESP_PANEL_BOARD_USE_DEFAULT && defined(ESP_PANEL_BOARD_LCD_CONTROLLER)
49- // if (_flags.use_default_config) {
50- // ESP_UTILS_CHECK_EXCEPTION_RETURN(
51- // (lcd_device = esp_utils::make_shared<LCD_NAME_CLASS(ESP_PANEL_BOARD_LCD_CONTROLLER)>(
52- // lcd_bus, _config.lcd.device_config
53- // )), false, "Create LCD device failed"
54- // );
55- // }
56- // #endif
57- // if (!_flags.use_default_config) {
58- lcd_device = drivers::LCD_Factory::create (_config.lcd .device_name , lcd_bus, _config.lcd .device_config );
59- ESP_UTILS_CHECK_NULL_RETURN (lcd_device, false , " Create LCD device failed" );
60- // }
46+ #if ESP_PANEL_BOARD_USE_DEFAULT && defined(ESP_PANEL_BOARD_LCD_CONTROLLER)
47+ if (_flags.use_default_config ) {
48+ ESP_UTILS_CHECK_EXCEPTION_RETURN (
49+ (lcd_device = esp_utils::make_shared<LCD_NAME_CLASS (ESP_PANEL_BOARD_LCD_CONTROLLER)>(
50+ lcd_bus, _config.lcd .device_config
51+ )), false , " Create LCD device failed"
52+ );
53+ }
54+ # endif // ESP_PANEL_BOARD_LCD_CONTROLLER
55+ if (!_flags.use_default_config ) {
56+ lcd_device = drivers::LCD_Factory::create (_config.lcd .device_name , lcd_bus, _config.lcd .device_config );
57+ ESP_UTILS_CHECK_NULL_RETURN (lcd_device, false , " Create LCD device failed" );
58+ }
6159 }
6260
6361 std::shared_ptr<drivers::Touch> touch_device = nullptr ;
6462 if (_config.flags .use_touch ) {
6563 ESP_UTILS_LOGI (" Initialize touch" );
66- std::shared_ptr<drivers::Bus> touch_bus = nullptr ;
67- ESP_UTILS_CHECK_EXCEPTION_RETURN (
68- (touch_bus = drivers::BusFactory::create (_config.touch .bus_type , _config.touch .bus_config )),
69- false , " Create touch bus failed"
70- );
64+ std::shared_ptr<drivers::Bus> touch_bus = drivers::BusFactory::create (
65+ _config.touch .bus_type , _config.touch .bus_config );
66+ ESP_UTILS_CHECK_NULL_RETURN (touch_bus, false , " Create touch bus failed" );
7167 ESP_UTILS_CHECK_FALSE_RETURN (touch_bus->init (), false , " Touch bus init failed" );
72- // #if ESP_PANEL_BOARD_USE_DEFAULT && defined(ESP_PANEL_BOARD_TOUCH_CONTROLLER)
73- // if (_flags.use_default_config) {
74- // ESP_UTILS_CHECK_EXCEPTION_RETURN(
75- // (touch_device = esp_utils::make_shared<TOUCH_NAME_CLASS(ESP_PANEL_BOARD_TOUCH_CONTROLLER)>(
76- // touch_bus, _config.touch.device_config
77- // )), false, "Create LCD device failed"
78- // );
79- // }
80- // #endif
81- // if (!_flags.use_default_config) {
82- ESP_UTILS_CHECK_EXCEPTION_RETURN (
83- (touch_device = drivers::TouchFactory::create (
84- _config.touch .device_name , touch_bus, _config.touch .device_config
85- )), false , " Create touch device failed"
86- );
87- // }
68+ #if ESP_PANEL_BOARD_USE_DEFAULT && defined(ESP_PANEL_BOARD_TOUCH_CONTROLLER)
69+ if (_flags.use_default_config ) {
70+ ESP_UTILS_CHECK_EXCEPTION_RETURN (
71+ (touch_device = esp_utils::make_shared<TOUCH_NAME_CLASS (ESP_PANEL_BOARD_TOUCH_CONTROLLER)>(
72+ touch_bus, _config.touch .device_config
73+ )), false , " Create LCD device failed"
74+ );
75+ }
76+ #endif // ESP_PANEL_BOARD_TOUCH_CONTROLLER
77+ if (!_flags.use_default_config ) {
78+ touch_device = drivers::TouchFactory::create (
79+ _config.touch .device_name , touch_bus, _config.touch .device_config
80+ );
81+ ESP_UTILS_CHECK_NULL_RETURN (touch_device, false , " Create touch device failed" );
82+ }
8883 }
8984
9085 std::shared_ptr<drivers::Backlight> backlight = nullptr ;
9186 if (_config.flags .use_backlight ) {
9287 ESP_UTILS_LOGI (" Initialize Backlight" );
93- #if ESP_PANEL_BOARD_BACKLIGHT_TYPE == ESP_PANEL_BACKLIGHT_TYPE_CUSTOM
94- using BacklightConfig = drivers::BacklightCustom::Config;
95- ESP_UTILS_CHECK_FALSE_RETURN (
96- std::holds_alternative<BacklightConfig>(_config.backlight .config ), false ,
97- " Backlight config is not a custom backlight config"
98- );
99- auto &config = std::get<BacklightConfig>(_config.backlight .config );
100- config.user_data = this ;
101- #endif // ESP_PANEL_BOARD_BACKLIGHT_TYPE
102- ESP_UTILS_CHECK_EXCEPTION_RETURN (
103- (backlight = drivers::BacklightFactory::create (
104- _config.backlight .type , &_config.backlight .config
105- )), false , " Create backlight device failed"
106- );
88+ // If the backlight is a custom backlight, the user data should be set to the board instance `this`
89+ if (_config.backlight .type == ESP_PANEL_BACKLIGHT_TYPE_CUSTOM) {
90+ using BacklightConfig = drivers::BacklightCustom::Config;
91+ ESP_UTILS_CHECK_FALSE_RETURN (
92+ std::holds_alternative<BacklightConfig>(_config.backlight .config ), false ,
93+ " Backlight config is not a custom backlight config"
94+ );
95+ auto &config = std::get<BacklightConfig>(_config.backlight .config );
96+ config.user_data = this ;
97+ }
98+ backlight = drivers::BacklightFactory::create (_config.backlight .type , _config.backlight .config );
99+ ESP_UTILS_CHECK_NULL_RETURN (backlight, false , " Create backlight device failed" );
107100 }
108101
109102 std::shared_ptr<drivers::IO_Expander> io_expander = nullptr ;
110103 if (_config.flags .use_io_expander ) {
111104 ESP_UTILS_LOGI (" Initialize IO Expander" );
112- ESP_UTILS_CHECK_EXCEPTION_RETURN (
113- (io_expander = drivers::IO_ExpanderFactory::create (_config.io_expander .name , _config.io_expander .config )),
114- false , " Create IO expander device failed"
115- );
105+ io_expander = drivers::IO_ExpanderFactory::create (_config.io_expander .name , _config.io_expander .config );
106+ ESP_UTILS_CHECK_NULL_RETURN (io_expander, false , " Create IO expander device failed" );
116107 ESP_UTILS_CHECK_FALSE_RETURN (io_expander->init (), false , " IO expander init failed" );
117108 }
118109
0 commit comments