using SA_LTT;
|
using SA_LTT_UI.Screen;
|
using SA_LTT_UI.Viewer;
|
using System;
|
using System.Drawing;
|
using System.Windows.Forms;
|
|
|
|
namespace SA_LTT_UI
|
{
|
delegate void UIUpdateDelegate();
|
delegate void AlarmOccurred(SA_LTT.Alarm.Alarm occurredAlarm);
|
delegate void AlarmCleared();
|
public partial class MainFrame : Form
|
{
|
public Equipment equipment;
|
|
public ScreenMain screenMain;
|
public ScreenRecipe screenRecipe;
|
public ScreenParameter screenParameter;
|
public ScreenAlarmSetting screenAlarmSetting;
|
public ScreenLog screenLog;
|
public ScreenMaintenance screenMaintenance;
|
public ScreenIO screenIO;
|
public ScreenSetting screenSetting;
|
public ScreenMotionMaintenance screenMotionMaintenance;
|
public ScreenLaser screenLaser;
|
|
public EquipmentInfoViewer equipmentInfoViewer;
|
public AlarmViewer alarmViewer;
|
public LogInViewer loginViewer;
|
public MaintenanceViewer maintenanceViewer;
|
public ScannerViewer scannerViewer;
|
public AttenuatorViewer attenuatorViewer;
|
public RobotViewer robotViewer;
|
public WaferInfoViewer waferInfoViewer;
|
public PreAlignViwer preAignViewer;
|
public PiLaserViewer piLaserViewer;
|
public ChamberViewer chamberViewer;
|
public EnergyMeterViewer powermeterViewer;
|
public ChillerViewer chillerViewer;
|
public EnergyDropCheckViewer energyDropCheckViewer;
|
public AttenuatorCalViewer attenuatorCalViewer;
|
public SequenceViewer sequenceViewer;
|
public VisionViewer visionViewer;
|
public bool m_bSimulationMode = false;
|
|
/// <summary>
|
/// 우측 상단 닫기 버튼 비활성화.
|
/// </summary>
|
protected override CreateParams CreateParams
|
{
|
get
|
{
|
CreateParams MyCp = base.CreateParams;
|
MyCp.ClassStyle = MyCp.ClassStyle | 0x200;
|
MyCp.ExStyle |= 0x02000000;
|
return MyCp;
|
}
|
}
|
|
public MainFrame()
|
{
|
InitializeComponent();
|
|
equipment = new Equipment();
|
|
InitializeScreen();
|
|
equipment.UserChanged += Equipment_UserChanged;
|
equipment.alarmManager.Occurred += AlarmManager_Occurred;
|
equipment.alarmManager.Cleared += AlarmManager_Cleared;
|
|
CheckOccurredAlarmList();
|
timer.Tick += Timer_Tick;
|
timer.Start();
|
}
|
|
private void CheckOccurredAlarmList()
|
{
|
foreach(SA_LTT.Alarm.Alarm occurredAlarm in equipment.alarmManager.OccurredAlarms)
|
{
|
ListViewItem listViewItem = new ListViewItem(occurredAlarm.Code.ToString());
|
listViewItem.SubItems.Add(occurredAlarm.Description);
|
listViewItem.SubItems.Add(occurredAlarm.Level.ToString());
|
|
lv_OccurredAlarmList.Items.Add(listViewItem);
|
}
|
}
|
|
private void AlarmManager_Cleared()
|
{
|
lv_OccurredAlarmList.Items.Clear();
|
}
|
|
private void AlarmManager_Occurred(SA_LTT.Alarm.Alarm occurredAlarm)
|
{
|
if (InvokeRequired)
|
{
|
BeginInvoke(new AlarmOccurred(AlarmManager_Occurred), occurredAlarm);
|
return;
|
}
|
else
|
{
|
ListViewItem listViewItem = new ListViewItem(occurredAlarm.Code.ToString());
|
listViewItem.SubItems.Add(occurredAlarm.Description);
|
listViewItem.SubItems.Add(occurredAlarm.Level.ToString());
|
|
lv_OccurredAlarmList.Items.Add(listViewItem);
|
|
//알람 발생시 창 띄움.
|
alarmViewer.Show();
|
alarmViewer.WindowState = FormWindowState.Normal;
|
alarmViewer.TopMost = true;
|
alarmViewer.TopMost = false;
|
}
|
}
|
|
private void Equipment_UserChanged(SA_LTT.UserInfo.User changedUser)
|
{
|
lb_UserId.Text = changedUser.Name;
|
lb_UserLevel.Text = changedUser.Level.ToString();
|
|
rb_Main.Checked = true;
|
}
|
|
private void Timer_Tick(object sender, EventArgs e)
|
{
|
DateTime currentTime = DateTime.Now;
|
lb_Date.Text = currentTime.ToString("yyyy-MM-dd");
|
lb_Time.Text = currentTime.ToString("HH:mm:ss");
|
UpdateTowerLamp();
|
UpdateAlarmViwer();
|
|
lb_EquipmentMode.Text = equipment.EquipmentMode.ToString();
|
lb_EquipmentStatus.Text = equipment.EquipmentStatus.ToString();
|
lb_ProcessStatus.Text = equipment.ProcessStatus.ToString();
|
|
lb_EquipmentMode.BackColor = equipment.EquipmentMode == EquipmentMode.Teach ? Color.Red : Color.LightGray;
|
lb_EquipmentStatus.BackColor = equipment.EquipmentStatus == EquipmentStatus.Fault ? Color.Red : Color.White;
|
lb_EnergyDropCheckTime.BackColor = equipment.IsEnergyDropCheckTime() ? Color.Lime : Color.Green;
|
lb_AttenuatorCalTime.BackColor = equipment.IsAttenuatorCalTime() ? Color.Lime : Color.Green;
|
}
|
|
private void InitializeScreen()
|
{
|
pnl_Main.Controls.Clear();
|
|
screenMain = new ScreenMain(this);
|
screenRecipe = new ScreenRecipe(this);
|
screenParameter = new ScreenParameter(this);
|
screenAlarmSetting = new ScreenAlarmSetting(this);
|
screenLog = new ScreenLog(this);
|
|
screenSetting = new ScreenSetting(this);
|
screenIO = new ScreenIO(this);
|
screenMotionMaintenance = new ScreenMotionMaintenance(this);
|
screenMaintenance = new ScreenMaintenance(this);
|
screenLaser = new ScreenLaser(this);
|
|
equipmentInfoViewer = new EquipmentInfoViewer(this);
|
alarmViewer = new AlarmViewer(this);
|
scannerViewer = new ScannerViewer(this);
|
attenuatorViewer = new AttenuatorViewer(this);
|
loginViewer = new LogInViewer(this);
|
robotViewer = new RobotViewer(this);
|
preAignViewer = new PreAlignViwer(this);
|
maintenanceViewer = new MaintenanceViewer();
|
waferInfoViewer = new WaferInfoViewer(this);
|
piLaserViewer = new PiLaserViewer(this);
|
chamberViewer = new ChamberViewer(this);
|
powermeterViewer = new EnergyMeterViewer(this);
|
chillerViewer = new ChillerViewer(this);
|
energyDropCheckViewer = new EnergyDropCheckViewer(this);
|
attenuatorCalViewer = new AttenuatorCalViewer(this);
|
sequenceViewer = new SequenceViewer(this);
|
visionViewer = new VisionViewer(this);
|
|
pnl_Main.Controls.Add(screenMain);
|
//loginViewer.Show();
|
}
|
|
private void btn_AlarmViewer_Click(object sender, EventArgs e)
|
{
|
EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text}");
|
alarmViewer.Show();
|
alarmViewer.WindowState = FormWindowState.Normal;
|
alarmViewer.TopMost = true;
|
alarmViewer.TopMost = false;
|
}
|
|
private void MainFrame_FormClosing(object sender, FormClosingEventArgs e)
|
{
|
equipment.Dispose();
|
}
|
|
private void btn_Close_Click(object sender, EventArgs e)
|
{
|
DialogResult result = MessageBox.Show("종료 하시겠습니까?", "Close box", MessageBoxButtons.OKCancel);
|
|
if(result == DialogResult.OK)
|
{
|
EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text}");
|
this.Close();
|
}
|
}
|
|
private void rb_CheckedChanged(object sender, EventArgs e)
|
{
|
pnl_Main.Controls.Clear();
|
|
if (rb_Main.Checked)
|
{
|
EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text}");
|
pnl_Main.Controls.Add(screenMain);
|
}
|
else if(rb_Reicipe.Checked)
|
{
|
EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text}");
|
pnl_Main.Controls.Add(screenRecipe);
|
}
|
else if(rb_AlarmSetting.Checked)
|
{
|
EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text}");
|
pnl_Main.Controls.Add(screenAlarmSetting);
|
}
|
else if(rb_Log.Checked)
|
{
|
EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text}");
|
pnl_Main.Controls.Add(screenLog);
|
}
|
else if (rb_Maintenance.Checked)
|
{
|
EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text}");
|
pnl_Main.Controls.Add(screenMaintenance);
|
}
|
}
|
|
private void btn_LogOut_Click(object sender, EventArgs e)
|
{
|
EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text}");
|
equipment.LogOut();
|
loginViewer.Show();
|
}
|
|
private void btn_BuzzerStop_Click(object sender, EventArgs e)
|
{
|
EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text}");
|
equipment.BuzzerStop();
|
}
|
|
private void btn_LampOnOff_Click(object sender, EventArgs e)
|
{
|
if(equipment.IsLampOn)
|
{
|
EquipmentLogManager.Instance.WriteButtonLog($"MainFrame : Lamp off");
|
equipment.LampOff();
|
}
|
else
|
{
|
EquipmentLogManager.Instance.WriteButtonLog($"MainFrame : Lamp on");
|
equipment.LampOn();
|
}
|
}
|
|
private void UpdateTowerLamp()
|
{
|
lb_LampRed.BackColor = equipment.crevis.DigitalOutputs[SA_LTT.Module.Crevis.DigitalOutput.SIGNAL_TOWER_RED] ? Color.Red : Color.DarkRed;
|
lb_LampYellow.BackColor = equipment.crevis.DigitalOutputs[SA_LTT.Module.Crevis.DigitalOutput.SIGNAL_TOWER_YELLOW] ? Color.Yellow : Color.Olive;
|
lb_LampGreen.BackColor = equipment.crevis.DigitalOutputs[SA_LTT.Module.Crevis.DigitalOutput.SIGNAL_TOWER_GREEN] ? Color.Lime : Color.Green;
|
|
btn_LampOnOff.BackColor = equipment.crevis.DigitalOutputs[SA_LTT.Module.Crevis.DigitalOutput.FLUORESCENT_LAMP_OFF] ? Color.Olive : Color.Yellow;
|
}
|
|
private void UpdateAlarmViwer()
|
{
|
if (equipment.alarmManager.OccurredAlarms.Count > 0)
|
{
|
btn_AlarmViewer.BackColor = Color.Red;
|
}
|
else
|
{
|
btn_AlarmViewer.BackColor = Color.White;
|
}
|
}
|
|
private void pb_Logo_Click(object sender, EventArgs e)
|
{
|
equipmentInfoViewer.Show();
|
equipmentInfoViewer.WindowState = FormWindowState.Normal;
|
equipmentInfoViewer.TopMost = true;
|
equipmentInfoViewer.TopMost = false;
|
}
|
}
|
}
|