Módulo genérico de consumo "fmconsumer"
Descripción
El módulo genérico de consumo fmconsumer permite consumir datos de canales, colocarlos en un mensaje definido y enviarlos después a través de un módulo de socket (como, por ejemplo, un módulo canbus).
Dado que la especificación de los canales es opcional, también se pueden enviar mensajes constantes en el tiempo (como, por ejemplo, mensajes de estímulo periódicos).
El envío se realiza
- una sola vez tras el intervalo de envío especificado
- periódicamente en el intervalo de envío especificado
- controlado por eventos
Un envío controlado por eventos se realiza
- tras producirse un evento (y como pronto tras transcurrir un intervalo configurable)
- tras transcurrir un intervalo configurable, si hasta entonces NO se ha producido ningún evento
Un evento se produce cuando el módulo de socket ha recibido un mensaje especificado mediante una clave de identificación (messageKey).
Se pueden configurar varios mensajes que se van a enviar.
Interfaces y protocolos utilizados
- NINGUNO
Configuración JSON
En la siguiente sección se describe la configuración JSON completa del módulo y se explican los distintos parámetros.
Configuración de ejemplo (configuración típica)
{
"module":"Consumer",
"factory":"fmconsumer",
"config":{
"fmd": "canbus",
"messages":[
{
"messageKey": 42,
"defaultMessage": "0102 03 04ff06",
"sendMode": "OnTimer",
"sendIntervalMs": 1000
}
]
}
}
Parámetros globales del módulo
| Nombre del parámetro | Obligatorio | Tipo de datos | Rango de valores razonable | Valor predeterminado | Descripción |
|---|---|---|---|---|---|
| fmd | SÍ | STRING | Nombre de la instancia del módulo de socket utilizado | ||
| messages | SÍ | JSON Array of JSON Object | véase más abajo | ||
| channels | No | JSON Array of JSON Object | véase más abajo |
Configuración de mensajes "messages"
Los mensajes se especifican como objetos JSON; cada uno de estos objetos puede contener los siguientes parámetros
| Nombre del parámetro | Obligatorio | Tipo de datos | Rango de valores razonable | Valor predeterminado | Descripción |
|---|---|---|---|---|---|
| messageKey | SÍ | INT | Clave de identificación unívoca del mensaje | ||
| defaultMessage | SÍ | STRING | Bytes codificados en hexadecimal de la plantilla del mensaje (se ignoran los espacios) | ||
| sendMode | SÍ | STRING | "SingleShot", "OnTimer", "OnTriggerWhenTimeoutElapsed", "OnMissingTriggerWhenTimeoutElapsed" | Modo de funcionamiento del envío del mensaje (único, periódico, controlado por eventos) | |
| sendIntervalMs | SÍ | INT | 0 - | Retardo/intervalo [ms] del envío del mensaje | |
| triggeringMessageKeys | No | JSON Array of INT | JSON Array VACÍO | Claves de identificación de todos los mensajes que provocan el evento |
Configuración de canales "channels"
Nota: actualmente los datos de los canales se colocan uno a uno dentro de la plantilla del mensaje,
es decir, el tipo de datos finalmente colocado se corresponde exactamente con el tipo de datos de origen del canal.
Además, el usuario debe definir obligatoriamente una plantilla de mensaje suficientemente larga.
Opcionalmente es posible, mediante bitLength, colocar un número menor de bits (en este caso se descartan en consecuencia los bits de la derecha).
Los canales se especifican como objetos JSON; cada uno de estos objetos puede contener los siguientes parámetros
| Nombre del parámetro | Obligatorio | Tipo de datos | Rango de valores razonable | Valor predeterminado | Descripción |
|---|---|---|---|---|---|
| name | SÍ | STRING | Nombre del canal que se va a consumir | ||
| bitOffset | SÍ | INT | dentro de la plantilla del mensaje | Desplazamiento de la colocación del canal dentro de la plantilla del mensaje | |
| bitLength | SÍ | INT | de modo que bitOffset + bitLength quede dentro de la plantilla del mensaje | Longitud de la colocación del canal dentro de la plantilla del mensaje |
Información del módulo
| Información | Valor |
|---|---|
| Autores | optiMEAS GmbH |
| desde smartCORE | 0.110 |
| Tipo de módulo | Consumer |
| Dependencias | Módulo de socket con acceso de escritura (como, por ejemplo, canbus) |