287 lines
10 KiB
C#
287 lines
10 KiB
C#
using System;
|
|
using System.Windows.Forms;
|
|
using log4net;
|
|
using TBF.UiBridge;
|
|
|
|
namespace TBF.Screens
|
|
{
|
|
public partial class ProcessTabPageCtrl : UserControl
|
|
{
|
|
static readonly ILog log = LogManager.GetLogger(typeof(ProcessTabPageCtrl));
|
|
|
|
/// <summary>
|
|
/// Constructor, initializes anonymous event handlers
|
|
/// </summary>
|
|
public ProcessTabPageCtrl()
|
|
{
|
|
InitializeComponent();
|
|
|
|
Bridge.ProcedureSelectedHandler += delegate(object sndr, ProcedureSelectedEventArgs args)
|
|
{
|
|
if (InvokeRequired) { Invoke(new EventHandler<ProcedureSelectedEventArgs>(OnProcedureSelected), sndr, args); }
|
|
else OnProcedureSelected(sndr, args);
|
|
};
|
|
Bridge.TestSelectedHandler += delegate(object sender, TestSelectedEventArgs args)
|
|
{
|
|
if (InvokeRequired) { Invoke(new EventHandler<TestSelectedEventArgs>(OnTestSelected), sender, args); }
|
|
else OnTestSelected(sender, args);
|
|
};
|
|
Bridge.TestProgressHandler += delegate(object sender, TestProgressEventArgs args)
|
|
{
|
|
if (InvokeRequired) { Invoke(new EventHandler<TestProgressEventArgs>(OnTestProgress), sender, args); }
|
|
else OnTestProgress(sender, args);
|
|
};
|
|
Bridge.TestCompletedHandler += delegate(object sender, TestCompletedEventArgs args)
|
|
{
|
|
if (InvokeRequired) { Invoke(new EventHandler<TestCompletedEventArgs>(OnTestCompleted), sender, args); }
|
|
else OnTestCompleted(sender, args);
|
|
};
|
|
Bridge.ProcedureCompletedHandler += delegate(object sender, ProcedureCompletedEventArgs args)
|
|
{
|
|
if (InvokeRequired) { Invoke(new EventHandler<ProcedureCompletedEventArgs>(OnProcedureCompleted), sender, args); }
|
|
else OnProcedureCompleted(sender, args);
|
|
};
|
|
}
|
|
|
|
private void ProcessTabPageCtrl_Load(object sender, EventArgs e)
|
|
{
|
|
Once();
|
|
ResetLabelsAndTargetVals();
|
|
ResetReadings();
|
|
}
|
|
|
|
void Once()
|
|
{
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// Called when a new procedure is selected
|
|
/// </summary>
|
|
void ResetLabelsAndTargetVals()
|
|
{
|
|
/// Top part
|
|
targetFlowLowLabel.Text = "---";
|
|
targetFlowHighLabel.Text = "---";
|
|
targetVolumeLabel.Text = "---";
|
|
targetRefCountLabel.Text = "---";
|
|
estmtdTimeLabel.Text = "---";
|
|
|
|
refFlowCmpntLabel.Text = "---";
|
|
regValveCmpntLabel.Text = "---";
|
|
tDivCmpntLabel.Text = "---";
|
|
|
|
/// Bottom part
|
|
prInCmpntLabel.Text = "---";
|
|
prOutCmpntLabel.Text = "---";
|
|
|
|
sensor1Label.Text = "---";
|
|
sensor2Label.Text = "---";
|
|
sensor3Label.Text = "---";
|
|
|
|
tInCmpntLabel.Text = "---";
|
|
tOutCmpntLabel.Text = "---";
|
|
|
|
scaleCmpntLabel.Text = "---";
|
|
}
|
|
|
|
/// <summary>
|
|
/// Called when a new procedure or a new test procedure is selected
|
|
/// </summary>
|
|
void ResetReadings()
|
|
{
|
|
/// Top part
|
|
airTempLabel.Text = "---";
|
|
airPressLabel.Text = "---";
|
|
airHumiLabel.Text = "---";
|
|
|
|
refPulsesLabel.Text = "---";
|
|
refFreqLabel.Text = "---";
|
|
refFlowLabel.Text = "---";
|
|
refVolumeLabel.Text = "---";
|
|
|
|
regValvePosLabel.Text = "---";
|
|
tDivLabel.Text = "---";
|
|
|
|
/// Bottom part
|
|
pulses1Label.Text = "---";
|
|
refPulses1Label.Text = "---";
|
|
volume1Label.Text = "---";
|
|
error1Label.Text = "---";
|
|
passed1Label.Text = "---";
|
|
|
|
pulses2Label.Text = "---";
|
|
refPulses2Label.Text = "---";
|
|
volume2Label.Text = "---";
|
|
error2Label.Text = "---";
|
|
passed2Label.Text = "---";
|
|
|
|
pulses3Label.Text = "---";
|
|
refPulses3Label.Text = "---";
|
|
volume3Label.Text = "---";
|
|
error3Label.Text = "---";
|
|
passed3Label.Text = "---";
|
|
|
|
tInLabel.Text = "---";
|
|
tOutLabel.Text = "---";
|
|
prInLabel.Text = "---";
|
|
prOutLabel.Text = "---";
|
|
|
|
massLabel.Text = "---";
|
|
massDiffLabel.Text = "---";
|
|
volumeCtvLabel.Text = "---";
|
|
refErrorLabel.Text = "---";
|
|
}
|
|
|
|
void OnProcedureSelected(object sender, ProcedureSelectedEventArgs args)
|
|
{
|
|
ResetLabelsAndTargetVals();
|
|
ResetReadings();
|
|
}
|
|
|
|
void OnTestSelected(object sender, TestSelectedEventArgs args)
|
|
{
|
|
/// Target values
|
|
targetFlowLowLabel.Text = args.Test.Qfrom.ToString("F3");
|
|
targetFlowHighLabel.Text = args.Test.Qto.ToString("F3");
|
|
targetVolumeLabel.Text = args.Test.Volume.ToString("F1");
|
|
targetRefCountLabel.Text = args.TotalPulses.ToString();
|
|
estmtdTimeLabel.Text = args.Test.TstTime.ToString("F1");
|
|
|
|
/// Names of virtual bench components
|
|
prInCmpntLabel.Text = args.BenchPath.PressIn.Cfg.Name;
|
|
prOutCmpntLabel.Text = args.BenchPath.PressOut.Cfg.Name;
|
|
tInCmpntLabel.Text = args.BenchPath.TempIn.Cfg.Name;
|
|
tOutCmpntLabel.Text = args.BenchPath.TempOut.Cfg.Name;
|
|
tDivCmpntLabel.Text = args.OutputPath.TempDiv.Cfg.Name;
|
|
refFlowCmpntLabel.Text = args.OutputPath.FlowMeter.Cfg.Name;
|
|
regValveCmpntLabel.Text = args.OutputPath.RegulValve.Cfg.Name;
|
|
scaleCmpntLabel.Text = args.OutputPath.Balance.Cfg.Name;
|
|
sensor1Label.Text = (args.MetersPath.RegisterReaders[0] == null) ? "" : args.MetersPath.RegisterReaders[0].Cfg.Name;
|
|
sensor2Label.Text = (args.MetersPath.RegisterReaders[1] == null) ? "" : args.MetersPath.RegisterReaders[1].Cfg.Name;
|
|
sensor3Label.Text = (args.MetersPath.RegisterReaders[2] == null) ? "" : args.MetersPath.RegisterReaders[2].Cfg.Name;
|
|
|
|
/// Readings and target values
|
|
ResetReadings();
|
|
}
|
|
|
|
void OnTestProgress(object sender, TestProgressEventArgs args)
|
|
{
|
|
/// Top part
|
|
airTempLabel.Text = args.AmbientTemp.ToString();
|
|
airPressLabel.Text = args.AmbientPressure.ToString();
|
|
airHumiLabel.Text = args.AmbientHumidity.ToString();
|
|
|
|
refPulsesLabel.Text = args.RefPulses.ToString();
|
|
refFreqLabel.Text = args.FlowMtrFreq.ToString();
|
|
refFlowLabel.Text = args.Flow.ToString();
|
|
refVolumeLabel.Text = args.Volume.ToString();
|
|
|
|
//regValvePosLabel.Text = args.RegValvePos.ToString();
|
|
tDivLabel.Text = args.Tdiv.ToString();
|
|
|
|
/// Bottom part
|
|
pulses1Label.Text = args.WmPulses[0].ToString();
|
|
pulses2Label.Text = args.WmPulses[1].ToString();
|
|
pulses3Label.Text = args.WmPulses[2].ToString();
|
|
refPulses1Label.Text = args.WmRefPulses[0].ToString();
|
|
refPulses2Label.Text = args.WmRefPulses[1].ToString();
|
|
refPulses3Label.Text = args.WmRefPulses[2].ToString();
|
|
volume1Label.Text = args.WmVolume[0].ToString();
|
|
volume2Label.Text = args.WmVolume[1].ToString();
|
|
volume3Label.Text = args.WmVolume[2].ToString();
|
|
error1Label.Text = args.WmErrPct[0].ToString();
|
|
error2Label.Text = args.WmErrPct[1].ToString();
|
|
error3Label.Text = args.WmErrPct[2].ToString();
|
|
|
|
tInLabel.Text = args.Tin.ToString();
|
|
tOutLabel.Text = args.Tout.ToString();
|
|
prInLabel.Text = args.Pin.ToString();
|
|
prOutLabel.Text = args.Pout.ToString();
|
|
|
|
massLabel.Text = args.Mass.ToString();
|
|
|
|
if (args.Mass.Valid && args.StartMass.Valid)
|
|
{
|
|
massDiffLabel.Text = (args.Mass.Val - args.StartMass.Val).ToString(args.Mass.Format);
|
|
}
|
|
}
|
|
|
|
void OnTestCompleted(object sender, TestCompletedEventArgs args)
|
|
{
|
|
Entities.TestResult tRes = args.TestResult;
|
|
|
|
if (tRes.MetersKind == Entities.MetersKind.Single)
|
|
{
|
|
pulses1Label.Text = tRes.Meters[0].PulsesMeter.ToString("F0");
|
|
pulses2Label.Text = tRes.Meters[1].PulsesMeter.ToString("F0");
|
|
pulses3Label.Text = tRes.Meters[2].PulsesMeter.ToString("F0");
|
|
refPulses1Label.Text = tRes.Meters[0].PulsesMaster.ToString("F0");
|
|
refPulses2Label.Text = tRes.Meters[1].PulsesMaster.ToString("F0");
|
|
refPulses3Label.Text = tRes.Meters[2].PulsesMaster.ToString("F0");
|
|
volume1Label.Text = tRes.Meters[0].VolumeMeter.ToString("F2");
|
|
volume2Label.Text = tRes.Meters[1].VolumeMeter.ToString("F2");
|
|
volume3Label.Text = tRes.Meters[2].VolumeMeter.ToString("F2");
|
|
error1Label.Text = tRes.Meters[0].VolumeErrorPct.ToString("F2");
|
|
error2Label.Text = tRes.Meters[1].VolumeErrorPct.ToString("F2");
|
|
error3Label.Text = tRes.Meters[2].VolumeErrorPct.ToString("F2");
|
|
tInLabel.Text = tRes.TempInAvrg.ToString("F2");
|
|
tOutLabel.Text = tRes.TempOutAvrg.ToString("F2");
|
|
tDivLabel.Text = tRes.TempDivAvrg.ToString("F2");
|
|
prInLabel.Text = tRes.PressInAvrg.ToString("F1");
|
|
prOutLabel.Text = tRes.PressOutAvrg.ToString("F1");
|
|
airTempLabel.Text = tRes.AmbientTempAve.ToString("F1");
|
|
airPressLabel.Text = tRes.AmbientPressAve.ToString("F1");
|
|
airHumiLabel.Text = tRes.AmbientHumiAve.ToString("F1");
|
|
|
|
refPulsesLabel.Text = tRes.PulsesMaster.ToString("F0");
|
|
//refFreqLabel.Text = tstRslt.
|
|
refFlowLabel.Text = (tRes.FlowMass / 1000.0f).ToString("F2");
|
|
refVolumeLabel.Text = tRes.VolumeCTV.ToString("F2");
|
|
//regValvePosLabel.Text = tstRslt.
|
|
//massLabel.Text = tstRslt.
|
|
|
|
volumeCtvLabel.Text = args.TestResult.VolumeCTV.ToString("F1");
|
|
refErrorLabel.Text = "---"; // TODO
|
|
}
|
|
else if (tRes.MetersKind == Entities.MetersKind.Combined)
|
|
{
|
|
pulses1Label.Text = tRes.Meters[0].PulsesMeter.ToString("F0");
|
|
pulses2Label.Text = tRes.Meters[1].PulsesMeter.ToString("F0");
|
|
pulses3Label.Text = tRes.CombinedMeters[0].PulsesMeter.ToString("F0");
|
|
refPulses1Label.Text = tRes.Meters[0].PulsesMaster.ToString("F0");
|
|
refPulses2Label.Text = tRes.Meters[1].PulsesMaster.ToString("F0");
|
|
refPulses3Label.Text = tRes.CombinedMeters[0].PulsesMaster.ToString("F0");
|
|
volume1Label.Text = tRes.Meters[0].VolumeMeter.ToString("F2");
|
|
volume2Label.Text = tRes.Meters[1].VolumeMeter.ToString("F2");
|
|
volume3Label.Text = tRes.CombinedMeters[0].VolumeMeter.ToString("F2");
|
|
error1Label.Text = tRes.Meters[0].VolumeErrorPct.ToString("F2");
|
|
error2Label.Text = tRes.Meters[1].VolumeErrorPct.ToString("F2");
|
|
error3Label.Text = tRes.CombinedMeters[0].VolumeErrorPct.ToString("F2");
|
|
tInLabel.Text = tRes.TempInAvrg.ToString("F2");
|
|
tOutLabel.Text = tRes.TempOutAvrg.ToString("F2");
|
|
tDivLabel.Text = tRes.TempDivAvrg.ToString("F2");
|
|
prInLabel.Text = tRes.PressInAvrg.ToString("F1");
|
|
prOutLabel.Text = tRes.PressOutAvrg.ToString("F1");
|
|
airTempLabel.Text = tRes.AmbientTempAve.ToString("F1");
|
|
airPressLabel.Text = tRes.AmbientPressAve.ToString("F1");
|
|
airHumiLabel.Text = tRes.AmbientHumiAve.ToString("F1");
|
|
|
|
refPulsesLabel.Text = tRes.PulsesMaster.ToString("F0");
|
|
//refFreqLabel.Text = tstRslt.
|
|
refFlowLabel.Text = tRes.FlowMass.ToString("F2");
|
|
refVolumeLabel.Text = tRes.VolumeCTV.ToString("F2");
|
|
//regValvePosLabel.Text = tstRslt.
|
|
//massLabel.Text = tstRslt.
|
|
|
|
volumeCtvLabel.Text = args.TestResult.VolumeCTV.ToString("F1");
|
|
refErrorLabel.Text = "---"; // TODO
|
|
}
|
|
}
|
|
|
|
void OnProcedureCompleted(object sender, ProcedureCompletedEventArgs args)
|
|
{
|
|
}
|
|
}
|
|
}
|