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)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)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)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)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)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)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)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)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)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)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(); } } } } }