RealDensity, AtTemperature, Buoyancy are stored in Results DB in Batch table.

This commit is contained in:
Milan Hanajik
2021-01-28 13:33:38 +01:00
parent dd8feaa963
commit 229c87f920
9 changed files with 47 additions and 73 deletions
+8 -3
View File
@@ -1,4 +1,7 @@
using System; ///
/// Copyright (c) 2021 Sensus Slovensko a.s.
///
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
@@ -40,7 +43,7 @@ namespace Results
public static BatchResults NewFromProcedure(int batchNr, int benchId, string benchName, string a1, string a2, string a3, string a4, string a5, public static BatchResults NewFromProcedure(int batchNr, int benchId, string benchName, string a1, string a2, string a3, string a4, string a5,
string user, int userNr, string programVer, Config.Entities.Procedure procedure, string user, int userNr, string programVer, Config.Entities.Procedure procedure,
WaterMeterData[] waterMeterDatas, int[] waterMeterParts, double densityCorr) WaterMeterData[] waterMeterDatas, int[] waterMeterParts, double realDensity, double atTemperature, double buoyancy)
{ {
BatchResults d = new BatchResults(waterMeterDatas.Length); BatchResults d = new BatchResults(waterMeterDatas.Length);
int year = DateTime.Now.Year; int year = DateTime.Now.Year;
@@ -65,7 +68,9 @@ namespace Results
ProcedureRevision = procedure.Revision, ProcedureRevision = procedure.Revision,
ProtocolTitle = string.Empty, ProtocolTitle = string.Empty,
StartTime = DateTime.Now, StartTime = DateTime.Now,
DensityCorr = (float)densityCorr, RealDensity = realDensity,
AtTemperature = atTemperature,
Buoyancy = buoyancy,
Compound = (procedure.MetersKind == Config.Entities.MetersKind.Combined), Compound = (procedure.MetersKind == Config.Entities.MetersKind.Combined),
#if HEAT_METERS #if HEAT_METERS
HeatMeter = (procedure.MetersKind == Config.Entities.MetersKind.HeatMeter), HeatMeter = (procedure.MetersKind == Config.Entities.MetersKind.HeatMeter),
+15 -30
View File
@@ -1,5 +1,5 @@
/// ///
/// Copyright (c) 2015-2020 Sensus Slovensko a.s. /// Copyright (c) 2015-2021 Sensus Slovensko a.s.
/// ///
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@@ -28,9 +28,9 @@ namespace Results.Entities
public virtual string WatermetersStr { get; set; } /// CEVAK, not mapped to DB public virtual string WatermetersStr { get; set; } /// CEVAK, not mapped to DB
public virtual string ProtocolTitle { get; set; } public virtual string ProtocolTitle { get; set; }
public virtual string Remark { get; set; } public virtual string Remark { get; set; }
public virtual float DensityCorr { get; set; } /// Density correction in [kg/m3] public virtual double RealDensity { get; set; } /// Density correction in [kg/m3]
public virtual float Custom2 { get; set; } public virtual double AtTemperature { get; set; }
public virtual float Custom3 { get; set; } public virtual double Buoyancy { get; set; }
public virtual int Counter6 { get; set; } public virtual int Counter6 { get; set; }
public virtual int Counter7 { get; set; } public virtual int Counter7 { get; set; }
public virtual int Counter8 { get; set; } public virtual int Counter8 { get; set; }
@@ -117,6 +117,9 @@ namespace Results.Entities
ProtocolTitle = string.Empty; ProtocolTitle = string.Empty;
ProtocolTitle = string.Empty; ProtocolTitle = string.Empty;
Remark = string.Empty; Remark = string.Empty;
RealDensity = Config.Data.RealDensity;
AtTemperature = Config.Data.AtTemperature;
Buoyancy = Config.Data.Buoyancy;
} }
public virtual int PassedMetersCount() public virtual int PassedMetersCount()
@@ -263,24 +266,6 @@ namespace Results.Entities
return 0; return 0;
} }
public virtual double Buoyancy()
{
double timeSum = 0;
double sum = 0;
foreach (var tr in TestRslts)
{
if (tr.TestData.Evaluate && tr.TestDone)
{
double duration = (tr.EndTime - tr.StartTime).TotalSeconds;
timeSum += duration;
sum += (tr.Buoyancy * duration);
}
}
return (timeSum == 0) ? 0 : (sum / timeSum);
}
public virtual TestRslt GetTestRslt(string name, int part) public virtual TestRslt GetTestRslt(string name, int part)
{ {
foreach (var tr in TestRslts) foreach (var tr in TestRslts)
@@ -297,10 +282,10 @@ namespace Results.Entities
public virtual string ToString(int i) public virtual string ToString(int i)
{ {
return string.Format("Batch: BatchNr={0} ProgramVersion={1} TestBenchId={2} UserName={3} UserNumber={4} ProcedureName={5}{6} ProcRev={7} ProtocolTitle={8} Remark={9} DensityCorr={10} Custom2={11} Custom3={12} StartTime={13} EndTime={14} Dirty={15} RsltsSent={16} RsltsPrinted={17}", return string.Format("Batch: BatchNr={0} ProgramVersion={1} TestBenchId={2} UserName={3} UserNumber={4} ProcedureName={5}{6} ProcRev={7} ProtocolTitle={8} Remark={9} RealDensity={10} AtTemperature={11} Buoyancy={12} StartTime={13} EndTime={14} Dirty={15} RsltsSent={16} RsltsPrinted={17}",
BatchNr, ProgramVersion, TestBenchId, UserName, UserNumber, BatchNr, ProgramVersion, TestBenchId, UserName, UserNumber,
ProcedureName, (IsRemoteProcedure ? "(R)" : ""), ProcedureRevision, ProcedureName, (IsRemoteProcedure ? "(R)" : ""), ProcedureRevision,
ProtocolTitle, Remark, DensityCorr, Custom2, Custom3, ProtocolTitle, Remark, RealDensity, AtTemperature, Buoyancy,
StartTime, EndTime, Dirty, RsltsSent, RsltsPrinted); StartTime, EndTime, Dirty, RsltsSent, RsltsPrinted);
} }
@@ -325,9 +310,9 @@ namespace Results.Entities
writer.Write((WatermetersStr != null) ? WatermetersStr : string.Empty); writer.Write((WatermetersStr != null) ? WatermetersStr : string.Empty);
writer.Write((ProtocolTitle != null) ? ProtocolTitle : string.Empty); writer.Write((ProtocolTitle != null) ? ProtocolTitle : string.Empty);
writer.Write((Remark != null) ? Remark : string.Empty); writer.Write((Remark != null) ? Remark : string.Empty);
writer.Write(DensityCorr); writer.Write(RealDensity);
writer.Write(Custom2); writer.Write(AtTemperature);
writer.Write(Custom3); writer.Write(Buoyancy);
writer.Write(Counter6); writer.Write(Counter6);
writer.Write(Counter7); writer.Write(Counter7);
writer.Write(Counter8); writer.Write(Counter8);
@@ -392,9 +377,9 @@ namespace Results.Entities
WatermetersStr = reader.ReadString(); WatermetersStr = reader.ReadString();
ProtocolTitle = reader.ReadString(); ProtocolTitle = reader.ReadString();
Remark = reader.ReadString(); Remark = reader.ReadString();
DensityCorr = reader.ReadInt32(); RealDensity = reader.ReadDouble();
Custom2 = reader.ReadInt32(); AtTemperature = reader.ReadDouble();
Custom3 = reader.ReadInt32(); Buoyancy = reader.ReadDouble();
Counter6 = reader.ReadInt32(); Counter6 = reader.ReadInt32();
Counter7 = reader.ReadInt32(); Counter7 = reader.ReadInt32();
Counter8 = reader.ReadInt32(); Counter8 = reader.ReadInt32();
+5 -5
View File
@@ -1,5 +1,5 @@
/// ///
/// Copyright (c) 2019 Sensus Slovensko a.s. /// Copyright (c) 2015-2021 Sensus Slovensko a.s.
/// ///
using FluentNHibernate.Mapping; using FluentNHibernate.Mapping;
using Results.Entities; using Results.Entities;
@@ -22,10 +22,10 @@ namespace Results.Mappings
Map(x => x.Remark) Map(x => x.Remark)
.CustomType("StringClob") .CustomType("StringClob")
.CustomSqlType("varchar(2000)"); .CustomSqlType("varchar(2000)");
Map(x => x.DensityCorr)
.Column("Custom1"); ; Map(x => x.RealDensity).Column("Custom1");
Map(x => x.Custom2); Map(x => x.AtTemperature).Column("Custom2");
Map(x => x.Custom3); Map(x => x.Buoyancy).Column("Custom3");
Map(x => x.Counter6); Map(x => x.Counter6);
Map(x => x.Counter7); Map(x => x.Counter7);
+5 -12
View File
@@ -43,13 +43,6 @@ namespace Results
return item2; return item2;
} }
/// This is to show RealDensity and AtTemperatire in reports.
public static double RealDensity; /// true water density [kg/m3]
public static double AtTemperature; /// measured at temperature [°C]
public static double Buoyancy;
/// ///
/// Function to pick a MeterTestResult field and convert it into a string /// Function to pick a MeterTestResult field and convert it into a string
/// ///
@@ -182,9 +175,9 @@ namespace Results
/// Density /// Density
/// ///
AllItems.Add(new WMeterRsltItemSpec(ItemID.Density, Strings.Density + " ()", Quantity.Density, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V4", w.GetTestRslt(t).DensityLine))); AllItems.Add(new WMeterRsltItemSpec(ItemID.Density, Strings.Density + " ()", Quantity.Density, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V4", w.GetTestRslt(t).DensityLine)));
AllItems.Add(new WMeterRsltItemSpec(ItemID.Density_correction, Strings.Density_correction + " ()", Quantity.Density, ItemCategory.TestResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V3", (w.Batch.DensityCorr)))); AllItems.Add(new WMeterRsltItemSpec(ItemID.Density_correction, Strings.Density_correction + " ()", Quantity.Density, ItemCategory.BenchData, (w, t, u, f, p) => FormatDbl(u, f, p, "V3", Config.Formulas.DensityCorrection(w.Batch.RealDensity, w.Batch.AtTemperature))));
AllItems.Add(new WMeterRsltItemSpec(ItemID.Rho_Wa_calc, string.Format("{0} of sample", Strings.Density), Quantity.Density, ItemCategory.TestResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V4", RealDensity))); AllItems.Add(new WMeterRsltItemSpec(ItemID.Rho_Wa_calc, string.Format("{0} of sample", Strings.Density), Quantity.Density, ItemCategory.TestResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V4", w.Batch.RealDensity)));
AllItems.Add(new WMeterRsltItemSpec(ItemID.RhoDistilledWtrAtMeLineTemp, string.Format("{0} of distilled water at T line", Strings.Density), Quantity.Density, ItemCategory.TestResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V4", (w.GetTestRslt(t) == null) ? 0 : Config.Formulas.DistilledWaterDensityFromTemp((w.GetTestRslt(t).TempUpMean + w.GetTestRslt(t).TempDownMean) / 2)))); AllItems.Add(new WMeterRsltItemSpec(ItemID.RhoDistilledWtrAtMeLineTemp, string.Format("{0} of distilled water at T line", Strings.Density), Quantity.Density, ItemCategory.BenchData, (w, t, u, f, p) => FormatDbl(u, f, p, "V4", (w.GetTestRslt(t) == null) ? 0 : Config.Formulas.DistilledWaterDensityFromTemp((w.GetTestRslt(t).TempUpMean + w.GetTestRslt(t).TempDownMean) / 2))));
/// ///
/// Date and time /// Date and time
@@ -259,7 +252,7 @@ namespace Results
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_div_avg, string.Format("{0} DI avg ()", Strings.VName_Temp), Strings.Tooltip_T_di_avg, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", (w.GetTestRslt(t).TempDivStart + w.GetTestRslt(t).TempDivEnd) / 2))); AllItems.Add(new WMeterRsltItemSpec(ItemID.T_div_avg, string.Format("{0} DI avg ()", Strings.VName_Temp), Strings.Tooltip_T_di_avg, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", (w.GetTestRslt(t).TempDivStart + w.GetTestRslt(t).TempDivEnd) / 2)));
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_div_min, string.Format("{0} DI min ()", Strings.VName_Temp), Strings.Tooltip_T_di_min, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).TempDivMin))); AllItems.Add(new WMeterRsltItemSpec(ItemID.T_div_min, string.Format("{0} DI min ()", Strings.VName_Temp), Strings.Tooltip_T_di_min, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).TempDivMin)));
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_div_max, string.Format("{0} DI max ()", Strings.VName_Temp), Strings.Tooltip_T_di_max, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).TempDivMax))); AllItems.Add(new WMeterRsltItemSpec(ItemID.T_div_max, string.Format("{0} DI max ()", Strings.VName_Temp), Strings.Tooltip_T_di_max, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "V3", w.GetTestRslt(t).TempDivMax)));
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_rho_0, string.Format("{0} RO0", Strings.VName_Temp), Strings.Tooltip_T_rho_0, Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V3", AtTemperature))); AllItems.Add(new WMeterRsltItemSpec(ItemID.T_rho_0, string.Format("{0} RO0", Strings.VName_Temp), Strings.Tooltip_T_rho_0, Quantity.Temperature, ItemCategory.BenchData, (w, t, u, f, p) => FormatDbl(u, f, p, "V3", w.Batch.AtTemperature)));
#if HEAT_METERS #if HEAT_METERS
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_Hi_mean, string.Format("{0} hi me", Strings.VName_Temp), Quantity.Temperature, ItemCategory.Other, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F3", w.GetTestRslt(t).Custom1))); AllItems.Add(new WMeterRsltItemSpec(ItemID.T_Hi_mean, string.Format("{0} hi me", Strings.VName_Temp), Quantity.Temperature, ItemCategory.Other, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F3", w.GetTestRslt(t).Custom1)));
AllItems.Add(new WMeterRsltItemSpec(ItemID.T_Hi_start, string.Format("{0} hi st", Strings.VName_Temp), Quantity.Temperature, ItemCategory.Other, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F3", w.GetTestRslt(t).Custom2))); AllItems.Add(new WMeterRsltItemSpec(ItemID.T_Hi_start, string.Format("{0} hi st", Strings.VName_Temp), Quantity.Temperature, ItemCategory.Other, (w, t, u, f, p) => (w.GetTestRslt(t) == null) ? "" : FormatDbl(u, f, p, "F3", w.GetTestRslt(t).Custom2)));
@@ -316,7 +309,7 @@ namespace Results
AllItems.Add(new WMeterRsltItemSpec(ItemID.Amb_temp_start_end, string.Format("{0} Amb ST/EN", Strings.VName_Temp), Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V3", (w.GetTestRslt(t) == null) ? w.Batch.AmbTempStart() : w.GetTestRslt(t).AmbTempStart, (w.GetTestRslt(t) == null) ? w.Batch.AmbTempEnd() : w.GetTestRslt(t).AmbTempEnd))); AllItems.Add(new WMeterRsltItemSpec(ItemID.Amb_temp_start_end, string.Format("{0} Amb ST/EN", Strings.VName_Temp), Quantity.Temperature, ItemCategory.TestResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V3", (w.GetTestRslt(t) == null) ? w.Batch.AmbTempStart() : w.GetTestRslt(t).AmbTempStart, (w.GetTestRslt(t) == null) ? w.Batch.AmbTempEnd() : w.GetTestRslt(t).AmbTempEnd)));
AllItems.Add(new WMeterRsltItemSpec(ItemID.Amb_press_start_end, string.Format("{0} Amb ST/EN", Strings.VName_Press), Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V4", (w.GetTestRslt(t) == null) ? w.Batch.AmbPressStart(): w.GetTestRslt(t).AmbPressStart, (w.GetTestRslt(t) == null) ? w.Batch.AmbPressEnd() : w.GetTestRslt(t).AmbPressEnd))); AllItems.Add(new WMeterRsltItemSpec(ItemID.Amb_press_start_end, string.Format("{0} Amb ST/EN", Strings.VName_Press), Quantity.Pressure, ItemCategory.TestResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V4", (w.GetTestRslt(t) == null) ? w.Batch.AmbPressStart(): w.GetTestRslt(t).AmbPressStart, (w.GetTestRslt(t) == null) ? w.Batch.AmbPressEnd() : w.GetTestRslt(t).AmbPressEnd)));
AllItems.Add(new WMeterRsltItemSpec(ItemID.Amb_humi_start_end, string.Format("{0} Amb ST/EN", Strings.VName_Humi), Quantity.Humidity, ItemCategory.TestResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V2", (w.GetTestRslt(t) == null) ? w.Batch.AmbHumiStart() : w.GetTestRslt(t).AmbHumiStart, (w.GetTestRslt(t) == null) ? w.Batch.AmbHumiEnd() : w.GetTestRslt(t).AmbHumiEnd))); AllItems.Add(new WMeterRsltItemSpec(ItemID.Amb_humi_start_end, string.Format("{0} Amb ST/EN", Strings.VName_Humi), Quantity.Humidity, ItemCategory.TestResult, (w, t, u, f, p) => FormatDbl(u, f, p, "V2", (w.GetTestRslt(t) == null) ? w.Batch.AmbHumiStart() : w.GetTestRslt(t).AmbHumiStart, (w.GetTestRslt(t) == null) ? w.Batch.AmbHumiEnd() : w.GetTestRslt(t).AmbHumiEnd)));
AllItems.Add(new WMeterRsltItemSpec(ItemID.Buoyancy, "Buoyancy ()", Quantity.Number, ItemCategory.TestResult, (w, t, u, f, p) => string.IsNullOrEmpty(t) ? FormatDbl(u, f, p, "V6", w.Batch.Buoyancy()) : ((w.GetTestRslt(t) != null) ? FormatDbl(u, f, p, "V6", (w.GetTestRslt(t).Buoyancy)) : ""))); AllItems.Add(new WMeterRsltItemSpec(ItemID.Buoyancy, "Buoyancy", Quantity.Number, ItemCategory.BenchData, (w, t, u, f, p) => FormatDbl(u, f, p, "V6", w.Batch.Buoyancy)));
/// ///
/// Error /// Error
@@ -32,10 +32,7 @@ namespace TBF.BenchControl.DataContainers.Buoyancy
/// This is to use data in formulas /// This is to use data in formulas
Config.Data.Buoyancy = Buoyancy; Config.Data.Buoyancy = Buoyancy;
/// This is to have data in reports log.Warn(this.ToString());
Results.WMeterRsltItemSpec.Buoyancy = Buoyancy;
log.Debug(this.ToString());
} }
public IList<Config.CalendarEvent.ICalendarEvent> GetCalendarEvents() public IList<Config.CalendarEvent.ICalendarEvent> GetCalendarEvents()
@@ -34,11 +34,7 @@ namespace TBF.BenchControl.DataContainers.Density
Config.Data.RealDensity = RealDensity; Config.Data.RealDensity = RealDensity;
Config.Data.AtTemperature = AtTemperature; Config.Data.AtTemperature = AtTemperature;
/// This is to have data in reports log.Warn(this.ToString());
Results.WMeterRsltItemSpec.RealDensity = RealDensity;
Results.WMeterRsltItemSpec.AtTemperature = AtTemperature;
log.Debug(this.ToString());
} }
public IList<Config.CalendarEvent.ICalendarEvent> GetCalendarEvents() public IList<Config.CalendarEvent.ICalendarEvent> GetCalendarEvents()
+3 -2
View File
@@ -636,8 +636,9 @@ namespace TBF.BenchControl.Sequences
StateMachine.Procedure, StateMachine.Procedure,
waterMeterData, waterMeterData,
waterMeterParts, waterMeterParts,
Config.Formulas.DensityCorrection(Config.Formulas.RealDensity(), Config.Formulas.RealDensity(),
Config.Formulas.AtTemperature())); Config.Formulas.AtTemperature(),
Config.Formulas.Buoyancy());
} }
/// <summary> /// <summary>
@@ -84,7 +84,6 @@ namespace TBF.UI.Bench.Metrology
{ {
double buoyancy = Utils.ParseUDouble(buoyancyTextBox.Text); double buoyancy = Utils.ParseUDouble(buoyancyTextBox.Text);
Results.WMeterRsltItemSpec.Buoyancy =
Config.Data.Buoyancy = BuoyancyCfg.Buoyancy = buoyancy; Config.Data.Buoyancy = BuoyancyCfg.Buoyancy = buoyancy;
Component modified = BuoyancyCfg.CreateDbEntity(); Component modified = BuoyancyCfg.CreateDbEntity();
@@ -113,11 +113,9 @@ namespace TBF.UI.Bench.Metrology
double realDensity = Utils.ParseUDouble(densityTextBox.Text); double realDensity = Utils.ParseUDouble(densityTextBox.Text);
double atTemperature = Utils.ParseUDouble(temperatureTextBox.Text); double atTemperature = Utils.ParseUDouble(temperatureTextBox.Text);
Results.WMeterRsltItemSpec.RealDensity =
Config.Data.RealDensity = DensityCfg.RealDensity = realDensity; Config.Data.RealDensity = DensityCfg.RealDensity = realDensity;
Results.WMeterRsltItemSpec.AtTemperature =
Config.Data.AtTemperature = DensityCfg.AtTemperature = atTemperature; Config.Data.AtTemperature = DensityCfg.AtTemperature = atTemperature;
DensityCfg.CalibCertificateNr = calibCertificateNrTextBox.Text; DensityCfg.CalibCertificateNr = calibCertificateNrTextBox.Text;
DensityCfg.CalibDate = calibDateTimePicker.Value.Date; DensityCfg.CalibDate = calibDateTimePicker.Value.Date;
DensityCfg.CalibValidDate = calibExpirationDateTimePicker.Value.Date; DensityCfg.CalibValidDate = calibExpirationDateTimePicker.Value.Date;