using SA_LTT; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace SA_LTT_UI.Viewer { public partial class ChillerViewer : Form { MainFrame _mainFrame; Thread t_UIUpdate; bool updateCheck; private Label[] _status1Values = new Label[16]; private Label[] _status2Values = new Label[16]; private Label[] _alarm1Values = new Label[16]; private Label[] _alarm2Values = new Label[16]; private Label[] _alarm3Values = new Label[16]; protected override CreateParams CreateParams { get { CreateParams MyCp = base.CreateParams; MyCp.ExStyle |= 0x02000000; return MyCp; } } public ChillerViewer(MainFrame mainFrame) { InitializeComponent(); _mainFrame = mainFrame; InitializeLabelList(); t_UIUpdate = new Thread(UIUpdateTh); t_UIUpdate.Start(); } private void InitializeLabelList() { _status1Values[0] = lb_RunFlag; _status1Values[1] = lb_OperationStopAlarmFlag; _status1Values[2] = lb_OperationContinuedAlarmFlag; _status1Values[3] = lb_Status1Reserve3; _status1Values[4] = lb_PressUnitFlag; _status1Values[5] = lb_RemoteStatusFlag; _status1Values[6] = lb_Status1Reserve6; _status1Values[7] = lb_Status1Reserve7; _status1Values[8] = lb_Status1Reserve8; _status1Values[9] = lb_CompletionOfPreparationFlag; _status1Values[10] = lb_TemperatureUnitFlag; _status1Values[11] = lb_RunTimerFlag; _status1Values[12] = lb_StopTimerFlag; _status1Values[13] = lb_ResetAfterPowerFailureFlag; _status1Values[14] = lb_AntiFreezingFlag; _status1Values[15] = lb_AutomaticFluidFillingFlag; _status2Values[0] = lb_ElectricResistivityConductivitySettingFlag1; _status2Values[1] = lb_ElectricResistivityConductivitySettingFlag2; _status2Values[2] = lb_Status2Reserve2; _status2Values[3] = lb_Status2Reserve3; _status2Values[4] = lb_Status2Reserve4; _status2Values[5] = lb_Status2Reserve5; _status2Values[6] = lb_Status2Reserve6; _status2Values[7] = lb_Status2Reserve7; _status2Values[8] = lb_Status2Reserve8; _status2Values[9] = lb_Status2Reserve9; _status2Values[10] = lb_Status2Reserve10; _status2Values[11] = lb_Status2Reserve11; _status2Values[12] = lb_Status2Reserve12; _status2Values[13] = lb_Status2Reserve13; _status2Values[14] = lb_Status2Reserve14; _status2Values[15] = lb_Status2Reserve15; _alarm1Values[0] = lb_LowLevelInTank; _alarm1Values[1] = lb_HighCirculatingFluidDischargeTemp; _alarm1Values[2] = lb_CirculatingFluidDischargeTempRise; _alarm1Values[3] = lb_CirculatingFluidDischargeTemp; _alarm1Values[4] = lb_HighCirculatingFluidReturnTemp; _alarm1Values[5] = lb_HighCirculatingFluidDischargePressure; _alarm1Values[6] = lb_AbnormalPumpOperation; _alarm1Values[7] = lb_CirculatingFluidDischargePressureRise; _alarm1Values[8] = lb_CirculatingFluidDischargePressureDrop; _alarm1Values[9] = lb_HighCompressorIntakeTemp; _alarm1Values[10] = lb_LowCompressorIntakeTemp; _alarm1Values[11] = lb_LowSuperHeatTemperature; _alarm1Values[12] = lb_HighCompressorDischargePressure; _alarm1Values[13] = lb_Alarm1Reserve13; _alarm1Values[14] = lb_RefrigerantCircuitHighPressureDrop; _alarm1Values[15] = lb_RefrigerantCircuitLowPressureRise; _alarm2Values[0] = lb_RefrigerantCircuitLowPressureDrop; _alarm2Values[1] = lb_CompressorOverload; _alarm2Values[2] = lb_CommunicationError; _alarm2Values[3] = lb_MemoryError; _alarm2Values[4] = lb_DcLineFuseCut; _alarm2Values[5] = lb_CirculatingFluidDischargeTempSensorFailure; _alarm2Values[6] = lb_CirculatingFluidReturnTempSensorFailure; _alarm2Values[7] = lb_CompressorIntankTempSensorFailure; _alarm2Values[8] = lb_CirculatingFluidDischargePressureSensorFailure; _alarm2Values[9] = lb_CompressorDischargePressureSensorFailure; _alarm2Values[10] = lb_CompressorIntankPressureSensorFailure; _alarm2Values[11] = lb_MaintenanceOfPump; _alarm2Values[12] = lb_MaintenanceOfFanMotor; _alarm2Values[13] = lb_MaintenanceOfCompressor; _alarm2Values[14] = lb_ContactInput1SignalDetectionAlarm; _alarm2Values[15] = lb_ContactInput2SignalDetectionAlarm; _alarm3Values[0] = lb_WaterLeakage; _alarm3Values[1] = lb_ElectricResistivityConductivityLevelRise; _alarm3Values[2] = lb_ElectricResistivityConductivityLevelDrop; _alarm3Values[3] = lb_ElectricResistivityConductivitySensorError; _alarm3Values[4] = lb_Alarm3Reserve4; _alarm3Values[5] = lb_Alarm3Reserve5; _alarm3Values[6] = lb_Alarm3Reserve6; _alarm3Values[7] = lb_Alarm3Reserve7; _alarm3Values[8] = lb_Alarm3Reserve8; _alarm3Values[9] = lb_Alarm3Reserve9; _alarm3Values[10] = lb_Alarm3Reserve10; _alarm3Values[11] = lb_Alarm3Reserve11; _alarm3Values[12] = lb_Alarm3Reserve12; _alarm3Values[13] = lb_Alarm3Reserve13; _alarm3Values[14] = lb_Alarm3Reserve14; _alarm3Values[15] = lb_Alarm3Reserve15; } private void UIUpdateTh() { while (_mainFrame.equipment.IsDisposed == false) { Thread.Sleep(10); if (updateCheck == false) { updateCheck = true; UIUpdate(); } } } private void UIUpdate() { if (InvokeRequired) { BeginInvoke(new UIUpdateDelegate(UIUpdate)); return; } else { try { lb_PortName.Text = _mainFrame.equipment.chiller.PortName; lb_PortStatus.Text = _mainFrame.equipment.chiller.IsOpen ? "Open" : "Close"; lb_DischargeTemperature.Text = _mainFrame.equipment.chiller.CirculatingFluidDischargeTemperature.ToString(); lb_DischargePressure.Text = _mainFrame.equipment.chiller.CirculatingFluidDischargePressure.ToString(); lb_ElectricResistivity.Text = _mainFrame.equipment.chiller.ElectricResistivity.ToString(); lb_CirculatingFluidSetTemperature.Text = _mainFrame.equipment.chiller.CirculatingFluidSetTemperature.ToString(); UpdateStatus1(); UpdateStatus2(); UpdateAlarm1(); UpdateAlarm2(); UpdateAlarm3(); } catch (Exception e) { EquipmentLogManager.Instance.WriteExceptionLog(e.StackTrace); } finally { updateCheck = false; } } } private void ChillerViewer_FormClosing(object sender, FormClosingEventArgs e) { e.Cancel = true; this.Hide(); } private void UpdateStatus1() { for(int i = 0; i < 16; i++) { _status1Values[i].BackColor = _mainFrame.equipment.chiller.statusFlag1.Datas[i] ? Color.Lime : Color.Red; } } private void UpdateStatus2() { for (int i = 0; i < 16; i++) { _status2Values[i].BackColor = _mainFrame.equipment.chiller.statusFlag2.Datas[i] ? Color.Lime : Color.Red; } } private void UpdateAlarm1() { for (int i = 0; i < 16; i++) { _alarm1Values[i].BackColor = _mainFrame.equipment.chiller.alarmFlag1.Datas[i] ? Color.Lime : Color.Red; } } private void UpdateAlarm2() { for (int i = 0; i < 16; i++) { _alarm2Values[i].BackColor = _mainFrame.equipment.chiller.alarmFlag2.Datas[i] ? Color.Lime : Color.Red; } } private void UpdateAlarm3() { for (int i = 0; i < 16; i++) { _alarm3Values[i].BackColor = _mainFrame.equipment.chiller.alarmFlag3.Datas[i] ? Color.Lime : Color.Red; } } private void btn_Run_Click(object sender, EventArgs e) { EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text}"); _mainFrame.equipment.chiller.Run(); } private void btn_Stop_Click(object sender, EventArgs e) { EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text}"); _mainFrame.equipment.chiller.Stop(); } } }