Skip to content

Commit 1adfe54

Browse files
fix and simplify lvgltest
1 parent 369625f commit 1adfe54

File tree

2 files changed

+26
-40
lines changed
  • internal_filesystem/apps

2 files changed

+26
-40
lines changed

internal_filesystem/apps/com.example.helloworld/assets/hello.py

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# Initialize
44

5-
import display_driver
5+
import display_driver # not needed, but included because the LVGL simulator does it
66
import lvgl as lv
77

88
# Create a button with a label
@@ -17,17 +17,10 @@
1717
# END OF COPY-PASTE FROM https://sim.lvgl.io/v9.0/micropython/ports/webassembly/
1818

1919

20-
def check_running(timer):
21-
if lv.screen_active() == scr:
22-
print("hello.py is still foreground")
23-
else:
20+
def janitor_cb(timer):
21+
if lv.screen_active() != scr:
2422
print("hello.py lost foreground, cleaning up...")
25-
timer1.delete()
23+
janitor.delete()
24+
# No cleanups to do, but in a real app, you might stop timers, deinitialize hardware devices you used, close network connections, etc.
2625

27-
timer1 = lv.timer_create(check_running, 1000, None)
28-
29-
# Added: wait until the user navigates away instead of stopping immediately.
30-
#while lv.screen_active() == scr:
31-
# import time
32-
# time.sleep_ms(100)
33-
#print("User navigated away from the HelloWorld app. Bye bye!")
26+
janitor = lv.timer_create(janitor_cb, 1000, None)
Lines changed: 20 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
appscreen = lv.screen_active()
2-
31
import time
42
import random
53

@@ -10,7 +8,7 @@
108
spinner_count = 0
119
metrics_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

Comments
 (0)