using SA_LTT;
|
using SA_LTT.Module;
|
using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Data;
|
using System.Drawing;
|
using System.Linq;
|
using System.Text;
|
using System.Threading;
|
using System.Threading.Tasks;
|
using System.Windows.Forms;
|
|
namespace SA_LTT_UI.Viewer
|
{
|
public partial class VisionViewer : Form
|
{
|
MainFrame _mainFrame;
|
Thread t_UIUpdate;
|
|
Dictionary<VisionToControlCommand, Control> recvAckDatas = new Dictionary<VisionToControlCommand, Control>();
|
|
bool updateCheck;
|
|
public VisionViewer(MainFrame mainFrame)
|
{
|
InitializeComponent();
|
_mainFrame = mainFrame;
|
InitializeData();
|
t_UIUpdate = new Thread(UIUpdateTh);
|
t_UIUpdate.Start();
|
}
|
|
private void InitializeData()
|
{
|
recvAckDatas.Add(VisionToControlCommand.VisionReadyAck, lb_VisionReady);
|
recvAckDatas.Add(VisionToControlCommand.InspReadyEnd, lb_InspReadyEndAck);
|
recvAckDatas.Add(VisionToControlCommand.WaferDetectionReadyAck, lb_WaferDetectionReady);
|
recvAckDatas.Add(VisionToControlCommand.WaferDetectionReadyEnd, lb_WaferDetectionReadyEndAck);
|
recvAckDatas.Add(VisionToControlCommand.WaferDetectionStartAck, lb_WaferDetectionStart);
|
recvAckDatas.Add(VisionToControlCommand.WaferDetectionResult, lb_WaferDetectionResultAck);
|
recvAckDatas.Add(VisionToControlCommand.RecipeChangeSwitchAck, lb_RecipeSwitch);
|
recvAckDatas.Add(VisionToControlCommand.RecipeChangeUpdate, lb_RecipeUpdateAck);
|
recvAckDatas.Add(VisionToControlCommand.Alarm, lb_AlarmAck);
|
recvAckDatas.Add(VisionToControlCommand.AliveAck, lb_RequestAlive);
|
}
|
|
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
|
{
|
tb_Ip.Text = _mainFrame.equipment.visionControl.Ip.ToString();
|
tb_Port.Text = _mainFrame.equipment.visionControl.Port.ToString();
|
btn_Connection.BackColor = _mainFrame.equipment.visionControl.isConnected ? Color.Lime : Color.Red;
|
btn_DisConnection.BackColor = _mainFrame.equipment.visionControl.isConnected ? Color.Red : Color.Lime;
|
foreach (VisionToControlCommand command in recvAckDatas.Keys)
|
{
|
|
recvAckDatas[command].BackColor = _mainFrame.equipment.visionControl.CommnadAcks[command] ? Color.Lime : Color.Red;
|
}
|
|
tb_Result.Text = _mainFrame.equipment.visionControl.WaferDetectionResultValue.Result.ToString();
|
tb_ResultX.Text = _mainFrame.equipment.visionControl.WaferDetectionResultValue.ResultX.ToString();
|
tb_ResultY.Text = _mainFrame.equipment.visionControl.WaferDetectionResultValue.ResultY.ToString();
|
tb_ResultT.Text = _mainFrame.equipment.visionControl.WaferDetectionResultValue.ResultT.ToString();
|
}
|
catch (Exception e)
|
{
|
EquipmentLogManager.Instance.WriteExceptionLog(e.StackTrace);
|
}
|
finally
|
{
|
updateCheck = false;
|
}
|
}
|
}
|
|
private void VisionViewer_FormClosing(object sender, FormClosingEventArgs e)
|
{
|
e.Cancel = true;
|
this.Hide();
|
}
|
|
private void btn_Close_Click(object sender, EventArgs e)
|
{
|
this.Hide();
|
}
|
|
private void btn_VisionReady_Click(object sender, EventArgs e)
|
{
|
_mainFrame.equipment.visionControl.SendVisionReady(tb_RecipeName.Text);
|
}
|
|
private void btn_InspReadyEnd_Click(object sender, EventArgs e)
|
{
|
_mainFrame.equipment.visionControl.SendInspReadyEndAck();
|
|
}
|
|
private void btn_WaferDetectionReady_Click(object sender, EventArgs e)
|
{
|
_mainFrame.equipment.visionControl.SendWaferDetectionReady();
|
}
|
|
private void btn_WaferDetectionReadyEndAck_Click(object sender, EventArgs e)
|
{
|
_mainFrame.equipment.visionControl.SendWaferDetectionReadyEndAck();
|
}
|
|
private void btn_WaferDetectionStart_Click(object sender, EventArgs e)
|
{
|
_mainFrame.equipment.visionControl.SendWaferDetectionStart();
|
}
|
|
private void btn_WaferDetectionResultAck_Click(object sender, EventArgs e)
|
{
|
_mainFrame.equipment.visionControl.SendWaferDetectionResultAck();
|
}
|
|
private void btn_RecipeSwitch_Click(object sender, EventArgs e)
|
{
|
_mainFrame.equipment.visionControl.SendRecipeSwitch(tb_RecipeName.Text);
|
}
|
|
private void btn_RecipeUpdateAck_Click(object sender, EventArgs e)
|
{
|
_mainFrame.equipment.visionControl.SendRecipeUpdateAck();
|
}
|
|
private void btn_AlarmAck_Click(object sender, EventArgs e)
|
{
|
_mainFrame.equipment.visionControl.SendAlarmAck();
|
}
|
|
private void btn_RequestAlive_Click(object sender, EventArgs e)
|
{
|
_mainFrame.equipment.visionControl.SendRequestAlive();
|
}
|
}
|
}
|