Módulo smartCORE Geofencing
Descripción
El módulo "geofencing" comprueba de forma continua, a partir de los datos de posición GPS, si el sistema se encuentra dentro de un área geográfica incluida en una configuración. En cuanto se detecta que el dispositivo se encuentra dentro de determinadas coordenadas geográficas configuradas previamente, los datos de esa área (ID y nombre de la entrada de la configuración) se registran en los datos de medición y pueden enviarse a una nube. De este modo pueden desencadenarse otras acciones, como el envío de correos electrónicos o SMS.
El módulo no registra por sí mismo datos GPS, sino que accede a datos de señales del conjunto de datos de smartCORE. Por ello, en la configuración del módulo deben introducirse los nombres de señal que contienen la información GPS (latitud, longitud). Las fuentes de datos GPS habituales son el módulo GPS o fuentes externas proporcionadas a través del bus CAN u otros protocolos.
Configuración JSON
En la sección siguiente se describe la configuración JSON completa de un módulo Geofence y se explican las distintas áreas y parámetros.
Tipos de geofence
Existen dos tipos de áreas geofence que pueden utilizarse en la configuración.
- Círculo
- Polígono
Ambos tipos tienen tres parámetros comunes que deben indicarse:
- "id"
- "name"
- "description"
Si se detecta que se cruza un límite geolocalizado, estos datos se guardan en los datos de medición. El módulo reconoce por el número de coordenadas si se trata de un círculo o de un polígono. Un círculo tiene siempre una sola coordenada, mientras que un polígono tiene siempre al menos tres o más. Se han probado polígonos con hasta 20 coordenadas. Si una entrada tiene solo dos coordenadas, se ignora y no se tiene en cuenta.
Círculo
Para definir un círculo solo es necesario introducir la coordenada GPS que sirve como centro del círculo. Como parámetro adicional puede introducirse el radio (en km). Si no se indica el radio, se utiliza como valor predeterminado 0.5 km (500 metros).
A continuación se define un área geofence como círculo con un radio de 900 metros.
{
"id": 1,
"name": "AA",
"description": "Hmb-Altona",
"radius":0.9,
"choords": [
{
"latitude": 53.552695,
"longitude": 9.935175
}
]
}
Polígono
Introduciendo varias coordenadas (¡al menos tres!) se puede definir un polígono. El orden en la configuración es muy importante, ya que cada coordenada se conecta siempre con la siguiente. La primera y la última coordenada no deben ser idénticas; el software conecta automáticamente estos dos puntos durante el cálculo.
{
"id": 111103,
"name": "Bhbf",
"description": "Berlin",
"choords": [
{
"latitude": 53.552695,
"longitude": 9.935175
},
{
"latitude": 53.552691,
"longitude": 9.935172
},
{
"latitude": 53.552690,
"longitude": 9.935178
}
]
}
Ejemplo de configuración completa (mínima)
La siguiente configuración utiliza los ajustes mínimos y en la sección "stations" se definen dos geofences.
{
"module": "Geofencing",
"factory": "geofencing",
"config": {
"timeoutMs": 2000,
"gpsSatCountName": [
"GPS.SatelliteCount",
"Colibri.SatelliteCount"
],
"minimalAvailableSatCount": 6,
"gpsLocationName": "GPS.Location",
"longitudeName": "DBC.longitude",
"latitudeName": "DBC.latitude",
"stations": [
{
"id": 1,
"name": "AA",
"description": "Hmb-Altona BP",
"radius":0.9,
"choords": [
{
"latitude": 53.552695,
"longitude": 9.935175
}
]
},
{
"id": 2,
"extNr": 8000011201,
"name": "AAG",
"description": "Ascheberg/Holst BP",
"choords": [
{
"latitude": 54.148462,
"longitude": 10.339481
}
]
}
]
}
}
Ejemplo de configuración completa con archivo de geofence externo
También es posible guardar las estaciones geofence en un archivo externo. La ruta del archivo debe introducirse entonces en la configuración, en el campo "stationsFile".
{
"module": "Geofencing",
"factory": "geofencing",
"config": {
"timeoutMs": 2000,
"minimalAvailableSatCount": 6,
"gpsSatCountName": [
"GPS.SatelliteCount",
"Colibri.SatelliteCount"
],
"gpsLocationName": "GPS.Location",
"longitudeName": "DBC.longitude",
"latitudeName": "DBC.latitude",
"stationsFile":"/sdi/config/geofence_stations.json",
"stations": [
]
}
}
Estructura del archivo externo
A continuación se describe la estructura del archivo externo que se introduce en el campo de configuración "stationsFile". En el campo "file_version" puede introducirse una designación de versión que, si es necesario, también puede enviarse a la nube. En la sección "geofence_stations" se introducen las áreas geofence, igual que en el campo "stations" del archivo de configuración de smartCORE.
{
"file_version":"Dateiversion 1.0",
"geofence_stations": [
{
"id": 111101,
"name": "AA",
"description": "Hmb-Altona",
"choords": [
{
"latitude": 53.552695,
"longitude": 9.935175
}
]
},
{
"id": 111103,
"name": "Bhbf",
"description": "Berlin",
"choords": [
{
"latitude": 53.552695,
"longitude": 9.935175
},
{
"latitude": 53.552691,
"longitude": 9.935172
},
{
"latitude": 53.552690,
"longitude": 9.935178
}
]
},
{
"id": 111104,
"name": "AEC",
"description": "Eckernfoerde Bstg",
"choords": [
{
"latitude": 54.4676,
"longitude": 9.835115
},
{
"latitude": 54.4675,
"longitude": 9.835114
},
{
"latitude": 54.4677,
"longitude": 9.835125
},
{
"latitude": 54.46761,
"longitude": 9.835112
},
{
"latitude": 54.4675,
"longitude": 9.835113
},
{
"latitude": 54.4678,
"longitude": 9.835112
}
]
}
]
}
Lista de parámetros
| Nombre del parámetro | Obligatorio | Tipo de datos | Rango de valores recomendado | Valor predeterminado | Descripción |
|---|---|---|---|---|---|
| timeoutMs | No | INT | 1000 - 10000 | 2000 | Intervalo de ejecución de la comprobación de si las coordenadas GPS actuales se encuentran dentro de un área geofence. |
| stations | No | Array | - | - | Contiene las definiciones de las áreas geofence. |
| stationsFile | No | String | "" | "" | Ruta del archivo JSON externo con las áreas geofence. Permite trasladar las áreas geofence a un archivo externo para mantener la configuración de smartCORE pequeña y clara. |
| channelNameLocationID | No | String | "" | [Modulname].LocationID | Con este parámetro puede modificarse el nombre de la señal con el ID del área geofence. Este nombre de señal aparece luego tal cual en los datos de medición. Se recomienda utilizar los ajustes predeterminados. |
| channelNameLocationName | No | String | "" | [Modulname].LocationName | Este parámetro indica el nombre de la señal con la descripción (campo "description") del área geofence. Este nombre de señal aparece luego tal cual en los datos de medición. Se recomienda utilizar los ajustes predeterminados. |
| gpsSatCountName | Sí | Array | - | - | Contiene uno o varios nombres de señal del conjunto de datos que contienen el número actual de satélites de la señal GPS. Si se indican varios nombres, se utiliza la señal que esté disponible y proporcione datos. Es decir, la señal utilizada se determina automáticamente. |
| minimalAvailableSatCount | No | INT | 3-15 | 5 | Se necesita para la verificación de plausibilidad de la señal GPS. Número mínimo de satélites que debe haber en una señal de "gpsSatCountName" para que los datos GPS sean válidos. |
Parámetros de estación
| Nombre del parámetro | Obligatorio | Tipo de datos | Rango de valores recomendado | Valor predeterminado | Descripción |
|---|---|---|---|---|---|
| id | Sí | INT | 1 - 10000 | - | Debe ser único dentro de la configuración. Este número se escribe en los datos de medición y se envía a una nube. |
| name | Sí | String | "" | "" | Abreviatura/forma corta del nombre del área geofence. |
| description | Sí | String | "" | "" | Nombre largo del área geofence. Se guarda en los datos de medición y se transmite a la nube. |
| radius | Sí | Double | 0.1 - 10 | 0.5 | Solo se tiene en cuenta en las áreas definidas como círculo. El radio se indica en km. |
| choords | Sí | Array | - | - | Sección con la coordenada (círculo) o las coordenadas (polígono). |
Señales generadas (Producer)
El módulo Geofence genera las siguientes señales y las guarda en el conjunto de datos de smartCORE. Estas señales pueden guardarse después en los datos de medición y enviarse a la nube. Los nombres de señal pueden adaptarse en la configuración (los campos "channelNameLocationID" y "channelNameLocationName"). En la nube, estas señales pueden utilizarse después en tareas de supervisión y alarma.
| Nombre de la señal | Tipo de datos | Descripción |
|---|---|---|
| [Modulname].LocationName | String | En esta señal se guarda la descripción (campo "description") del área geofence en cuanto las coordenadas GPS actuales se encuentran dentro de una de las áreas geofence. Si las coordenadas GPS actuales no se encuentran en ningún área, el valor es una cadena vacía. |
| [Modulname].LocationID | INT | En esta señal se guarda el ID (campo "id") del área geofence en la que se encuentran las coordenadas GPS actuales. Si las coordenadas GPS actuales no se encuentran en ningún área, el valor es -1. |
| [Modulname].Valid | Bool | Indica si las coordenadas GPS actuales son válidas o no. |
| [Modulname].Fileversion | String | Esta señal contiene el contenido de la entrada "file_version" del archivo externo. |
Información del módulo
| Información | Valor |
|---|---|
| Autor | optiMEAS GmbH |
| desde smartCORE | 2.2 |
| Tipo de módulo | Producer y Consumer |
| Dependencias | NINGUNA |