check_updates
Para obtener todas las actualizaciones de eventos de todas las unidades agregadas a la sesión, utilice el método events/check_updates.
Antes de llamar a este método, agregue unidades a la sesión utilizando el método events/update_units.
Endpoint
svc=events/check_updates¶ms={
"lang": <text>,
"measure": <uint>,
"detalization": <uint>
}
Parámetros
Todos los parámetros son opcionales.
| Parámetro | Descripción | Valor por defecto |
|---|---|---|
| lang | Idioma (código de 2 símbolos). | en |
| measure | Sistema de medidas:
|
0 |
| detalization | Marcas de salida (ver más abajo). Debe especificarse en formato decimal. | 7 |
Marcas de salida
| Marca | Descripción |
|---|---|
| 0x1 | JSON básico: inicio del evento - fin del evento. |
| 0x2 | Datos del detector especificados. |
| 0x4 | Parámetros de usuario (que el usuario especificó para este evento) |
| 0x10 | JSON completo. Cada detector lo trata de su propia manera. |
| 0x20 | Valor formateado. |
Tipo de sensor
| Valor de tipo | Descripción | Registro de eventos |
|---|---|---|
| 1 | Sensores conmutadores:
|
Los eventos se registran desde el estado ON al estado OFF. |
| 2 | Sensores instantáneos:
|
Los eventos se registran desde el primer valor distinto de cero hasta el último distinto de cero. |
| 3 | Sensores diferenciales:
|
Los eventos se registran desde el inicio del incremento del valor hasta el final del mismo. |
| 4 | Sensores analógicos:
|
No se registran eventos. |
Respuesta
La respuesta se agrupa por ID de unidad. Para cada unidad, la respuesta contiene un array de objetos detectores:
{
"<unit_id>": [
{ "<detector_name>": { ... } },
{ "<detector_name>": { ... } },
...
],
"<unit_id>": [ ... ]
}
La estructura de cada objeto detector depende de las marcas especificadas en el parámetro detalization. Las marcas se pueden combinar. Las secciones a continuación describen cada marca por separado.
Marca 0x1
Devuelve JSON básico (para todos los grupos de sensores).
{
"<type_name>": {
"<sensor_id>": {
"from": {
"t": <uint>, /* tiempo (tiempo UNIX) */
"y": <double>, /* latitud */
"x": <double> /* longitud */
},
"to": {
"t": <uint>, /* tiempo (tiempo UNIX) */
"y": <double>, /* latitud */
"x": <double> /* longitud */
},
"m": <uint>, /* hora del último mensaje */
"f": <uint> /* marca de servicio */
}
}
}
Marca 0x2
Devuelve datos del detector especificado.
"ignition": {
"<sensor_id>": {
"state": <uint>, /* estado: 0 para apagado, 1 para encendido */
"type": 1, /* tipo de sensor: sensor conmutador */
"hours": <uint>, /* horas de motor para todo el historial, en segundos */
"switches": <uint>, /* número de conmutaciones para todo el historial */
"value": <bool> /* valor actual */
}
}
Todos los tipos de sensores para sensores:
"sensors": {
"<sensor_id1>": {
"state": <uint>, /* estado: 0 para apagado, 1 para encendido */
"type": 1, /* tipo de sensor: sensor conmutador */
"hours": <uint>, /* horas de motor para todo el historial, en segundos */
"switches": <uint>, /* número de conmutaciones para todo el historial */
"value": <bool> /* valor actual */
},
"<sensor_id2>": {
"type": 2, /* tipo de sensor: sensor instantáneo */
"counter": <uint>, /* número de mensajes secuenciales en el evento */
"summary": <uint>, /* suma de valores en el evento */
"total_counter": <uint>, /* número total de mensajes en todo el historial */
"total_summary": <uint>, /* suma total de valores en todo el historial */
"value": <double> /* último valor; si es -348201.3876, el valor es desconocido */
},
"<sensor_id3>": {
"type": 3, /* tipo de sensor: sensor diferencial */
"counter": <uint>, /* suma de valores en el evento */
"total_counter": <uint>, /* suma de valores en el historial */
"value": <double> /* último valor; si es -348201.3876, el valor es desconocido */
},
"<sensor_id4>": {
"type": 4, /* tipo de sensor: sensor analógico */
"value": <double> /* último valor; si es -348201.3876, el valor es desconocido */
}
}
"lls": {
"<sensor_id>": {
"value": <double>, /* valor del último mensaje con el nivel calculado. */
"level": <double>, /* valor de mediana promedio (se utiliza el valor de filtración FLS) */
"filled": <double> /* cantidad de combustible llenado */
}
}
"trips": {
"state": <bool>, /* estado del viaje: 0 — estacionamiento, 1 — viaje, 2 — parada. */
"max_speed": <uint>, /* velocidad máxima durante el viaje */
"curr_speed": <uint>, /* velocidad actual */
"avg_speed": <uint>, /* velocidad promedio basada en la distancia */
"distance": <uint>, /* kilometraje GPS durante el viaje */
"odometer": <uint>, /* distancia total de todos los viajes en el historial */
"course": <uint>, /* rumbo */
"altitude": <uint> /* altitud */
}
"counters": {
"engine_hours": <uint>, /* contador de horas de motor. */
"mileage": <uint>, /* contador de kilometraje */
"bytes": <uint> /* contador de tráfico GPRS */
}
"eco_driving": {
"criterion_type": <text>, /* tipo de criterio: "acceleration", "brake", "turn", "speeding", "sensor", "harsh", "idling". */
"index": <uint>, /* índice del criterio en el array de configuración */
"max_speed": <uint>, /* velocidad máxima, km/h */
"mark": <uint> /* puntos de penalización asignados a esta infracción */
}
Marca 0x4
Devuelve parámetros de usuario. La respuesta depende de las definiciones del usuario para el evento actual.
"<type_name>": {
"<sensor_id>": {
"p":{ /* contenido del objeto definido por el usuario */
"test":2,
"foo":"bar",
"trips":1
}
}
}
Marca 0x10
Devuelve el JSON completo.
Para sensores con ‘‘type=2’’ y ‘‘type=3’’ (excepto sensores de nivel de combustible), se devuelve la siguiente respuesta:
"sensors": {
"<sensor_id>": {
"msgs": [
{
"tm": <uint>, /* tiempo del mensaje, tiempo UNIX */
"v": <double> /* valor */
},
...
]
},
...
}
Para sensores de nivel de combustible, se devuelve la siguiente respuesta:
"lls": {
"<sensor_id>": {
"msgs": [
{
"tm": <uint>, /* tiempo del mensaje, tiempo UNIX */
"v": <double>, /* valor */
"l": <double> /* valor de mediana promedio (se utiliza el valor de filtración FLS) */
},
...
]
},
...
}
Marca 0x20
Devuelve valores formateados
"ignition": {
"sensor_id": {
"format": {
"value":<text> /* valor formateado (generalmente "On"/"Off") */
}
}
}
"sensors": {
"sensor_id": {
"format": {
"value":<text> /* valor formateado, depende del tipo de sensor y formato */
}
}
}
"trips": {
"format": {
"distance":<text>, /* distancia según el mensaje anterior */
"avg_speed":<text> /* velocidad promedio según "distance" */
}
}
"lls": {
"sensor_id": {
"format": {
"value":<text>, /* valor formateado, depende del tipo de sensor y formato */
"filled":<text> /* combustible llenado */
}
}
}
"counters": {
"format": {
"engine_hours":<uint>, /* valor formateado del contador de horas de motor */
"mileage":<text>, /* valor formateado del contador de kilometraje */
"bytes":<uint> /* valor formateado del contador de tráfico GPRS */
}
}
Códigos de error
Si la solicitud no se completa, se devuelve un código de error.
| Código de error | Descripción |
|---|---|
| 1 | SID de solicitud no válido u obsoleto. |
| 4 | Error de validación de parámetros. |
| 7 | La biblioteca adf_avl_events no se cargó, o no se pudo obtener el escritor JSON. |