using SA_LTT; using System; using System.Collections.Generic; using System.Reflection; using System.Windows.Forms; namespace SA_LTT_UI.Viewer { public partial class AlarmViewer : Form { private MainFrame _mainFrame; protected override CreateParams CreateParams { get { CreateParams MyCp = base.CreateParams; MyCp.ExStyle |= 0x02000000; return MyCp; } } public AlarmViewer(MainFrame mainFrame) { InitializeComponent(); InitDataGridView(); _mainFrame = mainFrame; CheckOccurredAlarmList(); _mainFrame.equipment.alarmManager.Occurred += AlarmManager_Occurred; _mainFrame.equipment.alarmManager.Cleared += AlarmManager_Cleared; CreateHandle(); } private void CheckOccurredAlarmList() { foreach (SA_LTT.Alarm.Alarm alarm in _mainFrame.equipment.alarmManager.OccurredAlarms) { dgv_OccurredAlarms.Rows.Add(alarm.OccurredTime, alarm.Code, alarm.Description, alarm.Level); } } private void InitDataGridView() { //Datagridview Double Buffer 사용. Type dgvType = dgv_OccurredAlarms.GetType(); PropertyInfo pi = dgvType.GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic); pi.SetValue(dgv_OccurredAlarms, true, null); //================================ int i = 0; foreach (DataGridViewColumn dgvc in dgv_OccurredAlarms.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_OccurredAlarms.Columns) { column.SortMode = DataGridViewColumnSortMode.NotSortable; } } private void AlarmManager_Cleared() { if (InvokeRequired) { BeginInvoke(new AlarmCleared(AlarmManager_Cleared)); return; } else { dgv_OccurredAlarms.Rows.Clear(); lb_Description.Text = string.Empty; } } private void AlarmManager_Occurred(SA_LTT.Alarm.Alarm occurredAlarm) { if (InvokeRequired) { BeginInvoke(new AlarmOccurred(AlarmManager_Occurred), occurredAlarm); return; } else { dgv_OccurredAlarms.Rows.Add(occurredAlarm.OccurredTime, occurredAlarm.Code, occurredAlarm.Description, occurredAlarm.Level); } } private void btn_AlarmClear_Click(object sender, EventArgs e) { EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text}"); _mainFrame.equipment.alarmManager.Clear(); } private void btn_BuzzerStop_Click(object sender, EventArgs e) { //Buzer stop. EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text}"); _mainFrame.equipment.BuzzerStop(); } private void AlarmViewer_FormClosing(object sender, FormClosingEventArgs e) { e.Cancel = true; this.Hide(); } private void dgv_OccurredAlarms_SelectionChanged(object sender, EventArgs e) { if (dgv_OccurredAlarms.CurrentRow != null && dgv_OccurredAlarms.CurrentRow.Selected) { lb_Description.Text = (string)dgv_OccurredAlarms.CurrentRow.Cells[2].Value; } else { lb_Description.Text = string.Empty; } } } }