Objektų koordinačių pateikimo API pagrindinis tikslas yra informuoti vartotoją apie objektų pokyčius. Ši API sąsaja veikia kaip informacijos srautas, naudojantis SSE (server sent events) technologiją. Kai vartotojas nusiunčia API užklausą, pirmiausia rodomos kiekvieno objekto vėliausios žinomos koordinatės, toliau vartotojui bus pateikiami nauji duomenys, vos tik įvyksta pokytis. Pakartotinai nusiųsti API užklausos nebūtina, nebent nutrūksta srauto ryšys.
Pastaba
Kadangi API pirmiausia parodo vėliausias žinomas koordinates, tais atvejais, kai API srautas buvo nepertraukiamas ir dėl kokios nors priežasties buvo pakartotinai prisijungta, vartotojas gaus vėliausias žinomas koordinates, kurios jau buvo vieną kartą gautos. Dėl to atsiras koordinačių įrašo kopija. Reikėtų tai atsiminti, kadangi tai gali sukelti problemų įvairiose sistemose.
Objektų koordinačių pateikimo API srautą galima pradėti vienam konkrečiam objektui arba visiems vartotojui pasiekiamiems objektams.
Konkretaus objekto užklausos pavyzdys:
GET /object-coordinates-stream?version=1&object_id=<…>&api_key=<…>
HOST:api.fm-track.com
Content-Type:text/event-stream;charset=UTF-8
Visų kliento objektų užklausos pavyzdys:
GET /object-coordinates-stream?version=1&api_key=<…>
HOST:api.fm-track.com
Content-Type:text/event-stream;charset=UTF-8
Privalomi tik du parametrai, kad veiktų API:
Parametras | Tipas | Aprašymas |
---|---|---|
version | Tekstas | API versija, šiuo metu galima tik version=1 |
api_key | Tekstas | Vartotojo identifikacinis raktas |
Į užklausą galima įterpti tik vieną pasirenkamą parametrą:
Parametras | Tipas | Aprašymas |
---|---|---|
object_id | Tekstas | Išorinis objekto ID |
Serverio atsakas:
{ "object_id" : "abc123", "datetime" : "2017-04-13T06:58:48.090Z", "ignition_status" : "UNKNOWN", "position" : { "altitude" : 0, "direction" : 0, "latitude" : 0, "longitude" : 0, "hdop": 0, "satellites_count" : 0, "speed" : 0 }, "device_inputs" : { "digital_input_1" : true, "digital_input_2" : true, "digital_input_3" : true, "digital_input_4" : true, "power_supply_voltage" : 0, "ibutton" : "xxxxxxxxxx", "first_driver_id" : "xxxxxxxxxx", "second_driver_id" : "xxxxxxxxxx", "temperature_sensor_0": 0, "temperature_sensor_1": 0, "temperature_sensor_2": 0, "temperature_sensor_3": 0, "temperature_sensor_0_id": "xxxxxxxxxx" }, "calculated_inputs":{ "mileage" : 0 } }
Visi atsakymų, kuriuos galima gauti su kiekvienu parametro tipu, laukeliai aprašyti sekančioje lentelėje:
Parametras | Tipas | Aprašymas | Matavimo vienetai |
---|---|---|---|
object_id | Tekstas | Objekto identifikatorius sistemoje | Tekstas |
datetime | Data ir laikas | Įrangos sugeneruota koordinačių data ir laikas Formatas: "yyyy-mm-ddThh:mm:ss.sssZ" | Pagal ISO8601 |
ignition_status | Enum | Nurodo, ar objekto degimas įjungtas: "ON" - degimas įjungtas "OFF" - degimas išjungtas "UNKNOWN" - nėra duomenų apie degimą | ON - OFF |
position | Masyvas | Talpina GPS įrašų parametrus | |
latitude | Slenkančio kablelio | GPS koordinatė - platumos vertė | Laipsniai |
longitude | Slenkančio kablelio | GPS koordinatė - ilgumos vertė | Laipsniai |
altitude | Sveikasis skaičius | GPS koordinatė - aukščio vertė | Skaičius |
direction | Sveikasis skaičius | Judėjimo kryptis laipsniais | 0 = šiaurė, didėja pagal laikrodžio rodyklę |
speed | Sveikasis skaičius | Objekto judėjimo greitis | km/h |
satellites_count | Sveikasis skaičius | Matomų GPS ar GLONASS palydovų skaičius (priklauso nuo prietaiso konfigūracijos), prietaise vykstant įrašo generacijai | Skaičius |
device_inputs | Masyvas | Iš įrangos gautų parametrų talpykla | |
power_supply_voltage | Sveikasis skaičius | Objekto maitinimo šaltinio įtampa | mV |
ibutton | Tekstas | Vairuotojo, priskirto prie transporto priemonės, iButton arba RFID kortelės kodas | Tekstas |
hdop | Slenkančio kablelio | GPS koordinatės tikslumas | Skaičius |
first_driver_id | Tekstas | Pirmojo vairuotojo tachografo kodas | Tekstas |
second_driver_id | Tekstas | Antrojo vairuotojo tachografo kodas | Tekstas |
digital_input_1 | Loginė reikšmė | Sukonfigūruoto objekto ar jo įrangos būsena: true - status = aktyvus false - status = neaktyvus | True (Tiesa) - False (Netiesa) |
digital_input_2 | Loginė reikšmė | Sukonfigūruoto objekto ar jo įrangos būsena: true - status = aktyvus false - status = neaktyvus | True (Tiesa) - False (Netiesa) |
digital_input_3 | Loginė reikšmė | Sukonfigūruoto objekto ar jo įrangos būsena: true - status = aktyvus false - status = neaktyvus | True (Tiesa) - False (Netiesa) |
digital_input_4 | Loginė reikšmė | Sukonfigūruoto objekto ar jo įrangos būsena: true - status = aktyvus false - status = neaktyvus | True (Tiesa) - False (Netiesa) |
temperature_sensor_0 | Slenkančio kablelio | Temperatūrinio jutiklio duomenys | °C |
temperature_sensor_1 | Slenkančio kablelio | Temperatūrinio jutiklio duomenys | °C |
temperature_sensor_2 | Slenkančio kablelio | Temperatūrinio jutiklio duomenys | °C |
temperature_sensor_3 | Slenkančio kablelio | Temperatūrinio jutiklio duomenys | °C |
temperature_sensor_0_id | Tekstas | Temperatūrinio jutiklio identifikatorius | Tekstas |
calculated_inputs | Masyvas | Iš kitų parametrų pagal konfigūraciją apskaičiuotų parametrų talpykla | |
mileage | Slenkančio kablelio | Objekto nuvažiuotas atstumas (priklauso nuo objekto konfigūracijos) | km |
API rezultatus, užklausų parametrus ir atsakymus galima peržiūrėti „Swagger“ programoje, naudojantis šia nuoroda: https://api.fm-track.com
Pastaba
Atkreipkite dėmesį, kad atsakymas iš serverio yra srautas duomenų, kurie gaunami iš prietaiso. Visi gauti duomenys yra pateikiami tokie, kokie jie yra. Tai reiškia, kad tarp dabartinės padėties įrašų prietaisas gali periodiškai siųsti ankstesnės padėties koordinates. API netikrina ir netvarko gaunamų duomenų tęstinumo.