diff --git a/Config/Entities/PTest.cs b/Config/Entities/PTest.cs index f519d2f45..46e616479 100644 --- a/Config/Entities/PTest.cs +++ b/Config/Entities/PTest.cs @@ -24,6 +24,8 @@ namespace Config.Entities public virtual double TempLimHi { get; set; } /// Upper limit for the controlled temperature public virtual double PressLimLo { get; set; } /// [bar] min. water pressure public virtual double PressLimHi { get; set; } /// [bar] max. water pressure + public virtual sbyte Publish { get; set; } /// 0=no, 1=in all protocols, 2=on screen, 3=internal + public virtual bool Evaluate { get; set; } public virtual sbyte E1 { get; set; } /// public virtual sbyte E2 { get; set; } /// @@ -76,6 +78,8 @@ namespace Config.Entities TempLimHi = 25.0; /// [°C] PressLimLo = 0; /// [bar] PressLimHi = 16.0; /// [bar] + Publish = (sbyte)Config.Entities.Publish.Always; + Evaluate = true; E1 = 1; E2 = 1; @@ -133,6 +137,8 @@ namespace Config.Entities result.TempLimHi = TempLimHi; result.PressLimLo = PressLimLo; result.PressLimHi = PressLimHi; + result.Publish = Publish; + result.Evaluate = Evaluate; result.E1 = E1; result.E2 = E2; @@ -184,6 +190,8 @@ namespace Config.Entities output.WriteLine(TempLimHi.ToString(ci)); output.WriteLine(PressLimLo.ToString(ci)); output.WriteLine(PressLimHi.ToString(ci)); + output.WriteLine(Publish.ToString()); + output.WriteLine(Evaluate.ToString()); output.WriteLine(E1.ToString()); output.WriteLine(E2.ToString()); @@ -238,6 +246,8 @@ namespace Config.Entities tst.ErrLimHi = double.Parse(input.ReadLine(), ci); tst.TempLimLo = double.Parse(input.ReadLine(), ci); tst.TempLimHi = double.Parse(input.ReadLine(), ci); + tst.Publish = sbyte.Parse(input.ReadLine()); + tst.Evaluate = bool.Parse(input.ReadLine()); /// TODO (E1 .. E21) @@ -278,8 +288,10 @@ namespace Config.Entities ln = inp.ReadLine(); if (ln != ErrLimHi.ToString(ci)) { diff.AppendFormat(fmt, "ErrLimHi", ErrLimHi.ToString(ci), ln); }; ln = inp.ReadLine(); if (ln != TempLimLo.ToString(ci)) { diff.AppendFormat(fmt, "TempLimLo", TempLimLo.ToString(ci), ln); }; ln = inp.ReadLine(); if (ln != TempLimHi.ToString(ci)) { diff.AppendFormat(fmt, "TempLimHi", TempLimHi.ToString(ci), ln); }; - ln = inp.ReadLine(); if (ln != PressLimLo.ToString(ci)) { diff.AppendFormat(fmt, "Pressure_min", TempLimLo.ToString(ci), ln); }; - ln = inp.ReadLine(); if (ln != PressLimHi.ToString(ci)) { diff.AppendFormat(fmt, "Pressure_max", TempLimHi.ToString(ci), ln); }; + ln = inp.ReadLine(); if (ln != PressLimLo.ToString(ci)) { diff.AppendFormat(fmt, "Pressure_min", PressLimLo.ToString(ci), ln); }; + ln = inp.ReadLine(); if (ln != PressLimHi.ToString(ci)) { diff.AppendFormat(fmt, "Pressure_max", PressLimHi.ToString(ci), ln); }; + ln = inp.ReadLine(); if (ln != Publish.ToString()) { diff.AppendFormat(fmt, "Publish", Publish.ToString(), ln); }; + ln = inp.ReadLine(); if (ln != Evaluate.ToString()) { diff.AppendFormat(fmt, "Evaluate", Evaluate.ToString(), ln); }; ln = inp.ReadLine(); if (ln != E1.ToString()) { diff.AppendFormat(fmt, "E1", E1.ToString(), ln); }; ln = inp.ReadLine(); if (ln != E2.ToString()) { diff.AppendFormat(fmt, "E2", E2.ToString(), ln); }; diff --git a/Config/Mappings/PTestMap.cs b/Config/Mappings/PTestMap.cs index 89b750054..3cf5f1386 100644 --- a/Config/Mappings/PTestMap.cs +++ b/Config/Mappings/PTestMap.cs @@ -22,6 +22,8 @@ namespace Config.Mappings Map(x => x.TempLimHi); Map(x => x.PressLimLo); Map(x => x.PressLimHi); + Map(x => x.Publish); + Map(x => x.Evaluate); Map(x => x.E1); Map(x => x.E2); Map(x => x.E3); diff --git a/TBF/UI/Bench/TestProfiles/TestProfileDlg.cs b/TBF/UI/Bench/TestProfiles/TestProfileDlg.cs index d0e8f12af..bdf67b6ac 100644 --- a/TBF/UI/Bench/TestProfiles/TestProfileDlg.cs +++ b/TBF/UI/Bench/TestProfiles/TestProfileDlg.cs @@ -221,6 +221,8 @@ namespace TBF.UI.Bench.TestProfiles TempLimHi, PressLimLo, PressLimHi, + Publish, + Evaluate, ColumnsCount } @@ -237,6 +239,18 @@ namespace TBF.UI.Bench.TestProfiles lv.Columns.Add(new ColumnHeader { Text = string.Format("{0} [°C]", Strings.Temp_lim_hi_chdr), Width = 100 }); lv.Columns.Add(new ColumnHeader { Text = Strings.Press_lim_lo_chdr, Width = 80 }); lv.Columns.Add(new ColumnHeader { Text = Strings.Press_lim_hi_chdr, Width = 80 }); + lv.Columns.Add(new ColumnHeader { Text = Strings.Publish, Width = 80 }); + lv.Columns.Add(new ColumnHeader { Text = Strings.Evaluate, Width = 80 }); + + ComboBox publishCBox = new ComboBox(); /// control for Publish + for (Config.Entities.Publish pb = 0; pb < Config.Entities.Publish.Count; pb++) + { + publishCBox.Items.Add(pb.ToDescription()); + } + + ComboBox yesNoCBox = new ComboBox(); /// control for Evaluate + yesNoCBox.Items.Add(Strings.yes); + yesNoCBox.Items.Add(Strings.no); metrologyEditors = new Control[] { @@ -250,6 +264,8 @@ namespace TBF.UI.Bench.TestProfiles new TextBox(), /// Temp.Lim. + new TextBox(), /// Press.Lim. - new TextBox(), /// Press.Lim. + + publishCBox, /// Publish + yesNoCBox, /// Evaluate }; foreach (var ctrl in metrologyEditors) @@ -293,6 +309,8 @@ namespace TBF.UI.Bench.TestProfiles lvi.SubItems.Add(pTest.TempLimHi.ToString()); lvi.SubItems.Add(pTest.PressLimLo.ToString()); lvi.SubItems.Add(pTest.PressLimHi.ToString()); + lvi.SubItems.Add(((Config.Entities.Publish)pTest.Publish).ToDescription()); + lvi.SubItems.Add(pTest.Evaluate ? Strings.yes : Strings.no); metrologyListViewEx.Items.Add(lvi); } @@ -301,40 +319,57 @@ namespace TBF.UI.Bench.TestProfiles { for (int i = 0; i < metrologyListViewEx.Items.Count; i++) { - ListViewItem lvi = metrologyListViewEx.Items[i]; - PTest entity = (PTest)lvi.Tag; + try + { + ListViewItem lvi = metrologyListViewEx.Items[i]; + PTest entity = (PTest)lvi.Tag; - entity.Name = lvi.Text; - entity.ItemNr = i; + entity.Name = lvi.Text; + entity.ItemNr = i; - int part = entity.Part; - if (lvi.SubItems[(int)MtrlgyClmn.Part].Text.Equals("-")) - { - entity.Part = 0; - } - else if (int.TryParse(lvi.SubItems[(int)MtrlgyClmn.Part].Text, out part)) - { - entity.Part = part; - } + int part = entity.Part; + if (lvi.SubItems[(int)MtrlgyClmn.Part].Text.Equals("-")) + { + entity.Part = 0; + } + else if (int.TryParse(lvi.SubItems[(int)MtrlgyClmn.Part].Text, out part)) + { + entity.Part = part; + } - double tmp; - if (Utils.TryParseUDouble(lvi.SubItems[(int)MtrlgyClmn.CoefQfrom].Text, out tmp)) entity.CoefQfrom = tmp; - if (Utils.TryParseUDouble(lvi.SubItems[(int)MtrlgyClmn.CoefQto].Text, out tmp)) entity.CoefQto = tmp; - if (LoadedProfile.ProfileType != ProfileType.QpQi) - { - if (Utils.TryParseSDouble(lvi.SubItems[(int)MtrlgyClmn.ErrLimLo].Text, out tmp)) entity.ErrLimLo = tmp; - if (Utils.TryParseSDouble(lvi.SubItems[(int)MtrlgyClmn.ErrLimHi].Text, out tmp)) entity.ErrLimHi = tmp; + entity.CoefQfrom = Utils.ParseUDouble(lvi.SubItems[(int)MtrlgyClmn.CoefQfrom].Text); + entity.CoefQto = Utils.ParseUDouble(lvi.SubItems[(int)MtrlgyClmn.CoefQto].Text); + if (LoadedProfile.ProfileType != ProfileType.QpQi) + { + entity.ErrLimLo = Utils.ParseSDouble(lvi.SubItems[(int)MtrlgyClmn.ErrLimLo].Text); + entity.ErrLimHi = Utils.ParseSDouble(lvi.SubItems[(int)MtrlgyClmn.ErrLimHi].Text); + } + else + { + entity.ErrLimLo = +1.0; + entity.ErrLimHi = -1.0; + } + entity.TempLimLo = Utils.ParseUDouble(lvi.SubItems[(int)MtrlgyClmn.TempLimLo].Text); + entity.TempLimHi = Utils.ParseUDouble(lvi.SubItems[(int)MtrlgyClmn.TempLimHi].Text); + entity.PressLimLo = Utils.ParseUDouble(lvi.SubItems[(int)MtrlgyClmn.PressLimLo].Text); + entity.PressLimHi = Utils.ParseUDouble(lvi.SubItems[(int)MtrlgyClmn.PressLimHi].Text); + + entity.Evaluate = lvi.SubItems[(int)MtrlgyClmn.Evaluate].Text.Equals(Strings.yes); + + for (Config.Entities.Publish pb = 0; pb < Config.Entities.Publish.Count; pb++) + { + if (lvi.SubItems[(int)MtrlgyClmn.Publish].Text.Equals(pb.ToDescription())) + { + entity.Publish = (sbyte)pb; + break; + } + } } - else + catch (Exception exc) { - entity.ErrLimLo = +1.0; - entity.ErrLimHi = -1.0; + MessageBox.Show(string.Format("Unexpected problem: {0}", exc.Message)); } - if (Utils.TryParseUDouble(lvi.SubItems[(int)MtrlgyClmn.TempLimLo].Text, out tmp)) entity.TempLimLo = tmp; - if (Utils.TryParseUDouble(lvi.SubItems[(int)MtrlgyClmn.TempLimHi].Text, out tmp)) entity.TempLimHi = tmp; - if (Utils.TryParseUDouble(lvi.SubItems[(int)MtrlgyClmn.PressLimLo].Text, out tmp)) entity.PressLimLo = tmp; - if (Utils.TryParseUDouble(lvi.SubItems[(int)MtrlgyClmn.PressLimHi].Text, out tmp)) entity.PressLimHi = tmp; - } + } } private void metrologyListViewEx_SubItemClicked(object sender, SubItemEventArgs e) @@ -416,6 +451,17 @@ namespace TBF.UI.Bench.TestProfiles e.Cancel = true; return; } + + /// Combo boxes + if ((e.SubItem == (int)MtrlgyClmn.Publish) || (e.SubItem == (int)MtrlgyClmn.Evaluate)) + { + if (!(metrologyEditors[e.SubItem] as ComboBox).Items.Contains(e.DisplayText)) + { + e.DisplayText = e.Item.SubItems[e.SubItem].Text; + e.Cancel = true; + return; + } + } } #endregion diff --git a/TBF/UI/Procedures/ProceduresCtrl.cs b/TBF/UI/Procedures/ProceduresCtrl.cs index 468c9b6fc..fabf860ad 100644 --- a/TBF/UI/Procedures/ProceduresCtrl.cs +++ b/TBF/UI/Procedures/ProceduresCtrl.cs @@ -566,8 +566,8 @@ namespace TBF.UI.Procedures test.Qto = (float)(Qtg * ptest.CoefQto); test.TempLimLo = (float)ptest.TempLimLo; test.TempLimHi = (float)ptest.TempLimHi; - test.DoEvaluate = true; - test.Publish = (sbyte)Publish.Always; + test.Publish = ptest.Publish; + test.DoEvaluate = ptest.Evaluate; if (pt != ProfileType.QpQi) {