새 파일 |
| | |
| | | 癤퓎sing SA_LTT; |
| | | using SA_LTT.Info.RecipeInfo; |
| | | using SA_LTT_UI.Screen; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | using System.Drawing; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using System.Windows.Forms; |
| | | |
| | | namespace SA_LTT_UI.Viewer |
| | | { |
| | | public partial class ProcessRecipeInfoViewer : Form |
| | | { |
| | | MainFrame _mainFrame; |
| | | |
| | | WaferProcessPointView _waferProcessPointView = new WaferProcessPointView(); |
| | | |
| | | public ProcessRecipeInfoViewer(MainFrame mainFrame) |
| | | { |
| | | InitializeComponent(); |
| | | _mainFrame = mainFrame; |
| | | |
| | | el_CurrentWaferProcess.Child = _waferProcessPointView; |
| | | |
| | | _mainFrame.equipment.AddRecipeExcutedEvent(Sequence_RecipeExcuted); |
| | | _mainFrame.equipment.AddProcessInfoExcutedEvent(Sequence_ProcessInfoExcuted); |
| | | } |
| | | |
| | | private void Sequence_RecipeExcuted(Recipe recipe) |
| | | { |
| | | if (InvokeRequired) |
| | | { |
| | | BeginInvoke(new RecipeExcuteEvent(Sequence_RecipeExcuted), recipe); |
| | | } |
| | | else |
| | | { |
| | | _waferProcessPointView.ClearProcessArea(); |
| | | _waferProcessPointView.Radius = recipe.Radius; |
| | | _waferProcessPointView.PrimaryFlat = recipe.DistanceFromCenterToPrimaryFlat; |
| | | |
| | | tb_RecipeName.Text = recipe.Name; |
| | | tb_RecipeRadius.Text = recipe.Radius.ToString(); |
| | | tb_RecipeDistancePrimaryFlat.Text = recipe.DistanceFromCenterToPrimaryFlat.ToString(); |
| | | tb_RecipeEdgeRound.Text = recipe.EdgeRound.ToString(); |
| | | |
| | | tb_RecipeBeamWidth.Text = recipe.BeamWidth.ToString(); |
| | | tb_RecipeBeamHeight.Text = recipe.BeamHeight.ToString(); |
| | | |
| | | foreach (ProcessInfo processInfo in recipe.ProcessInfoList) |
| | | { |
| | | processInfo.SetProcessData(); |
| | | |
| | | _waferProcessPointView.AddProcessArea(processInfo.ProcessStartY, processInfo.ProcessEndY, processInfo.ProcessList.ToArray()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void Sequence_ProcessInfoExcuted(ProcessInfo processInfo, int processInfoIndex) |
| | | { |
| | | if (InvokeRequired) |
| | | { |
| | | BeginInvoke(new ProcessInfoExcuteEvent(Sequence_ProcessInfoExcuted), processInfo, processInfoIndex); |
| | | } |
| | | else |
| | | { |
| | | tb_RecipeWidthOverlap.Text = processInfo.BeamWidthOverlap.ToString(); |
| | | tb_RecipeHeightOverlap.Text = processInfo.BeamHeightOverlap.ToString(); |
| | | tb_RecipeEnergy.Text = processInfo.Energy.ToString(); |
| | | |
| | | _waferProcessPointView.HighlightProcessAreas(processInfoIndex); |
| | | } |
| | | } |
| | | |
| | | private void ProcessRecipeInfoViewer_FormClosing(object sender, FormClosingEventArgs e) |
| | | { |
| | | e.Cancel = true; |
| | | this.Hide(); |
| | | } |
| | | } |
| | | } |