Adding logging

This commit is contained in:
2026-03-17 15:50:21 -07:00
parent 592fb0c078
commit 697528c991
2 changed files with 13 additions and 6 deletions

View File

@@ -1,3 +1,4 @@
import logging
from collections.abc import Generator from collections.abc import Generator
from datetime import UTC, datetime from datetime import UTC, datetime
from typing import Any from typing import Any
@@ -9,6 +10,9 @@ from src.camera import camera
app = Flask(__name__) app = Flask(__name__)
logging.basicConfig(level=logging.INFO)
@app.get("/heartbeat") @app.get("/heartbeat")
def heartbeat() -> tuple[Response, int]: def heartbeat() -> tuple[Response, int]:
return ( return (

View File

@@ -54,22 +54,25 @@ class Camera:
def _capture_loop(self) -> None: def _capture_loop(self) -> None:
assert self._picam is not None assert self._picam is not None
# warm up — let the sensor settle
self._stop_event.wait(0.5) self._stop_event.wait(0.5)
logger.info("Capture loop started") logger.info("Capture loop: starting")
while not self._stop_event.is_set(): while not self._stop_event.is_set():
try: try:
# capture raw numpy array then encode to JPEG manually logger.info("Capture loop: attempting capture_array")
array = self._picam.capture_array("main") array = self._picam.capture_array("main")
logger.info(f"Capture loop: got array {array.shape}")
buffer = io.BytesIO() buffer = io.BytesIO()
img = Image.fromarray(array) img = Image.fromarray(array)
img.save(buffer, format="JPEG", quality=85) img.save(buffer, format="JPEG", quality=85)
frame = buffer.getvalue()
logger.info(f"Capture loop: encoded JPEG {len(frame)} bytes")
with self._lock: with self._lock:
self._frame = buffer.getvalue() self._frame = frame
self._frame_event.set() # signal first frame is ready self._frame_event.set()
logger.info("Capture loop: frame event set")
except Exception as e: except Exception as e:
logger.error(f"Capture error: {e}") logger.error(f"Capture loop ERROR: {e}", exc_info=True)
self._stop_event.wait(0.1) self._stop_event.wait(0.1)
def stop(self) -> None: def stop(self) -> None: