Integrate Genesis meter support into FlyingStartMassCollectionSeq:
- Add initialization, calibration, and measurement logic for Genesis meters. - Extend result handling to capture Genesis-specific data (timestamps, volumes, errors). - Ensure proper cleanup of Genesis meters at test conclusion.
This commit is contained in:
parent
ab0e5ea82a
commit
5cefd7fc3a
@ -18,6 +18,7 @@ using TBF.Rig.RegisterReaders.PoseidonReader.implementations;
|
||||
using TBF.Rig.Uni.SharedDialogs.SmartMetersCommunication.common;
|
||||
using TBF.UiBridge;
|
||||
using TBF.Rig.RegisterReaders.PulsesFromUniCB;
|
||||
using TBF.Rig.TestMethods.GenesisCommunication.GenesisHead;
|
||||
|
||||
namespace TBF.Rig.TestMethods.FlyingStartMassCollection
|
||||
{
|
||||
@ -166,8 +167,11 @@ namespace TBF.Rig.TestMethods.FlyingStartMassCollection
|
||||
|
||||
/// Start the test, initialize test results
|
||||
Bridge.OnTestSelected(this, new TestSelectedEventArgs(test, repetitionNr, inPath, benchPath, outPath, sensPath, heatMetersPath));
|
||||
string testName = Results.Utils.GetTestName(test.Name, test.Repeats, repetitionNr);
|
||||
TestStartTime = DateTime.Now;
|
||||
string testName = Results.Utils.GetTestName(test.Name, test.Repeats, repetitionNr);
|
||||
TestStartTime = DateTime.Now;
|
||||
|
||||
bool atleastOneGenesis = false;
|
||||
atleastOneGenesis = GenesisHeadBatch.Start(sensPath.RegisterReaders, Program.LocalSettings.LastSNTexts);
|
||||
|
||||
//------------------------------------------------
|
||||
Bridge.OnActivity(this, Strings.Checking_tank_capacity);
|
||||
@ -447,7 +451,21 @@ namespace TBF.Rig.TestMethods.FlyingStartMassCollection
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (atleastOneGenesis)
|
||||
{
|
||||
if (test.Name.ToLower().Contains("calib"))
|
||||
{
|
||||
GenesisHeadBatch.BatchHolder.Value.MetersLogin();
|
||||
GenesisHeadBatch.BatchHolder.Value.MetersInitCalibration();
|
||||
|
||||
}
|
||||
if (test.Name.ToLower().Contains("Init"))
|
||||
{
|
||||
GenesisHeadBatch.BatchHolder.Value.MetersLogin();
|
||||
GenesisHeadBatch.BatchHolder.Value.MetersInitMeasurement();
|
||||
}
|
||||
}
|
||||
|
||||
if (drainTheTank)
|
||||
{
|
||||
@ -933,6 +951,7 @@ namespace TBF.Rig.TestMethods.FlyingStartMassCollection
|
||||
GenericDevices.IRegReaderDatastream dstrReader = regReader as GenericDevices.IRegReaderDatastream;
|
||||
TestMethods.iPerlCommunication.iPerlHead.IperlHead iPerl = regReader as TestMethods.iPerlCommunication.iPerlHead.IperlHead;
|
||||
GenericDevices.IRegReaderLiveCamera cameraRoi = regReader as GenericDevices.IRegReaderLiveCamera;
|
||||
TestMethods.GenesisCommunication.GenesisHead.GenesisHead Genesis = regReader as TestMethods.GenesisCommunication.GenesisHead.GenesisHead;
|
||||
|
||||
if (meterRslt != null && regReader != null)
|
||||
{
|
||||
@ -971,9 +990,58 @@ namespace TBF.Rig.TestMethods.FlyingStartMassCollection
|
||||
meterRslt.PulsesPerLiter = regReader.PulsesPerLtr;//.csv file column
|
||||
meterRslt.QuantityUnits = regReader.QuantityUnits;
|
||||
meterRslt.PulsesMeter = Convert.ToDouble(regReader.WMPulses);
|
||||
|
||||
//Genesis grab data to results
|
||||
if (Genesis != null)
|
||||
{
|
||||
meterRslt.PulsesMaster = Convert.ToDouble(regReader.WMRefPulses); // missing in geenral genesis
|
||||
Genesis.Stop(tstRslt.TestTime, tstRslt.VolumeCTV);
|
||||
meterRslt.TimestampStart = Genesis.TimestampSecStart;
|
||||
meterRslt.TimestampEnd = Genesis.TimestampSecEnd;
|
||||
meterRslt.TestTime = Genesis.WMTestTime;
|
||||
meterRslt.VolumeStart = Genesis.BeginWMState;
|
||||
meterRslt.VolumeEnd = Genesis.EndWMState; /// liter
|
||||
meterRslt.VolumeMeter = Math.Abs(Genesis.WMVolume);
|
||||
meterRslt.VolumeRef = tstRslt.VolumeCTV;
|
||||
if (GenesisHeadBatch.MeterIdDetailResults == null)
|
||||
{
|
||||
Genesis.Log("MeterIdDetailResults na!");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Genesis.DetailedResults != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
GenesisHeadBatch.MeterIdDetailResults.Add(meterRslt.SerialNr(), Genesis.DetailedResults);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Genesis.Log(ex.Message.ToString());
|
||||
}
|
||||
|
||||
if (dstrReader != null)
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
Genesis.Log("DetailedResults na!");
|
||||
}
|
||||
|
||||
}
|
||||
Genesis.Log("VolumeRef=" + meterRslt.VolumeRef);
|
||||
Genesis.Log("TestTime Meter =" + meterRslt.TestTime + "S, test time ref =" + tstRslt.TestTime + "s");
|
||||
|
||||
Genesis.Log(" results for " + test.Name);
|
||||
Genesis.Log(" Ref Vol = " + meterRslt.VolumeRef + " m³");
|
||||
Genesis.Log(" Ref Time = " + tstRslt.TestTime + " s");
|
||||
Genesis.Log(" Meter Time = " + meterRslt.TestTime + " s");
|
||||
Genesis.Log(" Meter Vol = " + meterRslt.VolumeMeter + " m³");
|
||||
|
||||
var calError = Formulas.ErrorFromVolumes(meterRslt.VolumeMeter, meterRslt.VolumeRef);
|
||||
Genesis.Log(" MeterError = " + calError.ToString() + " %");
|
||||
|
||||
}
|
||||
else if (dstrReader != null)
|
||||
{
|
||||
|
||||
if (dstrReader is SmartReader poseidon) //is Poseidon reader family
|
||||
{
|
||||
@ -1194,9 +1262,9 @@ namespace TBF.Rig.TestMethods.FlyingStartMassCollection
|
||||
|
||||
if (stopCycle) retVal = Event.ErrorFlagsStop;
|
||||
|
||||
stopTest:
|
||||
|
||||
StopRecordingStatistics(); /// Make sure graph files are closed
|
||||
stopTest:
|
||||
GenesisHeadBatch.BatchHolder.Value.RemoveAllMeters();
|
||||
StopRecordingStatistics(); /// Make sure graph files are closed
|
||||
|
||||
///
|
||||
/// Quit this sequence
|
||||
|
||||
Loading…
Reference in New Issue
Block a user