API потокового передавання координат об’єктів

Основна мета API потокового передавання координат об’єктів – інформувати користувача про зміни об’єктів. Цей API працює як потік інформації, використовуючи технологію SSE (server sent events). Після того, як користувач надіслав запит до API, спочатку відображаються останні відомі координати для кожного об’єкта, а потім нові дані будуть виводитися користувачеві, як тільки відбудуться зміни. Немає необхідності повторно надсилати API-запит, якщо тільки потокове з’єднання не було розірвано.

Це зображення має порожній атрибут alt; ім'я файлу Streaming-API-234x300.png

Примітка
Оскільки API спочатку повертає останню відому координату, у випадках, коли потік API був безперервним і з якихось причин був перепідключений, і за цей час не було отримано нових координат, користувач отримає останню відому координату, яка вже була отримана один раз, таким чином дублюючи запис про координати. Про це слід пам’ятати, оскільки це може спричинити проблеми в різних системах.

Потокове передавання координат об’єкта API можна ініціювати як для одного конкретного об’єкта, так і для всіх доступних користувачеві об’єктів.

Запитайте приклад для конкретного об’єкта:

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

Запит прикладу для всіх об’єктів клієнта:

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

Для роботи цього API обов’язковими є лише два параметри:

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

До запиту можна включити лише один необов’язковий параметр:

ParameterTypeDescription
object_idStringExternal object ID

Відповідь від сервера:

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

Всі поля відповіді, які можна отримати з кожним типом параметра, описані в наступній таблиці:

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

Кінцеві точки API, параметри запитів та відповіді можна переглянути в “Swagger” за цим посиланням: https: //api.fm-track.com.

Примітка
Зверніть увагу, що відповідь від сервера – це потік даних, тих самих даних, які отримуються від пристрою. Всі отримані дані надаються “як є”. Це означає, що пристрій може періодично надсилати координати попередньої позиції між записами поточної позиції. API не перевіряє і не керує безперервністю отриманих даних.