This is the tricky one. This is a major part of the system and the most troublesome.
Brief description: after parameters are extracted out of TM packets, they must be processed. Following processings are possible:
Validity checks: a parameter value can be marked as valid/invalid. There are certain validity checks. One is e.g. that periodic parameters are only valid for a certain time interval. Other is that the validity of a parameter is determined by the value of another parameter (e.g. temperature sensor value is only valid when the heater was turned on).
Calibrations: the values extracted out of the packet are raw values. To get so-called engineering values, a calibration is applied to the value. There are several possibilities: normal interpolation, polynomial curve, logarithmic curve, textual calibration (enum). The difficult part are the applicability criteria. A calibration may be switched based on another applicability criteria, e.g. based on another parameter value.
Limit Checks: both, the raw and the calibrated value can be checked against limits. There are status consistency checks (depending on another parameter value), enum checks (int value needs to be in a certain range), soft- and hard-limit checks (limit within values triggers either warning on soft- and alarm on high-limit violation), delta checks (the change rate was too fast). The limit checks have a configuration value so that only the n-th violation will trigger the alarm. Also, limit sets are switchable, determined by another parameter value.
Synthetic Parameters: these are parameters, that are calculated on the fly out of other parameter values. There is a simple language (OL), which determines the expressions used to calculate the values. This task depends on another issue (implementing the OL language).
This is the tricky one. This is a major part of the system and the most troublesome.
Brief description: after parameters are extracted out of TM packets, they must be processed. Following processings are possible: