Objektų koordinačių pateikimo API

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:

ParametrasTipasAprašymas
versionTekstasAPI versija, šiuo metu galima tik version=1
api_keyTekstasVartotojo identifikacinis raktas

Į užklausą galima įterpti tik vieną pasirenkamą parametrą:

ParametrasTipasAprašymas
object_idTekstasIš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:

ParametrasTipasAprašymasMatavimo vienetai
object_idTekstasObjekto identifikatorius sistemojeTekstas
datetimeData ir laikasĮrangos sugeneruota koordinačių data ir laikas
Formatas: "yyyy-mm-ddThh:mm:ss.sssZ"
Pagal ISO8601
ignition_statusEnumNurodo, ar objekto degimas įjungtas:
"ON" - degimas įjungtas
"OFF" - degimas išjungtas
"UNKNOWN" - nėra duomenų apie degimą
ON - OFF
positionMasyvasTalpina GPS įrašų parametrus
latitudeSlenkančio kablelioGPS koordinatė - platumos vertėLaipsniai
longitudeSlenkančio kablelioGPS koordinatė - ilgumos vertėLaipsniai
altitudeSveikasis skaičiusGPS koordinatė - aukščio vertėSkaičius
directionSveikasis skaičiusJudėjimo kryptis laipsniais0 = šiaurė, didėja pagal laikrodžio rodyklę
speedSveikasis skaičiusObjekto judėjimo greitiskm/h
satellites_countSveikasis skaičiusMatomų GPS ar GLONASS palydovų skaičius (priklauso nuo prietaiso konfigūracijos), prietaise vykstant įrašo generacijaiSkaičius
device_inputsMasyvasIš įrangos gautų parametrų talpykla
power_supply_voltageSveikasis skaičiusObjekto maitinimo šaltinio įtampamV
ibuttonTekstasVairuotojo, priskirto prie transporto priemonės, iButton arba RFID kortelės kodasTekstas
hdopSlenkančio kablelioGPS koordinatės tikslumasSkaičius
first_driver_idTekstasPirmojo vairuotojo tachografo kodasTekstas
second_driver_idTekstasAntrojo vairuotojo tachografo kodasTekstas
digital_input_1Loginė reikšmėSukonfigūruoto objekto ar jo įrangos būsena:
true - status = aktyvus
false - status = neaktyvus
True (Tiesa) - False (Netiesa)
digital_input_2Loginė reikšmėSukonfigūruoto objekto ar jo įrangos būsena:
true - status = aktyvus
false - status = neaktyvus
True (Tiesa) - False (Netiesa)
digital_input_3Loginė reikšmėSukonfigūruoto objekto ar jo įrangos būsena:
true - status = aktyvus
false - status = neaktyvus
True (Tiesa) - False (Netiesa)
digital_input_4Loginė reikšmėSukonfigūruoto objekto ar jo įrangos būsena:
true - status = aktyvus
false - status = neaktyvus
True (Tiesa) - False (Netiesa)
temperature_sensor_0Slenkančio kablelioTemperatūrinio jutiklio duomenys°C
temperature_sensor_1Slenkančio kablelioTemperatūrinio jutiklio duomenys°C
temperature_sensor_2Slenkančio kablelioTemperatūrinio jutiklio duomenys°C
temperature_sensor_3Slenkančio kablelioTemperatūrinio jutiklio duomenys°C
temperature_sensor_0_idTekstasTemperatūrinio jutiklio identifikatoriusTekstas
calculated_inputsMasyvasIš kitų parametrų pagal konfigūraciją apskaičiuotų parametrų talpykla
mileageSlenkančio kablelioObjekto 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.