@@ -125,22 +125,27 @@ bool BraccioClass::begin(voidFuncPtr customMenu) {
125
125
126
126
_display_thread.start (mbed::callback (this , &BraccioClass::display_thread));
127
127
128
- lvgl_splashScreen (2000 );
128
+ auto check_power_func = [this ]()
129
+ {
130
+ if (!PD_UFP.is_PPS_ready ())
131
+ {
132
+ i2c_mutex.lock ();
133
+ PD_UFP.print_status (Serial);
134
+ PD_UFP.set_PPS (PPS_V (7.2 ), PPS_A (2.0 ));
135
+ delay (10 );
136
+ i2c_mutex.unlock ();
137
+ }
138
+ };
139
+
140
+ lvgl_splashScreen (2000 , check_power_func);
129
141
lv_obj_clean (lv_scr_act ());
130
142
131
143
if (!PD_UFP.is_PPS_ready ())
132
144
lvgl_pleaseConnectPower ();
133
145
134
146
/* Loop forever, if no power is attached. */
135
147
while (!PD_UFP.is_PPS_ready ())
136
- {
137
- i2c_mutex.lock ();
138
- PD_UFP.print_status (Serial);
139
- PD_UFP.set_PPS (PPS_V (7.2 ), PPS_A (2.0 ));
140
- delay (10 );
141
- i2c_mutex.unlock ();
142
- Serial.println (millis ());
143
- }
148
+ check_power_func ();
144
149
lv_obj_clean (lv_scr_act ());
145
150
146
151
if (customMenu) {
@@ -203,7 +208,7 @@ void BraccioClass::display_thread()
203
208
204
209
#include < extra/libs/gif/lv_gif.h>
205
210
206
- void BraccioClass::lvgl_splashScreen (unsigned long const duration_ms)
211
+ void BraccioClass::lvgl_splashScreen (unsigned long const duration_ms, std::function< void ()> check_power_func )
207
212
{
208
213
LV_IMG_DECLARE (img_bulb_gif);
209
214
lv_obj_t * img = lv_gif_create (lv_scr_act ());
@@ -216,14 +221,7 @@ void BraccioClass::lvgl_splashScreen(unsigned long const duration_ms)
216
221
*/
217
222
for (unsigned long const start = millis (); millis () - start < duration_ms;)
218
223
{
219
- if (!PD_UFP.is_PPS_ready ())
220
- {
221
- i2c_mutex.lock ();
222
- PD_UFP.print_status (Serial);
223
- PD_UFP.set_PPS (PPS_V (7.2 ), PPS_A (2.0 ));
224
- delay (10 );
225
- i2c_mutex.unlock ();
226
- }
224
+ check_power_func ();
227
225
}
228
226
229
227
lv_obj_del (img);
0 commit comments