API de streaming de coordenadas de objeto

El propósito principal de la API de streaming de coordenadas de objeto es informar al usuario sobre cambios del objeto. Esta API funciona como un stream de información, usando tecnología SSE (eventos enviados por servidor). Al enviar una solicitud de API, al principio se muestra la última conocida coordenada para cada objeto, luego se mostrarán datos nuevos tan pronto como se ocurren cambios. No hay necesidad de enviar la solicitud de API de nuevo a menos que no hay conectividad de streaming

Note
Debido a que la API devuelve la última conocida coordenada, en los casos cuando el streaming de la API estaba activo y tuvo que reconectarse por alguna razón sin recibir coordenadas nuevas, el usuario recibirá la última conocida coordenada, duplicando el registro de coordenada. Hay que tener esto en cuenta, porque puede producir problemas en algunos sistemas. Se puede iniciar el streaming de la API para un objeto específico o todos los objetos disponibles para el usuario.

Ejemplo de solicitud para un objeto específico:

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

Ejemplo de solicitud para todos los objetos disponibles:

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

Dos parámetros son obligatorios para que funcione esta API:

ParámetroTipoDescripción
versionCadenaVersión de la API, actualmente solo version=1 está disponible
api_keyCadenaClave de identificación del usuario

Se puede incluir un parámetro adicional a la solicitud:

ParámetroTipoDescripción
object_idCadenaID del objeto externo

Respuesta del servidor:

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

Todos los parámetros de respuesta que se puede recibir:

ParámetroTipoDescripciónUnidades
object_idCadenaIdentificador del objeto en el sistemaTexto
datetimeFecha y horaLa fecha y hora de coordenada, generada en el hardware. Formato: "yyyy-mm-ddThh:mm:ss.sssZ"Según ISO8601
ignition_statusEnumIndica el estado de ignición del objeto.
"ON" - Ignición encendida
"OFF" - Ignición apagada
"UNKNOWN" - No hay datos de ignición
ON - OFF
positionArrayContiene todos los parámetros de registros GPS
latitudeDecimalCoordenada GPS - valor de latitudGrados
longitudeDecimalCoordenada GPS - valor de longitudGrados
altitudeNúmero enteroCoordenada GPS - valor de altitudNúmero
directionNúmero enteroDirección de movimiento en grados0 = norte, creciente en el sentido horario
speedNúmero enteroVelocidad del objeto en movimientokm/h
satellites_countNúmero enteroCantidad de visibles satélites GPS o GLONASS (depende de la configuración del dispositivo) al generar el registro en el dispositivoNúmero
device_inputsArrayContiene los parámetros recibidos desde el hardware
power_supply_voltageNúmero enteroVoltaje de fuente de alimentación del dispositivomV
ibuttonCadenaCódigo de iButton o tarjeta RFID de un conductor asignado a un vehículoTexto
hdopDecimalPrecisión de coordenada GPSNúmero
first_driver_idCadenaCódigo de tacógrafo del primer conductorTexto
second_driver_idCadenaCódigo de tacógrafo del segundo conductorTexto
digital_input_1BooleanoEstado del objeto configurado o su equipo:
True - activo
False - inactivo
True - False (Verdadero - Falso)
digital_input_2BooleanoEstado del objeto configurado o su equipo:
True - activo
False - inactivo
True - False (Verdadero - Falso)
digital_input_3BooleanoEstado del objeto configurado o su equipo:
True - activo
False - inactivo
True - False (Verdadero - Falso)
digital_input_4BooleanoEstado del objeto configurado o su equipo:
True - activo
False - inactivo
True - False (Verdadero - Falso)
temperature_sensor_0DecimalDatos de sensor de temperatura°C
temperature_sensor_1DecimalDatos de sensor de temperatura°C
temperature_sensor_2DecimalDatos de sensor de temperatura°C
temperature_sensor_3DecimalDatos de sensor de temperatura°C
temperature_sensor_0_idCadenaID de sensor de temperaturaTexto
calculated_inputsArrayContiene los parámetros calculados en el sistema desde otros parámetros, según la configuración
mileageDecimalDistancia recorrida por el dispositivo (depende de la configuración del dispositivo)km

 

Se puede ver los puntos finales de API, los parámetros de solicitudes y las respuestas en “Swagger” haciendo clic en este enlace: https://api.fm-track.com

Nota
Por favor tenga en cuenta que la respuesta del servidor es un stream de datos, de los mismos datos, recibidos desde el dispositivo. Todos los datos recibidos se proporcionan “como están”. Esto significa que el dispositivo puede periódicamente enviar coordenadas de una ubicación previa entre registros de la ubicación actual. La API no comprueba o gestiona la continuidad de los datos recibidos.