using DIT.SharedMemory;
|
using log4net;
|
using System;
|
using System.Threading;
|
using System.Windows.Forms;
|
|
namespace SHARP_CLAS_UI
|
{
|
public partial class Form_Sequence_Viewer : Form
|
{
|
#region Enum
|
|
#endregion
|
|
#region Logger
|
/// <summary>
|
/// Exception Log
|
/// </summary>
|
private ILog ExceptionLog = LogManager.GetLogger("SHARP_CLAS_SEQUENCE_Exception");
|
|
/// <summary>
|
/// Exception Log Write
|
/// </summary>
|
/// <param name="Methodname">Method name of exception that occurred</param>
|
/// <param name="ex">exception</param>
|
public void WriteExceptionLog(string msg)
|
{
|
if (ExceptionLog != null) ExceptionLog.Debug(msg);
|
}
|
|
#endregion
|
|
#region Field
|
private delegate void UI_Update_Delegate();
|
|
private Thread UI_Update_Th;
|
|
Form_Frame _Parent;
|
bool update_check;
|
|
#endregion
|
|
#region Construct
|
public Form_Sequence_Viewer(Form_Frame _Parent)
|
{
|
InitializeComponent();
|
|
this._Parent = _Parent;
|
|
|
UI_Update_Th = new Thread(UI_Update_Th_Set);
|
|
UI_Update_Th.Start();
|
}
|
|
#endregion
|
|
#region Form Function
|
private void button1_Click(object sender, EventArgs e)
|
{
|
_Parent.sm.Set_Value(Process_Memory_Address.LD_Tray_In_Count, 0);
|
_Parent.sm.Set_Value(Process_Memory_Address.LD_Tray_Empty_Count, 0);
|
_Parent.sm.Set_Value(Process_Memory_Address.ULD_Tray_Empty_Count, 0);
|
_Parent.sm.Set_Value(Process_Memory_Address.ULD_Tray_Ok_Count, 0);
|
_Parent.sm.Set_Value(Process_Memory_Address.ULD_Tray_Ng_Count, 0);
|
|
//form.Set_Init();
|
//form.ShowDialog();
|
|
}
|
|
private void btn_LD_Conveyor_In_Load_Click(object sender, EventArgs e)
|
{
|
if (_Parent._equip.loader.ConveyorIn.Step == ConveyorInSteps.S0000_WAIT)
|
{
|
_Parent._equip.loader.ConveyorIn.Load();
|
}
|
}
|
|
private void btn_LD_Conveyor_In_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.loader.ConveyorIn.Init_Seq();
|
}
|
|
private void btn_LD_Tray_In_Load_Click(object sender, EventArgs e)
|
{
|
if (_Parent._equip.loader.LiftIn.Step == LiftInSteps.S0000_WAIT)
|
_Parent._equip.loader.LiftIn.Step = LiftInSteps.S1000_LIFT_LOAD_START;
|
}
|
|
private void btn_LD_Tray_In_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.loader.LiftIn.Init_Seq();
|
}
|
|
private void btn_LD_Tray_Empty_Start_Click(object sender, EventArgs e)
|
{
|
if (_Parent._equip.loader.LiftOut.Step == LiftOutSteps.S0000_WAIT)
|
_Parent._equip.loader.LiftOut.Step = LiftOutSteps.S1000_LIFT_MOVE_START;
|
}
|
|
private void btn_LD_Tray_Empty_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.loader.LiftOut.Init_Seq();
|
}
|
|
private void btn_LD_Tray_TR_Init_Click(object sender, EventArgs e)
|
{
|
if (_Parent._equip.loader.TrayTransfer.Step == TrayTransferSteps.S0000_WAIT)
|
_Parent._equip.loader.TrayTransfer.Step = TrayTransferSteps.S1000_MOVE_STAY_POSITION_START;
|
}
|
|
private void btn_LD_Tray_TR_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.loader.TrayTransfer.Init_Seq();
|
}
|
|
private void btn_LD_Handler_1_Init_Click(object sender, EventArgs e)
|
{
|
if (_Parent._equip.loader.Handler1.Step == LoaderHandler1Steps.S0000_WAIT)
|
_Parent._equip.loader.Handler1.Step = LoaderHandler1Steps.S1000_MOVE_STAY_POSITION_START;
|
}
|
|
private void btn_LD_Handler_1_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.loader.Handler1.Init_Seq();
|
}
|
|
private void btn_LD_Reverse_Init_Click(object sender, EventArgs e)
|
{
|
if (_Parent._equip.before.ReverseStage.Step == LoaderReverseStageSteps.S0000_WAIT)
|
_Parent._equip.before.ReverseStage.Step = LoaderReverseStageSteps.S1000_PANEL_LOAD_START;
|
}
|
|
private void btn_LD_Reverse_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.before.ReverseStage.Init_Seq();
|
}
|
|
private void btn_LD_Handler_2_Init_Click(object sender, EventArgs e)
|
{
|
//if (_Parent._equip.before.Handler2.Step == LoaderHandler2Steps.S0000_WAIT)
|
// _Parent._equip.before.Handler2.Step = LoaderHandler2Steps.S1000_MOVE_STAY_POSITION_START;
|
}
|
|
private void btn_LD_Handler_2_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.before.Handler2.Init_Seq();
|
}
|
|
private void btn_Pre_Align_Init_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.before.PreAlignStage.Step = PreAlignSteps.S0000_WAIT;
|
}
|
|
private void btn_Pre_Align_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.before.PreAlignStage.Init_Seq();
|
}
|
|
private void btn_Ablation_Stage_1_Init_Click(object sender, EventArgs e)
|
{
|
if (_Parent._equip.process.ablation_stage_1.Step == AblationStageSteps.S0000_WAIT)
|
_Parent._equip.process.ablation_stage_1.Step = AblationStageSteps.S1000_PANEL_LOAD_START;
|
}
|
|
private void btn_Ablation_Stage_1_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.process.ablation_stage_1.Init_Seq();
|
}
|
|
private void btn_Ablation_Stage_2_Init_Click(object sender, EventArgs e)
|
{
|
if (_Parent._equip.process.ablation_stage_2.Step == AblationStageSteps.S0000_WAIT)
|
_Parent._equip.process.ablation_stage_2.Step = AblationStageSteps.S1000_PANEL_LOAD_START;
|
}
|
|
private void btn_Ablation_Stage_2_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.process.ablation_stage_2.Init_Seq();
|
}
|
|
private void btn_ULD_Reverse_Init_Click(object sender, EventArgs e)
|
{
|
if (_Parent._equip.after.ReverseStage.Step == UnloaderReverseStageSteps.S0000_WAIT)
|
_Parent._equip.after.ReverseStage.Step = UnloaderReverseStageSteps.S2000_PANEL_UNLOAD_START;
|
}
|
|
private void btn_ULD_Reverse_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.after.ReverseStage.Init_Seq();
|
}
|
|
private void btn_ULD_Handler_2_Init_Click(object sender, EventArgs e)
|
{
|
if (_Parent._equip.after.Handler2.Step == UnloaderHandler2Steps.S0000_WAIT)
|
_Parent._equip.after.Handler2.Step = UnloaderHandler2Steps.S1000_MOVE_STAY_POSITION_START;
|
}
|
|
private void btn_ULD_Handler_2_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.after.Handler2.Init_Seq();
|
}
|
|
private void btn_AOI_Init_Click(object sender, EventArgs e)
|
{
|
if (_Parent._equip.after.AoiStage.Step == AoiStageSteps.S0000_WAIT)
|
_Parent._equip.after.AoiStage.Step = AoiStageSteps.S3000_PANEL_UNLOAD_START;
|
}
|
|
private void btn_AOI_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.after.AoiStage.Init_Seq();
|
}
|
|
private void btn_ULD_Conveyor_Empty_Load_Click(object sender, EventArgs e)
|
{
|
if (_Parent._equip.unloader.ConveyorIn.Step == ConveyorInSteps.S0000_WAIT)
|
{
|
_Parent._equip.unloader.ConveyorIn.Load();
|
}
|
}
|
|
private void btn_ULD_Conveyor_Empty_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.unloader.ConveyorIn.Init_Seq();
|
}
|
|
private void btn_ULD_Tray_Empty_Load_Click(object sender, EventArgs e)
|
{
|
if (_Parent._equip.unloader.LiftIn.Step == LiftInSteps.S0000_WAIT)
|
_Parent._equip.unloader.LiftIn.Step = LiftInSteps.S1000_LIFT_LOAD_START;
|
}
|
|
private void btn_ULD_Tray_Empty_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.unloader.LiftIn.Init_Seq();
|
}
|
|
private void btn_ULD_Tray_Ok_Load_Click(object sender, EventArgs e)
|
{
|
if (_Parent._equip.unloader.LiftOk.Step == LiftOutSteps.S0000_WAIT)
|
_Parent._equip.unloader.LiftOk.Step = LiftOutSteps.S1000_LIFT_MOVE_START;
|
}
|
|
private void btn_ULD_Tray_Ok_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.unloader.LiftOk.Init_Seq();
|
}
|
|
private void btn_ULD_Tray_Ng_Load_Click(object sender, EventArgs e)
|
{
|
if (_Parent._equip.unloader.LiftNg.Step == LiftOutSteps.S0000_WAIT)
|
_Parent._equip.unloader.LiftNg.Step = LiftOutSteps.S1000_LIFT_MOVE_START;
|
}
|
|
private void btn_ULD_Tray_Ng_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.unloader.LiftNg.Init_Seq();
|
}
|
|
private void btn_ULD_Tray_TR_Init_Click(object sender, EventArgs e)
|
{
|
if (_Parent._equip.unloader.TrayTransfer.Step == TrayTransferSteps.S0000_WAIT)
|
_Parent._equip.unloader.TrayTransfer.Step = TrayTransferSteps.S1000_MOVE_STAY_POSITION_START;
|
}
|
|
private void btn_ULD_Tray_TR_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.unloader.TrayTransfer.Init_Seq();
|
}
|
|
private void btn_ULD_Handler_1_Init_Click(object sender, EventArgs e)
|
{
|
if (_Parent._equip.unloader.Handler1.Step == UnloaderHandler1Steps.S0000_WAIT)
|
_Parent._equip.unloader.Handler1.Step = UnloaderHandler1Steps.S1000_MOVE_TO_STAY_START;
|
}
|
|
private void btn_ULD_Handler_1_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.unloader.Handler1.Init_Seq();
|
}
|
|
private void btn_Vision_Click(object sender, EventArgs e)
|
{
|
|
}
|
|
private void btn_Fine_Align_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.process.fine_align.Step = FineAlignSteps.S0000_WAIT;
|
}
|
|
private void btn_Scanner_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.process.ablation.Step = AblationSteps.S0000_WAIT;
|
}
|
|
private void btn_Plasma_Stop_Click(object sender, EventArgs e)
|
{
|
_Parent._equip.process.plasma.Step = PlasmaStpes.S0000_WAIT;
|
}
|
|
#endregion
|
|
#region Function
|
public void MessageBoxShow(string msg)
|
{
|
MessageBox.Show(msg);
|
}
|
|
private void UI_Update_Th_Set()
|
{
|
while (!_Parent.IsDisposed)
|
{
|
Thread.Sleep(100);
|
if (!update_check)
|
{
|
update_check = true;
|
UI_Update();
|
}
|
}
|
}
|
|
private void UI_Update()
|
{
|
if (InvokeRequired)
|
{
|
BeginInvoke(new UI_Update_Delegate(UI_Update));
|
return;
|
}
|
else
|
{
|
try
|
{
|
tb_Board_Status.Text = _Parent._equip.Board_Control.BoardMode.ToString();
|
|
tb_Ld_Tray_Id.Text = _Parent._equip.loader.LiftIn.TrayID;
|
|
object value;
|
if (_Parent.sm.Get_Value(Process_Memory_Address.ULD_Tray_Ok_ID, out value))
|
tb_Uld_Tray_Ok_Id.Text = value.ToString();
|
|
tb_Uld_Tray_Ng_Id.Text = _Parent._equip.unloader.LiftNg.TrayID;
|
|
Update_Load_Sequence_UI();
|
Update_Befor_Sequence_UI();
|
Update_After_Sequence_UI();
|
}
|
catch (Exception ex)
|
{
|
|
}
|
finally
|
{
|
update_check = false;
|
}
|
}
|
}
|
|
private void Update_Load_Sequence_UI()
|
{
|
if (_Parent._equip.Cur_Main_Recipe == null || _Parent._equip.Cur_Main_Recipe.tray_info == null)
|
tb_Tray_Info_Name.Text = "";
|
else
|
tb_Tray_Info_Name.Text = _Parent._equip.Cur_Main_Recipe.tray_info.Name;
|
|
if (_Parent._equip.Cur_Main_Recipe == null || _Parent._equip.Cur_Main_Recipe.vision_info == null)
|
tb_Vision_Info_Name.Text = "";
|
else
|
tb_Vision_Info_Name.Text = _Parent._equip.Cur_Main_Recipe.vision_info.Name;
|
|
if (_Parent._equip.Cur_Main_Recipe == null || _Parent._equip.Cur_Main_Recipe.process_info == null)
|
tb_Process_Info_Name.Text = "";
|
else
|
tb_Process_Info_Name.Text = _Parent._equip.Cur_Main_Recipe.process_info.Name;
|
|
tb_LD_Tray_In_Tray_Cur_Count.Text = _Parent._equip.LoaderInTrayCount.ToString();
|
|
tb_LD_Tray_Empty_Tray_Cur_Count.Text = _Parent._equip.LoaderOutTrayCount.ToString();
|
|
tb_ULD_Tray_Ok_Tray_Cur_Count.Text = _Parent._equip.UnloaderOkTrayCount.ToString();
|
tb_ULD_Tray_Ng_Tray_Cur_Count.Text = _Parent._equip.UnloaderNgTrayCount.ToString();
|
tb_ULD_Tray_Empty_Tray_Cur_Count.Text = _Parent._equip.UnloaderInTrayCount.ToString();
|
if (_Parent._equip.Cur_Main_Recipe != null && _Parent._equip.Cur_Main_Recipe.tray_info != null)
|
{
|
tb_LD_Tray_In_Tray_Count.Text = _Parent._equip.Cur_Main_Recipe.tray_info.LD_Tray_In_Tray_Count.ToString();
|
|
tb_LD_Tray_Empty_Tray_Count.Text = _Parent._equip.Cur_Main_Recipe.tray_info.LD_Tray_Empty_Tray_Count.ToString();
|
|
tb_ULD_Tray_Ok_Tray_Count.Text = _Parent._equip.Cur_Main_Recipe.tray_info.ULD_Tray_Ok_Tray_Count.ToString();
|
|
tb_ULD_Tray_Ng_Tray_Count.Text = _Parent._equip.Cur_Main_Recipe.tray_info.ULD_Tray_Ng_Tray_Count.ToString();
|
|
tb_ULD_Tray_Empty_Tray_Count.Text = _Parent._equip.Cur_Main_Recipe.tray_info.ULD_Tray_Empty_Tray_Count.ToString();
|
}
|
|
tb_LD_Tray_In_Conveyor_Seq.Text = _Parent._equip.loader.ConveyorIn.Step.ToString();
|
tb_LD_Tray_In_Lift_Up_Seq.Text = _Parent._equip.loader.LiftIn.Step.ToString();
|
tb_LD_Tray_Empty_Seq.Text = _Parent._equip.loader.LiftOut.Step.ToString();
|
tb_LD_Tray_TR_Seq.Text = _Parent._equip.loader.TrayTransfer.Step.ToString();
|
tb_LD_Handler_1_Seq.Text = _Parent._equip.loader.Handler1.Step.ToString();
|
|
tb_LD_Reverse_Stage_Seq.Text = _Parent._equip.before.ReverseStage.Step.ToString();
|
tb_Pre_Align_Stage_Seq.Text = _Parent._equip.before.PreAlignStage.Step.ToString();
|
tb_LD_Handler_2_Seq.Text = _Parent._equip.before.Handler2.Step.ToString();
|
|
tb_Ablation_Stage_1_Seq.Text = _Parent._equip.process.ablation_stage_1.Step.ToString();
|
tb_Ablation_Stage_2_Seq.Text = _Parent._equip.process.ablation_stage_2.Step.ToString();
|
tb_Fine_Align_Seq.Text = _Parent._equip.process.fine_align.Step.ToString();
|
tb_Scanner_Seq.Text = _Parent._equip.process.ablation.Step.ToString();
|
tb_Plasma_Seq.Text = _Parent._equip.process.plasma.Step.ToString();
|
|
tb_ULD_Reverse_Stage_Seq.Text = _Parent._equip.after.ReverseStage.Step.ToString();
|
tb_AOI_Stage_Seq.Text = _Parent._equip.after.AoiStage.Step.ToString();
|
tb_ULD_Handler_2_Seq.Text = _Parent._equip.after.Handler2.Step.ToString();
|
|
tb_ULD_Tray_Empty_Conveyor_Seq.Text = _Parent._equip.unloader.ConveyorIn.Step.ToString();
|
tb_ULD_Tray_Empty_Seq .Text = _Parent._equip.unloader.LiftIn.Step.ToString();
|
tb_ULD_Tray_Ok_Seq.Text = _Parent._equip.unloader.LiftOk.Step.ToString();
|
tb_ULD_Tray_Ng_Seq.Text = _Parent._equip.unloader.LiftNg.Step.ToString();
|
tb_ULD_Tray_TR_Seq.Text = _Parent._equip.unloader.TrayTransfer.Step.ToString();
|
tb_ULD_Handler_1_Seq.Text = _Parent._equip.unloader.Handler1.Step.ToString();
|
}
|
|
private void Update_Befor_Sequence_UI()
|
{
|
|
}
|
|
private void Update_After_Sequence_UI()
|
{
|
|
}
|
|
#endregion
|
|
private void Form_Sequence_Viewer_FormClosing(object sender, FormClosingEventArgs e)
|
{
|
if (!_Parent.IsDisposed)
|
{
|
e.Cancel = true;
|
|
this.Hide();
|
}
|
}
|
}
|
}
|