English Română
Prezentare generală Acest document explică modul de utilizare a luxriot_lpr.php, un script ajutător care primește o cerere HTTP POST de tip License‑Plate‑Recognition (LPR) de la un motor Metrici LPR, o validează, construiește un payload JSON și îl transmite către un server LuxRiot VCA folosind autentificare Digest.

1. Prezentare Generală

2. Câmpuri POST (trimise în corpul cererii)

CâmpDescriereObligatoriu?
idIdentificatorul camerei (număr întreg)Da
numberNumărul de înmatriculare detectatDa
country_codeCodul de țară al plăcuțeiDa
first_seenMarcajul temporal când plăcuța a fost văzută prima datăDa
last_seenMarcajul temporal când plăcuța a fost văzută ultima datăDa
probabilityÎncredere (0‑1)Da
directionDirecția vehiculului (ex. „in", „out")Da
plate_imageURL sau imagine base64 a plăcuței (opțional)Nu
car_imageURL sau imagine base64 a vehiculului (opțional)Nu
transactionkeyIdentificator de tranzacție pentru evenimentDa
gps_latitudeLatitudine (opțional)Nu
gps_longitudeLongitudine (opțional)Nu
have_companionIndicator care semnalează o plăcuță companion (opțional)Nu
companion_imageImaginea plăcuței companion (opțional)Nu
weightGreutatea vehiculului (opțional)Nu
speedViteza vehiculului (opțional)Nu
triggerkeyCheie care identifică sursa declanșatorului (opțional)Nu
vehicle_classClasa vehiculului ca text (ex. „car")Nu
vehicle_colorCuloarea vehiculului ca textNu
vehicle_makerProducătorul vehiculului ca textNu
plate_bboxCoordonatele casetei de delimitare în formatul x;y;width;height (ex. „0.3;0.4;0.2;0.1"). Utilizat pentru a poziționa suprapunerea metadatelor. Implicit: centru (0.5;0.5;0.2;0.1) dacă nu este furnizat.Nu
authHash MD5 calculat dintr-o concatenare a mai multor câmpuri (opțional — dacă este omis, scriptul îl calculează)Nu
Notă: Scriptul va calcula hash-ul auth automat dacă nu este furnizat. Dacă plate_bbox este furnizat, scriptul parsează coordonatele și le folosește pentru a poziționa suprapunerea metadatelor numărului de înmatriculare în sistemul LuxRiot VCA. Coordonatele ar trebui să fie relative la dimensiunile imaginii vehiculului.

3. Procesul de Autentificare

  1. Se preia authkey-ul specific camerei din tabelul MySQL general_cameras folosind id-ul furnizat.
  2. Se construiește un șir concatenat folosind câmpurile enumerate în codul sursă (vezi authString în script) și authkey-ul preluat.
  3. Se calculează md5($authString). Câmpul auth furnizat trebuie să corespundă acestui hash; în caz contrar, cererea este respinsă cu Wrong authentication.

După validarea POST, scriptul efectuează o autentificare HTTP Digest cu serverul LuxRiot. Pașii sunt:

4. Parametri GET (obligatorii în query string)

ParametruDescriere
serverURL-ul de bază sau IP-ul serverului LuxRiot (ex. http://10.0.0.5)
portPortul pe care ascultă serverul (ex. 80 sau 443)
userNumele de utilizator pentru autentificarea Digest
passParola pentru autentificarea Digest
targetidIdentificatorul țintă VCA utilizat în URL-ul endpoint-ului
displaytimeliveOpțional — durata de afișare (ms) pentru vizualizarea live (folosit în metadatele plăcuței)
displaytimearchiveOpțional — durata de afișare (ms) pentru vizualizarea arhivei (folosit în metadatele plăcuței)
Notă: Dacă oricare dintre parametrii obligatorii (server, port, user, pass) lipsește, scriptul returnează HTTP 400.

5. Exemplu de Configurare

Mai jos este un exemplu de configurare care arată cum se setează motorul Metrici LPR pentru a trimite evenimente către acest script. Pentru aceasta, navigați la folderul /home/metrici/metrici și deschideți fișierul .ini corespunzător. Apoi puteți modifica valoarea cheii reporting_url, sau, mai bine, adăugați adresa acestui script la cheia reporting_duplicate_url.

Configurare Motor Metrici LPR

6. Exemplu de Utilizare (cURL)

Următorul exemplu arată cum se apelează scriptul din linia de comandă. Înlocuiți valorile substituente cu date reale.

curl -X POST \
  -d "id=12" \
  -d "number=ABC1234" \
  -d "country_code=US" \
  -d "first_seen=2024-09-19T10:15:00Z" \
  -d "last_seen=2024-09-19T10:15:05Z" \
  -d "probability=0.96" \
  -d "direction=in" \
  -d "transactionkey=tx12345" \
  -d "plate_bbox=0.3;0.4;0.2;0.1" \
  "http://yourhost/luxriot_lpr.php?server=10.0.0.5&port=80&user=admin&pass=secret&targetid=7"

Scriptul va răspunde cu unul dintre următoarele coduri de stare HTTP:

7. Formatul Răspunsului

În caz de succes, scriptul afișează un mesaj în text simplu:

Metadata sent successfully

În caz de eroare, afișează un mesaj ușor de citit și setează codul de stare HTTP corespunzător (vezi lista de mai sus).