Adding logging
This commit is contained in:
@@ -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 (
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user