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); }
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, }); }