BatchResults serialization (WriteBinary/ReadBinary methods)

This commit is contained in:
Milan Hanajik
2020-02-05 10:23:30 +01:00
parent ef75c30af9
commit 51523ea577
8 changed files with 766 additions and 34 deletions
+238 -3
View File
@@ -1,15 +1,16 @@
///
/// Copyright (c) 2015-2018 Sensus Slovensko a.s.
/// Copyright (c) 2015-2020 Sensus Slovensko a.s.
///
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace Results.Entities
{
public class TestRslt
{
/// Identity
/// Identity
public virtual int Id { get; protected set; }
public virtual Batch Batch { get; set; }
public virtual TestData TestData { get; set; }
@@ -395,5 +396,239 @@ namespace Results.Entities
Custom1, Custom2, Custom3, Custom4, Custom5, Custom6, Custom7, Custom8, Custom9, Custom10,
DiverterStart, DiverterEnd);
}
}
public virtual void WriteBinary(BinaryWriter writer)
{
writer.Write(Id);
TestData.WriteBinary(writer); /// Writes TestData, does not write batch
Components.WriteBinary(writer); /// Writes Components
writer.Write(Part);
writer.Write(RepetitionNr);
writer.Write(MethodClass);
writer.Write(TestDone);
writer.Write(Remark);
writer.Write(StartTime.ToString());
writer.Write(EndTime.ToString());
writer.Write(FlowSetTime);
writer.Write(TimeBtwnMassMsrmnts);
writer.Write(TestTime);
writer.Write(TestTimeCorrection);
writer.Write(PulsesMaster);
writer.Write(TotalPulsesMstr);
writer.Write(ConstMasterRaw);
writer.Write(ConstMasterCorr);
writer.Write(ConstMaster);
writer.Write(MassStartRaw);
writer.Write(MassStart);
writer.Write(MassEndRaw);
writer.Write(MassEnd);
writer.Write(DensityIn);
writer.Write(DensityLine);
writer.Write(DensityDiv);
writer.Write(Buoyancy);
writer.Write(FlowMass);
writer.Write(FlowVolume);
writer.Write(VolumeCTV);
writer.Write(VolumeMaster);
writer.Write(ErrorMaster);
writer.Write(DiverterStart);
writer.Write(DivStart10);
writer.Write(DivStart50);
writer.Write(DivStart90);
writer.Write(DiverterEnd);
writer.Write(DivEnd90);
writer.Write(DivEnd50);
writer.Write(DivEnd10);
writer.Write(ErrorFlags);
writer.Write(InfoFlags);
writer.Write(RefEnergy);
writer.Write(AmbTempMean);
writer.Write(AmbTempStart);
writer.Write(AmbTempEnd);
writer.Write(AmbTempMin);
writer.Write(AmbTempMax);
writer.Write(AmbPressMean);
writer.Write(AmbPressStart);
writer.Write(AmbPressEnd);
writer.Write(AmbPressMin);
writer.Write(AmbPressMax);
writer.Write(AmbHumiMean);
writer.Write(AmbHumiStart);
writer.Write(AmbHumiEnd);
writer.Write(AmbHumiMin);
writer.Write(AmbHumiMax);
writer.Write(PressUpMean);
writer.Write(PressUpStart);
writer.Write(PressUpEnd);
writer.Write(PressUpMin);
writer.Write(PressUpMax);
writer.Write(PressDownMean);
writer.Write(PressDownStart);
writer.Write(PressDownEnd);
writer.Write(PressDownMin);
writer.Write(PressDownMax);
writer.Write(PressDeltaMean);
writer.Write(PressDeltaStart);
writer.Write(PressDeltaEnd);
writer.Write(PressDeltaMin);
writer.Write(PressDeltaMax);
writer.Write(TempUpMean);
writer.Write(TempUpStart);
writer.Write(TempUpEnd);
writer.Write(TempUpMin);
writer.Write(TempUpMax);
writer.Write(TempDownMean);
writer.Write(TempDownStart);
writer.Write(TempDownEnd);
writer.Write(TempDownMin);
writer.Write(TempDownMax);
writer.Write(TempDivMean);
writer.Write(TempDivStart);
writer.Write(TempDivEnd);
writer.Write(TempDivMin);
writer.Write(TempDivMax);
writer.Write(FlowMean);
writer.Write(FlowStart);
writer.Write(FlowEnd);
writer.Write(FlowMin);
writer.Write(FlowMax);
writer.Write(Uncertnt);
writer.Write(UncertntScale);
writer.Write(UncertntDensity);
writer.Write(UncertntTemp);
writer.Write(UncertntPressure);
writer.Write(Custom1);
writer.Write(Custom2);
writer.Write(Custom3);
writer.Write(Custom4);
writer.Write(Custom5);
writer.Write(Custom6);
writer.Write(Custom7);
writer.Write(Custom8);
writer.Write(Custom9);
writer.Write(Custom10);
writer.Write(Counter1);
writer.Write(Counter2);
writer.Write(Counter3);
writer.Write(Counter4);
writer.Write(Counter5);
}
public virtual void ReadBinary(BinaryReader reader)
{
Id = reader.ReadInt32();
TestData.ReadBinary(reader); /// Reads TestData, does not read batch
Components.ReadBinary(reader); /// Reads Components
Part = reader.ReadInt32();
RepetitionNr = reader.ReadInt32();
MethodClass = reader.ReadString();
TestDone = reader.ReadBoolean();
Remark = reader.ReadString();
StartTime = DateTime.Parse(reader.ReadString());
EndTime = DateTime.Parse(reader.ReadString());
FlowSetTime = reader.ReadInt32();
TimeBtwnMassMsrmnts = reader.ReadInt32();
TestTime = reader.ReadDouble();
TestTimeCorrection = reader.ReadDouble();
PulsesMaster = reader.ReadDouble();
TotalPulsesMstr = reader.ReadDouble();
ConstMasterRaw = reader.ReadDouble();
ConstMasterCorr = reader.ReadDouble();
ConstMaster = reader.ReadDouble();
MassStartRaw = reader.ReadDouble();
MassStart = reader.ReadDouble();
MassEndRaw = reader.ReadDouble();
MassEnd = reader.ReadDouble();
DensityIn = reader.ReadDouble();
DensityLine = reader.ReadDouble();
DensityDiv = reader.ReadDouble();
Buoyancy = reader.ReadDouble();
FlowMass = reader.ReadDouble();
FlowVolume = reader.ReadDouble();
VolumeCTV = reader.ReadDouble();
VolumeMaster = reader.ReadDouble();
ErrorMaster = reader.ReadDouble();
DiverterStart = reader.ReadSingle();
DivStart10 = reader.ReadSingle();
DivStart50 = reader.ReadSingle();
DivStart90 = reader.ReadSingle();
DiverterEnd = reader.ReadSingle();
DivEnd90 = reader.ReadSingle();
DivEnd50 = reader.ReadSingle();
DivEnd10 = reader.ReadSingle();
ErrorFlags = reader.ReadInt64();
InfoFlags = reader.ReadInt64();
RefEnergy = reader.ReadDouble();
AmbTempMean = reader.ReadSingle();
AmbTempStart = reader.ReadSingle();
AmbTempEnd = reader.ReadSingle();
AmbTempMin = reader.ReadSingle();
AmbTempMax = reader.ReadSingle();
AmbPressMean = reader.ReadSingle();
AmbPressStart = reader.ReadSingle();
AmbPressEnd = reader.ReadSingle();
AmbPressMin = reader.ReadSingle();
AmbPressMax = reader.ReadSingle();
AmbHumiMean = reader.ReadSingle();
AmbHumiStart = reader.ReadSingle();
AmbHumiEnd = reader.ReadSingle();
AmbHumiMin = reader.ReadSingle();
AmbHumiMax = reader.ReadSingle();
PressUpMean = reader.ReadSingle();
PressUpStart = reader.ReadSingle();
PressUpEnd = reader.ReadSingle();
PressUpMin = reader.ReadSingle();
PressUpMax = reader.ReadSingle();
PressDownMean = reader.ReadSingle();
PressDownStart = reader.ReadSingle();
PressDownEnd = reader.ReadSingle();
PressDownMin = reader.ReadSingle();
PressDownMax = reader.ReadSingle();
PressDeltaMean = reader.ReadSingle();
PressDeltaStart = reader.ReadSingle();
PressDeltaEnd = reader.ReadSingle();
PressDeltaMin = reader.ReadSingle();
PressDeltaMax = reader.ReadSingle();
TempUpMean = reader.ReadSingle();
TempUpStart = reader.ReadSingle();
TempUpEnd = reader.ReadSingle();
TempUpMin = reader.ReadSingle();
TempUpMax = reader.ReadSingle();
TempDownMean = reader.ReadSingle();
TempDownStart = reader.ReadSingle();
TempDownEnd = reader.ReadSingle();
TempDownMin = reader.ReadSingle();
TempDownMax = reader.ReadSingle();
TempDivMean = reader.ReadSingle();
TempDivStart = reader.ReadSingle();
TempDivEnd = reader.ReadSingle();
TempDivMin = reader.ReadSingle();
TempDivMax = reader.ReadSingle();
FlowMean = reader.ReadSingle();
FlowStart = reader.ReadSingle();
FlowEnd = reader.ReadSingle();
FlowMin = reader.ReadSingle();
FlowMax = reader.ReadSingle();
Uncertnt = reader.ReadSingle();
UncertntScale = reader.ReadSingle();
UncertntDensity = reader.ReadSingle();
UncertntTemp = reader.ReadSingle();
UncertntPressure = reader.ReadSingle();
Custom1 = reader.ReadSingle();
Custom2 = reader.ReadSingle();
Custom3 = reader.ReadSingle();
Custom4 = reader.ReadSingle();
Custom5 = reader.ReadSingle();
Custom6 = reader.ReadSingle();
Custom7 = reader.ReadSingle();
Custom8 = reader.ReadSingle();
Custom9 = reader.ReadSingle();
Custom10 = reader.ReadSingle();
Counter1 = reader.ReadInt32();
Counter2 = reader.ReadInt32();
Counter3 = reader.ReadInt32();
Counter4 = reader.ReadInt32();
Counter5 = reader.ReadInt32();
}
}
}