Ejemplo n.º 1
0
        public InputValue[] CurrentInputValues(Timestamp now)
        {
            int N = CalcConfig.Inputs.Count;

            InputValue[] res = new InputValue[N];
            for (int n = 0; n < N; ++n)
            {
                Config.Input input   = CalcConfig.Inputs[n];
                InputValue   inValue = new InputValue()
                {
                    InputID = input.ID
                };
                if (input.Constant.HasValue)
                {
                    inValue.Value = VTQ.Make(input.Constant.Value, now, Quality.Good);
                }
                else if (mapInputValues.ContainsKey(input.ID))
                {
                    VariableValue vv = mapInputValues[input.ID];
                    inValue.Value            = vv.Value;
                    inValue.AttachedVariable = vv.Variable;
                }
                else
                {
                    inValue.Value = VTQ.Make(input.GetDefaultValue(), now, Quality.Bad);
                }
                res[n] = inValue;
            }
            return(res);
        }
Ejemplo n.º 2
0
 private static Config.Input MakeInput(InputDef input, Config.Calculation calc)
 {
     Config.Input old = calc.Inputs.FirstOrDefault(x => x.ID == input.ID);
     return(new Config.Input()
     {
         ID = input.ID,
         Name = input.Name,
         Unit = input.Unit,
         Dimension = input.Dimension,
         Type = input.Type,
         Constant = old != null ? old.Constant : (input.DefaultValue.HasValue ? input.DefaultValue.Value: (DataValue?)null),
         Variable = old != null ? old.Variable : null,
     });
 }