Координати на обекта Основната цел на API за стрийминг е да информира потребителя за промени в обектите. Този конкретен API работи като поток от информация, като използва технологията SSE (събития, изпращани от сървъра). След като потребителят изпрати заявка за API, първо се показва последната известна координата за всеки обект, а след това на потребителя се извеждат нови данни, веднага щом настъпи промяна. Не е необходимо повторно изпращане на заявката за API, освен ако връзката за стрийминг не е била прекъсната.

Бележка
Тъй като 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, задължителни са само два параметъра:
Parameter | Type | Description |
---|---|---|
version | String | Version of the API, currently only version=1 is available |
api_key | User identification key |
В заявката може да бъде включен само един незадължителен параметър:
Parameter | Type | Description |
---|---|---|
object_id | String | External 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 } }
Всички полета за отговор, които могат да бъдат получени с всеки тип параметър, са описани в следващата таблица:
Name | Type | Description | Units |
---|---|---|---|
object_id | String | Object identifier in our system | Text |
datetime | Date | Date and time point of coordinate generated in hardware Format: "yyyy-mm-ddThh:mm:ss.sssZ" | According ISO8601 |
ignition_status | Enum | Indicating if object has ignition on. "ON" - Ignition on "OFF" - Ignition off "UNKNOWN" - No data about ignition | ON - OFF |
position | Array | Contains all record GPS parameters | |
latitude | Float | GPS coordinate - latitude value | Degrees |
longitude | Float | GPS coordinate - longitude value | Degrees |
altitude | Integer | GPS coordinate - altitude value | Number |
direction | Integer | Moving direction in degrees | 0 = north, increasing clock-wise |
speed | Integer | Object moving speed | km/h |
satellites_count | Integer | Number of visible GPS or GLONASS satellites(depends on device configuration) while generating record in device | Number |
device_inputs | Container for parameters received from hardware | ||
power_supply_voltage | Integer | Object power supply voltage | mV |
ibutton | String | iButton or RFID card code of a driver assigned to a vehicle | Text |
hdop | Float | GPS precision | Number |
first_driver_id | String | TCO code of the first driver | Text |
second_driver_id | String | TCO code of the second driver | Text |
digital_input_1 | Boolean | Configured object or its equipment status true - status = active false - status = inactive | True - False |
digital_input_2 | Boolean | Configured object or its equipment status true - status = active false - status = inactive | True - False |
digital_input_3 | Boolean | Configured object or its equipment status true - status = active false - status = inactive | True - False |
digital_input_4 | Boolean | Configured object or its equipment status true - status = active false - status = inactive | True - False |
temperature_sensor_0 | Float | Temperature sensor data | °C |
temperature_sensor_1 | Float | Temperature sensor data | °C |
temperature_sensor_2 | Float | Temperature sensor data | °C |
temperature_sensor_3 | Float | Temperature sensor data | °C |
temperature_sensor_0_id | String | Temperature sensor ID | Text |
calculated_inputs | Array | ||
mileage | float | Object driven distance (depends on object configuration) | km |
Крайните точки на API, параметрите на заявките и отговорите могат да бъдат прегледани в “Swagger” чрез тази връзка : https://api.fm-track.com
Забележка
Моля, имайте предвид, че отговорът от сървъра е поток от данни, същите данни, които се получават от устройството. Всички получени данни се предоставят “във вида, в който са”. Това означава, че устройството може периодично да изпраща координати на предишна позиция между записите на текущата позиция. API не проверява и не управлява непрекъснатостта на получените данни.