Skip to content

Commit ba82e3d

Browse files
camtest: cleanup
1 parent 7288501 commit ba82e3d

File tree

2 files changed

+25
-34
lines changed

2 files changed

+25
-34
lines changed

draft_code/saved_functions.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -602,7 +602,7 @@ def log_callback(level, log_str):
602602
# Convert log_str to string if it's a bytes object
603603
log_str = log_str.decode() if isinstance(log_str, bytes) else log_str
604604
# Optional: Print for debugging
605-
print(f"Level: {level}, Log: {log_str}")
605+
#print(f"Level: {level}, Log: {log_str}")
606606
# Log message format: "sysmon: 25 FPS (refr_cnt: 8 | redraw_cnt: 1), ..."
607607
if "sysmon:" in log_str and "FPS" in log_str:
608608
try:
@@ -628,14 +628,18 @@ def get_fps():
628628

629629

630630
# Main loop
631-
for _ in range(10):
632-
import time
633-
fps = get_fps()
634-
if fps > 0: # Only print when FPS is updated
635-
print("Current FPS:", fps)
636-
time.sleep(1)
637-
638-
631+
def print_fps():
632+
for _ in range(100):
633+
import time
634+
fps = get_fps()
635+
if fps > 0: # Only print when FPS is updated
636+
print("Current FPS:", fps)
637+
time.sleep(1)
638+
639+
640+
import _thread
641+
_thread.stack_size(12*1024)
642+
_thread.start_new_thread(print_fps, ())
639643

640644
# crash:
641645

internal_filesystem/apps/com.example.camtest/assets/camtest.py

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,12 @@ def close_button_click(e):
6161

6262
def snap_button_click(e):
6363
print("Picture taken!")
64+
import os
6465
try:
65-
import os
6666
os.mkdir("data")
67+
except OSError:
68+
pass
69+
try:
6770
os.mkdir("data/com.example.camtest")
6871
except OSError:
6972
pass
@@ -95,38 +98,22 @@ def qr_button_click(e):
9598
qr_label.set_text(lv.SYMBOL.EYE_OPEN)
9699

97100

98-
def try_capture_only_webcam():
99-
global current_cam_buffer, image_dsc, image
100-
new_cam_buffer = webcam.capture_frame(cam) # Returns memoryview
101-
if new_cam_buffer and len(new_cam_buffer) == 240 * 240:
102-
image_dsc.data = new_cam_buffer # Update image descriptor
103-
image.set_src(image_dsc) # Update LVGL image
104-
#if current_cam_buffer is not None:
105-
# webcam.free_buffer(cam) # Free the old buffer
106-
#current_cam_buffer = new_cam_buffer # Clear reference to allow GC
107-
else:
108-
print("Invalid buffer size:", len(new_cam_buffer))
109-
110101
def try_capture():
111102
global current_cam_buffer, image_dsc, image, use_webcam
112103
if use_webcam:
113104
new_cam_buffer = webcam.capture_frame(cam)
114105
elif cam.frame_available():
115106
new_cam_buffer = cam.capture() # Returns memoryview
116107
if new_cam_buffer and len(new_cam_buffer):
117-
# print("Invalid buffer size:", len(new_cam_buffer))
118-
# cam.free_buffer()
119-
# return
120-
# Update image descriptor with new memoryview
121108
image_dsc.data = new_cam_buffer
122-
# Set image source to update LVGL (implicitly invalidates widget)
123109
image.set_src(image_dsc)
124-
#current_cam_buffer = None # Clear reference to allow GC
125110
#image.invalidate() #does not work
126-
# Free the previous buffer (if any) after setting new data
127-
if current_cam_buffer is not None and not use_webcam:
111+
if not use_webcam:
128112
cam.free_buffer() # Free the old buffer
129113
current_cam_buffer = new_cam_buffer # Store new buffer reference
114+
else:
115+
print("No image received from camera, ignoring...")
116+
return
130117

131118

132119
def build_ui():
@@ -214,7 +201,7 @@ def init_cam():
214201

215202
cam = init_cam()
216203
if not cam:
217-
print("init cam failed, retrying with webcam...")
204+
print("camtest.py: no internal camera found, trying webcam on /dev/video0")
218205
try:
219206
cam = webcam.init("/dev/video0") # Initialize webcam with device path
220207
use_webcam = True
@@ -228,9 +215,9 @@ def init_cam():
228215
try_capture()
229216
# Task handler needs to be updated from the same thread, otherwise it causes concurrency issues:
230217
lv.task_handler()
231-
time.sleep_ms(5)
232-
lv.tick_inc(5)
233-
print("App backgrounded, deinitializing camera...")
218+
time.sleep_ms(1)
219+
lv.tick_inc(1)
220+
print("camtest.py: stopping...")
234221
if use_webcam:
235222
webcam.deinit(cam) # Deinitializes webcam
236223
else:

0 commit comments

Comments
 (0)