load
Para cargar en la sesión los eventos de un período específico y procesarlos posteriormente, utilice el método events/load.
Después de cargarlos, obtenga los eventos mediante el método events/get.
Si pasa selector en la solicitud events/load, los eventos seleccionados se devuelven en el campo selector de la misma respuesta, por lo que no se requiere una llamada aparte a events/get.
Endpoint
svc=events/load¶ms={"itemId":<long>,
"ivalType":<int>,
"timeFrom":<uint>,
"timeTo":<uint>,
"detectors":[
{
"type":<text>,
"filter1":<long>
},
...
],
"selector":<object|array>,
"measure":<uint>,
"lang":<text>}
Parámetros
| Parámetro | Descripción |
|---|---|
itemId |
ID de unidad. Para resource_drivers, especifique un ID de recurso en lugar de un ID de unidad. |
ivalType |
Método de selección del intervalo de tiempo (consulte más abajo). |
timeFrom |
Depende de ivalType:
|
timeTo |
Fin del intervalo (tiempo UNIX). |
detectors |
Arreglo de objetos de detector que se deben cargar. Cada objeto contiene type y filter1. |
type |
Campo del objeto de detector. Tipo de detector de eventos. |
filter1 |
Campo del objeto de detector. Filtro del detector. Para resource_drivers, especifique un ID de conductor, o 0 para cargar los eventos de todos los conductores del recurso. Para detectores basados en sensores, especifique un ID de sensor, o 0 para cargar los eventos de todos los sensores de este tipo. Para eco_driving, especifique un valor de tipo de criterio (1 aceleración, 2 frenado, 3 giro, 4 exceso de velocidad, 5 sensor, 6 suavidad, 7 ralentí), o 0 para cargar todos los criterios. |
selector |
Opcional. Filtro aplicado a los eventos cargados por esta solicitud. Los eventos coincidentes se devuelven en el objeto selector de la respuesta, por lo que no necesita llamar a events/get por separado. Para consultar los formatos de selector admitidos, vea events/get. |
measure |
Sistema de medidas:
Si no se especifica el parámetro, se utiliza el valor establecido para la sesión actual (los dos bits más bajos del parámetro flags de render/set_locale). Si no hay ningún valor establecido en la sesión, se utiliza el valor 0. |
lang |
Idioma (código de 2 caracteres, por ejemplo, en o es). Si no se especifica el parámetro, se utiliza el valor establecido para la sesión actual (consulte el parámetro language de render/set_locale). Si no hay ningún valor establecido en la sesión, se utiliza el valor en. |
El detector de eventos
eco_drivingno está disponible en Wialon Local.
Para cargar eventos de un período diferente, primero descargue los eventos actuales mediante events/unload y luego vuelva a llamar a
events/load.
Método de selección del intervalo (ivalType)
| Valor | Descripción |
|---|---|
1 |
Carga mensajes desde timeFrom hasta timeTo. |
2 |
Carga el número de mensajes especificado en timeFrom, a partir de timeTo. |
3 |
Carga el número de mensajes especificado en timeFrom, hasta timeTo. |
4 |
Carga mensajes desde timeFrom hasta timeTo, más un mensaje antes de timeFrom. |
5 |
Carga mensajes desde timeFrom hasta timeTo, más un mensaje después de timeTo. |
6 |
Carga mensajes desde timeFrom hasta timeTo, más un mensaje antes de timeFrom y uno después de timeTo. |
Respuesta
Si la solicitud se completa correctamente, la respuesta contiene el número de eventos cargados para cada detector solicitado en detectors y cada ID específico del detector. El objeto states contiene la hora de actualización de cada detector cargado. El objeto selector contiene resultados filtrados solo si pasa el parámetro opcional selector en la solicitud; de lo contrario, es un objeto vacío ({}).
{
"events": {
"<detector_type>": {
"<detector_specific_id>": <uint> /* número de eventos cargados */
}
},
"states": {
"<detector_type>": {
"updateTime": <uint>, /* hora de actualización del detector, tiempo UNIX */
"recalc": <uint> /* estado de recálculo: 0 para ninguno, 1 para en cola, 2 para en curso */
}
},
"selector": { ... }
}
Si la solicitud no se completa, se devuelve un código de error.
El campo recalc se devuelve para todos los detectores en states, incluso cuando su valor es 0.
Códigos 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. |
| 5 | Los eventos están deshabilitados o en proceso de inicialización. |
| 6 | Error al cargar eventos. |
| 7 | El servicio de eventos no está disponible o falta el derecho de acceso Solicitar informes y mensajes. |
Ejemplos
Los siguientes ejemplos muestran cómo cargar eventos en distintos escenarios.
Carga de eventos junto con mensajes adyacentes al período solicitado
El valor ivalType 6 carga mensajes del período solicitado junto con un mensaje antes de timeFrom y un mensaje después de timeTo. Utilícelo cuando un evento pueda comenzar antes del período o terminar después de él. Por ejemplo, si una unidad permanece estacionada durante varios días, el evento de estacionamiento comienza antes del período solicitado, y sin el mensaje adicional solo se obtiene su final.
Para cargar los viajes de la unidad con ID 1001 durante un día (desde 1659474000 hasta 1659560400) junto con el viaje anterior y el viaje posterior a este día, utilice la siguiente solicitud:
svc=events/load¶ms={
"itemId": 1001,
"ivalType": 6,
"timeFrom": 1659474000,
"timeTo": 1659560400,
"detectors": [
{
"type": "trips",
"filter1": 0
}
],
"selector": {
"type": "trips",
"timeFrom": 1659387600,
"timeTo": 1659646800,
"detalization": 3
},
"measure": 0,
"lang": "en"
}
El período de selector es un día más amplio que el período solicitado en cada extremo. Esto es necesario porque selector filtra únicamente los eventos ya cargados en la sesión. Si su período coincide con el período solicitado, los mensajes anteriores y posteriores sí se cargan, pero los eventos correspondientes no se devuelven en la respuesta. Por la misma razón, el valor de detalization debe incluir los flags de todos los tipos de eventos que necesita.
Carga de eventos a partir de un número fijo de mensajes
Los valores ivalType 2 y 3 cargan un número fijo de mensajes en lugar de un período. En este caso, el parámetro timeFrom contiene el número de mensajes, y timeTo contiene la hora desde la cual contarlos.
Para cargar los eventos creados a partir de los últimos 10 mensajes del detector lls registrados antes de 1659560400 para la unidad con ID 1001, utilice la siguiente solicitud:
svc=events/load¶ms={
"itemId": 1001,
"ivalType": 3,
"timeFrom": 10,
"timeTo": 1659560400,
"detectors": [
{
"type": "lls",
"filter1": 0
}
],
"measure": 0,
"lang": "en"
}
La solicitud no contiene el parámetro selector, por lo que la respuesta devuelve el número de eventos cargados y la información de estado del detector, pero no los datos de los eventos. Para obtener los eventos, utilice events/get.
Por ejemplo, si la unidad tiene un sensor LLS coincidente, la respuesta puede tener el siguiente aspecto:
{
"events": {
"lls": {
"12345": 10 /* número de eventos cargados para el sensor con ID 12345 */
}
},
"states": {
"lls": {
"updateTime": 1659564000,
"recalc": 0
}
},
"selector": {}
}
Carga de eventos de asignación de conductor
El detector resource_drivers registra eventos en un recurso, no en una unidad. Para cargar los eventos de asignación de todos los conductores del recurso con ID 1003, especifique el ID del recurso en itemId y establezca filter1 en 0. Para cargar los eventos de un conductor, pase el ID del conductor en filter1.
Utilice ivalType 4 para cargar los datos del período especificado junto con un mensaje antes de timeFrom. Esto puede ayudar a restaurar una asignación que comenzó antes del período solicitado y que continúa durante dicho período. Para conocer las demás opciones, consulte Método de selección del intervalo (ivalType).
svc=events/load¶ms={
"itemId": 1003,
"ivalType": 4,
"timeFrom": 1672524000,
"timeTo": 1672610400,
"detectors": [
{
"type": "resource_drivers",
"filter1": 0
}
]
}
Para obtener los eventos cargados en la misma solicitud, agregue el parámetro opcional selector. En el siguiente ejemplo, el campo expr establece un intervalo personalizado en el formato <start>-<end>, y solo se devuelven los eventos que se cruzan con este intervalo. Los valores timeFrom y timeTo del selector limitan el período desde el cual se seleccionan los eventos cargados, y detalization 3 devuelve los datos básicos de eventos (0x1) y los datos específicos del detector (0x2).
svc=events/load¶ms={
"itemId": 1003,
"ivalType": 4,
"timeFrom": 1672524000,
"timeTo": 1672610400,
"detectors": [
{
"type": "resource_drivers",
"filter1": 0
}
],
"selector": {
"expr": "1672524022-1672524040",
"timeFrom": 1672524000,
"timeTo": 1672610400,
"detalization": 3
}
}
Para conocer la estructura de los eventos devueltos, consulte resource_drivers en la página events/get.