BatchResults serialization (WriteBinary/ReadBinary methods)
This commit is contained in:
parent
ef75c30af9
commit
51523ea577
@ -2,18 +2,47 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
using log4net;
|
||||
using Results.Entities;
|
||||
using System.IO;
|
||||
using System.Xml;
|
||||
|
||||
namespace Results
|
||||
{
|
||||
public class BatchResults
|
||||
public class BatchResults
|
||||
{
|
||||
public readonly int WMPositionsCount;
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(BatchResults));
|
||||
public virtual System.Xml.Schema.XmlSchema GetSchema() { return null; }
|
||||
|
||||
public IList<Entities.TestData> TestDataList;
|
||||
public IList<Entities.Components> ComponentsList;
|
||||
public IList<Entities.WaterMeterData> WaterMeterDataList;
|
||||
|
||||
public Batch Batch;
|
||||
public int WMPositionsCount;
|
||||
public WaterMeter[] WaterMeters; /// Array length is WMPositionsCount
|
||||
|
||||
|
||||
[XmlIgnore]
|
||||
public IList<Entities.TestData> TestDataList;
|
||||
|
||||
[XmlIgnore]
|
||||
public IList<Entities.Components> ComponentsList;
|
||||
|
||||
[XmlIgnore]
|
||||
public IList<Entities.WaterMeterData> WaterMeterDataList;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Parameterless constructor required for serialization
|
||||
/// </summary>
|
||||
private BatchResults()
|
||||
: this(Config.Data.WMsCount)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Constructor invoked by static BatchResults NewFromProcedure(...)
|
||||
/// </summary>
|
||||
/// <param name="wmPositionsCount">Watermeters count</param>
|
||||
private BatchResults(int wmPositionsCount)
|
||||
{
|
||||
WMPositionsCount = wmPositionsCount;
|
||||
@ -24,9 +53,6 @@ namespace Results
|
||||
}
|
||||
|
||||
|
||||
public Batch Batch;
|
||||
public WaterMeter[] WaterMeters;
|
||||
|
||||
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,
|
||||
WaterMeterData[] waterMeterDatas, int[] waterMeterParts, double densityCorr)
|
||||
@ -201,5 +227,54 @@ namespace Results
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Save public fields of this class to the XML file.
|
||||
/// </summary>
|
||||
public void Save(string fileName)
|
||||
{
|
||||
try
|
||||
{
|
||||
/// Write settings to an unencrypted file
|
||||
using (BinaryWriter writer = new BinaryWriter(File.OpenWrite(fileName)))
|
||||
{
|
||||
WriteBinary(writer);
|
||||
log.Warn("LocalSettings succesfully saved");
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
log.ErrorFormat("Failed to save to '{0}': {1}", fileName, e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void WriteBinary(BinaryWriter writer)
|
||||
{
|
||||
Batch.WriteBinary(writer);
|
||||
writer.Write(WMPositionsCount);
|
||||
writer.Write((WaterMeters != null) ? WaterMeters.Length : (int)0);
|
||||
if (WaterMeters != null)
|
||||
{
|
||||
for (int i = 0; i < WaterMeters.Length; i++)
|
||||
{
|
||||
WaterMeters[i].WriteBinary(writer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void ReadBinary(BinaryReader reader)
|
||||
{
|
||||
Batch = new Batch();
|
||||
Batch.ReadBinary(reader);
|
||||
WMPositionsCount = reader.ReadInt32();
|
||||
int waterMetersLength = reader.ReadInt32();
|
||||
WaterMeters = new WaterMeter[waterMetersLength];
|
||||
for (int i = 0; i < waterMetersLength; i++)
|
||||
{
|
||||
WaterMeters[i] = new WaterMeter();
|
||||
WaterMeters[i].ReadBinary(reader);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,14 +1,15 @@
|
||||
///
|
||||
/// Copyright (c) 2015-2016 Sensus Metering Systems
|
||||
/// Copyright (c) 2015-2020 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
|
||||
namespace Results.Entities
|
||||
{
|
||||
public class Batch
|
||||
{
|
||||
public virtual int Id { get; protected set; }
|
||||
public virtual int Id { get; protected set; }
|
||||
public virtual int BatchNr { get; set; }
|
||||
public virtual int TestBenchId { get; set; }
|
||||
public virtual string TestBenchName { get; set; } /// CEVAK, not mapped to DB
|
||||
@ -50,6 +51,21 @@ namespace Results.Entities
|
||||
Tests = new List<TestData>();
|
||||
WaterMeters = new List<WaterMeter>();
|
||||
TestRslts = new List<TestRslt>();
|
||||
|
||||
TestBenchName = string.Empty;
|
||||
Address1 = string.Empty;
|
||||
Address2 = string.Empty;
|
||||
Address3 = string.Empty;
|
||||
Address4 = string.Empty;
|
||||
Address5 = string.Empty;
|
||||
ProgramVersion = string.Empty;
|
||||
UserName = string.Empty;
|
||||
ProcedureName = string.Empty;
|
||||
ProcedureDescription = string.Empty;
|
||||
WatermetersStr = string.Empty;
|
||||
ProtocolTitle = string.Empty;
|
||||
ProtocolTitle = string.Empty;
|
||||
Remark = string.Empty;
|
||||
}
|
||||
|
||||
public virtual int PassedMetersCount()
|
||||
@ -214,5 +230,83 @@ namespace Results.Entities
|
||||
Custom2, Custom3, StartTime, EndTime, Dirty,
|
||||
RsltsSent, RsltsPrinted);
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void WriteBinary(BinaryWriter writer)
|
||||
{
|
||||
writer.Write(Id);
|
||||
writer.Write(BatchNr);
|
||||
writer.Write(TestBenchId);
|
||||
writer.Write(TestBenchName);
|
||||
writer.Write(Address1);
|
||||
writer.Write(Address2);
|
||||
writer.Write(Address3);
|
||||
writer.Write(Address4);
|
||||
writer.Write(Address5);
|
||||
writer.Write(ProgramVersion);
|
||||
writer.Write(UserName);
|
||||
writer.Write(UserNumber);
|
||||
writer.Write(ProcedureName);
|
||||
writer.Write(ProcedureDescription);
|
||||
writer.Write(ProcedureRevision);
|
||||
writer.Write(WatermetersStr);
|
||||
writer.Write(ProtocolTitle);
|
||||
writer.Write(Remark);
|
||||
writer.Write(DensityCorr);
|
||||
writer.Write(Custom2);
|
||||
writer.Write(Custom3);
|
||||
writer.Write(Counter6);
|
||||
writer.Write(Counter7);
|
||||
writer.Write(Counter8);
|
||||
writer.Write(Counter9);
|
||||
writer.Write(Counter10);
|
||||
writer.Write(StartTime.ToString());
|
||||
writer.Write(EndTime.ToString());
|
||||
writer.Write(Dirty);
|
||||
writer.Write(RsltsSent);
|
||||
writer.Write(RsltsPrinted);
|
||||
writer.Write(Compound);
|
||||
writer.Write(HeatMeter);
|
||||
|
||||
/// TODO: Write lists
|
||||
}
|
||||
|
||||
public virtual void ReadBinary(BinaryReader reader)
|
||||
{
|
||||
Id = reader.ReadInt32();
|
||||
BatchNr = reader.ReadInt32();
|
||||
TestBenchId = reader.ReadInt32();
|
||||
TestBenchName = reader.ReadString();
|
||||
Address1 = reader.ReadString();
|
||||
Address2 = reader.ReadString();
|
||||
Address3 = reader.ReadString();
|
||||
Address4 = reader.ReadString();
|
||||
Address5 = reader.ReadString();
|
||||
ProgramVersion = reader.ReadString();
|
||||
UserName = reader.ReadString();
|
||||
UserNumber = reader.ReadInt32();
|
||||
ProcedureName = reader.ReadString();
|
||||
ProcedureDescription = reader.ReadString();
|
||||
ProcedureRevision = reader.ReadInt32();
|
||||
WatermetersStr = reader.ReadString();
|
||||
ProtocolTitle = reader.ReadString();
|
||||
Remark = reader.ReadString();
|
||||
DensityCorr = reader.ReadInt32();
|
||||
Custom2 = reader.ReadInt32();
|
||||
Custom3 = reader.ReadInt32();
|
||||
Counter6 = reader.ReadInt32();
|
||||
Counter7 = reader.ReadInt32();
|
||||
Counter8 = reader.ReadInt32();
|
||||
Counter9 = reader.ReadInt32();
|
||||
Counter10 = reader.ReadInt32();
|
||||
StartTime = DateTime.Parse(reader.ReadString());
|
||||
EndTime = DateTime.Parse(reader.ReadString());
|
||||
Dirty = reader.ReadBoolean();
|
||||
RsltsSent = reader.ReadBoolean();
|
||||
RsltsPrinted = reader.ReadBoolean();
|
||||
Compound = reader.ReadBoolean();
|
||||
HeatMeter = reader.ReadBoolean();
|
||||
|
||||
/// TODO: Read lists
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,16 +1,17 @@
|
||||
///
|
||||
/// Copyright (c) 2016 Sensus Metering Systems
|
||||
/// Copyright (c) 2016-2020 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.IO;
|
||||
|
||||
namespace Results.Entities
|
||||
{
|
||||
public class Components
|
||||
public class Components
|
||||
{
|
||||
public virtual int Id { get; protected set; }
|
||||
public virtual int TestBenchId { get; set; }
|
||||
public virtual int Id { get; protected set; }
|
||||
public virtual int TestBenchId { get; set; }
|
||||
public virtual string TestBenchName { get; set; }
|
||||
public virtual string Pump { get; set; }
|
||||
public virtual string RegValve { get; set; }
|
||||
@ -90,5 +91,35 @@ namespace Results.Entities
|
||||
list.Add(item); /// Item not fund in the list, it is added to the list
|
||||
return item;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void WriteBinary(BinaryWriter writer)
|
||||
{
|
||||
writer.Write(Id);
|
||||
writer.Write(TestBenchId);
|
||||
writer.Write(TestBenchName);
|
||||
writer.Write(Pump);
|
||||
writer.Write(RegValve);
|
||||
writer.Write(Flowmeter);
|
||||
writer.Write(Diverter);
|
||||
writer.Write(Scale);
|
||||
writer.Write(Custom1);
|
||||
writer.Write(Custom2);
|
||||
writer.Write(Custom3);
|
||||
}
|
||||
|
||||
public virtual void ReadBinary(BinaryReader reader)
|
||||
{
|
||||
Id = reader.ReadInt32();
|
||||
TestBenchId = reader.ReadInt32();
|
||||
TestBenchName = reader.ReadString();
|
||||
Pump = reader.ReadString();
|
||||
RegValve = reader.ReadString();
|
||||
Flowmeter = reader.ReadString();
|
||||
Diverter = reader.ReadString();
|
||||
Scale = reader.ReadString();
|
||||
Custom1 = reader.ReadString();
|
||||
Custom2 = reader.ReadString();
|
||||
Custom3 = reader.ReadString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
///
|
||||
/// Copyright (c) 2013-2018 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2013-2020 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
namespace Results.Entities
|
||||
{
|
||||
public class MeterTestRslt
|
||||
{
|
||||
public virtual int Id { get; protected set; }
|
||||
|
||||
public virtual int Id { get; protected set; }
|
||||
public virtual byte CompoundMeterId { get; set; } /// 0=single, 1=compound/main, 2=compound/aux., 3=compound/overal, 4=heat meter volume, 5=heat meter energy
|
||||
public virtual int RegReaderType { get; set; } /// Not mapped to the DB, does not depend on localization and customer
|
||||
|
||||
@ -143,5 +143,59 @@ namespace Results.Entities
|
||||
{
|
||||
return (TestRslt != null) ? Name() : base.ToString();
|
||||
}
|
||||
|
||||
public virtual void WriteBinary(BinaryWriter writer)
|
||||
{
|
||||
writer.Write(Id);
|
||||
writer.Write(CompoundMeterId);
|
||||
writer.Write(RegReaderType);
|
||||
writer.Write(PulsesMeter);
|
||||
writer.Write(PulsesMaster);
|
||||
writer.Write(PulsesPerLiter);
|
||||
writer.Write(VolumeStart);
|
||||
writer.Write(VolumeEnd);
|
||||
writer.Write(VolumeMeter);
|
||||
writer.Write(VolumeRef);
|
||||
writer.Write(TimestampStart);
|
||||
writer.Write(TimestampEnd);
|
||||
writer.Write(TestTime);
|
||||
writer.Write(Error);
|
||||
writer.Write(ErrorIndicators);
|
||||
writer.Write(InfoIndicators);
|
||||
writer.Write(KorrErrQ);
|
||||
writer.Write(TestDone);
|
||||
writer.Write(Passed);
|
||||
#if ORACLE_DB
|
||||
writer.Write(LastError);
|
||||
#endif
|
||||
/// TODO: Write lists
|
||||
}
|
||||
|
||||
public virtual void ReadBinary(BinaryReader reader)
|
||||
{
|
||||
Id = reader.ReadInt32();
|
||||
CompoundMeterId = reader.ReadByte();
|
||||
RegReaderType = reader.ReadInt32();
|
||||
PulsesMeter = reader.ReadDouble();
|
||||
PulsesMaster = reader.ReadDouble();
|
||||
PulsesPerLiter = reader.ReadDouble();
|
||||
VolumeStart = reader.ReadDouble();
|
||||
VolumeEnd = reader.ReadDouble();
|
||||
VolumeMeter = reader.ReadDouble();
|
||||
VolumeRef = reader.ReadDouble();
|
||||
TimestampStart = reader.ReadDouble();
|
||||
TimestampEnd = reader.ReadDouble();
|
||||
TestTime = reader.ReadDouble();
|
||||
Error = reader.ReadDouble();
|
||||
ErrorIndicators = reader.ReadInt64();
|
||||
InfoIndicators = reader.ReadInt64();
|
||||
KorrErrQ = reader.ReadDouble();
|
||||
TestDone = reader.ReadBoolean();
|
||||
Passed = reader.ReadBoolean();
|
||||
#if ORACLE_DB
|
||||
LastError = reader.ReadDouble();
|
||||
#endif
|
||||
/// TODO: Read lists
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,18 +1,19 @@
|
||||
///
|
||||
/// Copyright (c) 2016 Sensus Metering Systems
|
||||
/// Copyright (c) 2016-2020 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.IO;
|
||||
|
||||
namespace Results.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// Test, consisting of one or more repetitions of the test 'SingleTest'.
|
||||
/// </summary>
|
||||
public class TestData
|
||||
public class TestData
|
||||
{
|
||||
public virtual int Id { get; protected set; }
|
||||
public virtual int Id { get; protected set; }
|
||||
public virtual string Name { get; set; }
|
||||
public virtual int Repeats { get; set; }
|
||||
public virtual double Qtg { get; set; } /// [m3/h] flow range low limit
|
||||
@ -107,5 +108,47 @@ namespace Results.Entities
|
||||
list.Add(item); /// Item not fund in the list, it is added to the list
|
||||
return item;
|
||||
}
|
||||
|
||||
public virtual void WriteBinary(BinaryWriter writer)
|
||||
{
|
||||
writer.Write(Id);
|
||||
writer.Write(Name);
|
||||
writer.Write(Repeats);
|
||||
writer.Write(Qtg);
|
||||
writer.Write(Qfrom);
|
||||
writer.Write(Qto);
|
||||
writer.Write(TargetVolume);
|
||||
writer.Write(TargetTime);
|
||||
writer.Write(Method);
|
||||
writer.Write(ErrLimLo);
|
||||
writer.Write(ErrLimHi);
|
||||
writer.Write(ErrLimMargin);
|
||||
writer.Write(DoControlWaterTemp);
|
||||
writer.Write(TempLimLo);
|
||||
writer.Write(TempLimHi);
|
||||
writer.Write(Publish);
|
||||
writer.Write(Evaluate);
|
||||
}
|
||||
|
||||
public virtual void ReadBinary(BinaryReader reader)
|
||||
{
|
||||
Id = reader.ReadInt32();
|
||||
Name = reader.ReadString();
|
||||
Repeats = reader.ReadInt32();
|
||||
Qtg = reader.ReadDouble();
|
||||
Qfrom = reader.ReadDouble();
|
||||
Qto = reader.ReadDouble();
|
||||
TargetVolume = reader.ReadDouble();
|
||||
TargetTime = reader.ReadDouble();
|
||||
Method = reader.ReadString();
|
||||
ErrLimLo = reader.ReadDouble();
|
||||
ErrLimHi = reader.ReadDouble();
|
||||
ErrLimMargin = reader.ReadDouble();
|
||||
DoControlWaterTemp = reader.ReadBoolean();
|
||||
TempLimLo = reader.ReadSingle();
|
||||
TempLimHi = reader.ReadSingle();
|
||||
Publish = reader.ReadSByte();
|
||||
Evaluate = reader.ReadBoolean();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
///
|
||||
/// Copyright (c) 2015-2017 Sensus Metering Systems
|
||||
/// Copyright (c) 2015-2020 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using Config.Entities;
|
||||
using Results.Resources;
|
||||
|
||||
namespace Results.Entities
|
||||
{
|
||||
|
||||
public enum ResultCode
|
||||
{
|
||||
None = 0,
|
||||
@ -41,7 +41,7 @@ namespace Results.Entities
|
||||
|
||||
public class WaterMeter
|
||||
{
|
||||
public virtual int Id { get; protected set; }
|
||||
public virtual int Id { get; protected set; }
|
||||
public virtual string SerialNr { get; set; } /// S/N _or_ S/N of the main meter of a compound meter _or_ PCB Number of an iPerl water meter
|
||||
public virtual string SerialNrAux { get; set; } /// S/N of the aux. meter of a compound meter _or_ a complete assigned S/N of an iPerl water meter
|
||||
public virtual string PurchaseOrder { get; set; }
|
||||
@ -534,5 +534,129 @@ namespace Results.Entities
|
||||
return NotCompletedColor;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void WriteBinary(BinaryWriter writer)
|
||||
{
|
||||
writer.Write(Id);
|
||||
writer.Write(SerialNr);
|
||||
writer.Write(SerialNrAux);
|
||||
writer.Write(PurchaseOrder);
|
||||
writer.Write(YearOfProduction);
|
||||
writer.Write(WMPosition);
|
||||
writer.Write(EndState);
|
||||
writer.Write(EndStateAux);
|
||||
writer.Write(QRise);
|
||||
writer.Write(QFall);
|
||||
writer.Write(ErrorFlags);
|
||||
writer.Write(InfoFlags);
|
||||
writer.Write(Passed);
|
||||
writer.Write(ResultCode);
|
||||
writer.Write(ArchivePath);
|
||||
writer.Write(Remark);
|
||||
#if IPERL
|
||||
writer.Write(OrigCalibFactor);
|
||||
writer.Write(CalibFactor);
|
||||
writer.Write(OrigCalibFactorLNA);
|
||||
writer.Write(CalibFactorLNA);
|
||||
writer.Write(Q2ErrWOCorrection);
|
||||
writer.Write(Q2CorrRL);
|
||||
writer.Write(Q2CorrLR);
|
||||
writer.Write(Q2CorrFlowRight);
|
||||
writer.Write(Diff2Hz8Hz);
|
||||
writer.Write(Hz2CorrectionDone);
|
||||
writer.Write(Hz2Correction);
|
||||
writer.Write(FWVersion);
|
||||
#endif
|
||||
#if TURA_SPECIAL
|
||||
writer.Write(AssignedSerialNr);
|
||||
writer.Write(CompleteSerialNr);
|
||||
writer.Write(RadioAddress);
|
||||
writer.Write(PaletteNr);
|
||||
writer.Write(UmkartonNr);
|
||||
writer.Write(ProdTestBench);
|
||||
writer.Write(ProdWMPosition);
|
||||
writer.Write(ProdUserName);
|
||||
writer.Write(ProdPurchaseOrder);
|
||||
writer.Write(ProdPassed);
|
||||
writer.Write(ProdResultCode);
|
||||
writer.Write(ProdQ2CorrRL);
|
||||
writer.Write(ProdQ2CorrLR);
|
||||
#endif
|
||||
#if ORACLE_DB
|
||||
writer.Write(Pruefindex);
|
||||
writer.Write(HydrPruefung);
|
||||
writer.Write(WMTypeRevision);
|
||||
|
||||
/// TODO: Write RawTestInfos, CompleteTestInfos
|
||||
#endif
|
||||
writer.Write(ProcessId);
|
||||
writer.Write(SessionId);
|
||||
writer.Write(LastRecordIsNok);
|
||||
|
||||
/// TODO: Write lists
|
||||
/// TODO: lastMeterTestRslts ???
|
||||
}
|
||||
|
||||
public virtual void ReadBinary(BinaryReader reader)
|
||||
{
|
||||
Id = reader.ReadInt32();
|
||||
SerialNr = reader.ReadString();
|
||||
SerialNrAux = reader.ReadString();
|
||||
PurchaseOrder = reader.ReadString();
|
||||
YearOfProduction = reader.ReadInt32();
|
||||
WMPosition = reader.ReadInt32();
|
||||
EndState = reader.ReadString();
|
||||
EndStateAux = reader.ReadString();
|
||||
QRise = reader.ReadDouble();
|
||||
QFall = reader.ReadDouble();
|
||||
ErrorFlags = reader.ReadInt64();
|
||||
InfoFlags = reader.ReadInt64();
|
||||
Passed = reader.ReadBoolean();
|
||||
ResultCode = reader.ReadInt32();
|
||||
ArchivePath = reader.ReadString();
|
||||
Remark = reader.ReadString();
|
||||
#if IPERL
|
||||
OrigCalibFactor = reader.ReadDouble();
|
||||
CalibFactor = reader.ReadDouble();
|
||||
OrigCalibFactorLNA = reader.ReadDouble();
|
||||
CalibFactorLNA = reader.ReadDouble();
|
||||
Q2ErrWOCorrection = reader.ReadDouble();
|
||||
Q2CorrRL = reader.ReadInt32();
|
||||
Q2CorrLR = reader.ReadInt32();
|
||||
Q2CorrFlowRight = reader.ReadInt32();
|
||||
Diff2Hz8Hz = reader.ReadDouble();
|
||||
Hz2CorrectionDone = reader.ReadBoolean();
|
||||
Hz2Correction = reader.ReadInt32();
|
||||
FWVersion = reader.ReadString();
|
||||
#endif
|
||||
#if TURA_SPECIAL
|
||||
AssignedSerialNr = reader.ReadInt32();
|
||||
CompleteSerialNr = reader.ReadString();
|
||||
RadioAddress = reader.ReadString();
|
||||
PaletteNr = reader.ReadInt32();
|
||||
UmkartonNr = reader.ReadInt32();
|
||||
ProdTestBench = reader.ReadString();
|
||||
ProdWMPosition = reader.ReadInt32();
|
||||
ProdUserName = reader.ReadString();
|
||||
ProdPurchaseOrder = reader.ReadString();
|
||||
ProdPassed = reader.ReadBoolean();
|
||||
ProdResultCode = reader.ReadInt32();
|
||||
ProdQ2CorrRL = reader.ReadInt32();
|
||||
ProdQ2CorrLR = reader.ReadInt32();
|
||||
#endif
|
||||
#if ORACLE_DB
|
||||
Pruefindex = reader.ReadInt32();
|
||||
HydrPruefung = reader.ReadInt32();
|
||||
WMTypeRevision = reader.ReadInt32();
|
||||
RawTestInfos = null; /// TODO
|
||||
CompleteTestInfos = null; /// TODO
|
||||
#endif
|
||||
ProcessId = reader.ReadInt32();
|
||||
SessionId = reader.ReadInt32();
|
||||
LastRecordIsNok = reader.ReadBoolean();
|
||||
|
||||
/// TODO: Read lists
|
||||
/// TODO: lastMeterTestRslts ???
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,16 +1,16 @@
|
||||
///
|
||||
/// Copyright (c) 2015-2017 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2015-2020 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.IO;
|
||||
|
||||
namespace Results.Entities
|
||||
{
|
||||
public class WaterMeterData
|
||||
public class WaterMeterData
|
||||
{
|
||||
public virtual int Id { get; protected set; }
|
||||
|
||||
public virtual int Id { get; protected set; }
|
||||
public virtual string ProductName { get; set; }
|
||||
public virtual string Producer { get; set; }
|
||||
|
||||
@ -132,5 +132,81 @@ namespace Results.Entities
|
||||
list.Add(item); /// Item not fund in the list, it is added to the list
|
||||
return item;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void WriteBinary(BinaryWriter writer)
|
||||
{
|
||||
writer.Write(Id);
|
||||
writer.Write(ProductName);
|
||||
writer.Write(Producer);
|
||||
writer.Write(DN);
|
||||
writer.Write(L);
|
||||
writer.Write((int)Mounting);
|
||||
writer.Write(NewQnames);
|
||||
writer.Write(Q4_Qmax);
|
||||
writer.Write(Q3_Qn);
|
||||
writer.Write(Q2_Qt);
|
||||
writer.Write(Q1_Qmin);
|
||||
writer.Write(MetrologicalClass);
|
||||
writer.Write((int)TemperatureClass);
|
||||
writer.Write((int)PressureLossClass);
|
||||
writer.Write((int)MaxAdmissiblePressure);
|
||||
writer.Write((int)FlowProfileSensitivityClass);
|
||||
writer.Write(ApprovalInfo);
|
||||
writer.Write(Certificate);
|
||||
writer.Write(PulsesPerLtr);
|
||||
writer.Write(ProducerAux);
|
||||
writer.Write(Q3_Qn_Aux);
|
||||
writer.Write(MetrologicalClassAux);
|
||||
writer.Write(ApprovalInfoAux);
|
||||
writer.Write((int)Medium);
|
||||
writer.Write(Text1);
|
||||
writer.Write(Text2);
|
||||
writer.Write(Text3);
|
||||
writer.Write(Text4);
|
||||
writer.Write(Text5);
|
||||
writer.Write(Compound);
|
||||
writer.Write(HeatMeter);
|
||||
#if ORACLE_DB
|
||||
writer.Write(WMTypeId);
|
||||
#endif
|
||||
}
|
||||
|
||||
public virtual void ReadBinary(BinaryReader reader)
|
||||
{
|
||||
Id = reader.ReadInt32();
|
||||
ProductName = reader.ReadString();
|
||||
Producer = reader.ReadString();
|
||||
DN = reader.ReadDouble();
|
||||
L = reader.ReadDouble();
|
||||
Mounting = (Config.Entities.Mounting)reader.ReadInt32();
|
||||
NewQnames = reader.ReadBoolean();
|
||||
Q4_Qmax = reader.ReadDouble();
|
||||
Q3_Qn = reader.ReadDouble();
|
||||
Q2_Qt = reader.ReadDouble();
|
||||
Q1_Qmin = reader.ReadDouble();
|
||||
MetrologicalClass = reader.ReadString();
|
||||
TemperatureClass = (Config.Entities.TemperatureClass)reader.ReadInt32();
|
||||
PressureLossClass = (Config.Entities.PressureLossClass)reader.ReadInt32();
|
||||
MaxAdmissiblePressure = (Config.Entities.MaxAdmissiblePressure)reader.ReadInt32();
|
||||
FlowProfileSensitivityClass = (Config.Entities.FlowProfileSensitivityClass)reader.ReadInt32();
|
||||
ApprovalInfo = reader.ReadString();
|
||||
Certificate = reader.ReadString();
|
||||
PulsesPerLtr = reader.ReadDouble();
|
||||
ProducerAux = reader.ReadString();
|
||||
Q3_Qn_Aux = reader.ReadDouble();
|
||||
MetrologicalClassAux = reader.ReadString();
|
||||
ApprovalInfoAux = reader.ReadString();
|
||||
Medium = (Config.Entities.Medium)reader.ReadInt32();
|
||||
Text1 = reader.ReadString();
|
||||
Text2 = reader.ReadString();
|
||||
Text3 = reader.ReadString();
|
||||
Text4 = reader.ReadString();
|
||||
Text5 = reader.ReadString();
|
||||
Compound = reader.ReadBoolean();
|
||||
HeatMeter = reader.ReadBoolean();
|
||||
#if ORACLE_DB
|
||||
WMTypeId = reader.ReadInt32();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user