diff --git a/Common/IMeasurementCorrection.cs b/Common/IMeasurementCorrection.cs index 14d22e492..a03be9b73 100644 --- a/Common/IMeasurementCorrection.cs +++ b/Common/IMeasurementCorrection.cs @@ -7,5 +7,6 @@ namespace Common int RangeIx { get; set; } double Measurement { get; set; } double Correction { get; set; } + double Uncertainty { get; set; } } } diff --git a/Config/Entities/MeasurementCorrection.cs b/Config/Entities/MeasurementCorrection.cs index 8ff1abc62..f1aa3fe78 100644 --- a/Config/Entities/MeasurementCorrection.cs +++ b/Config/Entities/MeasurementCorrection.cs @@ -12,6 +12,7 @@ namespace Config.Entities public virtual int RangeIx { get; set; } /// 0..5 public virtual double Measurement { get; set; } public virtual double Correction { get; set; } + public virtual double Uncertainty { get; set; } public MeasurementCorrection() { @@ -84,7 +85,7 @@ namespace Config.Entities public override string ToString() { - return string.Format("{0} {1} ({2})", Measurement, Correction, RangeIx); + return string.Format("{0} {1} ({2}) {3}", Measurement, Correction, RangeIx, Uncertainty); } } } diff --git a/Config/Mappings/MeasurementCorrectionMap.cs b/Config/Mappings/MeasurementCorrectionMap.cs index 20df1ac2a..fed3b2c55 100644 --- a/Config/Mappings/MeasurementCorrectionMap.cs +++ b/Config/Mappings/MeasurementCorrectionMap.cs @@ -14,6 +14,7 @@ namespace Config.Mappings Map(x => x.RangeIx); Map(x => x.Measurement); Map(x => x.Correction); + Map(x => x.Uncertainty); } } } diff --git a/GemCard/GemCard.csproj b/GemCard/GemCard.csproj index e3993d092..ea7072015 100644 --- a/GemCard/GemCard.csproj +++ b/GemCard/GemCard.csproj @@ -45,6 +45,7 @@ false true + 4 bin\Debug\ diff --git a/TBF.sln.DotSettings.user b/TBF.sln.DotSettings.user index 651fe81c0..07f6d3e36 100644 --- a/TBF.sln.DotSettings.user +++ b/TBF.sln.DotSettings.user @@ -1,4 +1,9 @@  + <AssemblyExplorer> + <Assembly Path="C:\Users\micha\git\tbf\packages\FluentNHibernate.2.0.3.0\lib\net40\FluentNHibernate.dll" /> +</AssemblyExplorer> + C:\Program Files\JetBrains\JetBrains Rider 2024.1.6\tools\MSBuild\Current\Bin\amd64\MSBuild.exe + 1114112 True 77EB589F-C670-4489-AAD6-2A3C02061FD1 77EB589F-C670-4489-AAD6-2A3C02061FD1 diff --git a/TBF/ReadMe.md b/TBF/ReadMe.md new file mode 100644 index 000000000..68b4bdd02 --- /dev/null +++ b/TBF/ReadMe.md @@ -0,0 +1,12 @@ +# Information about new inserted functionality + + +## Version + +Document start on version `3.9.2144.1` + +### v3.9.2144 Uncertainty +#### Database update +``` +alter table measurementcorrection add Uncertainty float null; +``` \ No newline at end of file diff --git a/TBF/TBF.csproj b/TBF/TBF.csproj index 42eb13944..79f4de5c2 100644 --- a/TBF/TBF.csproj +++ b/TBF/TBF.csproj @@ -3586,6 +3586,7 @@ + diff --git a/TBF/UI/Bench/Metrology/MetrologyDlgAdjustableScaleTab.cs b/TBF/UI/Bench/Metrology/MetrologyDlgAdjustableScaleTab.cs index 94456777d..d1bf4e241 100644 --- a/TBF/UI/Bench/Metrology/MetrologyDlgAdjustableScaleTab.cs +++ b/TBF/UI/Bench/Metrology/MetrologyDlgAdjustableScaleTab.cs @@ -52,6 +52,7 @@ namespace TBF.UI.Bench.Metrology Control measurementTextBox; Control correctionTextBox; Control errorTextBox; + Control uncertaintyTextBox; Unit currentUnit; @@ -81,6 +82,7 @@ namespace TBF.UI.Bench.Metrology this.Controls.Add(measurementTextBox = new TextBox()); this.Controls.Add(correctionTextBox = new TextBox()); this.Controls.Add(errorTextBox = new TextBox()); + this.Controls.Add(uncertaintyTextBox = new TextBox()); currentUnit = TBF.Rig.Sequences.ProcessData.ElectricUnit; unitComboBox.Text = currentUnit.ToDescription(); @@ -99,6 +101,7 @@ namespace TBF.UI.Bench.Metrology lv.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [{1}]", Strings.Current, unit.ToDescription()), Width = 100 }); lv.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [{1}]", Strings.Correction, unit.ToDescription()), Width = 100 }); lv.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [%]", Strings.Error), Width = 100 }); + lv.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [%]", Strings.Uncertainty), Width = 100 }); measuredLabel.Text = string.Format("{0} [{1}]:", Strings.Measured, unit.ToDescription()); correctedLabel.Text = string.Format("{0} [{1}]:", Strings.Corrected, unit.ToDescription()); @@ -132,6 +135,7 @@ namespace TBF.UI.Bench.Metrology : Units.ConvertTo(currentUnit, trueValue) - Units.ConvertTo(currentUnit, corr.Measurement); lvi.SubItems.Add(Common.Utils.ToNiceString(difference, SignifDigits)); + //error if (corr.Measurement == 0) { lvi.SubItems.Add(Strings.NaN); @@ -141,6 +145,10 @@ namespace TBF.UI.Bench.Metrology double error = Formulas.ErrorFromVolumes(corr.Measurement, trueValue); lvi.SubItems.Add(Common.Utils.ToNiceString(error, SignifDigits)); } + + //uncertainty + lvi.SubItems.Add(Common.Utils.ToNiceString(corr.Uncertainty, SignifDigits)); + listViewEx.Items.Add(lvi); } @@ -158,6 +166,10 @@ namespace TBF.UI.Bench.Metrology else if (unlocked && e.SubItem == 3) { listViewEx.StartEditing(correctionTextBox, e.Item, e.SubItem); + } + else if (unlocked && e.SubItem == 4) + { + listViewEx.StartEditing(uncertaintyTextBox, e.Item, e.SubItem); } } @@ -181,6 +193,7 @@ namespace TBF.UI.Bench.Metrology double difference; /// Correction in selected unit double correction; /// Correction in default unit double error = 0; + double uncertainty = 0; if (subItem == 1 && Utils.TryParseEDouble(strValue, out oriMeasurement) && (measurement = Units.ConvertFrom(currentUnit, oriMeasurement)) >= 0) { @@ -248,6 +261,19 @@ namespace TBF.UI.Bench.Metrology return true; } + else if (subItem == 4 && ((strValue == Strings.NaN) || Utils.TryParseEDouble(strValue, out uncertainty))) + { + if (strValue == Strings.NaN) + { + } + else + { + (item.Tag as MeasurementCorrection).Uncertainty = uncertainty; + item.SubItems[4].Text = Common.Utils.ToNiceString(uncertainty, SignifDigits); + } + + return true; + } else { return false; diff --git a/TBF/UI/Bench/Metrology/MetrologyDlgDiverterTab.cs b/TBF/UI/Bench/Metrology/MetrologyDlgDiverterTab.cs index b47fbac57..703c8086c 100644 --- a/TBF/UI/Bench/Metrology/MetrologyDlgDiverterTab.cs +++ b/TBF/UI/Bench/Metrology/MetrologyDlgDiverterTab.cs @@ -48,6 +48,7 @@ namespace TBF.UI.Bench.Metrology bool unlocked; Control measurementTextBox; Control correctionTextBox; + Control uncertaintyTextBox; public MetrologyDlgDiverterTab() @@ -76,8 +77,10 @@ namespace TBF.UI.Bench.Metrology /// Panel2 measurementTextBox = new TextBox(); correctionTextBox = new TextBox(); + uncertaintyTextBox = new TextBox(); this.Controls.Add(measurementTextBox); this.Controls.Add(correctionTextBox); + this.Controls.Add(uncertaintyTextBox); listViewEx.SubItemClicked += new SubItemEventHandler(listViewEx_SubItemClicked); listViewEx.SubItemRightClicked += new SubItemEventHandler(listViewEx_SubItemRightClicked); @@ -86,6 +89,7 @@ namespace TBF.UI.Bench.Metrology listViewEx.Columns.Add(new ColumnHeader() { Text = Strings.Nr, Width = 60 }); listViewEx.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [m3/h]", Strings.Flow), Width = 100 }); listViewEx.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [ms]", Strings.Correction), Width = 100 }); + listViewEx.Columns.Add(new ColumnHeader() {Text = string.Format("{0} [%]", Strings.Uncertainty), Width = 100}); RefreshAll(); } @@ -119,6 +123,7 @@ namespace TBF.UI.Bench.Metrology ListViewItem lvi = new ListViewItem(nr.ToString()); lvi.SubItems.Add(corr.Measurement.ToString()); lvi.SubItems.Add((1000 * corr.Correction).ToString()); + lvi.SubItems.Add(corr.Uncertainty.ToString()); lvi.Tag = corr; listViewEx.Items.Add(lvi); } @@ -133,11 +138,15 @@ namespace TBF.UI.Bench.Metrology { listViewEx.StartEditing(correctionTextBox, e.Item, e.SubItem); } + else if (unlocked && e.SubItem == 3) + { + listViewEx.StartEditing(uncertaintyTextBox, e.Item, e.SubItem); + } } void listViewEx_SubItemRightClicked(object sender, SubItemEventArgs e) { - if (!unlocked || e.SubItem < 1 || e.SubItem > 2) return; + if (!unlocked || e.SubItem < 1 || e.SubItem > 3) return; if (DialogResult.Yes == MessageBox.Show(Strings.Do_you_want_to_copy_this_value_to_all_cells_below_this_cell, Strings.Confirmation, MessageBoxButtons.YesNo, MessageBoxIcon.Question)) @@ -189,6 +198,12 @@ namespace TBF.UI.Bench.Metrology (item.Tag as MeasurementCorrection).Correction = fvalue / 1000; return true; } + else if (subItem == 3 && Utils.TryParseEFloat(value, out fvalue)) + { + (item.Tag as MeasurementCorrection).Uncertainty = fvalue ; + return true; + } + else { return false; diff --git a/TBF/UI/Bench/Metrology/MetrologyDlgEvaporationTab.cs b/TBF/UI/Bench/Metrology/MetrologyDlgEvaporationTab.cs index 6270d9d3d..b953c1896 100644 --- a/TBF/UI/Bench/Metrology/MetrologyDlgEvaporationTab.cs +++ b/TBF/UI/Bench/Metrology/MetrologyDlgEvaporationTab.cs @@ -48,6 +48,7 @@ namespace TBF.UI.Bench.Metrology bool unlocked; Control measurementTextBox; Control correctionTextBox; + Control uncertaintyTextBox; public MetrologyDlgEvaporationTab() @@ -76,8 +77,10 @@ namespace TBF.UI.Bench.Metrology /// Panel2 measurementTextBox = new TextBox(); correctionTextBox = new TextBox(); + uncertaintyTextBox = new TextBox(); this.Controls.Add(measurementTextBox); this.Controls.Add(correctionTextBox); + this.Controls.Add(uncertaintyTextBox); listViewEx.SubItemClicked += new SubItemEventHandler(listViewEx_SubItemClicked); listViewEx.SubItemRightClicked += new SubItemEventHandler(listViewEx_SubItemRightClicked); @@ -86,6 +89,7 @@ namespace TBF.UI.Bench.Metrology listViewEx.Columns.Add(new ColumnHeader() { Text = Strings.Nr, Width = 60 }); listViewEx.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [°C]", Strings.Temperature), Width = 100 }); listViewEx.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [g/hour]", Strings.Evaporation), Width = 100 }); + listViewEx.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [%]", Strings.Uncertainty), Width = 100 }); RefreshAll(); } @@ -116,6 +120,7 @@ namespace TBF.UI.Bench.Metrology ListViewItem lvi = new ListViewItem(nr.ToString()); lvi.SubItems.Add(corr.Measurement.ToString()); lvi.SubItems.Add((1000 * corr.Correction).ToString()); + lvi.SubItems.Add(corr.Uncertainty.ToString()); lvi.Tag = corr; listViewEx.Items.Add(lvi); } @@ -130,6 +135,10 @@ namespace TBF.UI.Bench.Metrology { listViewEx.StartEditing(correctionTextBox, e.Item, e.SubItem); } + else if (unlocked && e.SubItem == 3) + { + listViewEx.StartEditing(uncertaintyTextBox, e.Item, e.SubItem); + } } void listViewEx_SubItemRightClicked(object sender, SubItemEventArgs e) @@ -186,6 +195,11 @@ namespace TBF.UI.Bench.Metrology (item.Tag as MeasurementCorrection).Correction = fvalue / 1000; return true; } + else if (subItem == 3 && Utils.TryParseEFloat(value, out fvalue)) + { + (item.Tag as MeasurementCorrection).Uncertainty = fvalue; + return true; + } else { return false; diff --git a/TBF/UI/Bench/Metrology/MetrologyDlgFlowMeterTab.cs b/TBF/UI/Bench/Metrology/MetrologyDlgFlowMeterTab.cs index 278e12b74..dcf29c870 100644 --- a/TBF/UI/Bench/Metrology/MetrologyDlgFlowMeterTab.cs +++ b/TBF/UI/Bench/Metrology/MetrologyDlgFlowMeterTab.cs @@ -52,6 +52,7 @@ namespace TBF.UI.Bench.Metrology Control measurementTextBox; Control correctionTextBox; Control errorTextBox; + Control uncertaintyTextBox; readonly int rangeIx; /// 0 (no range) or 1..5 (range #) readonly bool isLastFlowMeterRange; /// true when this is the last range of this flow meter. /// This is to prevent double saving of the meter entity to a DB @@ -96,6 +97,7 @@ namespace TBF.UI.Bench.Metrology this.Controls.Add(measurementTextBox = new TextBox()); this.Controls.Add(correctionTextBox = new TextBox()); this.Controls.Add(errorTextBox = new TextBox()); + this.Controls.Add(uncertaintyTextBox = new TextBox()); currentUnit = TBF.Rig.Sequences.ProcessData.FlowUnit; unitComboBox.Text = currentUnit.ToDescription(); @@ -114,6 +116,7 @@ namespace TBF.UI.Bench.Metrology lv.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [{1}]", Strings.Flow, unit.ToDescription()), Width = 120 }); lv.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [{1}]", Strings.Correction, unit.ToDescription()), Width = 150 }); lv.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [%]", Strings.Error), Width = 100 }); + lv.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [%]", Strings.Uncertainty), Width = 100 }); measuredLabel.Text = string.Format("{0} [{1}]:", Strings.Measured, unit.ToDescription()); correctedLabel.Text = string.Format("{0} [{1}]:", Strings.Corrected, unit.ToDescription()); @@ -163,6 +166,8 @@ namespace TBF.UI.Bench.Metrology lvi.SubItems.Add(Common.Utils.ToNiceString(error, SignifDigits)); } + lvi.SubItems.Add(corr.Uncertainty.ToString()); + listViewEx.Items.Add(lvi); } @@ -179,6 +184,10 @@ namespace TBF.UI.Bench.Metrology else if (unlocked && e.SubItem == 3) { listViewEx.StartEditing(correctionTextBox, e.Item, e.SubItem); + } + else if (unlocked && e.SubItem == 4) + { + listViewEx.StartEditing(uncertaintyTextBox, e.Item, e.SubItem); } } @@ -202,6 +211,7 @@ namespace TBF.UI.Bench.Metrology double difference; /// Correction in selected unit double correction; /// Correction in default unit double error = 0; + double uncertainty; if (subItem == 1 && Utils.TryParseEDouble(strValue, out oriMeasurement) && (measurement = Units.ConvertFrom(currentUnit, oriMeasurement)) >= 0) { @@ -269,6 +279,21 @@ namespace TBF.UI.Bench.Metrology return true; } + if (subItem == 4 && Utils.TryParseEDouble(strValue, out uncertainty)) + { + (item.Tag as MeasurementCorrection).Uncertainty = uncertainty; + + if (uncertainty == 0.0f) + { + item.SubItems[3].Text = Strings.NaN; + } + else + { + item.SubItems[3].Text = Common.Utils.ToNiceString(uncertainty, SignifDigits); + } + + return true; + } else { return false; diff --git a/TBF/UI/Bench/Metrology/MetrologyDlgLevelMeterTab.cs b/TBF/UI/Bench/Metrology/MetrologyDlgLevelMeterTab.cs index 5255fe62c..a0abbe3c6 100644 --- a/TBF/UI/Bench/Metrology/MetrologyDlgLevelMeterTab.cs +++ b/TBF/UI/Bench/Metrology/MetrologyDlgLevelMeterTab.cs @@ -48,6 +48,7 @@ namespace TBF.UI.Bench.Metrology bool unlocked; Control measurementTextBox; Control correctionTextBox; + Control uncertaintyTextBox; public MetrologyDlgLevelMeterTab() @@ -76,8 +77,10 @@ namespace TBF.UI.Bench.Metrology /// Panel2 measurementTextBox = new TextBox(); correctionTextBox = new TextBox(); + uncertaintyTextBox = new TextBox(); this.Controls.Add(measurementTextBox); this.Controls.Add(correctionTextBox); + this.Controls.Add(uncertaintyTextBox); listViewEx.SubItemClicked += new SubItemEventHandler(listViewEx_SubItemClicked); listViewEx.SubItemRightClicked += new SubItemEventHandler(listViewEx_SubItemRightClicked); @@ -86,6 +89,7 @@ namespace TBF.UI.Bench.Metrology listViewEx.Columns.Add(new ColumnHeader() { Text = Strings.Nr, Width = 60 }); listViewEx.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [mm]", Strings.Level), Width = 100 }); listViewEx.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [mm]", Strings.Correction), Width = 100 }); + listViewEx.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [%]", Strings.Uncertainty), Width = 100 }); RefreshAll(); } @@ -116,6 +120,7 @@ namespace TBF.UI.Bench.Metrology ListViewItem lvi = new ListViewItem(nr.ToString()); lvi.SubItems.Add(corr.Measurement.ToString()); lvi.SubItems.Add((corr.Correction).ToString()); + lvi.SubItems.Add((corr.Uncertainty).ToString()); lvi.Tag = corr; listViewEx.Items.Add(lvi); } @@ -186,6 +191,11 @@ namespace TBF.UI.Bench.Metrology (item.Tag as MeasurementCorrection).Correction = fvalue; return true; } + else if (subItem == 3 && Utils.TryParseEFloat(value, out fvalue)) + { + (item.Tag as MeasurementCorrection).Uncertainty = fvalue; + return true; + } else { return false; diff --git a/TBF/UI/Bench/Metrology/MetrologyDlgPressMeterTab.cs b/TBF/UI/Bench/Metrology/MetrologyDlgPressMeterTab.cs index b8cac9eb6..6d234bb45 100644 --- a/TBF/UI/Bench/Metrology/MetrologyDlgPressMeterTab.cs +++ b/TBF/UI/Bench/Metrology/MetrologyDlgPressMeterTab.cs @@ -52,6 +52,7 @@ namespace TBF.UI.Bench.Metrology Control measurementTextBox; Control correctionTextBox; Control errorTextBox; + Control uncertaintyTextBox; Unit currentUnit; @@ -81,6 +82,7 @@ namespace TBF.UI.Bench.Metrology this.Controls.Add(measurementTextBox = new TextBox()); this.Controls.Add(correctionTextBox = new TextBox()); this.Controls.Add(errorTextBox = new TextBox()); + this.Controls.Add(uncertaintyTextBox = new TextBox()); currentUnit = TBF.Rig.Sequences.ProcessData.PressUnit; unitComboBox.Text = currentUnit.ToDescription(); @@ -99,6 +101,7 @@ namespace TBF.UI.Bench.Metrology lv.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [{1}]", Strings.Pressure, unit.ToDescription()), Width = 100 }); lv.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [{1}]", Strings.Correction, unit.ToDescription()), Width = 100 }); lv.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [%]", Strings.Error), Width = 100 }); + lv.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [%]", Strings.Uncertainty), Width = 100 }); measuredLabel.Text = string.Format("{0} [{1}]:", Strings.Measured, unit.ToDescription()); correctedLabel.Text = string.Format("{0} [{1}]:", Strings.Corrected, unit.ToDescription()); @@ -132,6 +135,7 @@ namespace TBF.UI.Bench.Metrology : Units.ConvertTo(currentUnit, trueValue) - Units.ConvertTo(currentUnit, corr.Measurement); lvi.SubItems.Add(Common.Utils.ToNiceString(difference, SignifDigits)); + //error if (corr.Measurement == 0) { lvi.SubItems.Add(Strings.NaN); @@ -141,6 +145,10 @@ namespace TBF.UI.Bench.Metrology double error = Formulas.ErrorFromVolumes(corr.Measurement, trueValue); lvi.SubItems.Add(Common.Utils.ToNiceString(error, SignifDigits)); } + + //uncertainty + lvi.SubItems.Add(Common.Utils.ToNiceString(corr.Uncertainty, SignifDigits)); + listViewEx.Items.Add(lvi); } @@ -158,6 +166,10 @@ namespace TBF.UI.Bench.Metrology else if (unlocked && e.SubItem == 3) { listViewEx.StartEditing(correctionTextBox, e.Item, e.SubItem); + } + else if (unlocked && e.SubItem == 4) + { + listViewEx.StartEditing(uncertaintyTextBox, e.Item, e.SubItem); } } @@ -181,6 +193,7 @@ namespace TBF.UI.Bench.Metrology double difference; /// Correction in selected unit double correction; /// Correction in default unit double error = 0; + double uncertaitity; if (subItem == 1 && Utils.TryParseEDouble(strValue, out oriMeasurement) && (measurement = Units.ConvertFrom(currentUnit, oriMeasurement)) >= 0) { @@ -248,6 +261,19 @@ namespace TBF.UI.Bench.Metrology return true; } + else if (subItem == 4 && (Utils.TryParseEDouble(strValue, out uncertaitity))) + { + if (strValue == Strings.NaN) + { + } + else + { + (item.Tag as MeasurementCorrection).Uncertainty = uncertaitity; + item.SubItems[4].Text = Common.Utils.ToNiceString(uncertaitity, SignifDigits); + } + + return true; + } else { return false; diff --git a/TBF/UI/Bench/Metrology/MetrologyDlgScaleTab.cs b/TBF/UI/Bench/Metrology/MetrologyDlgScaleTab.cs index 933b25c08..c852985fa 100644 --- a/TBF/UI/Bench/Metrology/MetrologyDlgScaleTab.cs +++ b/TBF/UI/Bench/Metrology/MetrologyDlgScaleTab.cs @@ -53,6 +53,7 @@ namespace TBF.UI.Bench.Metrology Control measurementTextBox; Control correctionTextBox; Control errorTextBox; + Control uncertaintyTextBox; Unit currentUnit; @@ -82,6 +83,7 @@ namespace TBF.UI.Bench.Metrology this.Controls.Add(measurementTextBox = new TextBox()); this.Controls.Add(correctionTextBox = new TextBox()); this.Controls.Add(errorTextBox = new TextBox()); + this.Controls.Add(uncertaintyTextBox = new TextBox()); currentUnit = TBF.Rig.Sequences.ProcessData.MassUnit; unitComboBox.Text = currentUnit.ToDescription(); @@ -100,6 +102,7 @@ namespace TBF.UI.Bench.Metrology lv.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [{1}]", Strings.Mass, unit.ToDescription()), Width = 120 }); lv.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [{1}]", Strings.Correction, unit.ToDescription()), Width = 150 }); lv.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [%]", Strings.Error), Width = 100 }); + lv.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [%]", Strings.Uncertainty), Width = 100 }); measuredLabel.Text = string.Format("{0} [{1}]:", Strings.Measured, unit.ToDescription()); correctedLabel.Text = string.Format("{0} [{1}]:", Strings.Corrected, unit.ToDescription()); @@ -156,6 +159,8 @@ namespace TBF.UI.Bench.Metrology double error = Formulas.ErrorFromVolumes(corr.Measurement, trueValue); lvi.SubItems.Add(Common.Utils.ToNiceString(error, SignifDigits)); } + + lvi.SubItems.Add(corr.Uncertainty.ToString()); listViewEx.Items.Add(lvi); } @@ -173,6 +178,10 @@ namespace TBF.UI.Bench.Metrology else if (unlocked && e.SubItem == 3) { listViewEx.StartEditing(correctionTextBox, e.Item, e.SubItem); + } + else if (unlocked && e.SubItem == 4) + { + listViewEx.StartEditing(uncertaintyTextBox, e.Item, e.SubItem); } } @@ -196,6 +205,7 @@ namespace TBF.UI.Bench.Metrology double difference; /// Correction in selected unit double correction; /// Correction in default unit double error = 0; + double uncertainty; if (subItem == 1 && Utils.TryParseEDouble(strValue, out oriMeasurement) && (measurement = Units.ConvertFrom(currentUnit, oriMeasurement)) >= 0) { @@ -263,6 +273,20 @@ namespace TBF.UI.Bench.Metrology return true; } + else if (subItem == 4 && Utils.TryParseEDouble(strValue, out uncertainty)) + { + (item.Tag as MeasurementCorrection).Uncertainty = uncertainty; + + if (uncertainty != 0) + { + item.SubItems[3].Text = Common.Utils.ToNiceString(uncertainty, SignifDigits); + } + else + { + item.SubItems[3].Text = Strings.NaN; + } + return true; + } else { return false; diff --git a/TBF/UI/Bench/Metrology/MetrologyDlgTempMeterTab.cs b/TBF/UI/Bench/Metrology/MetrologyDlgTempMeterTab.cs index cc96470c8..fb57e84ab 100644 --- a/TBF/UI/Bench/Metrology/MetrologyDlgTempMeterTab.cs +++ b/TBF/UI/Bench/Metrology/MetrologyDlgTempMeterTab.cs @@ -52,7 +52,8 @@ namespace TBF.UI.Bench.Metrology Control measurementTextBox; Control correctionTextBox; Control errorTextBox; - + Control uncertaintyTextBox; + Unit currentUnit; public MetrologyDlgTempMeterTab() @@ -81,6 +82,7 @@ namespace TBF.UI.Bench.Metrology this.Controls.Add(measurementTextBox = new TextBox()); this.Controls.Add(correctionTextBox = new TextBox()); this.Controls.Add(errorTextBox = new TextBox()); + this.Controls.Add(uncertaintyTextBox = new TextBox()); currentUnit = TBF.Rig.Sequences.ProcessData.TempUnit; unitComboBox.Text = currentUnit.ToDescription(); @@ -99,6 +101,7 @@ namespace TBF.UI.Bench.Metrology lv.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [{1}]", Strings.Temperature, unit.ToDescription()), Width = 120 }); lv.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [{1}]", Strings.Correction, unit.ToDescription()), Width = 150 }); lv.Columns.Add(new ColumnHeader() { Text = string.Format("{0} [%]", Strings.Error), Width = 100 }); + lv.Columns.Add(new ColumnHeader() {Text = string.Format("{0} [%]", Strings.Uncertainty), Width = 100 }); measuredLabel.Text = string.Format("{0} [{1}]:", Strings.Measured, unit.ToDescription()); correctedLabel.Text = string.Format("{0} [{1}]:", Strings.Corrected, unit.ToDescription()); @@ -144,6 +147,7 @@ namespace TBF.UI.Bench.Metrology double error = Formulas.ErrorFromVolumes(corr.Measurement, trueValue); lvi.SubItems.Add(Common.Utils.ToNiceString(error, SignifDigits)); } + lvi.SubItems.Add(corr.Uncertainty.ToString()); listViewEx.Items.Add(lvi); } @@ -161,6 +165,10 @@ namespace TBF.UI.Bench.Metrology else if (unlocked && e.SubItem == 3) { listViewEx.StartEditing(correctionTextBox, e.Item, e.SubItem); + } + else if (unlocked && e.SubItem == 4) + { + listViewEx.StartEditing(uncertaintyTextBox, e.Item, e.SubItem); } } @@ -184,6 +192,7 @@ namespace TBF.UI.Bench.Metrology double difference; /// Correction in selected unit double correction; /// Correction in default unit double error = 0; + double uncertainty; if (subItem == 1 && Utils.TryParseEDouble(strValue, out oriMeasurement) && (measurement = Units.ConvertFrom(currentUnit, oriMeasurement)) >= 0) { @@ -251,6 +260,20 @@ namespace TBF.UI.Bench.Metrology return true; } + if (subItem == 4 && Utils.TryParseEDouble(strValue, out uncertainty)) + { + (item.Tag as MeasurementCorrection).Uncertainty = uncertainty; + + if (strValue == Strings.NaN) + { + } + else + { + item.SubItems[2].Text = Common.Utils.ToNiceString(uncertainty, SignifDigits); + } + + return true; + } else { return false;