Integration Guide for XProtect VMS
dotnet restore MetriciLprPlugin.sln
dotnet build MetriciLprPlugin.sln --configuration Release
C:\Program Files\Milestone\XProtect <Version>\Server\Plugins\MetriciLprPlugin\
MetriciLprPlugin.dll
MetriciLprPlugin.Admin.dll
MetriciLprPlugin.dll and enable it.New-NetFirewallRule -DisplayName "Metrici LPR Plugin" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow
Through the XProtect Management Client → Plugin Configuration → Camera Configuration you can add each LPR camera:
8080 (configurable)POST /lpr/eventGET /lpr/healthEach request must contain an auth field – an MD5 hash calculated from the request fields plus the camera‑specific secret key.
id – Camera ID (integer)number – License plate stringcountry_codefirst_seen – yyyy‑mm‑dd_hh:mm:sslast_seenprobability – confidence (0‑1)direction – 1=incoming, 2=outgoing, 3=unknowntransactionkeyauth – MD5 hashplate_image, car_image, companion_image (base64 JPEG)curl -X POST http://localhost:8080/lpr/event \
-F "id=1" \
-F "number=ABC123" \
-F "country_code=RO" \
-F "first_seen=2024-01-15_14:30:25" \
-F "last_seen=2024-01-15_14:30:27" \
-F "probability=0.95" \
-F "direction=1" \
-F "transactionkey=tx_12345" \
-F "vehicle_class=Car" \
-F "auth=YOUR_MD5_HASH" \
-F "plate_image=@plate.jpg" \
-F "car_image=@car.jpg"
The project is a WinForms‑based .NET solution. Key components include:
LprEventService – database operations.LprHttpServer – Kestrel HTTP server.AuthenticationService – MD5 validation.src/MetriciLprPlugin/UI.To build from source:
# Restore packages
dotnet restore
# Build Release
dotnet build --configuration Release
# Run tests (if any)
dotnet test
For technical support, consult the plugin logs (located in the application data directory) or contact the development team. More information about Metrici solutions is available at www.metrici.ro.