Coordinate dell’oggetto API di streaming

Lo scopo principale delle API Object Coordinates Streaming è quello di informare l’utente sui cambiamenti degli oggetti. Questa particolare API funziona come un flusso di informazioni, utilizzando la tecnologia SSE (server sent events). Una volta che l’utente ha inviato una richiesta API, per prima cosa viene visualizzata l’ultima coordinata nota per ogni oggetto, dopodiché i nuovi dati verranno inviati all’utente non appena si verifica un cambiamento. Non è necessario inviare nuovamente la richiesta API, a meno che la connessione allo streaming non sia stata interrotta.

Questa immagine ha un attributo alt vuoto; il suo nome file è Streaming-API-234x300.png

Note
Since the API first returns the last known coordinate, in cases when the API stream was ongoing and for some reason reconnected, with no new coordinates received between that time, the user will receive the last know coordinate, which has already been received once, thus duplicating the coordinate record. This should be kept in mind, since it may cause issues in various systems.

Coordinate dell’oggetto Lo streaming API può essere avviato sia per un oggetto specifico che per tutti gli oggetti disponibili all’utente.

Esempio di richiesta per un oggetto specifico:

GET /object-coordinates-stream?version=1&object_id=<...>&api_key=<...>
HOST:api.fm-track.com
Content-Type:text/event-stream;charset=UTF-8

Esempio di richiesta per tutti gli oggetti dei clienti:

GET /object-coordinates-stream?version=1&api_key=<...>
HOST:api.fm-track.com
Content-Type:text/event-stream;charset=UTF-8

Affinché questa API funzioni, sono obbligatori solo due parametri:

ParameterTypeDescription
versionStringVersion of the API, currently only version=1 is available
api_keyUser identification key

E solo un parametro opzionale può essere incluso nella richiesta:

ParameterTypeDescription
object_idStringExternal object ID

Risposta dal server:

{
    "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
    }
}

Tutti i campi di risposta che possono essere ricevuti con ogni tipo di parametro sono descritti nella tabella successiva:

NameTypeDescriptionUnits
object_idStringObject identifier in our systemText
datetimeDateDate and time point of coordinate generated in hardware
Format: "yyyy-mm-ddThh:mm:ss.sssZ"
According ISO8601
ignition_statusEnumIndicating if object has ignition on.
"ON" - Ignition on
"OFF" - Ignition off
"UNKNOWN" - No data about ignition
ON - OFF
positionArrayContains all record GPS parameters
latitudeFloatGPS coordinate - latitude valueDegrees
longitudeFloatGPS coordinate - longitude valueDegrees
altitudeIntegerGPS coordinate - altitude valueNumber
directionIntegerMoving direction in degrees0 = north, increasing clock-wise
speedIntegerObject moving speedkm/h
satellites_countIntegerNumber of visible GPS or GLONASS satellites(depends on device configuration) while generating record in deviceNumber
device_inputsContainer for parameters received from hardware
power_supply_voltageIntegerObject power supply voltagemV
ibuttonStringiButton or RFID card code of a driver assigned to a vehicleText
hdopFloatGPS precisionNumber
first_driver_idStringTCO code of the first driverText
second_driver_idStringTCO code of the second driverText
digital_input_1BooleanConfigured object or its equipment status
true - status = active
false - status = inactive
True - False
digital_input_2BooleanConfigured object or its equipment status
true - status = active
false - status = inactive
True - False
digital_input_3BooleanConfigured object or its equipment status
true - status = active
false - status = inactive
True - False
digital_input_4BooleanConfigured object or its equipment status
true - status = active
false - status = inactive
True - False
temperature_sensor_0FloatTemperature sensor data°C
temperature_sensor_1FloatTemperature sensor data°C
temperature_sensor_2FloatTemperature sensor data°C
temperature_sensor_3FloatTemperature sensor data°C
temperature_sensor_0_idStringTemperature sensor IDText
calculated_inputsArray
mileagefloatObject driven distance (depends on object configuration)km

Gli endpoint API, i parametri di richiesta e le risposte possono essere visualizzati in anteprima in “Swagger” attraverso questo link: https: //api.fm-track.com

Nota
Tieni presente che la risposta del server è un flusso di dati, gli stessi che vengono ricevuti dal dispositivo. Tutti i dati ricevuti sono forniti “così come sono”. Ciò significa che il dispositivo può inviare periodicamente le coordinate di una posizione precedente tra le registrazioni della posizione attuale. L’API non controlla né gestisce la continuità dei dati ricevuti.