Skip to main content

Camera Operation

The Camera Operation project (Alert.CA.CameraOperation) is an Azure Functions v4 app that handles camera health monitoring, configuration synchronization, and third-party data integrations. While the Image Acquisition Engine focuses on continuous image capture, Camera Operation handles the supporting operational tasks.

Architecture​

Functions​

CameraPingOrchestrator (Durable)​

A durable orchestration that performs parallel health checks across all cameras:

  1. Fetches the list of all active camera IDs
  2. Fans out β€” calls GetModelNumberByDevice activity for each camera in parallel
  3. Each activity pings the camera via VAPIX to verify connectivity and retrieve the model number
  4. Fans in β€” collects results
  5. Cameras that failed to respond are logged to Blob Storage via WriteErrorCamerasToBlob

This provides a system-wide health snapshot and detects cameras that have gone offline.

UcsdCameraConfigRefresher (Timer)​

Runs every 10 minutes to synchronize camera configuration from the UCSD Metadata API:

  1. Calls IUCSDClient.GetAllDeviceConfigsAsync() to fetch latest configs
  2. Compares with existing local configs
  3. Updates any changed configurations in the local data store

This ensures the system stays in sync when cameras are added, removed, or reconfigured at the UCSD level.

PublishBlobFunction (Queue)​

Processes three queue triggers for blob storage operations:

  • Handles deferred blob publishing tasks
  • Processes image archival requests
  • Manages blob lifecycle operations

PulsePointPushFunction (HTTP)​

Pushes camera data to the PulsePoint third-party service:

  • Two HTTP endpoints for pushing data
  • Sends camera location, status, and metadata to PulsePoint
  • Used for emergency response integration

Documentation Sections​