⚠ SYSTEM DISARMED — Hardware trigger blocked. Maintenance mode active.
Inspection Session
____-________-????
Active Mode——Set via .env → redeploy to change
ACTIVE SESSION
—
0 frames captured
Stop via hardware trigger or Emergency Stop above
Session
🎬
IDLE
—
›
Train Type
🚂
—
›
Preprocessing
⚙
—
›
AI Inference
🤖
—
Coming soon
—
Raw Frames Captured
—
Preprocessed (stream)
—
OCR (stream)
Bypass Gate
Skip train-type inference — every new session is immediately cleared as passenger. Changes take effect on the next session start.
—
Camera Status
Slot
Serial
Model
Role
Grabbed
FPS
Status
OCR
No cameras active — start a session then click Start Acquisition
🚨 Emergency Capture
If camsvr is broken, run this from your local PowerShell to capture directly from all connected cameras.
Saves frames to NVME in frame-feeder format. Stop with Ctrl+C.
Session ID is printed at the end — paste it into FEEDER_SESSION_ID to replay.
Step 1 — Stop camsvr first (so it releases the cameras)
Click Discover Cameras to find all connected cameras. Assign each camera a slot and role, then click Save Configuration.
Configuration is stored in camera_config.yaml and verified on every startup.
Click Discover to scan cameras...
📷 Basler Cameras
Separate SDK (pypylon) from the IDS cameras above — discovered and assigned independently.
Click Discover Basler to scan...
📡 RTSP / IP Camera (OCR)
For the OCR camera, connected via RTSP URL instead of GigE. Fixed to slot 8. Saved into
camera_config.yaml alongside the IDS slots above.
🔬 Diagnostics
Run these commands on your local machine (with DGX SSH alias configured) to check camera connectivity.
NIC carrier state (quick check)
Returns up if cameras are physically linked, no-carrier if cable/cameras are off.