Modulo smartCORE Geofencing
Descrizione
Il modulo "geofencing" verifica continuamente, in base ai dati di posizione GPS, se il sistema si trova in un'area geografica contenuta in una configurazione. Non appena viene rilevato che il dispositivo si trova all'interno di determinate coordinate geografiche configurate in precedenza, i dati di tale area (ID e nome della voce dalla configurazione) vengono acquisiti nei dati di misura e possono essere inviati a un cloud. In questo modo possono essere attivate ulteriori azioni, come l'invio di e-mail o SMS.
Il modulo non acquisisce esso stesso dati GPS, ma accede ai dati dei segnali presenti nel pool di dati smartCORE. Nella configurazione del modulo devono quindi essere inseriti i nomi dei segnali che contengono le informazioni GPS (latitude, longitude). Le fonti tipiche di dati GPS sono il modulo GPS o fonti esterne messe a disposizione tramite CAN bus o altri protocolli.
Configurazione JSON
Nella sezione seguente viene descritta l'intera configurazione JSON di un modulo Geofence e vengono illustrate le singole aree e i singoli parametri.
Tipi di geofence
Esistono due tipi di aree geofence che possono essere utilizzati nella configurazione.
- Cerchio
- Poligono
Entrambi i tipi hanno tre parametri in comune che devono essere indicati:
- "id"
- "name"
- "description"
Se viene rilevato il superamento di un confine geolocalizzato, questi dati vengono salvati nei dati di misura. Il modulo riconosce dal numero di coordinate se si tratta di un cerchio o di un poligono. Un cerchio ha sempre una sola coordinata, un poligono invece sempre almeno tre o più. Sono stati testati poligoni con fino a 20 coordinate. Se una voce ha solo due coordinate, viene ignorata e non considerata.
Cerchio
Per la definizione di un cerchio è sufficiente inserire la coordinata GPS che funge da centro del cerchio. Come ulteriore parametro è possibile inserire il raggio (in km). Se il raggio non viene indicato, viene utilizzato come valore predefinito 0.5 km (500 metri).
Di seguito viene definita un'area geofence come cerchio con un raggio di 900 metri.
{
"id": 1,
"name": "AA",
"description": "Hmb-Altona",
"radius":0.9,
"choords": [
{
"latitude": 53.552695,
"longitude": 9.935175
}
]
}
Poligono
Inserendo più coordinate (almeno tre!) è possibile definire un poligono. L'ordine nella configurazione è molto importante, poiché ogni coordinata viene collegata a quella successiva. La prima e l'ultima coordinata non devono essere identiche; il software collega automaticamente questi due punti durante il calcolo.
{
"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
}
]
}
Configurazione di esempio completa (minima)
La configurazione seguente utilizza le impostazioni minime e nell'area "stations" sono definiti due geofence.
{
"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
}
]
}
]
}
}
Configurazione di esempio completa con file geofence esterno
È possibile anche memorizzare le stazioni geofence in un file esterno. Il percorso del file deve quindi essere inserito nella configurazione nel 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": [
]
}
}
Struttura del file esterno
Di seguito viene descritta la struttura del file esterno indicato nel campo di configurazione "stationsFile". Nel campo "file_version" è possibile inserire una designazione di versione, che all'occorrenza può essere inviata anche al cloud. Nell'area "geofence_stations" vengono inserite le aree geofence, come nel campo "stations" nel file di configurazione 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
}
]
}
]
}
Elenco dei parametri
| Nome del parametro | Obbligatorio | Tipo di dati | Intervallo di valori sensato | Default | Descrizione |
|---|---|---|---|---|---|
| timeoutMs | No | INT | 1000 - 10000 | 2000 | Intervallo di esecuzione del controllo per verificare se le coordinate GPS attuali si trovano in un'area geofence. |
| stations | No | Array | - | - | Contiene le definizioni delle aree geofence. |
| stationsFile | No | String | "" | "" | Percorso del file JSON esterno con le aree geofence. Consente di spostare le aree geofence in un file esterno, per mantenere la configurazione smartCORE ridotta e chiara. |
| channelNameLocationID | No | String | "" | [Modulname].LocationID | Con questo parametro è possibile modificare il nome del segnale con l'ID dell'area geofence. Questo nome di segnale compare poi così nei dati di misura. Si raccomanda di utilizzare le impostazioni predefinite. |
| channelNameLocationName | No | String | "" | [Modulname].LocationName | Questo parametro indica il nome del segnale con la descrizione (campo "description") dell'area geofence. Questo nome di segnale compare poi così nei dati di misura. Si raccomanda di utilizzare le impostazioni predefinite. |
| gpsSatCountName | Sì | Array | - | - | Contiene uno o più nomi di segnale dal pool di dati che contengono il numero attuale di satelliti del segnale GPS. Se sono indicati più nomi, viene utilizzato il segnale disponibile e che fornisce dati. Il segnale da utilizzare viene quindi determinato automaticamente. |
| minimalAvailableSatCount | No | INT | 3-15 | 5 | Necessario per la verifica di plausibilità del segnale GPS. Numero minimo di satelliti che devono essere presenti in un segnale di "gpsSatCountName" affinché i dati GPS siano validi. |
Parametri della stazione
| Nome del parametro | Obbligatorio | Tipo di dati | Intervallo di valori sensato | Default | Descrizione |
|---|---|---|---|---|---|
| id | Sì | INT | 1 - 10000 | - | Deve essere univoco all'interno della configurazione. Questo numero viene scritto nei dati di misura e inviato a un cloud. |
| name | Sì | String | "" | "" | Abbreviazione/forma breve del nome dell'area geofence. |
| description | Sì | String | "" | "" | Nome esteso dell'area geofence. Viene salvato nei dati di misura e trasmesso al cloud. |
| radius | Sì | Double | 0.1 - 10 | 0.5 | Viene considerato solo per le aree definite come cerchio. Il raggio è indicato in km. |
| choords | Sì | Array | - | - | Area con la coordinata (cerchio) o le coordinate (poligono). |
Segnali generati (Producer)
I seguenti segnali vengono generati dal modulo Geofence e salvati nel pool di dati dello smartCORE. Questi segnali possono poi essere salvati nei dati di misura e inviati al cloud. I nomi dei segnali possono essere adattati nella configurazione (i campi "channelNameLocationID" e "channelNameLocationName"). Sul lato cloud questi segnali possono poi essere utilizzati in attività di monitoraggio e di allarme.
| Nome del segnale | Tipo di dati | Descrizione |
|---|---|---|
| [Modulname].LocationName | String | In questo segnale viene salvata la descrizione (campo "description") dell'area geofence non appena le coordinate GPS attuali si trovano in una delle aree geofence. Se le coordinate GPS attuali non si trovano in un'area, il valore è una stringa vuota. |
| [Modulname].LocationID | INT | In questo segnale viene salvato l'ID (campo "id") dell'area geofence in cui si trovano le coordinate GPS attuali. Se le coordinate GPS attuali non si trovano in un'area, il valore è -1. |
| [Modulname].Valid | Bool | Indica se le coordinate GPS attuali sono valide o meno. |
| [Modulname].Fileversion | String | Questo segnale contiene il contenuto della voce "file_version" nel file esterno. |
Informazioni sul modulo
| Informazione | Valore |
|---|---|
| Autore | optiMEAS GmbH |
| da smartCORE | 2.2 |
| Tipo di modulo | Producer e Consumer |
| Dipendenze | NESSUNA |