You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 19 Next »

Module description

This module allows to compute a boolean operation across multiple input status points in order to produce a single output status point.

The module will cache the values received for each input status point and whenever one of the inputs is received it will compute the result value of the operation and send it.

The types of boolean operations currently available are:

  • Boolean OR

Operation on input that is not the output:

Operation on input that is also the output:

Configuration

The following attributes are read from the Exchanged data configuration:

  • An array of operations that will generate the current status point as output
  • For each operation:
    • The type of operation
    • The list of inputs status points (Pivot ID)

Filtering rules

R1 : Only status points with a Pivot ID that appear in at least one of the operations are processed.

R2 : If any of the mandatory PIVOT fields necessary to identify or compute the operation is missing in the received reading, no output reading is generated for the operation.

R3 : If the input status point received is also the output status point and an output reading was generated with no error, delete the reading of the input status point, else the input reading is forwarded unchanged.

Data processing

Input

This filter plugin expects readings to be a pivot model status point datapoints.

The module uses the identification (Attribute "PIVOT.GTIS.Identifier") of the data to identify the operation to apply.

The data read from the pivots format are :

  • PIVOT.GTIS.SpsTyp.stVal => input value in bool format [0-1]
  • PIVOT.GTIS.DpsTyp.stVal => input value in enum format ("intermediate-state" | "off" | "on" | "bad-state")

Output

The input datapoint is forwarded unchanged or deleted based on rule R3.

The value of the status point received is converted internally as follow based on the operation type to become the operation input value :

  • OR:
    • For simple point data type, operation input value = value unchanged.
    • For double point data type, operation input value = 1 if the value is "on", else 0.

The operation result is computed as follow based on the operation type:

  • OR: Compute the logical OR of all operation input values (0 if all inputs are 0, else 1).

If one of the inputs was never received, assume its value is 0.

A new data points is generated with the following format based on the operation output data point type :

  • For a simple point data type :
    • PIVOT.GTIS.* = copy from input PIVOT.GITS.*

    • PIVOT.GTIS.Identifier = output status point pivot ID
    • PIVOT.GTIS.SpsTyp.* = copy from input PIVOT.GITS.<PivotType>.*
    • PIVOT.GTIS.SpsTyp.stVal = operation result
    • PIVOT.GTIS.SpsTyp.q.Source = "substituted"
  • For a double point data type :
    • PIVOT.GTIS.* = copy from input PIVOT.GITS.*
    • PIVOT.GTIS.Identifier = output status point pivot ID
    • PIVOT.GTIS.DpsTyp.* = copy from input PIVOT.GITS.<PivotType>.*
    • PIVOT.GTIS.DpsTyp.stVal"on" if operation result is 1, else "off"
    • PIVOT.GTIS.DpsTyp.q.Source = "substituted"


  • No labels