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:
- Fetches the list of all active camera IDs
- Fans out β calls
GetModelNumberByDeviceactivity for each camera in parallel - Each activity pings the camera via VAPIX to verify connectivity and retrieve the model number
- Fans in β collects results
- 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:
- Calls
IUCSDClient.GetAllDeviceConfigsAsync()to fetch latest configs - Compares with existing local configs
- 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β
- Camera Health Monitoring β Parallel ping orchestration and error logging
- Configuration Refresh β UCSD config sync schedule and logic
- Third-Party Integrations β PulsePoint data push
- Error Logging β Blob-based error camera tracking