using SHARP_CLAS_UI.Screen;
|
using System.Windows;
|
using System.Windows.Controls;
|
using System.Windows.Media;
|
using System.Windows.Shapes;
|
using System.Windows.Threading;
|
|
namespace SHARP_CLAS_UI.WPFControl
|
{
|
/// <summary>
|
/// Main_UserControl.xaml에 대한 상호 작용 논리
|
/// </summary>
|
public partial class Main_UserControl : UserControl
|
{
|
Form_Frame _Parent;
|
SolidColorBrush door_open_color;
|
SolidColorBrush door_close_color;
|
SolidColorBrush exist;
|
SolidColorBrush vacuum_on;
|
SolidColorBrush vacuum_off;
|
SolidColorBrush alarmColor;
|
|
public Main_UserControl(Form_Frame _Parent)
|
{
|
InitializeComponent();
|
this._Parent = _Parent;
|
|
door_open_color = new SolidColorBrush(Colors.Red);
|
door_close_color = new SolidColorBrush(Colors.Lime);
|
alarmColor = new SolidColorBrush(Colors.Red);
|
exist = new SolidColorBrush(Colors.LightGreen);
|
vacuum_on = new SolidColorBrush(Colors.Lime);
|
vacuum_off = new SolidColorBrush(Colors.Transparent);
|
}
|
|
public bool Get_Dispatcher_Access()
|
{
|
return Dispatcher.CheckAccess();
|
}
|
|
public void Set_LD_Tray_X_Position(double position)
|
{
|
position *= 0.22;
|
LD_Tray_TR_X.Margin = new Thickness(0, position, 0, 0);
|
}
|
|
public void Set_LD_Handler_1_X_Position(double position)
|
{
|
position *= 0.42;
|
LD_Handler_1_X.Margin = new Thickness(0, -position, 0, 0);
|
LD_Handler_1_X_1.Margin = new Thickness(0, -position, 0, 0);
|
}
|
|
public void Set_LD_Handler_1_Y_Position(double position)
|
{
|
position *= 0.46;
|
LD_Handler_1_Y.Margin = new Thickness(-position, 0, 0, 0);
|
}
|
|
public void Set_LD_Handler_2_X_Position(double position)
|
{
|
position *= 0.37;
|
LD_Handler_2_X.Margin = new Thickness(0, -position, 0, 0);
|
LD_Handler_2_X_1.Margin = new Thickness(0, -position, 0, 0);
|
}
|
|
public void Set_LD_Handler_2_Y_Position(double position)
|
{
|
position *= 0.2;
|
LD_Handler_2_Y.Margin = new Thickness(position, 0, 0, 0);
|
}
|
|
|
public void Set_Ablation_Stage_1_Y_Position(double position)
|
{
|
position *= 0.5;
|
Stage_Y_1.Margin = new Thickness(-position, 0, 0, 0);
|
}
|
|
public void Set_Ablation_Stage_2_Y_Position(double position)
|
{
|
position *= 0.5;
|
Stage_Y_2.Margin = new Thickness(-position, 0, 0, 0);
|
}
|
|
public void Set_Fine_Align_Position(double position)
|
{
|
position *= 0.18;
|
Fine_Align.Margin = new Thickness(0, 0, 0, position);
|
}
|
|
public void Set_Ablation_Position(double position)
|
{
|
position *= 0.25;
|
Ablation.Margin = new Thickness(0, 0, 0, position);
|
}
|
|
public void Set_Plasma_Position(double position)
|
{
|
position *= 0.25;
|
Plasma_X.Margin = new Thickness(0, 0, 0, position);
|
}
|
|
public void Set_ULD_Handler_2_X_Position(double position)
|
{
|
position *= 0.37;
|
ULD_Handler_2_X.Margin = new Thickness(0, -position, 0, 0);
|
ULD_Handler_2_X_1.Margin = new Thickness(0, -position, 0, 0);
|
}
|
|
public void Set_ULD_Handler_2_Y_Position(double position)
|
{
|
position *= 0.425;
|
ULD_Handler_2_Y.Margin = new Thickness(-position, 0, 0, 0);
|
}
|
|
public void Set_ULD_Handler_1_X_Position(double position)
|
{
|
position *= 0.44;
|
ULD_Handler_1_X.Margin = new Thickness(0, -position, 0, 0);
|
ULD_Handler_1_X_1.Margin = new Thickness(0, -position, 0, 0);
|
}
|
|
public void Set_ULD_Handler_1_Y_Position(double position)
|
{
|
position *= 0.263;
|
ULD_Handler_1_Y.Margin = new Thickness(position, 0, 0, 0);
|
ULD_Handler_1_Y_1.Margin = new Thickness(position, 0, 0, 0);
|
}
|
|
public void Set_ULD_Tray_X_Position(double position)
|
{
|
position *= 0.225;
|
ULD_Tray_TR_X.Margin = new Thickness(0, position, 0, 0);
|
}
|
|
public void Set_Door_1_Open(bool open)
|
{
|
Door_1.Fill = open ? door_open_color : door_close_color;
|
}
|
|
public void Set_Door_2_Open(bool open)
|
{
|
Door_2.Fill = open ? door_open_color : door_close_color;
|
}
|
|
public void Set_Door_3_Open(bool open)
|
{
|
Door_3.Fill = open ? door_open_color : door_close_color;
|
}
|
|
public void Set_Door_4_Open(bool open)
|
{
|
Door_4.Fill = open ? door_open_color : door_close_color;
|
}
|
|
public void Set_Door_5_Open(bool open)
|
{
|
Door_5.Fill = open ? door_open_color : door_close_color;
|
}
|
|
public void Set_Door_6_Open(bool open)
|
{
|
Door_6.Fill = open ? door_open_color : door_close_color;
|
}
|
|
public void Set_Door_7_Open(bool open)
|
{
|
Door_7.Fill = open ? door_open_color : door_close_color;
|
}
|
|
public void Set_Door_8_Open(bool open)
|
{
|
Door_8.Fill = open ? door_open_color : door_close_color;
|
}
|
|
public void Set_Door_9_Open(bool open)
|
{
|
Door_9.Fill = open ? door_open_color : door_close_color;
|
}
|
|
public void Set_Door_10_Open(bool open)
|
{
|
Door_10.Fill = open ? door_open_color : door_close_color;
|
}
|
|
public void Set_GPS_Door_Open(bool open)
|
{
|
GPS_Door.Fill = open ? door_open_color : door_close_color;
|
}
|
|
public void Set_UPS_Door_Open(bool open)
|
{
|
UPS_Door.Fill = open ? door_open_color : door_close_color;
|
}
|
|
public void Set_Auto_Mode(bool auto)
|
{
|
Auto_Mode.Fill = auto ? door_close_color : door_open_color;
|
}
|
private void Door_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
|
{
|
Rectangle rect = (Rectangle)sender;
|
|
switch(rect.Name)
|
{
|
case "Door_1":
|
{
|
if(!_Parent.sm.Get_Bit(Output_Memory_Address.Safety_Door_Open_1))
|
{
|
if (_Parent._equip.Auto_Mode && !_Parent._equip.Teach_Mode)
|
{
|
Interlock_Manager.Add_Interlock_Msg("Door 1 can't open.", "You can't open door in Auto mode.");
|
return;
|
}
|
}
|
|
_Parent._equip.Board_Control.IO_manager.Set_Output(OutputData.Safety_Door_Open_1, !_Parent.sm.Get_Bit(Output_Memory_Address.Safety_Door_Open_1));
|
break;
|
}
|
case "Door_2":
|
{
|
if (!_Parent.sm.Get_Bit(Output_Memory_Address.Safety_Door_Open_2))
|
{
|
if (_Parent._equip.Auto_Mode && !_Parent._equip.Teach_Mode)
|
{
|
Interlock_Manager.Add_Interlock_Msg("Door 2 can't open.", "You can't open door in Auto mode.");
|
return;
|
}
|
}
|
|
_Parent._equip.Board_Control.IO_manager.Set_Output(OutputData.Safety_Door_Open_2, !_Parent.sm.Get_Bit(Output_Memory_Address.Safety_Door_Open_2));
|
break;
|
}
|
case "Door_3":
|
{
|
if (!_Parent.sm.Get_Bit(Output_Memory_Address.Safety_Door_Open_3))
|
{
|
if (_Parent._equip.Auto_Mode && !_Parent._equip.Teach_Mode)
|
{
|
Interlock_Manager.Add_Interlock_Msg("Door 3 can't open.", "You can't open door in Auto mode.");
|
return;
|
}
|
}
|
|
_Parent._equip.Board_Control.IO_manager.Set_Output(OutputData.Safety_Door_Open_3, !_Parent.sm.Get_Bit(Output_Memory_Address.Safety_Door_Open_3));
|
break;
|
}
|
case "Door_4":
|
{
|
if (!_Parent.sm.Get_Bit(Output_Memory_Address.Safety_Door_Open_4))
|
{
|
if (_Parent._equip.Auto_Mode && !_Parent._equip.Teach_Mode)
|
{
|
Interlock_Manager.Add_Interlock_Msg("Door 4 can't open.", "You can't open door in Auto mode.");
|
return;
|
}
|
}
|
|
_Parent._equip.Board_Control.IO_manager.Set_Output(OutputData.Safety_Door_Open_4, !_Parent.sm.Get_Bit(Output_Memory_Address.Safety_Door_Open_4));
|
break;
|
}
|
case "Door_5":
|
{
|
if (!_Parent.sm.Get_Bit(Output_Memory_Address.Safety_Door_Open_5))
|
{
|
if (_Parent._equip.Auto_Mode && !_Parent._equip.Teach_Mode)
|
{
|
Interlock_Manager.Add_Interlock_Msg("Door 5 can't open.", "You can't open door in Auto mode.");
|
return;
|
}
|
|
}
|
|
_Parent._equip.Board_Control.IO_manager.Set_Output(OutputData.Safety_Door_Open_5, !_Parent.sm.Get_Bit(Output_Memory_Address.Safety_Door_Open_5));
|
break;
|
}
|
case "Door_6":
|
{
|
if (!_Parent.sm.Get_Bit(Output_Memory_Address.Safety_Door_Open_6))
|
{
|
if (_Parent._equip.Auto_Mode && !_Parent._equip.Teach_Mode)
|
{
|
Interlock_Manager.Add_Interlock_Msg("Door 6 can't open.", "You can't open door in Auto mode.");
|
return;
|
}
|
}
|
|
_Parent._equip.Board_Control.IO_manager.Set_Output(OutputData.Safety_Door_Open_6, !_Parent.sm.Get_Bit(Output_Memory_Address.Safety_Door_Open_6));
|
break;
|
}
|
case "Door_7":
|
{
|
if (!_Parent.sm.Get_Bit(Output_Memory_Address.Safety_Door_Open_7))
|
{
|
if (_Parent._equip.Auto_Mode && !_Parent._equip.Teach_Mode)
|
{
|
Interlock_Manager.Add_Interlock_Msg("Door 7 can't open.", "You can't open door in Auto mode.");
|
return;
|
}
|
}
|
|
_Parent._equip.Board_Control.IO_manager.Set_Output(OutputData.Safety_Door_Open_7, !_Parent.sm.Get_Bit(Output_Memory_Address.Safety_Door_Open_7));
|
break;
|
}
|
case "Door_8":
|
{
|
if (!_Parent.sm.Get_Bit(Output_Memory_Address.Safety_Door_Open_8))
|
{
|
if (_Parent._equip.Auto_Mode && !_Parent._equip.Teach_Mode)
|
{
|
Interlock_Manager.Add_Interlock_Msg("Door 8 can't open.", "You can't open door in Auto mode.");
|
return;
|
}
|
}
|
|
_Parent._equip.Board_Control.IO_manager.Set_Output(OutputData.Safety_Door_Open_8, !_Parent.sm.Get_Bit(Output_Memory_Address.Safety_Door_Open_8));
|
break;
|
}
|
case "Door_9":
|
{
|
if (!_Parent.sm.Get_Bit(Output_Memory_Address.Safety_Door_Open_9))
|
{
|
if (_Parent._equip.Auto_Mode && !_Parent._equip.Teach_Mode)
|
{
|
Interlock_Manager.Add_Interlock_Msg("Door 9 can't open.", "You can't open door in Auto mode.");
|
return;
|
}
|
}
|
|
_Parent._equip.Board_Control.IO_manager.Set_Output(OutputData.Safety_Door_Open_9, !_Parent.sm.Get_Bit(Output_Memory_Address.Safety_Door_Open_9));
|
break;
|
}
|
case "Door_10":
|
{
|
if (!_Parent.sm.Get_Bit(Output_Memory_Address.Safety_Door_Open_10))
|
{
|
if (_Parent._equip.Auto_Mode && !_Parent._equip.Teach_Mode)
|
{
|
Interlock_Manager.Add_Interlock_Msg("Door 10 can't open.", "You can't open door in Auto mode.");
|
return;
|
}
|
}
|
|
_Parent._equip.Board_Control.IO_manager.Set_Output(OutputData.Safety_Door_Open_10, !_Parent.sm.Get_Bit(Output_Memory_Address.Safety_Door_Open_10));
|
break;
|
}
|
}
|
}
|
|
public void Set_LD_Tray_In_Tray_Empty(bool empty)
|
{
|
LD_Tray_In_Tray.Fill = empty ? vacuum_off : exist;
|
}
|
|
public void Set_LD_Tray_Empty_Tray_Empty(bool empty)
|
{
|
LD_Tray_Empty_Tray.Fill = empty ? vacuum_off : exist;
|
}
|
|
public void Set_ULD_Tray_Empty_Tray_Empty(bool empty)
|
{
|
ULD_Tray_Empty_Tray.Fill = empty ? vacuum_off : exist;
|
}
|
|
public void Set_ULD_Tray_Ng_Tray_Empty(bool empty)
|
{
|
ULD_Tray_Ng_Tray.Fill = empty ? vacuum_off : exist;
|
}
|
|
public void Set_ULD_Tray_Ok_Tray_Empty(bool empty)
|
{
|
ULD_Tray_Ok_Tray.Fill = empty ? vacuum_off : exist;
|
}
|
|
public void Set_LD_Tray_TR_Vacuum(bool picker, bool alarm = false)
|
{
|
LD_Tray_TR.Fill = alarm ? alarmColor : picker ? vacuum_on : vacuum_off;
|
}
|
|
public void Set_LD_Handler_1_Vacuum(bool picker_1, bool picker_2, bool alarm_1 = false, bool alarm_2 = false)
|
{
|
LD_Handler_1_1.Fill = alarm_1 ? alarmColor : picker_1 ? vacuum_on : vacuum_off;
|
LD_Handler_1_2.Fill = alarm_2 ? alarmColor : picker_2 ? vacuum_on : vacuum_off;
|
}
|
|
public void Set_Pre_Align_Vacuum(bool picker_1, bool picker_2, bool alarm_1 = false, bool alarm_2 = false)
|
{
|
Pre_Align_1.Fill = alarm_1 ? alarmColor : picker_1 ? vacuum_on : vacuum_off;
|
Pre_Align_2.Fill = alarm_2 ? alarmColor : picker_2 ? vacuum_on : vacuum_off;
|
}
|
|
public void Set_LD_Reverse_Vacuum(bool picker_1, bool picker_2, bool alarm_1 = false, bool alarm_2 = false)
|
{
|
LD_Reverse_1.Fill = alarm_1 ? alarmColor : picker_1 ? vacuum_on : vacuum_off;
|
LD_Reverse_2.Fill = alarm_2 ? alarmColor : picker_2 ? vacuum_on : vacuum_off;
|
}
|
|
public void Set_LD_Handler_2_Vacuum(bool picker_1, bool picker_2, bool alarm_1 = false, bool alarm_2 = false)
|
{
|
LD_Handler_2_1.Fill = alarm_1 ? alarmColor : picker_1 ? vacuum_on : vacuum_off;
|
LD_Handler_2_2.Fill = alarm_2 ? alarmColor : picker_2 ? vacuum_on : vacuum_off;
|
}
|
|
public void Set_Ablation_Stage_1_Vacuum(bool picker_1, bool picker_2, bool alarm_1 = false, bool alarm_2 = false)
|
{
|
Ablation_Stage_1_1.Fill = alarm_1 ? alarmColor : picker_1 ? vacuum_on : vacuum_off;
|
Ablation_Stage_1_2.Fill = alarm_2 ? alarmColor : picker_2 ? vacuum_on : vacuum_off;
|
}
|
|
public void Set_Ablation_Stage_2_Vacuum(bool picker_1, bool picker_2, bool alarm_1 = false, bool alarm_2 = false)
|
{
|
Ablation_Stage_2_1.Fill = alarm_1 ? alarmColor : picker_1 ? vacuum_on : vacuum_off;
|
Ablation_Stage_2_2.Fill = alarm_2 ? alarmColor : picker_2 ? vacuum_on : vacuum_off;
|
}
|
|
public void Set_AOI_Vacuum(bool picker_1, bool picker_2, bool alarm_1 = false, bool alarm_2 = false)
|
{
|
AOI_1.Fill = alarm_1 ? alarmColor : picker_1 ? vacuum_on : vacuum_off;
|
AOI_2.Fill = alarm_2 ? alarmColor : picker_2 ? vacuum_on : vacuum_off;
|
}
|
|
public void Set_ULD_Reverse_Vacuum(bool picker_1, bool picker_2, bool alarm_1 = false, bool alarm_2 = false)
|
{
|
ULD_Reverse_1.Fill = alarm_1 ? alarmColor : picker_1 ? vacuum_on : vacuum_off;
|
ULD_Reverse_2.Fill = alarm_2 ? alarmColor : picker_2 ? vacuum_on : vacuum_off;
|
}
|
|
public void Set_ULD_Handler_2_Vacuum(bool picker_1, bool picker_2, bool alarm_1 = false, bool alarm_2 = false)
|
{
|
ULD_Handler_2_1.Fill = alarm_1 ? alarmColor : picker_1 ? vacuum_on : vacuum_off;
|
ULD_Handler_2_2.Fill = alarm_2 ? alarmColor : picker_2 ? vacuum_on : vacuum_off;
|
}
|
|
public void Set_ULD_Handler_1_Vacuum(bool picker_1, bool picker_2, bool alarm_1 = false, bool alarm_2 = false)
|
{
|
ULD_Handler_1_1.Fill = alarm_1 ? alarmColor : picker_1 ? vacuum_on : vacuum_off;
|
ULD_Handler_1_2.Fill = alarm_2 ? alarmColor : picker_2 ? vacuum_on : vacuum_off;
|
}
|
|
public void Set_ULD_Tray_TR_Vacuum(bool picker, bool alarm = false)
|
{
|
ULD_Tray_TR.Fill = alarm ? alarmColor : picker ? vacuum_on : vacuum_off;
|
}
|
|
public void Set_Laser_On(bool onoff)
|
{
|
Laser.Fill = onoff ? vacuum_on : vacuum_off;
|
}
|
|
public void Set_Plasma_On(bool onoff)
|
{
|
Plasma.Fill = onoff ? vacuum_on : vacuum_off;
|
}
|
}
|
}
|