コード例 #1
0
        private void listboxData_SelectedIndexChanged(object sender, EventArgs e)
        {
            int nIndex = listboxData.SelectedIndex;

            ProcInfoAlign data = ProcessMgr.Inst.TempPinfo.listProcAlign[nIndex];

            txtName.Text  = data.strProcName;
            txtAngle.Text = data.dAngle.ToString("0.000");
        }
コード例 #2
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            ProcInfoAlign data   = new ProcInfoAlign();
            float         dAngle = 0.0f;

            data.strProcName = txtName.Text;
            float.TryParse(txtAngle.Text, out dAngle);
            data.dAngle = dAngle;

            if (data.strProcName.Trim() == "")
            {
                MessageBox.Show(new Form()
                {
                    TopMost = true
                }, "Please insert name", "Confirm!");
                return;
            }

            int nCount = ProcessMgr.Inst.TempPinfo.listProcAlign.Where <ProcInfoAlign>(p => p.strProcName == data.strProcName).Count();

            if (nCount == 0)
            {
                // 추가
                ProcessMgr.Inst.TempPinfo.listProcAlign.Add(data);
            }
            else
            {
                // 수정
                ProcInfoAlign edit = ProcessMgr.Inst.TempPinfo.listProcAlign.Single <ProcInfoAlign>(p => p.strProcName == data.strProcName);
                edit.dAngle = dAngle;
            }

            ProcessMgr.Inst.SaveTempRcp();
            ProcessMgr.Inst.Save();
            ProcessMgr.Inst.CopyTempRcp();

            RefreshUI();
        }
コード例 #3
0
ファイル: ProcAligner.cs プロジェクト: phjungDiones/merge
        public void Run()
        {
            if (!isAcceptRun())
            {
                return;
            }
            if (nSeqNo != nPreSeqNo)
            {
                resetCmd();
            }
            nPreSeqNo = nSeqNo;

            alwaysCheck();
            switch (nSeqNo)
            {
            case 0:
                if (GlobalVariable.interlock.bAlignMoving == false)
                {
                    return;
                }
                break;

            case 5:
                if (GlobalVariable.seqShared.IsInAligner() == false)
                {
                    return;
                }
                break;

            case 10:
                //웨이퍼 확인
                GlobalVariable.seqShared.stopWatch[(int)UNIT.ALINGER].Restart();     //시간 측정 시작

#if !_REAL_MC
                Thread.Sleep(2000);
#endif
                break;

            case 15:

                if (GlobalVariable.seqShared.aligner.waferType == WaferType.CARRIER)
                {
                    //현재 웨이퍼가 Carrier일 경우
                    AlignInfo    = ProcessMgr.Inst.TempPinfo.listProcAlign.Single <ProcInfoAlign>(p => p.strProcName == RecipeMgr.Inst.TempRcp.strPreAlignCarrier);
                    m_AlignAngle = AlignInfo.dAngle;
                }
                else if (GlobalVariable.seqShared.aligner.waferType == WaferType.DEVICE)
                {
                    //Device
                    AlignInfo    = ProcessMgr.Inst.TempPinfo.listProcAlign.Single <ProcInfoAlign>(p => p.strProcName == RecipeMgr.Inst.TempRcp.strPreAlignDevice);
                    m_AlignAngle = AlignInfo.dAngle;
                }
                else
                {
                    //Type Error
                    return;
                }

                MoveAlign(m_AlignAngle);
                break;

            case 20:
                if (CheckCompl_Align() != fn.success)
                {
                    return;
                }

                break;

            case 25:
                //Vacuum Off
                aligner.VacuumOff();
                break;

            case 30:
                if (CheckCompl_Align() != fn.success)
                {
                    return;
                }

                //시간측정 종료
                GlobalVariable.seqShared.stopWatch[(int)UNIT.ALINGER].Stop();
                GlobalVariable.seqShared.aligner.strAlignTime = GlobalVariable.seqShared.stopWatch[(int)UNIT.ALINGER].Elapsed.ToString(@"hh\:mm\:ss");
                break;

            case 35:
                //얼라인 완료

                GlobalVariable.interlock.bAlignMoving = false;     //완료
                nextSeq(0);
                return;

            default:
                break;
            }
            nSeqNo++;
        }