private void Parameter_Click(object sender, EventArgs e) { if (!mc.check.READY_PUSH(sender)) { return; } mc.check.push(sender, true); if (sender.Equals(BT_Parameter_Load)) { Thread th = new Thread(parameterRecipeOpenDialog); th.SetApartmentState(ApartmentState.STA); th.Name = "PARARCPOPEN"; th.Start(); } if (sender.Equals(BT_Parameter_Save)) { Thread th = new Thread(parameterRecipeSaveDialog); th.SetApartmentState(ApartmentState.STA); th.Name = "PARARCPSAVE"; th.Start(); } if (sender.Equals(BT_INI_Read)) { mc.swcontrol.readconfig(); // Swcontrol 를 읽는 부분이 초기화 부분밖에 없어서 추가함. 사실 이 폼에는 필요없는 값들이지만, INI Update 하기 위한 공용 폼으로 사용함. UtilityControl.readGraphConfig(); UtilityControl.readForceConfig(); } refresh(); mc.check.push(sender, false); }
private void FormGraphControl_Load(object sender, EventArgs e) { this.Left = 620; this.Top = 170; mc.swcontrol.readconfig(); // Swcontrol 를 읽는 부분이 초기화 부분밖에 없어서 추가함. 사실 이 폼에는 필요없는 값들이지만, INI Update 하기 위한 공용 폼으로 사용함. UtilityControl.readGraphConfig(); UtilityControl.readForceConfig(); CB_DisplayStartPoint.SelectedIndex = UtilityControl.graphStartPoint; CB_DisplayEndPoint.SelectedIndex = UtilityControl.graphEndPoint; CB_DisplayType.SelectedIndex = UtilityControl.graphDisplayData; TB_MeanFilterCount.Text = UtilityControl.graphMeanFilter.ToString(); TB_VPPMFilter.Text = UtilityControl.graphControlDataFilter.ToString(); TB_LoadcellFilter.Text = UtilityControl.graphLoadcellDataFilter.ToString(); CB_DisplayVPPMCommand.Checked = (UtilityControl.graphControlDataDisplay == 0) ? false : true; CB_DisplayLoadcell.Checked = (UtilityControl.graphLoadcellDataDisplay == 0) ? false : true; }
private void Control_Click(object sender, EventArgs e) { if (!mc.check.READY_INITIAL(sender)) { return; } mc.check.push(sender, true); timer.Enabled = true; //EVENT.mainFormPanelMode(SPLITTER_MODE.EXPAND, SPLITTER_MODE.CURRENT, SPLITTER_MODE.CURRENT); EVENT.mainFormPanelMode(SPLITTER_MODE.NORMAL, SPLITTER_MODE.CURRENT, SPLITTER_MODE.CURRENT); #region Initial if (sender.Equals(BT_Vision)) { //Derek 수정예정 // jhlim : 임시 mc.hdc.req = true; mc.hdc.reqMode = REQMODE.HOMING; mc.ulc.req = true; mc.ulc.reqMode = REQMODE.HOMING; //mc.init.success.HDC = true; //mc.init.success.ULC = true; } if (sender.Equals(BT_HD)) { mc.hd.req = true; mc.hd.reqMode = REQMODE.HOMING; } if (sender.Equals(BT_PD)) { //Derek 수정예정 mc.pd.req = true; mc.pd.reqMode = REQMODE.HOMING; //mc.init.success.PD = true; } if (sender.Equals(BT_SF)) { //Derek 수정예정 mc.sf.req = true; mc.sf.reqMode = REQMODE.HOMING; //mc.init.success.SF = true; } if (sender.Equals(BT_CV)) { //Derek 수정예정 // conveyor상에 board가 있는지 확인 bool[] bdstate = new bool[4]; RetValue retval; mc.IN.CV.BD_IN(out bdstate[0], out retval.message); mc.IN.CV.BD_BUF(out bdstate[1], out retval.message); mc.IN.CV.BD_NEAR(out bdstate[2], out retval.message); mc.IN.CV.BD_OUT(out bdstate[3], out retval.message); if (bdstate[0] == true || bdstate[1] == true || bdstate[2] == true || bdstate[3] == true) { string bdmsg = bdstate[0] ? textResource.CV_INPUT_AREA : ""; bdmsg += bdstate[1] ? textResource.CV_INPUT_BUFFER : ""; bdmsg += bdstate[2] ? textResource.CV_WORK_AREA : ""; bdmsg += bdstate[3] ? textResource.CV_OUTPUT_AREA : ""; if (mc.para.CV.homingSkip.value == 0) { MessageBox.Show(String.Format(textResource.MB_CV_CANNOT_INITIALIZE, bdmsg)); goto INIT_EXIT; } } mc.cv.req = true; mc.cv.reqMode = REQMODE.HOMING; //mc.init.success.CV = true; } if (sender.Equals(BT_PUSHER)) { mc.ps.req = true; mc.ps.reqMode = REQMODE.HOMING; } if (sender.Equals(BT_MAGAZINE)) { mc.unloader.req = true; mc.unloader.reqMode = REQMODE.HOMING; } if (sender.Equals(BT_All)) { mc.init.req = true; } if (sender.Equals(BT_StandBy)) { mc.swcontrol.readconfig(); // Swcontrol 를 읽는 부분이 초기화 부분밖에 없어서 추가함. 사실 이 폼에는 필요없는 값들이지만, INI Update 하기 위한 공용 폼으로 사용함. UtilityControl.readGraphConfig(); UtilityControl.readForceConfig(); RetValue retval; for (int i = 0; i < mc.activate.headCnt; i++) { mc.hd.tool.jogMove(i, mc.hd.tool.tPos.z[i].XY_MOVING, out retval.message); if (retval.message != RetMessage.OK) { mc.message.alarmMotion(retval.message); goto INIT_EXIT; } } double posT = mc.hd.tool.tPos.t[(int)UnitCodeHead.HD1].ZERO; double posT2 = mc.hd.tool.tPos.t[(int)UnitCodeHead.HD2].ZERO; mc.hd.tool.jogMove(mc.para.CAL.standbyPosition.x.value, mc.para.CAL.standbyPosition.y.value, posT, posT2, out retval.message); if (retval.message != RetMessage.OK) { mc.message.alarmMotion(retval.message); goto INIT_EXIT; } mc.hdc.lighting_exposure(mc.para.HDC.light[(int)LIGHTMODE_HDC.OFF], mc.para.HDC.exposure[(int)LIGHTMODE_HDC.OFF]); // 동작이 끝난 후 조명을 끈다. mc.ulc.lighting_exposure(mc.para.ULC.light[(int)LIGHTMODE_ULC.OFF], mc.para.ULC.exposure[(int)LIGHTMODE_ULC.OFF]); } #endregion RetValue ret; mc.OUT.MAIN.IONIZER(true, out ret.message); // 초기화할때도 Ionizer는 ON mc.main.Thread_Polling(); INIT_EXIT: EVENT.mainFormPanelMode(SPLITTER_MODE.NORMAL, SPLITTER_MODE.CURRENT, SPLITTER_MODE.CURRENT); timer.Enabled = false; mc.check.push(sender, false); }