fix: validator
This commit is contained in:
parent
791f611f7d
commit
61ac39b4f3
3 changed files with 106 additions and 95 deletions
|
@ -297,31 +297,31 @@ class WebSocketHandler:
|
|||
async def _reconcile_subscriptions_with_tracking(self, target_subscriptions) -> dict:
|
||||
"""Reconcile subscriptions with tracking integration."""
|
||||
try:
|
||||
# First, we need to create tracking integrations for each unique model
|
||||
# Create separate tracking integrations for each subscription (camera isolation)
|
||||
tracking_integrations = {}
|
||||
|
||||
for subscription_payload in target_subscriptions:
|
||||
subscription_id = subscription_payload['subscriptionIdentifier']
|
||||
model_id = subscription_payload['modelId']
|
||||
|
||||
# Create tracking integration if not already created
|
||||
if model_id not in tracking_integrations:
|
||||
# Get pipeline configuration for this model
|
||||
pipeline_parser = model_manager.get_pipeline_config(model_id)
|
||||
if pipeline_parser:
|
||||
# Create tracking integration with message sender
|
||||
tracking_integration = TrackingPipelineIntegration(
|
||||
pipeline_parser, model_manager, model_id, self._send_message
|
||||
)
|
||||
# Create separate tracking integration per subscription for camera isolation
|
||||
# Get pipeline configuration for this model
|
||||
pipeline_parser = model_manager.get_pipeline_config(model_id)
|
||||
if pipeline_parser:
|
||||
# Create tracking integration with message sender (separate instance per camera)
|
||||
tracking_integration = TrackingPipelineIntegration(
|
||||
pipeline_parser, model_manager, model_id, self._send_message
|
||||
)
|
||||
|
||||
# Initialize tracking model
|
||||
success = await tracking_integration.initialize_tracking_model()
|
||||
if success:
|
||||
tracking_integrations[model_id] = tracking_integration
|
||||
logger.info(f"[Tracking] Created tracking integration for model {model_id}")
|
||||
else:
|
||||
logger.warning(f"[Tracking] Failed to initialize tracking for model {model_id}")
|
||||
# Initialize tracking model
|
||||
success = await tracking_integration.initialize_tracking_model()
|
||||
if success:
|
||||
tracking_integrations[subscription_id] = tracking_integration
|
||||
logger.info(f"[Tracking] Created isolated tracking integration for subscription {subscription_id} (model {model_id})")
|
||||
else:
|
||||
logger.warning(f"[Tracking] No pipeline config found for model {model_id}")
|
||||
logger.warning(f"[Tracking] Failed to initialize tracking for subscription {subscription_id} (model {model_id})")
|
||||
else:
|
||||
logger.warning(f"[Tracking] No pipeline config found for model {model_id} in subscription {subscription_id}")
|
||||
|
||||
# Now reconcile with StreamManager, adding tracking integrations
|
||||
current_subscription_ids = set()
|
||||
|
@ -379,8 +379,8 @@ class WebSocketHandler:
|
|||
|
||||
logger.info(f"[SUBSCRIPTION_MAPPING] subscription_id='{subscription_id}' → camera_id='{camera_id}'")
|
||||
|
||||
# Get tracking integration for this model
|
||||
tracking_integration = tracking_integrations.get(model_id)
|
||||
# Get tracking integration for this subscription (camera-isolated)
|
||||
tracking_integration = tracking_integrations.get(subscription_id)
|
||||
|
||||
# Extract crop coordinates if present
|
||||
crop_coords = None
|
||||
|
@ -412,7 +412,7 @@ class WebSocketHandler:
|
|||
)
|
||||
|
||||
if success and tracking_integration:
|
||||
logger.info(f"[Tracking] Subscription {subscription_id} configured with tracking for model {model_id}")
|
||||
logger.info(f"[Tracking] Subscription {subscription_id} configured with isolated tracking for model {model_id}")
|
||||
|
||||
return success
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue