- Consolidated API route definitions by registering routes from separate modules for better organization and maintainability. - Removed redundant route definitions from the APIServer class, improving code clarity. - Updated camera monitoring and recording modules to utilize a shared context manager for suppressing camera SDK errors, enhancing error handling. - Adjusted timeout settings in camera operations for improved reliability during frame capture. - Enhanced logging and error handling across camera operations to facilitate better debugging and monitoring.
32 lines
762 B
Python
32 lines
762 B
Python
"""
|
|
Shared utilities for camera operations.
|
|
"""
|
|
|
|
import contextlib
|
|
import os
|
|
|
|
|
|
@contextlib.contextmanager
|
|
def suppress_camera_errors():
|
|
"""Context manager to temporarily suppress camera SDK error output"""
|
|
# Save original file descriptors
|
|
original_stderr = os.dup(2)
|
|
original_stdout = os.dup(1)
|
|
|
|
try:
|
|
# Redirect stderr and stdout to devnull
|
|
devnull = os.open(os.devnull, os.O_WRONLY)
|
|
os.dup2(devnull, 2) # stderr
|
|
os.dup2(devnull, 1) # stdout (in case SDK uses stdout)
|
|
os.close(devnull)
|
|
|
|
yield
|
|
|
|
finally:
|
|
# Restore original file descriptors
|
|
os.dup2(original_stderr, 2)
|
|
os.dup2(original_stdout, 1)
|
|
os.close(original_stderr)
|
|
os.close(original_stdout)
|
|
|