laatzen/ZeroFlowTool/TempCalDisplay.cs
2021-10-01 11:12:07 +02:00

508 lines
24 KiB
C#

using System;
using System.Drawing;
using System.Globalization;
using System.Windows.Forms;
namespace GenesisZeroFlow
{
public partial class frmTempCalibration : Form
{
public Boolean DisplayGetSequenceResult(Boolean sequenceEnabled, Boolean sequenceFailed, String sequenceName, out Boolean stopSequence)
{
#region Definitions and initializations
Boolean Ok = false;
String DebugSequenceFailed = String.Empty;
String DebugSequenceSucceeded = String.Empty;
//Boolean AllSequencesFailed = true;
//Boolean AllSequencesOK = true;
stopSequence = false;
#endregion
#region Get result
#region OK
if ((Boolean.Equals(sequenceFailed, false)) && (Boolean.Equals(sequenceEnabled, true)))
{
//AllSequencesFailed = false;
Ok = true;
//DebugSequenceSucceeded = $"{DebugSequenceSucceeded}";
}
#endregion
#region Failed
if ((Boolean.Equals(sequenceFailed, true)) && (Boolean.Equals(sequenceEnabled, true)))
{
//AllSequencesOK = false;
Ok = false;
//DebugSequenceFailed = $"{DebugSequenceFailed}";
}
#endregion
//#region Summary
//if (AllSequencesFailed)
//{
// stopSequence = true;
// DisplayTempCal.DebugMessage($"APPLICATION:\t\t {sequenceName} failed!\n");
// DisplayTempCal.DebugMessage("APPLICATION:\t\t TEMPERATURE CALIBRATION sequence failed\n");
// DisplayTempCal.DebugMessage(Debugmessages.Line);
// MessageBox.Show("TEMPERATURE CALIBRATION sequence failed", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Error);
// DisplayTempCal.SetProgressPanel(StatusPanelItems.None);
// DisplayTempCal.StatusLabel("Press 'DETECT'");
// return Ok;
//}
//else
//{
// if (AllSequencesOK)
// {
// DisplayTempCal.DebugMessage($"APPLICATION:\t\t {sequenceName} successful\n");
// DisplayTempCal.DebugMessage(Debugmessages.Line);
// }
// else
// {
// DisplayTempCal.DebugMessage("APPLICATION:\t\t SUMMARY: \n");
// if (String.IsNullOrEmpty(DebugSequenceFailed))
// DebugSequenceFailed = "None";
// DisplayTempCal.DebugMessage($"APPLICATION:\t\t {sequenceName} failed at {DebugSequenceFailed}\n");
// if (String.IsNullOrEmpty(DebugSequenceSucceeded))
// DebugSequenceSucceeded = "None";
// DisplayTempCal.DebugMessage($"APPLICATION:\t\t {sequenceName} successful at {DebugSequenceSucceeded}\n");
// DisplayTempCal.DebugMessage(Debugmessages.Line);
// }
//}
//DisplayTempCal.DebugMessage($"APPLICATION:\t\t {sequenceName} finished\n");
//DisplayTempCal.DebugMessage(Debugmessages.Line);
//#endregion
#endregion
return Ok;
}
public static class DisplayTempCal
{
public static void TempCalDetectSetBackColor(Color color)
{
frmTempCalibration._frmTempCalibration.p_TempCal_Detect.BackColor = color;
}
public static void TempCalPrepareSetBackColor(Color color)
{
frmTempCalibration._frmTempCalibration.p_TempCal_Prepare.BackColor = color;
}
public static void TempCalCompletionSetBackColor(Color color)
{
frmTempCalibration._frmTempCalibration.p_TempCal_Completion.BackColor = color;
}
public static void TempCalTempCalSetBackColor(Color color)
{
frmTempCalibration._frmTempCalibration.p_TempCal_TempCal.BackColor = color;
}
public static void TempCalDetectSetLabelColor(Color color)
{
frmTempCalibration._frmTempCalibration.l_TempCal_Detect.ForeColor = color;
}
public static void TempCalPrepareSetLabelColor(Color color)
{
frmTempCalibration._frmTempCalibration.l_TempCal_Prepare.ForeColor = color;
}
public static void TempCalCompletionSetLabelColor(Color color)
{
frmTempCalibration._frmTempCalibration.l_TempCal_Completion.ForeColor = color;
}
public static void TempCalTempCalSetLabelColor(Color color)
{
frmTempCalibration._frmTempCalibration.l_TempCal_TempCal.ForeColor = color;
}
public static void TempCalSetTemperatureLabel(UInt16 path, String text)
{
if (path == Constants.PATH0 && frmTempCalibration._frmTempCalibration.l_TemperatureDispPath0.Text == text)
return;
if (path == Constants.PATH1 && frmTempCalibration._frmTempCalibration.l_TemperatureDispPath1.Text == text)
return;
if (path == Constants.PATH2 && frmTempCalibration._frmTempCalibration.l_TemperatureDispPath2.Text == text)
return;
if (frmTempCalibration._frmTempCalibration.InvokeRequired)
{
frmTempCalibration._frmTempCalibration.Invoke((Action<UInt16, String>)TempCalSetTemperatureLabel, path, text);
return;
}
try
{
if (!String.IsNullOrEmpty(text))
{
switch (path)
{
case Constants.PATH0:
frmTempCalibration._frmTempCalibration.l_TemperatureDispPath0.Text = text;
break;
case Constants.PATH1:
frmTempCalibration._frmTempCalibration.l_TemperatureDispPath1.Text = text;
break;
case Constants.PATH2:
frmTempCalibration._frmTempCalibration.l_TemperatureDispPath2.Text = text;
break;
default: break;
}
}
}
catch(Exception)
{
// Do nothing
}
}
public static void TempCalRefTemperatureLabel(String text)
{
if (frmTempCalibration._frmTempCalibration.InvokeRequired)
{
frmTempCalibration._frmTempCalibration.Invoke((Action<String>)TempCalRefTemperatureLabel, text);
return;
}
try
{
if (!String.IsNullOrEmpty(text))
{
frmTempCalibration._frmTempCalibration.l_TemperatureDispRef.Text = text;
}
}
catch(Exception)
{
// Do nothing
}
}
public static void StatusLabel(String debugMessage)
{
if (frmTempCalibration._frmTempCalibration.InvokeRequired)
{
frmTempCalibration._frmTempCalibration.Invoke((Action<String>)StatusLabel, debugMessage);
return;
}
try
{
// Add line and scroll to caret
if (!String.IsNullOrEmpty(debugMessage))
{
frmTempCalibration._frmTempCalibration.l_TempCalStatus.Text = debugMessage;
}
}
catch(Exception)
{
// Do nothing
}
}
public static void ConnectionStatus(Boolean[] ok)
{
if (ok == null)
return;
if (frmTempCalibration._frmTempCalibration.InvokeRequired)
{
frmTempCalibration._frmTempCalibration.Invoke((Action<Boolean[]>)ConnectionStatus, ok);
return;
}
//if (ok[Constants.CmdMeter1] && ok[Constants.DataMeter1])
if (ok[Constants.CmdMeter1] && ok[1])
{
frmTempCalibration._frmTempCalibration.p_TempCal_Meter1.BackColor = Color.LightGreen;
frmTempCalibration._frmTempCalibration.pB_TempCal_Meter1.Image = frmTempCalibration._frmTempCalibration.pB_AvailableImages.Image;
}
else
{
frmTempCalibration._frmTempCalibration.p_TempCal_Meter1.BackColor = Color.LightPink;
frmTempCalibration._frmTempCalibration.pB_TempCal_Meter1.Image = frmTempCalibration._frmTempCalibration.pB_AvailableImages.ErrorImage;
}
}
public static void ConnectionStatusReset()
{
frmTempCalibration._frmTempCalibration.p_TempCal_Meter1.BackColor = Color.Cornsilk;
frmTempCalibration._frmTempCalibration.pB_TempCal_Meter1.Image = frmTempCalibration._frmTempCalibration.pB_AvailableImages.InitialImage;
}
public static void DebugMessage(String debugText, CultureInfo culture)
{
if (frmTempCalibration._frmTempCalibration.InvokeRequired)
{
frmTempCalibration._frmTempCalibration.Invoke((Action<String, CultureInfo>)DebugMessage, debugText, culture);
return;
}
// Add line and scroll to caret
try
{
if (!String.IsNullOrEmpty(debugText))
{
String Timestamp = DateTime.Now.ToString(Formats.RawDataDateTimeLogString, culture);
frmTempCalibration._frmTempCalibration.rTB_TempCal.AppendText($"{Timestamp}\t{debugText}");
frmTempCalibration._frmTempCalibration.rTB_TempCal.ScrollToCaret();
}
}
catch(Exception)
{
// Do nothing
}
}
public static void SetProgressPanel(Int32 item)
{
if (frmTempCalibration._frmTempCalibration.InvokeRequired)
{
frmTempCalibration._frmTempCalibration.Invoke((Action<Int32>)SetProgressPanel, item);
return;
}
switch (item)
{
case StatusPanelItems.None:
frmTempCalibration.DisplayTempCal.TempCalDetectSetBackColor(Color.Gainsboro);
frmTempCalibration.DisplayTempCal.TempCalPrepareSetBackColor(Color.Gainsboro);;
frmTempCalibration.DisplayTempCal.TempCalCompletionSetBackColor(Color.Gainsboro);
frmTempCalibration.DisplayTempCal.TempCalTempCalSetBackColor(Color.Gainsboro);
frmTempCalibration.DisplayTempCal.TempCalDetectSetLabelColor(Color.Gray);
frmTempCalibration.DisplayTempCal.TempCalPrepareSetLabelColor(Color.Gray);
frmTempCalibration.DisplayTempCal.TempCalCompletionSetLabelColor(Color.Gray);
frmTempCalibration.DisplayTempCal.TempCalTempCalSetLabelColor(Color.Gray);
break;
case StatusPanelItems.Detect:
frmTempCalibration.DisplayTempCal.TempCalDetectSetBackColor(Color.LightGreen);
frmTempCalibration.DisplayTempCal.TempCalPrepareSetBackColor(Color.Gainsboro);
frmTempCalibration.DisplayTempCal.TempCalCompletionSetBackColor(Color.Gainsboro);
frmTempCalibration.DisplayTempCal.TempCalTempCalSetBackColor(Color.Gainsboro);
frmTempCalibration.DisplayTempCal.TempCalDetectSetLabelColor(Color.Black);
frmTempCalibration.DisplayTempCal.TempCalPrepareSetLabelColor(Color.Gray);
frmTempCalibration.DisplayTempCal.TempCalCompletionSetLabelColor(Color.Gray);
frmTempCalibration.DisplayTempCal.TempCalTempCalSetLabelColor(Color.Gray);
break;
case StatusPanelItems.Prepare:
frmTempCalibration.DisplayTempCal.TempCalDetectSetBackColor(Color.Gainsboro);
frmTempCalibration.DisplayTempCal.TempCalPrepareSetBackColor(Color.LightGreen);
frmTempCalibration.DisplayTempCal.TempCalCompletionSetBackColor(Color.Gainsboro);
frmTempCalibration.DisplayTempCal.TempCalTempCalSetBackColor(Color.Gainsboro);
frmTempCalibration.DisplayTempCal.TempCalDetectSetLabelColor(Color.Gray);
frmTempCalibration.DisplayTempCal.TempCalPrepareSetLabelColor(Color.Black);
frmTempCalibration.DisplayTempCal.TempCalCompletionSetLabelColor(Color.Gray);
frmTempCalibration.DisplayTempCal.TempCalTempCalSetLabelColor(Color.Gray);
break;
case StatusPanelItems.Completion:
frmTempCalibration.DisplayTempCal.TempCalDetectSetBackColor(Color.Gainsboro);
frmTempCalibration.DisplayTempCal.TempCalPrepareSetBackColor(Color.Gainsboro);
frmTempCalibration.DisplayTempCal.TempCalCompletionSetBackColor(Color.LightGreen);
frmTempCalibration.DisplayTempCal.TempCalTempCalSetBackColor(Color.Gainsboro);
frmTempCalibration.DisplayTempCal.TempCalDetectSetLabelColor(Color.Gray);
frmTempCalibration.DisplayTempCal.TempCalPrepareSetLabelColor(Color.Gray);
frmTempCalibration.DisplayTempCal.TempCalCompletionSetLabelColor(Color.Black);
frmTempCalibration.DisplayTempCal.TempCalTempCalSetLabelColor(Color.Gray);
break;
case StatusPanelItems.TempCal:
frmTempCalibration.DisplayTempCal.TempCalDetectSetBackColor(Color.Gainsboro);
frmTempCalibration.DisplayTempCal.TempCalPrepareSetBackColor(Color.Gainsboro);
frmTempCalibration.DisplayTempCal.TempCalCompletionSetBackColor(Color.Gainsboro);
frmTempCalibration.DisplayTempCal.TempCalTempCalSetBackColor(Color.LightGreen);
frmTempCalibration.DisplayTempCal.TempCalDetectSetLabelColor(Color.Gray);
frmTempCalibration.DisplayTempCal.TempCalPrepareSetLabelColor(Color.Gray);
frmTempCalibration.DisplayTempCal.TempCalCompletionSetLabelColor(Color.Gray);
frmTempCalibration.DisplayTempCal.TempCalTempCalSetLabelColor(Color.Black);
break;
default:
frmTempCalibration.DisplayTempCal.TempCalDetectSetBackColor(Color.Gainsboro);
frmTempCalibration.DisplayTempCal.TempCalPrepareSetBackColor(Color.Gainsboro);
frmTempCalibration.DisplayTempCal.TempCalCompletionSetBackColor(Color.Gainsboro);
frmTempCalibration.DisplayTempCal.TempCalTempCalSetBackColor(Color.Gainsboro);
frmTempCalibration.DisplayTempCal.TempCalDetectSetLabelColor(Color.Gray);
frmTempCalibration.DisplayTempCal.TempCalPrepareSetLabelColor(Color.Gray);
frmTempCalibration.DisplayTempCal.TempCalCompletionSetLabelColor(Color.Gray);
frmTempCalibration.DisplayTempCal.TempCalTempCalSetLabelColor(Color.Gray);
break;
}
}
public static void TemperatureLabelsForm1Visible(Boolean visible)
{
if (frmTempCalibration._frmTempCalibration.InvokeRequired)
{
frmTempCalibration._frmTempCalibration.Invoke((Action<Boolean>)TemperatureLabelsForm1Visible, visible);
return;
}
frmTempCalibration._frmTempCalibration.l_TemperatureRef.Visible = visible;
frmTempCalibration._frmTempCalibration.l_TemperatureDispRef.Visible = visible;
frmTempCalibration._frmTempCalibration.l_TemperaturePath0.Visible = visible;
frmTempCalibration._frmTempCalibration.l_TemperatureDispPath0.Visible = visible;
frmTempCalibration._frmTempCalibration.l_TemperaturePath1.Visible = visible;
frmTempCalibration._frmTempCalibration.l_TemperatureDispPath1.Visible = visible;
frmTempCalibration._frmTempCalibration.l_TemperaturePath2.Visible = visible;
frmTempCalibration._frmTempCalibration.l_TemperatureDispPath2.Visible = visible;
}
public static void MeterStatusGreenRed(Boolean ok, Boolean enable)
{
if (frmTempCalibration._frmTempCalibration.InvokeRequired)
{
frmTempCalibration._frmTempCalibration.Invoke((Action<Boolean, Boolean>)MeterStatusGreenRed, ok, enable);
return;
}
#region METER1
if (enable)
{
if (ok)
{
frmTempCalibration._frmTempCalibration.p_TempCal_Meter1.BackColor = Color.LightGreen;
frmTempCalibration._frmTempCalibration.pB_TempCal_Meter1.Image = frmTempCalibration._frmTempCalibration.pB_AvailableImages.Image;
}
else
{
frmTempCalibration._frmTempCalibration.p_TempCal_Meter1.BackColor = Color.LightPink;
frmTempCalibration._frmTempCalibration.pB_TempCal_Meter1.Image = frmTempCalibration._frmTempCalibration.pB_AvailableImages.ErrorImage;
}
}
#endregion
}
public static void MeterStatusRedYellow(Boolean ok, Boolean enable)
{
if (frmTempCalibration._frmTempCalibration.InvokeRequired)
{
frmTempCalibration._frmTempCalibration.Invoke((Action<Boolean, Boolean>)MeterStatusRedYellow, ok, enable);
return;
}
#region METER1
if (enable)
{
if (ok)
{
frmTempCalibration._frmTempCalibration.p_TempCal_Meter1.BackColor = Color.LightPink;
frmTempCalibration._frmTempCalibration.pB_TempCal_Meter1.Image = frmTempCalibration._frmTempCalibration.pB_AvailableImages.ErrorImage;
}
else
{
frmTempCalibration._frmTempCalibration.p_TempCal_Meter1.BackColor = Color.Cornsilk;
frmTempCalibration._frmTempCalibration.pB_TempCal_Meter1.Image = frmTempCalibration._frmTempCalibration.pB_AvailableImages.InitialImage;
}
}
#endregion
}
public static void MeterStatusGreenYellow(Boolean ok, Boolean enable)
{
if (frmTempCalibration._frmTempCalibration.InvokeRequired)
{
frmTempCalibration._frmTempCalibration.Invoke((Action<Boolean, Boolean>)MeterStatusGreenYellow, ok, enable);
return;
}
#region METER1
if (enable)
{
if (ok)
{
frmTempCalibration._frmTempCalibration.p_TempCal_Meter1.BackColor = Color.LightGreen;
frmTempCalibration._frmTempCalibration.pB_TempCal_Meter1.Image = frmTempCalibration._frmTempCalibration.pB_AvailableImages.Image;
}
else
{
frmTempCalibration._frmTempCalibration.p_TempCal_Meter1.BackColor = Color.Cornsilk;
frmTempCalibration._frmTempCalibration.pB_TempCal_Meter1.Image = frmTempCalibration._frmTempCalibration.pB_AvailableImages.InitialImage;
}
}
#endregion
}
public static void WaitForStabilization(Boolean ok, Boolean stopSequence, Int32 waitingTime)
{
// aborted = false;
if (Boolean.Equals(stopSequence, false))
{
Boolean PerformWait = false;
if (ok)
PerformWait = true;
if (PerformWait)
{
for (Int32 i = waitingTime; i >= 0; i--)
{
if (GenesisZeroFlow._GenesisZeroFlow.AbortIndicator)
{
// aborted = true;
return;
}
Misc.WaitNSeconds(1, true);
}
}
}
}
public static void WaitForStabilizationTempCal(Boolean ok, Boolean stopSequence, Int32 waitingTime)
{
// aborted = false;
if (Boolean.Equals(stopSequence, false))
{
Boolean PerformWait = false;
if (ok)
PerformWait = true;
if (PerformWait)
Misc.WaitNSeconds(waitingTime, true);
}
}
public static void SetControlElements(Boolean enabled)
{
if (enabled)
{
frmTempCalibration._frmTempCalibration.pB_Bubbles1.Visible = false;
frmTempCalibration._frmTempCalibration.btn_TempCal_Detect.Enabled = true;
}
else
{
frmTempCalibration._frmTempCalibration.btn_TempCal_Detect.Enabled = false;
frmTempCalibration._frmTempCalibration.btn_TempCal_Start.Enabled = false;
}
}
public static void TemperatureFieldTempCal()
{
TemperatureFieldTempCal thirdForm;
using (thirdForm = new TemperatureFieldTempCal())
{
frmTempCalibration._frmTempCalibration.SetWaitForTemperatureFieldTempCal(true);
thirdForm.Show();
frmTempCalibration._frmTempCalibration.ThirdFormOpenIndicator = true;
while (frmTempCalibration._frmTempCalibration.WaitForTemperatureFieldTempCal) { Misc.WaitNSeconds(1, false); }
}
}
}
internal void FlushBuffer()
{
foreach (var meter in frmTempCalibration._frmTempCalibration.GlobalMeterBatch.ListOfMeters)
{
if (meter is GenesisDisplayTool.ZeroFlowGenesisMeter)
{
((GenesisDisplayTool.ZeroFlowGenesisMeter) meter).Flush();
}
}
}
}
}