using SA_LTT; using System; using System.Drawing; using System.Threading; using System.Windows.Forms; namespace SA_LTT_UI.Viewer { public partial class PreAlignViwer : Form { MainFrame _mainFrame; Thread t_UIUpdate; bool updateCheck; protected override CreateParams CreateParams { get { CreateParams MyCp = base.CreateParams; MyCp.ExStyle |= 0x02000000; return MyCp; } } public PreAlignViwer(MainFrame mainFrame) { InitializeComponent(); _mainFrame = mainFrame; t_UIUpdate = new Thread(UIUpdateTh); t_UIUpdate.Start(); } 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.preAligner.PortName; lb_PortName.BackColor = _mainFrame.equipment.preAligner.IsOpen ? Color.Lime : Color.Red; lb_Version.Text = $"Version - {_mainFrame.equipment.preAligner.Version}"; lb_RunEnable.BackColor = _mainFrame.equipment.preAligner.IsRunEnable ? Color.Lime : Color.Red; lb_WaferExist.BackColor = _mainFrame.equipment.preAligner.IsWaferExist ? Color.Lime : Color.Red; lb_Vacuum.BackColor = _mainFrame.equipment.preAligner.IsVacuumOn ? Color.Lime : Color.Red; lb_IsHome.BackColor = _mainFrame.equipment.preAligner.IsHome ? Color.Lime : Color.Red; tb_PositionX.Text = _mainFrame.equipment.preAligner.PositionX.ToString(); tb_PositionY.Text = _mainFrame.equipment.preAligner.PositionY.ToString(); tb_PositionT.Text = _mainFrame.equipment.preAligner.PositionT.ToString(); if (_mainFrame.equipment.preAligner.IsRunEnable && (_mainFrame.equipment.ProcessStatus == ProcessStatus.Idle || _mainFrame.equipment.ProcessStatus == ProcessStatus.Pause)) { if (gb_Control.Enabled == false) { gb_Control.Enabled = true; } } else { if (gb_Control.Enabled) { gb_Control.Enabled = false; } } } catch (Exception e) { EquipmentLogManager.Instance.WriteExceptionLog(e.StackTrace); } finally { updateCheck = false; } } } private void btn_Home_Click(object sender, EventArgs e) { EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text}"); _mainFrame.equipment.preAligner.Home(); } private void btn_Align_Click(object sender, EventArgs e) { DateTime dt = DateTime.Now; double angle = 0; if(double.TryParse(tb_Angle.Text, out angle)) { EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text} {angle}"); _mainFrame.equipment.preAligner.Align(angle); } tb_AlignTime.Text = $"{(DateTime.Now - dt).TotalSeconds:F3} s"; } private void btn_Again_Click(object sender, EventArgs e) { double angle = 0; if (double.TryParse(tb_Angle.Text, out angle)) { EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text} {angle}"); _mainFrame.equipment.preAligner.Again(angle); } } private void btn_VacuumOn_Click(object sender, EventArgs e) { EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text}"); _mainFrame.equipment.preAligner.VacuumOn(); } private void btn_VacuumOff_Click(object sender, EventArgs e) { EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text}"); _mainFrame.equipment.preAligner.VacuumOff(); } private void PreAlignViwer_FormClosing(object sender, FormClosingEventArgs e) { e.Cancel = true; this.Hide(); } private void btn_Center_Click(object sender, EventArgs e) { EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text}"); _mainFrame.equipment.preAligner.Center(); } private void btn_PinDown_Click(object sender, EventArgs e) { EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text}"); _mainFrame.equipment.preAligner.PinUp(); } private void btn_PinUp_Click(object sender, EventArgs e) { EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text}"); _mainFrame.equipment.preAligner.PinDown(); } } }