using DIT.SharedMemory; using System; using System.Collections.Generic; using System.Reflection; using System.Threading; using System.Windows.Forms; namespace SHARP_CLAS_UI { public partial class Form_Alarm_List : Form { Form_Frame _Parent; List AlarmList = new List(); public Form_Alarm_List(Form_Frame _Parent) { InitializeComponent(); this._Parent = _Parent; Init_Data_Grid_View(); } private void Init_Data_Grid_View() { //Datagridview Double Buffer 사용. Type dgvType = dgv_Alarm_list.GetType(); PropertyInfo pi = dgvType.GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic); pi.SetValue(dgv_Alarm_list, true, null); //================================ int i = 0; foreach (DataGridViewColumn dgvc in dgv_Alarm_list.Columns) { if (i == 0) { dgvc.Width = 160; dgvc.DefaultCellStyle.Format = "yyyy/MM/dd HH:mm:ss.fff"; } else if (i == 1) dgvc.Width = 300; else if (i == 2) dgvc.Width = 200; else if (i == 3) dgvc.Width = 100; i++; } foreach (DataGridViewColumn column in dgv_Alarm_list.Columns) { column.SortMode = DataGridViewColumnSortMode.NotSortable; } } private void Form_Alarm_List_FormClosing(object sender, FormClosingEventArgs e) { e.Cancel = true; this.Hide(); } public bool Add_Alarm(Alarm_Occurred Occurred_Alarm) { if(_Parent._equip.cim_mode == En_Cim_Mode.Online) { if (Occurred_Alarm.Code == En_Alarm_List.AL_0010_SAFETY_DOOR_2_OPEN || Occurred_Alarm.Code == En_Alarm_List.AL_0011_SAFETY_DOOR_3_OPEN || Occurred_Alarm.Code == En_Alarm_List.AL_0012_SAFETY_DOOR_4_OPEN || Occurred_Alarm.Code == En_Alarm_List.AL_0013_SAFETY_DOOR_5_OPEN || Occurred_Alarm.Code == En_Alarm_List.AL_0014_SAFETY_DOOR_6_OPEN || Occurred_Alarm.Code == En_Alarm_List.AL_0015_SAFETY_DOOR_7_OPEN || Occurred_Alarm.Code == En_Alarm_List.AL_0016_SAFETY_DOOR_8_OPEN || Occurred_Alarm.Code == En_Alarm_List.AL_0017_SAFETY_DOOR_9_OPEN || Occurred_Alarm.Code == En_Alarm_List.AL_0018_SAFETY_DOOR_10_OPEN) { } else { if (!_Parent._equip.cim_client.Send_Alarm("E12345678", true, Occurred_Alarm)) { return false; } } } AlarmList.Add(Occurred_Alarm); dgv_Alarm_list.Rows.Add(Occurred_Alarm.Time, Occurred_Alarm.Code, Occurred_Alarm.Description, Occurred_Alarm.Heavy); return true; } private void btn_Alarm_Clear_Click(object sender, EventArgs e) { if(AlarmList.Count > 0) { if (_Parent._equip.cim_mode == En_Cim_Mode.Online) { foreach(Alarm_Occurred Occurred_Alarm in AlarmList) { _Parent._equip.cim_client.Send_Alarm("E12345678", false, Occurred_Alarm); } if(AlarmList.Exists(x=> x.Heavy == true)) _Parent._equip.Set_Equipment_Status_Code(En_Equipment_Status_Code.T3); } } Alarm_Manager.Instance.Alarm_Clear(); AlarmList.Clear(); dgv_Alarm_list.Rows.Clear(); lb_Description.Text = string.Empty; } private void btn_Buzzer_Stop_Click(object sender, EventArgs e) { _Parent._equip.Board_Control.IO_manager.Set_Output(OutputData.Buzzer_1_Relay, false); } private void dgv_Alarm_list_CellClick(object sender, DataGridViewCellEventArgs e) { if (dgv_Alarm_list.CurrentRow != null && dgv_Alarm_list.CurrentRow.Selected) { lb_Description.Text = (string)dgv_Alarm_list.CurrentRow.Cells[2].Value; } else { lb_Description.Text = string.Empty; } } } }