Modulo generico di consumo "fmconsumer"
Descrizione
Il modulo generico di consumo fmconsumer consente di consumare dati dei canali, inserirli in un messaggio definito e inviarli successivamente tramite un modulo socket (ad es. un modulo canbus).
Poiché la specifica dei canali è facoltativa, è possibile inviare anche messaggi costanti nel tempo (ad es. messaggi di stimolo periodici).
L'invio avviene
- una sola volta dopo l'intervallo di invio specificato
- periodicamente con l'intervallo di invio specificato
- in modo controllato da eventi
L'invio controllato da eventi avviene
- al verificarsi di un evento (e al più presto dopo la scadenza di un intervallo configurabile)
- allo scadere di un intervallo configurabile, se fino a quel momento NON si è verificato alcun evento
Un evento si verifica quando il modulo socket ha ricevuto un messaggio specificato tramite una chiave di identificazione (messageKey).
È possibile configurare più messaggi da inviare.
Interfacce e protocolli utilizzati
- NESSUNO
Configurazione JSON
Nella sezione seguente viene descritta l'intera configurazione JSON del modulo e vengono illustrati i singoli parametri.
Configurazione di esempio (configurazione tipica)
{
"module":"Consumer",
"factory":"fmconsumer",
"config":{
"fmd": "canbus",
"messages":[
{
"messageKey": 42,
"defaultMessage": "0102 03 04ff06",
"sendMode": "OnTimer",
"sendIntervalMs": 1000
}
]
}
}
Parametri globali del modulo
| Nome del parametro | Obbligatorio | Tipo di dati | Intervallo di valori sensato | Valore predefinito | Descrizione |
|---|---|---|---|---|---|
| fmd | SÌ | STRING | Nome dell'istanza del modulo socket utilizzato | ||
| messages | SÌ | JSON Array of JSON Object | vedere sotto | ||
| channels | No | JSON Array of JSON Object | vedere sotto |
Configurazione dei messaggi "messages"
I messaggi vengono specificati come oggetti JSON; ciascuno di questi oggetti può contenere i seguenti parametri
| Nome del parametro | Obbligatorio | Tipo di dati | Intervallo di valori sensato | Valore predefinito | Descrizione |
|---|---|---|---|---|---|
| messageKey | SÌ | INT | Chiave di identificazione univoca del messaggio | ||
| defaultMessage | SÌ | STRING | Byte del modello di messaggio codificati in esadecimale (gli spazi vengono ignorati) | ||
| sendMode | SÌ | STRING | "SingleShot", "OnTimer", "OnTriggerWhenTimeoutElapsed", "OnMissingTriggerWhenTimeoutElapsed" | Modalità di invio del messaggio (singolo, periodico, controllato da eventi) | |
| sendIntervalMs | SÌ | INT | 0 - | Ritardo/intervallo [ms] relativo all'invio del messaggio | |
| triggeringMessageKeys | No | JSON Array of INT | EMPTY JSON Array | Chiavi di identificazione di tutti i messaggi che generano l'evento |
Configurazione dei canali "channels"
Nota: i dati dei canali vengono attualmente inseriti uno a uno nel modello di messaggio,
cioè il tipo di dati effettivamente inserito corrisponde esattamente al tipo di dati di origine del canale.
Inoltre l'utente deve definire obbligatoriamente un modello di messaggio sufficientemente lungo.
Opzionalmente è possibile, tramite bitLength, inserire un numero inferiore di bit (in questo caso i bit di destra vengono scartati di conseguenza).
I canali vengono specificati come oggetti JSON; ciascuno di questi oggetti può contenere i seguenti parametri
| Nome del parametro | Obbligatorio | Tipo di dati | Intervallo di valori sensato | Valore predefinito | Descrizione |
|---|---|---|---|---|---|
| name | SÌ | STRING | Nome del canale da consumare | ||
| bitOffset | SÌ | INT | all'interno del modello di messaggio | Offset relativo al posizionamento del canale nel modello di messaggio | |
| bitLength | SÌ | INT | tale che bitOffset + bitLength rientri nel modello di messaggio | Lunghezza relativa al posizionamento del canale nel modello di messaggio |
Informazioni sul modulo
| Informazione | Valore |
|---|---|
| Autori | optiMEAS GmbH |
| da smartCORE | 0.110 |
| Tipo di modulo | Consumer |
| Dipendenze | Modulo socket con accesso in scrittura (ad es. canbus) |