1- appscreen = lv .screen_active ()
2-
31import time
42import random
53
108spinner_count = 0
119metrics_label = None
1210
13- def add_spinner_and_update (timer ):
11+ def add_spinner (timer ):
1412 global spinner_count , metrics_label
1513 try :
1614 x = random .randint (0 , appscreen .get_width () - SPINNER_SIZE )
@@ -27,27 +25,22 @@ def add_spinner_and_update(timer):
2725 metrics_label .set_text (f"Spinners: { spinner_count } " )
2826 print (f"Finished adding spinner { spinner_count } " )
2927
30- def run_benchmark ():
31- global spinner_count , metrics_label
32- print ("Starting LVGL spinner benchmark..." )
33- metrics_label = lv .label (appscreen )
34- metrics_label .set_style_text_color (lv .color_white (), 0 )
35- metrics_label .set_style_bg_color (lv .color_black (), 0 )
36- metrics_label .set_style_bg_opa (lv .OPA .COVER , 0 )
37- metrics_label .set_pos (10 , 10 )
38- metrics_label .set_text ("Spinners: 0" )
39- timer = lv .timer_create (add_spinner_and_update , 2000 , None )
40- th .disable () # taskhandler control is necessary, otherwise there are concurrency issues
41- while appscreen == lv .screen_active ():
42- lv .task_handler ()
43- time .sleep_ms (10 )
44- lv .tick_inc (10 )
45- th .enable ()
46- timer .delete ()
47-
48- try :
49- run_benchmark ()
50- except Exception as e :
51- print (f"Error in benchmark: { e } " )
52-
53- print ("lvgltest.py exiting" )
28+
29+ def janitor_cb (timer ):
30+ if lv .screen_active () != appscreen :
31+ print ("lvgltest.py lost foreground, cleaning up..." )
32+ janitor .delete ()
33+ add_spinner_timer .delete ()
34+
35+ appscreen = lv .screen_active ()
36+ metrics_label = lv .label (appscreen )
37+ metrics_label .set_style_text_color (lv .color_white (), 0 )
38+ metrics_label .set_style_bg_color (lv .color_black (), 0 )
39+ metrics_label .set_style_bg_opa (lv .OPA .COVER , 0 )
40+ metrics_label .set_pos (10 , 10 )
41+ metrics_label .set_text ("Spinners: 0" )
42+
43+ print ("Starting LVGL spinner benchmark..." )
44+ janitor = lv .timer_create (janitor_cb , 500 , None )
45+ add_spinner_timer = lv .timer_create (add_spinner , 2000 , None )
46+
0 commit comments