Generisches Konsumptionsmodul "fmconsumer"
Beschreibung
Das generische Konsumptionsmodul fmconsumer
erlaubt es, Kanaldaten zu konsumieren, in einer definierten Botschaft zu plazieren und diese danach über ein Socketmodul (wie z.B. ein canbus
Modul) zu versenden.
Da die Spezifikation der Kanäle hierbei optional erfolgt, können auch zeitlich konstante Botschaften (wie z.B. periodische Reizbotschaften) versendet werden.
Der Versand erfolgt hierbei entweder
- einmalig nach dem spezifizierten Sendeintervall
- periodisch im spezifizierten Sendeintervall
- ereignisgesteuert
Ein ereignisgesteuerter Versand erfolgt hierbei
- nach Eintreten eines Ereignisses (und frühestens nach Ablauf eines konfigurierbaren Intervalls)
- nach Ablauf eines konfigurierbaren Intervalls, falls bis dahin KEIN Ereignis eingetreten ist
Ein Ereignis tritt auf, wenn eine anhand eines Identifikationsschlüssels (messageKey
) spezifizierte Botschaft seitens Socketmodul empfangen wurde.
Es können mehrere zu versendende Botschaften konfiguriert werden.
Verwendete Schnittstellen & Protokolle
- KEINE
JSON-Konfiguration
Im folgenden Abschnitt soll die gesamte JSON-Konfiguration des Moduls beschrieben und die einzelnen Parameter erläutert werden.
Beispielkonfiguration (typische Konfiguration)
{
"module":"Consumer",
"factory":"fmconsumer",
"config":{
"fmd": "canbus",
"messages":[
{
"messageKey": 42,
"defaultMessage": "0102 03 04ff06",
"sendMode": "OnTimer",
"sendIntervalMs": 1000
}
]
}
}
Globale Modulparameter
Parametername | Erforderlich | Datentyp | sinnvoller Wertebereich | Default-Wert | Beschreibung |
---|---|---|---|---|---|
fmd | JA | STRING | Name der Modulinstanz des verwendeten Socketmoduls | ||
messages | JA | JSON Array of JSON Object | siehe unten | ||
channels | Nein | JSON Array of JSON Object | siehe unten |
Konfiguration von Botschaften "messages"
Botschaften werden als JSON Objekte spezifiziert, jedes dieser Objekte kann folgende Parameter enthalten
Parametername | Erforderlich | Datentyp | sinnvoller Wertebereich | Default-Wert | Beschreibung |
---|---|---|---|---|---|
messageKey | JA | INT | Eindeutiger Identifikationsschlüssel der Botschaft | ||
defaultMessage | JA | STRING | Hexadezimal kodierte Bytes der Botschaftsvorlage (Leerzeichen werden ignoriert) | ||
sendMode | JA | STRING | "SingleShot", "OnTimer", "OnTriggerWhenTimeoutElapsed", "OnMissingTriggerWhenTimeoutElapsed" | Betriebsart des Botschaftsversands (einmalig, periodisch, ereignisgesteuert) | |
sendIntervalMs | JA | INT | 0 - | Verzögerung/Intervall [ms] bzgl. des Botschaftsversands | |
triggeringMessageKeys | Nein | JSON Array of INT | EMPTY JSON Array | Identifikationsschlüssel aller ereignishervorrufenden Botschaften |
Konfiguration von Kanälen "channels"
Anmerkung: Kanaldaten werden momentan eins-zu-eins innerhalb der Botschaftsvorlage plaziert,
d.h. der letztlich plazierte Datentyp entspricht exakt dem Quelldatentyp des Kanals.
Außerdem muss der Anwender zwingend eine hinreichend lange Botschaftsvorlage definieren.
Optional ist es möglich, anhand der bitLength
eine geringere Anzahl an Bits zu plazieren (in diesem Fall werden die rechten Bits entsprechend verworfen).
Kanäle werden als JSON Objekte spezifiziert, jedes dieser Objekte kann folgende Parameter enthalten
Parametername | Erforderlich | Datentyp | sinnvoller Wertebereich | Default-Wert | Beschreibung |
---|---|---|---|---|---|
name | JA | STRING | Name des zu konsumierenden Kanals | ||
bitOffset | JA | INT | innerhalb der Botschaftsvorlage | Offset bzgl. Plazierung des Kanals innerhalb der Botschaftsvorlage | |
bitLength | JA | INT | so dass bitOffset + bitLength innerhalb der Botschaftsvorlage liegt | Länge bzgl. Plazierung des Kanals innerhalb der Botschaftsvorlage |
Modul-Informationen
Information | Wert |
---|---|
Autoren | optiMEAS Measurement and Automation Systems GmbH |
seit smartCORE | 0.110 |
Modultyp | Consumer |
Abhängigkeiten | Socketmodul mit Schreibzugriff (wie z.B. canbus ) |