43
43
#define WHITE_AREA_WIDTH (DISPLAY_AREA_WIDTH - (2 * 8 ))
44
44
#define WHITE_AREA_HEIGHT (DISPLAY_AREA_HEIGHT - (WHITE_AREA_Y + 20 ))
45
45
46
-
47
46
#define INFO_BOX_BOARDER 8
48
47
#define INFO_BOX_X ((WHITE_AREA_X + WHITE_AREA_WIDTH) - (INFO_BOX_WIDTH + INFO_BOX_BOARDER))
49
48
#define INFO_BOX_WIDTH 190
50
49
#define INFO_BOX_HEIGHT 56
51
50
51
+ #define BOOT_PROGRESS_WIDTH 300
52
+ #define BOOT_PROGRESS_HEIGHT 16
53
+ #define BOOT_PROGRESS_X ((TFT_SCREEN_WIDTH - BOOT_PROGRESS_WIDTH) / 2 )
54
+ #define BOOT_PROGRESS_Y 235
55
+
52
56
#include " web_server.h"
53
57
54
58
PNG png;
@@ -124,6 +128,9 @@ unsigned long LcdTask::loop(MicroTasks::WakeReason reason)
124
128
DBUGF (" Back buffer %p" , _back_buffer_pixels);
125
129
#endif
126
130
131
+ pinMode (LCD_BACKLIGHT_PIN, OUTPUT);
132
+ digitalWrite (LCD_BACKLIGHT_PIN, HIGH);
133
+
127
134
_initialise = false ;
128
135
}
129
136
@@ -145,14 +152,19 @@ unsigned long LcdTask::loop(MicroTasks::WakeReason reason)
145
152
_full_update = false ;
146
153
}
147
154
148
- _screen.fillRoundRect (90 , 235 , 300 , 16 , 8 , TFT_WHITE);
155
+ TFT_eSprite sprite (&_screen);
156
+ uint16_t *pixels = (uint16_t *)sprite.createSprite (BOOT_PROGRESS_WIDTH, BOOT_PROGRESS_HEIGHT);
157
+ sprite.fillScreen (TFT_OPENEVSE_BACK);
158
+ sprite.fillRoundRect (0 , 0 , BOOT_PROGRESS_WIDTH, BOOT_PROGRESS_HEIGHT, 8 , TFT_WHITE);
149
159
if (_boot_progress > 0 ) {
150
- _screen .fillRoundRect (90 , 235 , _boot_progress, 16 , 8 , TFT_OPENEVSE_GREEN);
160
+ sprite .fillRoundRect (0 , 0 , _boot_progress, BOOT_PROGRESS_HEIGHT , 8 , TFT_OPENEVSE_GREEN);
151
161
}
162
+ _screen.startWrite ();
163
+ _screen.pushImage (BOOT_PROGRESS_X, BOOT_PROGRESS_Y, BOOT_PROGRESS_WIDTH, BOOT_PROGRESS_HEIGHT, pixels);
164
+ _screen.endWrite ();
165
+ sprite.deleteSprite ();
152
166
_boot_progress += 10 ;
153
167
154
- pinMode (LCD_BACKLIGHT_PIN, OUTPUT);
155
- digitalWrite (LCD_BACKLIGHT_PIN, HIGH);
156
168
nextUpdate = 166 ;
157
169
if (_boot_progress >= 300 ) {
158
170
_state = State::Charge;
0 commit comments