API за стрийминг на координати на обекти

Координати на обекта Основната цел на API за стрийминг е да информира потребителя за промени в обектите. Този конкретен API работи като поток от информация, като използва технологията SSE (събития, изпращани от сървъра). След като потребителят изпрати заявка за 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 не проверява и не управлява непрекъснатостта на получените данни.