- Implemented main test script to verify system components and functionality. - Added individual test scripts for camera exposure settings, API changes, camera recovery, maximum FPS, MQTT events, logging, and timezone functionality. - Created service file for system management and automatic startup. - Included detailed logging and error handling in test scripts for better diagnostics. - Ensured compatibility with existing camera SDK and API endpoints.
90 lines
2.5 KiB
Python
90 lines
2.5 KiB
Python
"""
|
|
SDK Configuration for the USDA Vision Camera System.
|
|
|
|
This module handles SDK initialization and configuration to suppress error messages.
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
import logging
|
|
|
|
# Add camera SDK to path
|
|
sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "camera_sdk"))
|
|
import mvsdk
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
# Global flag to track SDK initialization
|
|
_sdk_initialized = False
|
|
|
|
|
|
def initialize_sdk_with_suppression():
|
|
"""Initialize the camera SDK with error suppression"""
|
|
global _sdk_initialized
|
|
|
|
if _sdk_initialized:
|
|
return True
|
|
|
|
try:
|
|
# Initialize SDK with English language
|
|
result = mvsdk.CameraSdkInit(1)
|
|
if result == 0:
|
|
logger.info("Camera SDK initialized successfully")
|
|
|
|
# Try to set system options to suppress logging
|
|
try:
|
|
# These are common options that might control logging
|
|
# We'll try them and ignore failures since they might not be supported
|
|
|
|
# Try to disable debug output
|
|
try:
|
|
mvsdk.CameraSetSysOption("DebugLevel", "0")
|
|
except:
|
|
pass
|
|
|
|
# Try to disable console output
|
|
try:
|
|
mvsdk.CameraSetSysOption("ConsoleOutput", "0")
|
|
except:
|
|
pass
|
|
|
|
# Try to disable error logging
|
|
try:
|
|
mvsdk.CameraSetSysOption("ErrorLog", "0")
|
|
except:
|
|
pass
|
|
|
|
# Try to set log level to none
|
|
try:
|
|
mvsdk.CameraSetSysOption("LogLevel", "0")
|
|
except:
|
|
pass
|
|
|
|
# Try to disable verbose mode
|
|
try:
|
|
mvsdk.CameraSetSysOption("Verbose", "0")
|
|
except:
|
|
pass
|
|
|
|
logger.debug("Attempted to configure SDK logging options")
|
|
|
|
except Exception as e:
|
|
logger.debug(f"Could not configure SDK logging options: {e}")
|
|
|
|
_sdk_initialized = True
|
|
return True
|
|
else:
|
|
logger.error(f"SDK initialization failed with code: {result}")
|
|
return False
|
|
|
|
except Exception as e:
|
|
logger.error(f"SDK initialization failed: {e}")
|
|
return False
|
|
|
|
|
|
def ensure_sdk_initialized():
|
|
"""Ensure the SDK is initialized before camera operations"""
|
|
if not _sdk_initialized:
|
|
return initialize_sdk_with_suppression()
|
|
return True
|