using System;
|
using System.Threading;
|
using System.Windows.Forms;
|
|
namespace SHARP_CLAS_UI
|
{
|
public partial class Form_Table_Info : Form
|
{
|
#region Property
|
#endregion
|
|
#region Field
|
Equipment _equip;
|
Panel_Info Table_1_Info;
|
Panel_Info Table_2_Info;
|
|
Panel_Info_Names Table_1_Name;
|
Panel_Info_Names Table_2_Name;
|
|
OutputData table_1_vacuum_sol;
|
OutputData table_1_blow_sol;
|
InputData table_1_vacuum_on_sensor;
|
|
Func<bool> Table_1_scrap_start;
|
|
OutputData table_2_vacuum_sol;
|
OutputData table_2_blow_sol;
|
InputData table_2_vacuum_on_sensor;
|
|
Func<bool> Table_2_scrap_start;
|
|
bool table_1_vacuum_sol_value;
|
bool table_1_blow_sol_value;
|
bool table_1_vacuum_on_value;
|
|
bool table_2_vacuum_sol_value;
|
bool table_2_blow_sol_value;
|
bool table_2_vacuum_on_value;
|
|
bool update_check;
|
|
delegate void UI_Update_Delegate();
|
Thread Data_Update_Th;
|
Thread UI_Update_Th;
|
#endregion
|
|
#region Construct
|
public Form_Table_Info(Equipment _equip, Panel_Info_Names Table_1_Name, Panel_Info_Names Table_2_Name)
|
{
|
InitializeComponent();
|
|
this._equip = _equip;
|
|
this.Table_1_Name = Table_1_Name;
|
this.Table_2_Name = Table_2_Name;
|
|
lb_Table_1_Name.Text = Table_1_Name.ToString();
|
lb_Table_2_Name.Text = Table_2_Name.ToString();
|
|
Table_1_Info = Panel_Info_Manager.Instance.Get_Panel_Info(Table_1_Name);
|
Table_2_Info = Panel_Info_Manager.Instance.Get_Panel_Info(Table_2_Name);
|
|
Data_Update_Th = new Thread(Data_Update_Th_Set);
|
UI_Update_Th = new Thread(UI_Update_Th_Set);
|
|
Data_Update_Th.Start();
|
UI_Update_Th.Start();
|
}
|
#endregion
|
|
#region Function
|
public void Init_Table_1_IO_Data(OutputData vacuum_sol, OutputData blow_sol, InputData vacuum_on_sensor)
|
{
|
this.table_1_vacuum_sol = vacuum_sol;
|
this.table_1_blow_sol = blow_sol;
|
this.table_1_vacuum_on_sensor = vacuum_on_sensor;
|
}
|
|
public void Init_Table_2_IO_Data(OutputData vacuum_sol, OutputData blow_sol, InputData vacuum_on_sensor)
|
{
|
this.table_2_vacuum_sol = vacuum_sol;
|
this.table_2_blow_sol = blow_sol;
|
this.table_2_vacuum_on_sensor = vacuum_on_sensor;
|
}
|
|
public void Init_Table_1_Scrap_Start(Func<bool> Scrap_Start)
|
{
|
this.Table_1_scrap_start = Scrap_Start;
|
}
|
|
public void Init_Table_2_Scrap_Start(Func<bool> Scrap_Start)
|
{
|
this.Table_2_scrap_start = Scrap_Start;
|
}
|
|
private void Data_Update_Th_Set()
|
{
|
while (!_equip.IsDisposed)
|
{
|
try
|
{
|
Thread.Sleep(10);
|
DateTime dt = DateTime.Now;
|
Table_1_Data_Update();
|
Table_2_Data_Update();
|
TimeSpan ts = (DateTime.Now - dt);
|
}
|
catch(Exception )
|
{
|
|
}
|
}
|
}
|
|
private void Table_1_Data_Update()
|
{
|
Table_1_Info = Panel_Info_Manager.Instance.Panel_Infos[Table_1_Name];
|
|
if (_equip.Board_Control.BoardMode == MMCE_Test.NMCSDKLib.EcMstMode.eMM_RUN)
|
{
|
table_1_vacuum_sol_value = _equip.Board_Control.IO_manager.Get_Output(table_1_vacuum_sol);
|
table_1_blow_sol_value = _equip.Board_Control.IO_manager.Get_Output(table_1_blow_sol);
|
table_1_vacuum_on_value = _equip.Board_Control.IO_manager.Get_Input(table_1_vacuum_on_sensor);
|
}
|
}
|
|
private void Table_2_Data_Update()
|
{
|
Table_2_Info = Panel_Info_Manager.Instance.Panel_Infos[Table_2_Name];
|
|
if (_equip.Board_Control.BoardMode == MMCE_Test.NMCSDKLib.EcMstMode.eMM_RUN)
|
{
|
table_2_vacuum_sol_value = _equip.Board_Control.IO_manager.Get_Output(table_2_vacuum_sol);
|
table_2_blow_sol_value = _equip.Board_Control.IO_manager.Get_Output(table_2_blow_sol);
|
table_2_vacuum_on_value = _equip.Board_Control.IO_manager.Get_Input(table_2_vacuum_on_sensor);
|
}
|
}
|
|
private void UI_Update_Th_Set()
|
{
|
while (!_equip.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
|
{
|
Table_1_UI_Update();
|
Table_2_UI_Update();
|
}
|
catch (Exception ex)
|
{
|
|
}
|
finally
|
{
|
update_check = false;
|
}
|
}
|
}
|
|
private void Table_1_UI_Update()
|
{
|
if (Table_1_Info != null)
|
{
|
lb_Table_1_Exist.BackColor = !Table_1_Info.Blank ? System.Drawing.Color.Lime : System.Drawing.Color.Green;
|
tb_Table_1_Tray_ID.Text = Table_1_Info.Tray_ID;
|
tb_Table_1_Panel_ID.Text = Table_1_Info.Panel_ID;
|
tb_Table_1_Tray_Num.Text = Table_1_Info.Tray_Num.ToString();
|
tb_Table_1_Panel_Num.Text = Table_1_Info.Panel_Num.ToString();
|
tb_Table_1_Row_Num.Text = Table_1_Info.Row_Num.ToString();
|
tb_Table_1_Column_Num.Text = Table_1_Info.Column_Num.ToString();
|
}
|
|
lb_Table_1_Vacuum_Sol.BackColor = table_1_vacuum_sol_value ? System.Drawing.Color.Lime : System.Drawing.Color.Green;
|
lb_Table_1_Blow_Sol.BackColor = table_1_blow_sol_value ? System.Drawing.Color.Lime : System.Drawing.Color.Green;
|
lb_Table_1_Vacuum_On_Sensor.BackColor = table_1_vacuum_on_value ? System.Drawing.Color.Lime : System.Drawing.Color.Green;
|
}
|
|
private void Table_2_UI_Update()
|
{
|
if (Table_2_Info != null)
|
{
|
lb_Table_2_Exist.BackColor = !Table_2_Info.Blank ? System.Drawing.Color.Lime : System.Drawing.Color.Green;
|
tb_Table_2_Tray_ID.Text = Table_2_Info.Tray_ID;
|
tb_Table_2_Panel_ID.Text = Table_2_Info.Panel_ID;
|
tb_Table_2_Tray_Num.Text = Table_2_Info.Tray_Num.ToString();
|
tb_Table_2_Panel_Num.Text = Table_2_Info.Panel_Num.ToString();
|
tb_Table_2_Row_Num.Text = Table_2_Info.Row_Num.ToString();
|
tb_Table_2_Column_Num.Text = Table_2_Info.Column_Num.ToString();
|
}
|
|
lb_Table_2_Vacuum_Sol.BackColor = table_2_vacuum_sol_value ? System.Drawing.Color.Lime : System.Drawing.Color.Green;
|
lb_Table_2_Blow_Sol.BackColor = table_2_blow_sol_value ? System.Drawing.Color.Lime : System.Drawing.Color.Green;
|
lb_Table_2_Vacuum_On_Sensor.BackColor = table_2_vacuum_on_value ? System.Drawing.Color.Lime : System.Drawing.Color.Green;
|
}
|
#endregion
|
|
#region Form Function
|
private void Form_Table_Info_FormClosing(object sender, FormClosingEventArgs e)
|
{
|
if (!_equip.IsDisposed)
|
{
|
e.Cancel = true;
|
|
this.Hide();
|
}
|
}
|
|
private void btn_Table_1_Scrap_Click(object sender, EventArgs e)
|
{
|
if(Table_1_scrap_start == null)
|
{
|
Interlock_Manager.Add_Interlock_Msg("Scrap Can't Start", "Scrap Function is not exist.");
|
return;
|
}
|
else if (_equip.equip_mode == En_Equipment_Mode.Auto || _equip.Auto_Mode)
|
{
|
Interlock_Manager.Add_Interlock_Msg("Scrap Can't Start", "Equipment mode is Auto.");
|
return;
|
}
|
else
|
{
|
Table_1_scrap_start();
|
}
|
}
|
|
private void btn_Table_2_Scrap_Click(object sender, EventArgs e)
|
{
|
if (Table_2_scrap_start == null)
|
{
|
Interlock_Manager.Add_Interlock_Msg("Scrap Can't Start", "Scrap Function is not exist.");
|
return;
|
}
|
else if (_equip.equip_mode == En_Equipment_Mode.Auto || _equip.Auto_Mode)
|
{
|
Interlock_Manager.Add_Interlock_Msg("Scrap Can't Start", "Equipment mode is Auto.");
|
return;
|
}
|
else
|
{
|
Table_2_scrap_start();
|
}
|
}
|
#endregion
|
}
|
}
|