A RTR Automatyczne Rozpoznawanie Tablic Rejestracyjnych Instrukcja interfejsu API I. Opis Interfejs API bazuje na komunikacji sieciowej protokołem HTTP. Komunikacja może odbywać się zarówno zdalnie jak i lokalnie. W pierwszym przypadku serwer ARTR jest samodzielnym urządzeniem sieciowym, a oprogramowanie korzystające z API pracuje na innym komputerze w sieci. W drugim przypadku zarówno serwer ARTR jak i oprogramowanie użytkownika pracują na jednym komputerze i komunikacja odbywa się z serwerem "localhost". Wydawanie komend serwerowi API odbywa się komunikatami GET lub POST z odpowiednimi parametrami. Odpowiedzi od serwera otrzymywane są w formacie JSON (dane) lub JPEG (obraz). II. Komendy 1. Pobranie obrazu kamery ( cam_img.jpg ) Żądanie bieżącego obrazu kamery o wskazanym indeksie. Indeks kamery uzyskuje się z konfiguracji pobranej komendą get_settings. HTTP GET http://[artr IP]/cam_img.jpg?idx=[kamera] [kamera] - indeks kamery począwszy od 0. 2. HTTP Content-Type: image/jpeg [obraz JPEG] Pobranie zdjęcia zdarzenia ( event_img.jpg ) Żądanie zdjęcia zdarzenia zapisanego w bazie danych pod wskazanym identyfikatorem. Identyfikator można uzyskać pobierając bazę danych komendą get_event_list. HTTP GET http://[artr IP]/event_img.jpg?id=[identyfikator] [identyfikator] - identyfikator zdarzenia.
3. HTTP Content-Type: image/jpeg [obraz JPEG] Pobranie ustawień ( get_settings ) Żądanie ustawień systemu ARTR. HTTP GET http://[artr IP]/api/json/get_settings licence_cnt [liczba] Liczba licencji systemu ARTR. licence_key [tekst] Klucz licencyjny. act_code [tekst] Ostatni kod aktywacyjny. min_char_cnt [liczba] Minimalna liczba znaków. max_char_cnt [liczba] Maksymalna liczba znaków. whl_use true, false Stan włączenia białej listy. parking_control true, false Kontrola parkingu. out_repeat [liczba] Powtarzanie sterowania. block_time [liczba] Blokada ponownego rozpoznania. multithr true, false Wielowątkowość. add_space true, false Formatowanie numeru tablicy. camera_set [tablica] Tablica ustawień poszczególnych kamer. Element tablicy camera_set : cam_name [tekst] Nazwa kamery. cam_url [tekst] URL kamery. cam_play true, false Stan włączenia kamery. cam_history_time [liczba] Pamięć tablicy. cam_min_time [liczba] Czas akceptacji. cam_min_move [liczba] Minimalny ruch. cam_max_err [liczba] Dopuszczalna liczba błędów.
cam_zero_o true, false Traktowanie zer jak "O". cam_one_i true, false Traktowanie jedynek jak "I". cam_scale_dn true, false Rozpoznawanie dużych tablic. cam_scale_up true, false Rozpoznawanie małych tablic. cam_store_img true, false Zapisywanie zdjęcia w bazie zdarzeń. cam_direction [liczba] Kierunek przejazdu. cam_sig_in 0, 1 Włączenie pętli wirtualnej. cam_vl_sens [liczba] Czułość pętli wirtualnej. cam_vl_size [liczba] Minimalny rozmiar obiektu dla pętli wirtualnej. cam_vl_time [liczba] Czas podtrzymania pętli wirtualnej. cam_sig_out [liczba] Indeks sterownika wyjść. roi_coord [tablica] Obszar analizy w postaci tablicy czterech liczb: współrzędne lawego, górnego rogu (x i y) oraz szerokość i wysokość obszaru. Wartości są podane procentowo w odniesieniu do rozmiaru obrazu. 4. Pobranie listy zdarzeń ( get_event_list ) Żądanie listy zdarzeń. HTTP GET http://[artr IP]/api/json/get_event_list?[filtr]= [wartość]&...&page_size=[limit]&page_offset=[przesunięcie] [filtr], [wartość] - nazwa kolumny i wartość do filtrowania wyników. Wartości mogą być fragmentem wyszukiwanego ciągu. Lista jest sortowana po czasie zdarzenia. Możliwe filtry: time_from - czas początkowy w postaci "Unix time" time_to - czas końcowy w postaci "Unix time" plate - numer tablicy descr - opis tablicy camera - nazwa kamery note - notatka [limit] - ograniczenie odpowiedzi do wskazanej liczby wierszy [przesunięcie] - rozpoczęcie odpowiedzi od wskazanego wiersza event_list [tablica] Tablica wierszy bazy zdarzeń.
Element tablicy event_list : row_id [liczba] Identyfikator zdarzenia. time [tekst] Czas "Unix time". prob [liczba] Prawdopodobieństwo rozpoznania. plate_dscr [tekst] Opis tablicy z białej listy. camera [tekst] Nazwa kamery. dir [liczba] Kod kierunku przejazdu: 0 - nieokreślony 1 - wjazd 2 - wyjazd 4 - miejsce note [tekst] Notatka. file [tekst] Nazwa pliku. 5. Pobranie zdarzenia ( get_event ) Żądanie pojedynczego zdarzenia. HTTP GET http://[artr IP]/api/json/get_event?id=[identyfikator] [identyfikator] - identyfikator zdarzenia. row_id [liczba] Identyfikator zdarzenia. time [tekst] Czas "Unix time". prob [liczba] Prawdopodobieństwo rozpoznania. plate_dscr [tekst] Opis tablicy z białej listy. camera [tekst] Nazwa kamery. dir [liczba] Kod kierunku przejazdu. note [tekst] Notatka. file [tekst] Nazwa pliku.
6. Pobranie białej listy ( get_white_list ) Żądanie baiłej listy. HTTP GET http://[artr IP]/api/json/get_white_list white_list [tablica] Tablica wierszy białej listy. Element tablicy white_list : row_id [liczba] Identyfikator elementu białej listy. descr [tekst] Opis. create_time [liczba] Czas utworzenia wpisu. valid true, false Ważność. 7. Pobranie statusu kamer ( get_status ) Żądanie aktualnego statusu dla wszystkich kamer. Status zawiera stan każdej kamery i listę aktualnie analizowanych przez nią tablic rejestracyjnych. HTTP GET http://[artr IP]/api/json/get_status camera_set [tablica] Tablica statusów wszystkich kamer. Element tablicy camera_set : name [tekst] Nazwa kamery. play true, false Stan włączenia kamery. plate_set [tablica] Tablica analizowanych numerów rejestracyjnych.
roi_coord [tablica] Obszar analizy w postaci tablicy czterech liczb: współrzędne lawego, górnego rogu (x i y) oraz szerokość i wysokość obszaru. Wartości są podane procentowo w odniesieniu do rozmiaru obrazu. img_cx, img_cy [liczba] Aktualny rozmiar obrazu kamery w punktach. reco_time [liczba] Czas analizy bieżącej klatki (ms). grab_fps [liczba] Prędkość strumienia z kamery (klatki / sekundę). grab_time [tekst] Czas zrobienia zdjęcia w postaci "Unix time". snap_err [liczba] Kod błędu dla kamery: 0 - brak błędu 2 - nieprawidłowy URL lub brak połączenia 3 - nieprawidłowy strumień wideo 4 - brak strumienia wideo 6 - nieznany kompresor 7 - połączenie przerwane 9 - kamera wyłączona 10 - pusty URL. 17 - brak licencji dla kamery. Element tablicy plate_set : coord [tablica] Pozycja czworokąta numeru rejestracyjnego w postaci tablicy ośmiu liczb. Każda para liczb to współrzędne kolejnego narożnika. Wartości są podane procentowo w odniesieniu do rozmiaru obrazu. accept_stat [liczba] Stan analizy numeru rejestracyjnego (wartości bitowe): bit 0 - akceptacja wymaganego czasu widoczności bit 1 - akceptacja wymaganej wielkości ruchu bit 2 - akceptacja białej listy bit 3 - akceptacja kontroli parkingu bit 4 - akceptacja kompletna. prob [liczba] Prawdopodobieństwo rozpoznania.