Gültigkeitsregeln an Artikeln
Syntax
Der Syntax ist immer nach folgenden Schema zusammengestellt:
<TAG-SYNTAX> = { tag: _<TAG-KEY>_ , _<TAG-PARAM>_ }
<TAG-KEY> - Liste mit Bedeutung:
| TAG-KEY | Charakter | Bedeutung | zulassige TAG-PARAM-Name |
|---|---|---|---|
| AND | Knoten | Prüft, ob ALLE Bedingungen in der Parameterliste wahr bzw. korrekt sind. | logik-args |
| OR | Knoten | Prüft, ob EINE Bedingung aus der Parameterliste wahr oder korrekt ist. | logik-args |
| NOT | Knoten | Prüft, ob die folgende Bedingung falsch bzw. negiert korrekt ist. | arg |
| BITSET | Blatt | Prüft, ob die folgenden Merkmale an einer Messstelle gesetzt sind | werte-args |
| YEAR_CONSUMPTION | Blatt | Prüft, ob Jahresverbrauch über/unter einer Grenze liegt | args |
| BOOL_CMP_PROPERTY | Blatt | Prüft, ob Werte eines (alten) Vergleichsmerkmals true | name |
| BOOL_FLEX_PROPERTY | Blatt | Prüft, ob Wert eines booleschen neuen Merkmals true | name |
| BOOL_FLEX_PROPERTY | Blatt | Prüft, ob Wert eines booleschen neuen Merkmals true | name |
| NUM_FLEX_PROPERTY | Blatt | Prüft, ob Wert eines numerischen neuen Merkmals größer/kleiner/… einer vorgegebenen Zahl ist | name, cmp, against |
| STRING_FLEX_PROPERTY | Blatt | Prüft, ob String-Wert eines neuen Merkmals gleich/ungleich einem vorgegebenen String ist | name, cmp, against |
<TAG-PARAM> - Liste mit Syntax:
| TAG-PARAM-Name | TAG-PARAM | Bedeutung |
|---|---|---|
| logik-args | args: [ <TAG-SYNTAX>(,<TAG-SYNTAX>) ] |
Eine Liste von neuen Logikausdrücken |
| werte-args | args: [ <TAG-KEY-VALUE> (,<TAG-KEY-VALUE>)* ] |
Eine Liste von vorgegebenen Werten |
| arg | arg: <TAG-SYNTAX> |
Ein einzelner Logikausdruck |
<TAG-KEY-VALUE> - Erklärung
Das sind einzelne Werte oder Konstanten, die abhängig von dem verwendeten <TAG-KEY> sind. Dabei sind nur für TAG-KEY mit Blatt-Charakter einzelne Werte definiert. Diese sind unter den Schlüsselworte und Wertebereiche beschrieben.
Schlüsselworte und Wertebereiche
BITSET
Das Schüsselwort BITSET dient zur Abwärtskompatibilität mit den bisher über valdityBits abgebildete dynamische Nutzung von Artikeln.
Über dieses Schlüsselwort können die vorgegebenen Merkmale einer Messstelle abgefragt werden. Jeder Ausprägung entspricht dabei einem Merkmal.
Das Merkmal gilt dabei als gesetzt (TRUE), wenn dessen Wert größer 0,0 ist. Ist der Wert gleich oder kleiner 0,0 dann gilt der Wert als nicht gesetzt (FALSE).
Folgende Merkmale können dabei abgefragt werden:
Merkmal (TAG-KEY) |
Index | Integer | Prüfung |
|---|---|---|---|
| NB_EQUALS_MSB | 0 | =. 1 | VNB = MSB |
| NON_MAIN_METERLOCATION | 1 | =. 2 | false |
| VOLTAGE_LEVEL_NEQ_MEASUREMENT_LEVEL | 2 | =. 4 | Messspannung != Lieferspannung |
| IS_BALGEN | 3 | =. 8 | Zählertyp ist BALGEN |
| IS_TURBINENRAD | 4 | =. 16 | Zählertyp ist TURBINENRAD |
| IS_DREHKOLBEN | 5 | =.32 | Zählertyp ist DREHKOLBEN |
| HAS_DATA_LOGGER | 6 | =. 64 | Das Merkmal “DATA_LOGGER” ist vergeben |
| HAS_QUANTITY_CONVERTER | 7 | =. 128 | Das Merkmal “QUANTITY_CONVERTER” ist vergeben |
| HAS_MODEM | 8 | =. 256 | Das Merkmal “MODEM” ist vergeben |
| HAS_FESTNETZ_MODEM | 9 | =. 512 | Das Merkmal “FNMD” ist vergeben |
Weitere Details zum Bitset sind im Artikel [[dynamische Steuerung von Artikeln]] beschrieben.
YEAR_CONSUMPTION
Experimentell und vorläufig. Es gibt zwei Argumente (in einem Array namens args). Das erste ist ein String, und zwar einer von “LT”, “GT”, “LE”, “GE”, “EQ”, “NEQ”. Der zweite eine Zahl. Das Resultat gibt an, ob der “Jahresverbrauch” in KWh unter, über, nicht über oder nicht unter der Grenze liegt.
BOOL_CMP_PROPERTY
Experimentell und vorläufig. Abfrage altes Merkmal, ein Argument (unter dem Schlüssel “name”): ein Namensmuster.
BOOL_FLEX_PROPERTY
Experimentell und vorläufig. Abfrage neues Merkmal, ein Argument (unter dem Schlüssel “name”): ein Namensmuster.
NUM_FLEX_PROPERTY
Experimentell und vorläufig. Abfrage neues Merkmal, Argument namens “name” enthält ein Namensmuster; ein Argument namens “cmp” enthält einen String, der das Vergleichen steuert: “LT”, “GT”, “LE”, “GE”, “EQ” oder “NEQ”; ein Argument namens “against”, ein Double. Bei Aufzählungstypen wird der numerische Wert als Zahl genommen.
STRING_FLEX_PROPERTY
Experimentell und vorläufig. Abfrage neues Merkmal, Argument namens “name” enthält ein Namensmuster; ein Argument namens “cmp” enthält einen String, der das Vergleichen steuert: “EQ” oder “NEQ”; ein Argument namens “against”, ein String. Bei Aufzählungstypen wird der Name der Aufzählungskonstanten genommen.
Beispiele
Ein Beispiel zur Ausprägung ohne fachlichen Gehalt:
{
"tag": "AND",
"args" [
{ "tag": "NOT" "arg": {"tag":"AND", "args":[]} },
{
"tag": "OR",
"args":[{"tag":"AND", "args":[]}]
},
{ "tag": "BITSET", "args":["NB_EQUALS_MSB", "VOLTAGE_LEVEL_NEQ_MEASUREMENT_LEVEL", "HAS_MODEM"] }
]
}
Ein Beispiel für neue Merkmale:
{
"tag": "AND", "args": [
{ "tag": "NUM_FLEX_PROPERTY", "name": "Mengenumwerter", "cmp":"GEQ", "against":2 },
{ "tag": "NUM_FLEX_PROPERTY", "name": "Mengenumwerter", "cmp":"LEQ", "against":4 }
]
}