// DlgMotor.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "ReviewSystemSetting.h" #include "DlgMotor.h" #include "ReviewSystemSettingDlg.h" #include "CHReviewSetting/Sys_MotorManager.h" #include "CHCommonControls/GridCellCombo.h" #include "CHReviewSetting/SystemInfo.h" // CDlgMotor ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CDlgMotor, CDialog) CDlgMotor::CDlgMotor(CWnd* pParent /*=NULL*/) : CDialog(CDlgMotor::IDD, pParent) , m_nGantryCount(0) , m_nAxisCount(0) , m_nAFMDelayTime(0) , m_nSnapDelayTime(0) , m_nWSIDelayTime(0) , m_bUseThetaMotor(0) , m_dStartPosX(0) , m_dStartPosY(0) { } CDlgMotor::~CDlgMotor() { } void CDlgMotor::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_COMBO_SYS_MOTOR_ORIGIN_DIRECTION, m_ctrlComboMotorOriginDirection); DDX_Control(pDX, IDC_COMBO_SYS_MOTER_TYPE, m_ctrlComboMotorType); DDX_Control(pDX, IDC_GRID_SCHEDULER_MOTOR_PARAMETER_INFO, m_ctrlGridSchedulerMotorParamInfo); DDX_Control(pDX, IDC_GRID_MOTOR_OFFSET_AND_DIRECTION, m_ctrlGridMotorOffsetAndDirection); DDX_Control(pDX, IDC_GRID_MOTOR_COMMON_INFO, m_ctrlGridMotorCommonAddr); DDX_Control(pDX, IDC_GRID_MOTOR_GANTRY_INFO, m_ctrlGridMotorGantryAddr); DDX_Control(pDX, IDC_GRID_MOTOR_AXIS_INFO, m_ctrlGridMotorAxisAddr); DDX_Control(pDX, IDC_EDIT_SYS_THETA_MOTOR_ADDR, m_ctrlThetaMotorAddr); DDX_Check(pDX, IDC_CHECK_USE_THETA_MOTOR, m_bUseThetaMotor); DDX_Check(pDX, IDC_CHECK_USE_CHECK_MOTOR_OFFSET, m_bUseCheckMotorOffset); DDX_Text(pDX, IDC_EDIT_SYS_MOTOR_IP_ADDRESS, m_strMotorPort); DDX_Text(pDX, IDC_EDIT_SYS_MOTOR_GANTRY_COUNT, m_nGantryCount); DDX_Text(pDX, IDC_EDIT_SYS_MOTOR_AXIS_COUNT, m_nAxisCount); DDX_Text(pDX, IDC_EDIT_SYS_MOTOR_AXIS_MOVE_COUNT, m_nAxisMoveCount); DDX_Text(pDX, IDC_EDIT_SYS_THETA_MOTOR_ADDR, m_nThetaMotorAddr); DDX_Text(pDX, IDC_EDIT_SYS_MOTOR_AFM_DELAY_TIME, m_nAFMDelayTime); DDX_Text(pDX, IDC_EDIT_SYS_MOTOR_SNAP_DELAY_TIME, m_nSnapDelayTime); DDX_Text(pDX, IDC_EDIT_SYS_MOTOR_WSI_DELAY_TIME, m_nWSIDelayTime); DDX_Text(pDX, IDC_EDIT_SYS_MOTOR_START_POINT_XPOS, m_dStartPosX); DDX_Text(pDX, IDC_EDIT_SYS_MOTOR_START_POINT_YPOS, m_dStartPosY); } BEGIN_MESSAGE_MAP(CDlgMotor, CDialog) ON_BN_CLICKED(IDC_BUTTON_SYS_MOTOR_RESET, &CDlgMotor::OnBnClickedButtonSysMotorReset) ON_BN_CLICKED(IDC_BUTTON_SYS_MOTOR_APPLY, &CDlgMotor::OnBnClickedButtonSysMotorApply) ON_EN_CHANGE(IDC_EDIT_SYS_MOTOR_GANTRY_COUNT, &CDlgMotor::OnEnChangeEditSysMotorGantryCount) ON_EN_CHANGE(IDC_EDIT_SYS_MOTOR_AXIS_COUNT, &CDlgMotor::OnEnChangeEditSysMotorAxisCount) ON_BN_CLICKED(IDC_CHECK_USE_THETA_MOTOR, &CDlgMotor::OnCheckedUseTheaMotor) ON_BN_CLICKED(IDC_CHECK_USE_CHECK_MOTOR_OFFSET, &CDlgMotor::OnCheckedUseCheckMotorOffset) END_MESSAGE_MAP() // CDlgMotor ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. BOOL CDlgMotor::OnInitDialog() { CDialog::OnInitDialog(); // TODO: ¿©±â¿¡ Ãß°¡ ÃʱâÈ­ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù. int i, nMotorType = -1, nMotorOriginDirection = -1, nAFMDelayTimeAddr = -1; int nSnapDelayTimeAddr = -1, nAFMDelayTime = -1, nSnapDelayTime = -1, nWSIDelayTime = -1; CString strTemp; CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd(); if(pDlg) { CMotorControlInfo *pMotorInfo = pDlg->GetMot_MotorInfo(); m_bUseThetaMotor = pMotorInfo->GetUseThetaMotor(); } //enum MotorOriginDirection { MotorOriginDir_LeftTop=0, MotorOriginDir_RightTop, MotorOriginDir_LeftBottom, MotorOriginDir_RightBottom, MotorOriginDir_Count }; for(i = 0; i < MotorOriginDir_Count; i++) { switch (i) { case MotorOriginDir_LeftTop: strTemp.Format(_T("Left Top"));//_T("Á»ó")); break; case MotorOriginDir_RightTop: strTemp.Format(_T("Right Top"));//_T("¿ì»ó")); break; case MotorOriginDir_LeftBottom: strTemp.Format(_T("Left Bottom"));//_T("ÁÂÇÏ")); break; case MotorOriginDir_RightBottom: strTemp.Format(_T("Right Bottom"));//_T("¿ìÇÏ")); break; default: strTemp.Format(_T("")); break; } m_ctrlComboMotorOriginDirection.InsertString(i, strTemp); } //enum MotorController_Type { MotorController_Simulation=0, MotorController_eXcom, MotorController_PowerPmac, MotorController_PowerPmacCmd, MotorController_Count }; for(i = 0; i < MotorController_Count; i++) { switch (i) { case MotorController_eXcom: strTemp.Format(_T("eXcom")); break; case MotorController_PowerPmac: strTemp.Format(_T("Power PMAC")); break; case MotorController_PowerPmacCmd: strTemp.Format(_T("Power PMAC CMD")); break; case MotorController_ACS: strTemp.Format(_T("ACS")); break; case MotorController_Simulation: strTemp.Format(_T("Simulation")); break; default: strTemp.Format(_T("")); break; } m_ctrlComboMotorType.InsertString(i, strTemp); } m_ctrlComboMotorType.SetCurSel(nMotorType); m_ctrlComboMotorOriginDirection.SetCurSel(nMotorOriginDirection); m_nAFMDelayTime = nAFMDelayTime; m_nSnapDelayTime = nSnapDelayTime; m_nWSIDelayTime = nWSIDelayTime; m_dStartPosX= 0; m_dStartPosY= 0; m_ctrlThetaMotorAddr.SetReadOnly(!m_bUseThetaMotor); //m_ctrlThetaMotorAddr.SetReadOnly(1); UpdateData(FALSE); InitMotorCommonAddrInfoGridContorl(); FillMotorCommonAddrInfo(); InitMotorGantryAddrInfoGridContorl(); FillMotorGantryAddrInfo(); InitMotorAxisAddrInfoGridContorl(); FillMotorAxisAddrInfo(); InitSchedulerMotorParamInfoGridControl(); FillSchedulerMotorParamInfo(); InitMotorOffestAndDirectionGridContorl(); FillMotorOffsetAndDirection(); return TRUE; // return TRUE unless you set the focus to a control // ¿¹¿Ü: OCX ¼Ó¼º ÆäÀÌÁö´Â FALSE¸¦ ¹ÝÈ¯ÇØ¾ß ÇÕ´Ï´Ù. } BOOL CDlgMotor::PreTranslateMessage(MSG* pMsg) { // TODO: ¿©±â¿¡ Ư¼öÈ­µÈ Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº» Ŭ·¡½º¸¦ È£ÃâÇÕ´Ï´Ù. if( pMsg->message == WM_KEYDOWN ) { if(pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE ) { ::TranslateMessage(pMsg); ::DispatchMessage(pMsg); return TRUE; } } return CDialog::PreTranslateMessage(pMsg); } void CDlgMotor::OnBnClickedButtonSysMotorReset() { // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. m_ctrlComboMotorOriginDirection.SetCurSel(-1); m_nGantryCount = 0; m_nAxisCount = 0; m_bUseThetaMotor = FALSE; m_nThetaMotorAddr = 0; UpdateData(FALSE); OnEnChangeEditSysMotorGantryCount(); OnEnChangeEditSysMotorAxisCount(); ResetSchedulerMotorParamInfoGrid(); } void CDlgMotor::OnBnClickedButtonSysMotorApply() { // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. UpdateData(TRUE); CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd(); if (pDlg==NULL) return; CMotorControlInfo *pMotorInfo = pDlg->GetMot_MotorInfo(); if (pMotorInfo==NULL) return; CString strItemText = _T(""); // ¸ðÅÍÁ¤º¸ //pMotorInfo->m_MotorControlInfo.SetControllerType(m_ctrlComboMotorType.GetCurSel()); pMotorInfo->SetControllerType(m_ctrlComboMotorType.GetCurSel()); pMotorInfo->SetOriginDirection(m_ctrlComboMotorOriginDirection.GetCurSel()); pMotorInfo->SetAfDelayTime(m_nAFMDelayTime); pMotorInfo->SetImageDelayTime(m_nSnapDelayTime); pMotorInfo->SetWsiDelayTime(m_nWSIDelayTime); pMotorInfo->SetMaxAxisMoveCount(m_nAxisMoveCount); pMotorInfo->SetUseThetaMotor(m_bUseThetaMotor); pMotorInfo->SetConnectionPort(m_strMotorPort); pMotorInfo->SetStartMotorXpos(m_dStartPosX); pMotorInfo->SetStartMotorYpos(m_dStartPosY); /*pMotorInfo->m_bUseCheckMotorOffset = m_bUseCheckMotorOffset;*/ // ¸ðÅÍ ÀÏ¹Ý ÁÖ¼Ò int nColIdx = 0; //1. ¸ðÅÍ À̸§ strItemText = m_ctrlGridMotorCommonAddr.GetItemText(1, nColIdx++); pMotorInfo->GetMotorCommonAddr()->m_strName = strItemText; //2. All ÀÚµ¿À̵¿ strItemText = m_ctrlGridMotorCommonAddr.GetItemText(1, nColIdx++); pMotorInfo->GetMotorCommonAddr()->m_nAllAutoReviewGoAddr = _ttoi(strItemText); //3. ÃøÁ¤ ÀÚµ¿À̵¿ strItemText = m_ctrlGridMotorCommonAddr.GetItemText(1, nColIdx++); pMotorInfo->GetMotorCommonAddr()->m_nAllAutoMeasureGoAddr = _ttoi(strItemText); //4. WSI ÀÚµ¿À̵¿ strItemText = m_ctrlGridMotorCommonAddr.GetItemText(1, nColIdx++); pMotorInfo->GetMotorCommonAddr()->m_nAllAutoWsiGoAddr = _ttoi(strItemText); //5. All Auto Enable Addr strItemText = m_ctrlGridMotorCommonAddr.GetItemText(1, nColIdx++); pMotorInfo->GetMotorCommonAddr()->m_nAllAutoEnableAddr = _ttoi(strItemText); //6. Auto Stop Addr strItemText = m_ctrlGridMotorCommonAddr.GetItemText(1, nColIdx++); pMotorInfo->GetMotorCommonAddr()->m_nAllAutoStopAddr = _ttoi(strItemText); //7. Review Auto Go Ack strItemText = m_ctrlGridMotorCommonAddr.GetItemText(1, nColIdx++); pMotorInfo->GetMotorCommonAddr()->m_nAllAutoReviewGoAckAddr = _ttoi(strItemText); //8. Measure Auto Go Ack strItemText = m_ctrlGridMotorCommonAddr.GetItemText(1, nColIdx++); pMotorInfo->GetMotorCommonAddr()->m_nAllAutoMeasureGoAckAddr = _ttoi(strItemText); //9. WSI Auto Go Ack strItemText = m_ctrlGridMotorCommonAddr.GetItemText(1, nColIdx++); pMotorInfo->GetMotorCommonAddr()->m_nAllAutoWsiGoAckAddr = _ttoi(strItemText); //10. Auto Stop Ack Addr strItemText = m_ctrlGridMotorCommonAddr.GetItemText(1, nColIdx++); pMotorInfo->GetMotorCommonAddr()->m_nAllAutoStopAckAddr = _ttoi(strItemText); //11. AFm delay strItemText = m_ctrlGridMotorCommonAddr.GetItemText(1, nColIdx++); pMotorInfo->GetMotorCommonAddr()->m_nAfDelayTimeAddr = _ttoi(strItemText); //12. snap delay strItemText = m_ctrlGridMotorCommonAddr.GetItemText(1, nColIdx++); pMotorInfo->GetMotorCommonAddr()->m_nImageDelayTimeAddr = _ttoi(strItemText); //13. other delay strItemText = m_ctrlGridMotorCommonAddr.GetItemText(1, nColIdx++); pMotorInfo->GetMotorCommonAddr()->m_nWsiDelayTimeAddr = _ttoi(strItemText); pMotorInfo->SetMotorGantryAddrCount(m_nGantryCount); int nGantryRowIdx = 1; for(int nGantryIdx=0; nGantryIdxGetMotorGantryAddr(nGantryIdx); if (pMotorGantryAddr==NULL) continue; //1. °ÕÆ®¸® À妽º strItemText = m_ctrlGridMotorGantryAddr.GetItemText(nGantryRowIdx, nGantryColIdx++); pMotorGantryAddr->m_nGantryIdx = _ttoi(strItemText); //1. °ÕÆ®¸® À̸§ strItemText = m_ctrlGridMotorGantryAddr.GetItemText(nGantryRowIdx, nGantryColIdx++); pMotorGantryAddr->m_strName = strItemText; //2. ¼öµ¿ À̵¿ strItemText = m_ctrlGridMotorGantryAddr.GetItemText(nGantryRowIdx, nGantryColIdx++); pMotorGantryAddr->m_nManualGoAddr = _ttoi(strItemText); //3. ÀÚµ¿ À̵¿ strItemText = m_ctrlGridMotorGantryAddr.GetItemText(nGantryRowIdx, nGantryColIdx++); pMotorGantryAddr->m_nAutoReviewGoAddr = _ttoi(strItemText); //4. À̵¿ °³¼ö strItemText = m_ctrlGridMotorGantryAddr.GetItemText(nGantryRowIdx, nGantryColIdx++); pMotorGantryAddr->m_nReviewMoveCountAddr = _ttoi(strItemText); //5. Æ®¸®°Å °³¼ö strItemText = m_ctrlGridMotorGantryAddr.GetItemText(nGantryRowIdx, nGantryColIdx++); pMotorGantryAddr->m_nReviewTriggerCountAddr = _ttoi(strItemText); //6. ÃøÁ¤ ÀÚµ¿ À̵¿ strItemText = m_ctrlGridMotorGantryAddr.GetItemText(nGantryRowIdx, nGantryColIdx++); pMotorGantryAddr->m_nAutoMeasureGoAddr = _ttoi(strItemText); //7. ÃøÁ¤ À̵¿ °³¼ö strItemText = m_ctrlGridMotorGantryAddr.GetItemText(nGantryRowIdx, nGantryColIdx++); pMotorGantryAddr->m_nMeasureMoveCountAddr = _ttoi(strItemText); //8. ÃøÁ¤ Æ®¸®°Å °³¼ö strItemText = m_ctrlGridMotorGantryAddr.GetItemText(nGantryRowIdx, nGantryColIdx++); pMotorGantryAddr->m_nMeasureTriggerCountAddr = _ttoi(strItemText); //9. Other ÀÚµ¿ À̵¿ strItemText = m_ctrlGridMotorGantryAddr.GetItemText(nGantryRowIdx, nGantryColIdx++); pMotorGantryAddr->m_nAutoWsiGoAddr = _ttoi(strItemText); //10. Manual Go Ack strItemText = m_ctrlGridMotorGantryAddr.GetItemText(nGantryRowIdx, nGantryColIdx++); pMotorGantryAddr->m_nManualGoAckAddr = _ttoi(strItemText); //11. Review Auto Go Ack strItemText = m_ctrlGridMotorGantryAddr.GetItemText(nGantryRowIdx, nGantryColIdx++); pMotorGantryAddr->m_nAutoReviewGoAckAddr = _ttoi(strItemText); //12. Measure Auto Go Ack strItemText = m_ctrlGridMotorGantryAddr.GetItemText(nGantryRowIdx, nGantryColIdx++); pMotorGantryAddr->m_nAutoMeasureGoAckAddr = _ttoi(strItemText); //13. Wsi Auto Go Ack strItemText = m_ctrlGridMotorGantryAddr.GetItemText(nGantryRowIdx, nGantryColIdx++); pMotorGantryAddr->m_nAutoWsiGoAckAddr = _ttoi(strItemText); //14. Other À̵¿ °³¼ö strItemText = m_ctrlGridMotorGantryAddr.GetItemText(nGantryRowIdx, nGantryColIdx++); pMotorGantryAddr->m_nWsiMoveCountAddr = _ttoi(strItemText); //15. Other Æ®¸®°Å °³¼ö strItemText = m_ctrlGridMotorGantryAddr.GetItemText(nGantryRowIdx, nGantryColIdx++); pMotorGantryAddr->m_nWsiTriggerCountAddr = _ttoi(strItemText); //16. Software Trigger Addr strItemText = m_ctrlGridMotorGantryAddr.GetItemText(nGantryRowIdx, nGantryColIdx++); pMotorGantryAddr->m_nSoftwareTriggerAddr = _ttoi(strItemText); //17. Software Trigger Cmd strItemText = m_ctrlGridMotorGantryAddr.GetItemText(nGantryRowIdx, nGantryColIdx++); pMotorGantryAddr->m_nSoftwareTriggerCmdAdr = _ttoi(strItemText); //18. ImageSnapComplete Addr strItemText = m_ctrlGridMotorGantryAddr.GetItemText(nGantryRowIdx, nGantryColIdx++); pMotorGantryAddr->m_nImageSnapCompleteAddr = _ttoi(strItemText); // 19. gantry collision distance strItemText = m_ctrlGridMotorGantryAddr.GetItemText(nGantryRowIdx, nGantryColIdx++); pMotorGantryAddr->m_nCollisionXAddr = _ttoi(strItemText); int nAxisRowIdx = (nGantryIdx * m_nAxisCount) + 1; pMotorGantryAddr->SetMotorAxisAddrCount(m_nAxisCount); for(int nAxisIdx=0; nAxisIdxGetMotorAxisAddr(nAxisIdx); if (pMotorAxisAddr==NULL) continue; int nAxisColIdx = 1; //1. Index strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_nAxisIdx = _ttoi(strItemText); //2. Ãà À̸§ strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_strName = strItemText; //3. Gantry Index strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_nGantryIdx = _ttoi(strItemText); //4. STATUS strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_nStatusAddr = _ttol(strItemText); //5. ÇöÀç À§Ä¡ strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_nPositionAddr = _ttoi(strItemText); //6. À̵¿ ¼Óµµ strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_nMoveSpeedAddr = _ttoi(strItemText); //7. À̵¿ °¡°¨¼Ó strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_nAccelTimeAddr = _ttoi(strItemText); //8. Á¶±× ¸í·É strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_nJogCommandAddr = _ttoi(strItemText); //9. Á¶±× ¼Óµµ strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_nJogSpeedAddr = _ttoi(strItemText); //10. À̵¿ À§Ä¡ : 300(600) = ¹è¿­(ÁÖ¼Ò) for acs strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); CString strCommonAddr=_T(""), strAddr=_T(""); int nPos = strItemText.Find(_T("(")); strCommonAddr = strItemText.Mid(0, nPos); strAddr = strItemText.Right(strItemText.GetLength()-nPos); strAddr.Remove(_T('(')); strAddr.Remove(_T(')')); pMotorAxisAddr->m_nMovePositionCommonAddr = _ttoi(strCommonAddr); // ¹è¿­ = 300 pMotorAxisAddr->m_nMovePositionAddr = _ttoi(strAddr); // ÁÖ¼Ò = 600 //11. ÃÖ´ë Á¶±× ¼Óµµ strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_dMaxJogSpeed = _ttof(strItemText); //12. ÃÖ¼Ò Á¶±× ¼Óµµ strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_dMinJogSpeed = _ttof(strItemText); //13. Limit(+) strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_dPlusLimitPos = _ttoi(strItemText); //14. Limit(-) strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_dMinusLimitPos = _ttoi(strItemText); nAxisRowIdx++; } nGantryRowIdx++; } if(m_bUseThetaMotor) { CMotorThetaAxisAddr* pMotorAxisAddr = pMotorInfo->GetThetaMotorAxisAddr(); if (pMotorAxisAddr!=NULL) { int nAxisColIdx = 1; int nAxisRowIdx = m_nGantryCount * m_nAxisCount + 1; //1. Index strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_nAxisIdx = _ttoi(strItemText); //2. Ãà À̸§ strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_strName = strItemText; //3. Gantry Index strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_nGantryIdx = _ttoi(strItemText); //4. STATUS strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_nStatusAddr = _ttol(strItemText); //5. ÇöÀç À§Ä¡ strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_nPositionAddr = _ttoi(strItemText); //6. À̵¿ ¼Óµµ strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_nMoveSpeedAddr = _ttoi(strItemText); //7. À̵¿ °¡°¨¼Ó strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_nAccelTimeAddr = _ttoi(strItemText); //8. Á¶±× ¸í·É strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_nJogCommandAddr = _ttoi(strItemText); //9. Á¶±× ¼Óµµ strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_nJogSpeedAddr = _ttoi(strItemText); //10. À̵¿ À§Ä¡ strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_nMovePositionAddr = _ttoi(strItemText); //11. ÃÖ´ë Á¶±× ¼Óµµ strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_dMaxJogSpeed = _ttof(strItemText); //12. ÃÖ¼Ò Á¶±× ¼Óµµ strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_dMinJogSpeed = _ttof(strItemText); //13. Limit(+) strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_dPlusLimitPos = _ttoi(strItemText); //14. Limit(-) strItemText = m_ctrlGridMotorAxisAddr.GetItemText(nAxisRowIdx, nAxisColIdx++); pMotorAxisAddr->m_dMinusLimitPos = _ttoi(strItemText); } } int nRowIdx = 0; nColIdx = 1; // for(int i = 0; i < SCHEDULER_MOTOR_PARAM_INFO_GRID_ROW_COUNT; i++) // { // switch(i) // { // case 0: // strItemText = m_ctrlGridSchedulerMotorParamInfo.GetItemText(nRowIdx++, nColIdx); // pMotorInfo->m_schedulerMotorParamInfo.dSpeedX = _tcstod(strItemText, NULL); // break; // case 1: // strItemText = m_ctrlGridSchedulerMotorParamInfo.GetItemText(nRowIdx++, nColIdx); // pMotorInfo->m_schedulerMotorParamInfo.dSpeedY = _tcstod(strItemText, NULL); // break; // case 2: // strItemText = m_ctrlGridSchedulerMotorParamInfo.GetItemText(nRowIdx++, nColIdx); // pMotorInfo->m_schedulerMotorParamInfo.dAccelerationX = _tcstod(strItemText, NULL); // break; // case 3: // strItemText = m_ctrlGridSchedulerMotorParamInfo.GetItemText(nRowIdx++, nColIdx); // pMotorInfo->m_schedulerMotorParamInfo.dAccelerationY = _tcstod(strItemText, NULL); // break; // case 4: // strItemText = m_ctrlGridSchedulerMotorParamInfo.GetItemText(nRowIdx++, nColIdx); // pMotorInfo->m_schedulerMotorParamInfo.dStartDelayTime = _tcstod(strItemText, NULL); // break; // case 5: // strItemText = m_ctrlGridSchedulerMotorParamInfo.GetItemText(nRowIdx++, nColIdx); // pMotorInfo->m_schedulerMotorParamInfo.dMoveDelayTime = _tcstod(strItemText, NULL); // break; // case 6: // strItemText = m_ctrlGridSchedulerMotorParamInfo.GetItemText(nRowIdx++, nColIdx); // pMotorInfo->m_schedulerMotorParamInfo.nTactTime = _ttoi(strItemText); // break; // default: // break; // } // } pMotorInfo->GetThetaMotorAxisAddr()->m_nManualGoAddr = m_nThetaMotorAddr; nRowIdx = 1; nColIdx = 0; // strItemText = m_ctrlGridMotorOffsetAndDirection.GetItemText(nRowIdx, nColIdx++); // pMotorInfo->m_dOffsetX = _ttof(strItemText); // // strItemText = m_ctrlGridMotorOffsetAndDirection.GetItemText(nRowIdx, nColIdx++); // pMotorInfo->m_dOffsetY = _ttof(strItemText); CStringArray strArrayOpstions; strArrayOpstions.Add(_T("Normal Direction"));//_T("Á¤¹æÇâ")); strArrayOpstions.Add(_T("Reverse Direction"));//_T("¿ª¹æÇâ")); CGridCellCombo* pCellCombo = (CGridCellCombo*)m_ctrlGridMotorOffsetAndDirection.GetCell(nRowIdx, nColIdx++); for(int i = 0; i < strArrayOpstions.GetSize(); i++) { if(!strArrayOpstions.GetAt(i).Compare(pCellCombo->GetText())) { // if(i == 0) // pMotorInfo->m_ndirectionX = 1; // else if (i == 1) // pMotorInfo->m_ndirectionX = -1; // else // pMotorInfo->m_ndirectionX = 0; } } pCellCombo = (CGridCellCombo*)m_ctrlGridMotorOffsetAndDirection.GetCell(nRowIdx, nColIdx); for(int i = 0; i < strArrayOpstions.GetSize(); i++) { if(!strArrayOpstions.GetAt(i).Compare(pCellCombo->GetText())) { // if(i == 0) // pMotorInfo->m_ndirectionY = 1; // else if (i == 1) // pMotorInfo->m_ndirectionY = -1; // else // pMotorInfo->m_ndirectionY = 0; } } /* strItemText = m_ctrlGridMotorOffsetAndDirection.GetItemText(nRowIdx, nColIdx++); pMotorInfo->m_ndirectionX = _ttoi(strItemText); strItemText = m_ctrlGridMotorOffsetAndDirection.GetItemText(nRowIdx, nColIdx++); pMotorInfo->m_ndirectionY = _ttoi(strItemText);*/ } void CDlgMotor::InitMotorCommonAddrInfoGridContorl() { int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols; int nMargin, nDefaultColumnWidth; CString strTemp; CRect rect; m_ctrlGridMotorCommonAddr.GetWindowRect(&rect); nMargin = 5; //nDefaultColumnWidth = (rect.Width() - nMargin) / (MOTOR_COMMON_ADDR_INFO_GRID_COL_COUNT); nDefaultColumnWidth = 120; nRows = 2; nCols = MOTOR_COMMON_ADDR_INFO_GRID_COL_COUNT; nFixRows = 1; nFixCols = 0; nRowIdx = 0; nColIdx = 0; m_ctrlGridMotorCommonAddr.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridMotorCommonAddr.SetRowCount(nRows); m_ctrlGridMotorCommonAddr.SetColumnCount(nCols); m_ctrlGridMotorCommonAddr.SetFixedRowCount(nFixRows); m_ctrlGridMotorCommonAddr.SetFixedColumnCount(nFixCols); GV_ITEM Item; // 1. ¸ðÅÍ À̸§ Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Motor Name"));//_T("¸ðÅÍ À̸§")); Item.strText = strTemp; m_ctrlGridMotorCommonAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorCommonAddr.SetItem(&Item); // 2. All ÀÚµ¿ À̵¿ Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Review Auto Move"));//_T("All ÀÚµ¿À̵¿")); Item.strText = strTemp; m_ctrlGridMotorCommonAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorCommonAddr.SetItem(&Item); // 3. ÃøÁ¤ ÀÚµ¿ À̵¿ Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Measure Auto Move"));//_T("ÃøÁ¤ ÀÚµ¿À̵¿")); Item.strText = strTemp; m_ctrlGridMotorCommonAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorCommonAddr.SetItem(&Item); // 4. WSI ÀÚµ¿À̵¿ Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("WSI Auto Move"));//_T("WSI ÀÚµ¿À̵¿")); Item.strText = strTemp; m_ctrlGridMotorCommonAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorCommonAddr.SetItem(&Item); //5. All Auto Enable Addr Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("All Auto Move Enable")); Item.strText = strTemp; m_ctrlGridMotorCommonAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorCommonAddr.SetItem(&Item); //6. Auto Stop Addr Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Auto Stop")); Item.strText = strTemp; m_ctrlGridMotorCommonAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorCommonAddr.SetItem(&Item); //7. Review Auto Go Ack Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Review Auto Move Ack")); Item.strText = strTemp; m_ctrlGridMotorCommonAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorCommonAddr.SetItem(&Item); //8. Measure Auto Go Ack Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Measure Auto Move Ack")); Item.strText = strTemp; m_ctrlGridMotorCommonAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorCommonAddr.SetItem(&Item); //9. WSI Auto Go Ack Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("WSI Auto Move Ack"));; Item.strText = strTemp; m_ctrlGridMotorCommonAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorCommonAddr.SetItem(&Item); //10. Auto Stop Ack Addr Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Auto Stop Ack")); Item.strText = strTemp; m_ctrlGridMotorCommonAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorCommonAddr.SetItem(&Item); //11. AFM Time Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("AFM Delay Time")); Item.strText = strTemp; m_ctrlGridMotorCommonAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorCommonAddr.SetItem(&Item); // 12. Snap Delay Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Snap Delay Time")); Item.strText = strTemp; m_ctrlGridMotorCommonAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorCommonAddr.SetItem(&Item); // 13. Wsi Delay Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("WSI Delay Time")); Item.strText = strTemp; m_ctrlGridMotorCommonAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorCommonAddr.SetItem(&Item); } void CDlgMotor::FillMotorCommonAddrInfo() { CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd(); if (pDlg==NULL) return; CMotorControlInfo *pMotorInfo = pDlg->GetMot_MotorInfo(); if (pMotorInfo==NULL) return; m_ctrlComboMotorType.SetCurSel(pMotorInfo->GetControllerType()); m_ctrlComboMotorOriginDirection.SetCurSel(pMotorInfo->GetOriginDirection()); m_nAFMDelayTime = pMotorInfo->GetAfDelayTime(); m_nSnapDelayTime = pMotorInfo->GetImageDelayTime(); m_nWSIDelayTime = pMotorInfo->GetWsiDelayTime(); m_nAxisMoveCount = pMotorInfo->GetMaxAxisMoveCount(); m_bUseThetaMotor = pMotorInfo->GetUseThetaMotor(); m_strMotorPort = pMotorInfo->GetConnectionPort(); m_dStartPosX =pMotorInfo->GetStartMotorXpos(); m_dStartPosY =pMotorInfo->GetStartMotorYpos(); int nRowIdx = 1; int nColIdx = 0; CString strItemText = _T(""); //1. ¸ðÅÍ À̸§ strItemText.Format(_T("%s"), pMotorInfo->GetMotorCommonAddr()->m_strName); m_ctrlGridMotorCommonAddr.SetItemText(nRowIdx, nColIdx, strItemText); //2. All ÀÚµ¿À̵¿ nColIdx++; strItemText.Format(_T("%d"), pMotorInfo->GetMotorCommonAddr()->m_nAllAutoReviewGoAddr); m_ctrlGridMotorCommonAddr.SetItemText(nRowIdx, nColIdx, strItemText); //3. ÃøÁ¤ ÀÚµ¿À̵¿ nColIdx++; strItemText.Format(_T("%d"), pMotorInfo->GetMotorCommonAddr()->m_nAllAutoMeasureGoAddr); m_ctrlGridMotorCommonAddr.SetItemText(nRowIdx, nColIdx, strItemText); //4. WSI ÀÚµ¿À̵¿ nColIdx++; strItemText.Format(_T("%d"), pMotorInfo->GetMotorCommonAddr()->m_nAllAutoWsiGoAddr); m_ctrlGridMotorCommonAddr.SetItemText(nRowIdx, nColIdx, strItemText); //5. All Auto Enable Addr nColIdx++; strItemText.Format(_T("%d"), pMotorInfo->GetMotorCommonAddr()->m_nAllAutoEnableAddr); m_ctrlGridMotorCommonAddr.SetItemText(nRowIdx, nColIdx, strItemText); //6. Auto Stop Addr nColIdx++; strItemText.Format(_T("%d"), pMotorInfo->GetMotorCommonAddr()->m_nAllAutoStopAddr); m_ctrlGridMotorCommonAddr.SetItemText(nRowIdx, nColIdx, strItemText); //7. Review Auto Go Ack nColIdx++; strItemText.Format(_T("%d"), pMotorInfo->GetMotorCommonAddr()->m_nAllAutoReviewGoAckAddr); m_ctrlGridMotorCommonAddr.SetItemText(nRowIdx, nColIdx, strItemText); //8. Measure Auto Go Ack nColIdx++; strItemText.Format(_T("%d"), pMotorInfo->GetMotorCommonAddr()->m_nAllAutoMeasureGoAckAddr); m_ctrlGridMotorCommonAddr.SetItemText(nRowIdx, nColIdx, strItemText); //9. WSI Auto Go Ack nColIdx++; strItemText.Format(_T("%d"), pMotorInfo->GetMotorCommonAddr()->m_nAllAutoWsiGoAckAddr); m_ctrlGridMotorCommonAddr.SetItemText(nRowIdx, nColIdx, strItemText); //10. Auto Stop Ack Addr nColIdx++; strItemText.Format(_T("%d"), pMotorInfo->GetMotorCommonAddr()->m_nAllAutoStopAckAddr); m_ctrlGridMotorCommonAddr.SetItemText(nRowIdx, nColIdx, strItemText); //11. AFm delay nColIdx++; strItemText.Format(_T("%d"), pMotorInfo->GetMotorCommonAddr()->m_nAfDelayTimeAddr); m_ctrlGridMotorCommonAddr.SetItemText(nRowIdx, nColIdx, strItemText); //12. snap delay nColIdx++; strItemText.Format(_T("%d"), pMotorInfo->GetMotorCommonAddr()->m_nImageDelayTimeAddr); m_ctrlGridMotorCommonAddr.SetItemText(nRowIdx, nColIdx, strItemText); //13. other delay nColIdx++; strItemText.Format(_T("%d"), pMotorInfo->GetMotorCommonAddr()->m_nWsiDelayTimeAddr); m_ctrlGridMotorCommonAddr.SetItemText(nRowIdx, nColIdx, strItemText); } void CDlgMotor::InitMotorGantryAddrInfoGridContorl() { int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols; int nMargin, nDefaultColumnWidth; CString strTemp; CRect rect; m_ctrlGridMotorGantryAddr.GetWindowRect(&rect); nMargin = 5; //nDefaultColumnWidth = (rect.Width() - nMargin - 50) / (MOTOR_GANTRY_ADDR_INFO_GRID_COL_COUNT - 1); nDefaultColumnWidth = 120; nRows = m_nGantryCount + 1; nCols = MOTOR_GANTRY_ADDR_INFO_GRID_COL_COUNT; nFixRows = 1; nFixCols = 1; nRowIdx = 0; nColIdx = 0; m_ctrlGridMotorGantryAddr.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridMotorGantryAddr.SetRowCount(nRows); m_ctrlGridMotorGantryAddr.SetColumnCount(nCols); m_ctrlGridMotorGantryAddr.SetFixedRowCount(nFixRows); m_ctrlGridMotorGantryAddr.SetFixedColumnCount(nFixCols); GV_ITEM Item; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Index"));//_T("À妽º")); Item.strText = strTemp; m_ctrlGridMotorGantryAddr.SetColumnWidth(nColIdx++, 50); m_ctrlGridMotorGantryAddr.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Gantry Name"));//_T("°ÕÆ®¸® À̸§")); Item.strText = strTemp; m_ctrlGridMotorGantryAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorGantryAddr.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Manual Move"));//_T("¼öµ¿À̵¿")); Item.strText = strTemp; m_ctrlGridMotorGantryAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorGantryAddr.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Review Auto Move"));//_T("¸®ºä ÀÚµ¿À̵¿")); Item.strText = strTemp; m_ctrlGridMotorGantryAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorGantryAddr.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Review Move Count"));//_T("¸®ºä À̵¿¼ö")); Item.strText = strTemp; m_ctrlGridMotorGantryAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorGantryAddr.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Review Trigger Count"));//_T("¸®ºä Æ®¸®°Å¼ö")); Item.strText = strTemp; m_ctrlGridMotorGantryAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorGantryAddr.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Measure Auto Move"));//_T("ÃøÁ¤ ÀÚµ¿À̵¿")); Item.strText = strTemp; m_ctrlGridMotorGantryAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorGantryAddr.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Measure Move Count"));//_T("ÃøÁ¤ À̵¿¼ö")); Item.strText = strTemp; m_ctrlGridMotorGantryAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorGantryAddr.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Measure Trigger Count"));//_T("ÃøÁ¤ Æ®¸®°Å¼ö")); Item.strText = strTemp; m_ctrlGridMotorGantryAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorGantryAddr.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("WSI Auto Move"));//_T("WSI ÀÚµ¿À̵¿")); Item.strText = strTemp; m_ctrlGridMotorGantryAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorGantryAddr.SetItem(&Item); //10. Manual Go Ack Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Manual Move Ack"));//_T("WSI ÀÚµ¿À̵¿")); Item.strText = strTemp; m_ctrlGridMotorGantryAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorGantryAddr.SetItem(&Item); //11. Review Auto Go Ack Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Review Auto Move Ack"));//_T("WSI ÀÚµ¿À̵¿")); Item.strText = strTemp; m_ctrlGridMotorGantryAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorGantryAddr.SetItem(&Item); //12. Measure Auto Go Ack Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Measure Auto Move Ack"));//_T("WSI ÀÚµ¿À̵¿")); Item.strText = strTemp; m_ctrlGridMotorGantryAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorGantryAddr.SetItem(&Item); //13. Wsi Auto Go Ack Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("WSI Auto Move Ack"));//_T("WSI ÀÚµ¿À̵¿ Ack")); Item.strText = strTemp; m_ctrlGridMotorGantryAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorGantryAddr.SetItem(&Item); // 14. Wsi Move Count Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("WSI Move Count"));//_T("WSI À̵¿¼ö")); Item.strText = strTemp; m_ctrlGridMotorGantryAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorGantryAddr.SetItem(&Item); // 15. Wsi Trigger Count Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("WSI Trigger Count"));//_T("WSI Æ®¸®°Å¼ö")); Item.strText = strTemp; m_ctrlGridMotorGantryAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorGantryAddr.SetItem(&Item); //16. Software Trigger Addr Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Software Trigger")); Item.strText = strTemp; m_ctrlGridMotorGantryAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorGantryAddr.SetItem(&Item); //17. Software Trigger Cmd Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Software Trigger Cmd")); Item.strText = strTemp; m_ctrlGridMotorGantryAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorGantryAddr.SetItem(&Item); //18. ImageSnapComplete Addr Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Image Snap Complete")); Item.strText = strTemp; m_ctrlGridMotorGantryAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorGantryAddr.SetItem(&Item); //18. gantry collision distance Addr Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("CollisionX")); Item.strText = strTemp; m_ctrlGridMotorGantryAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorGantryAddr.SetItem(&Item); } void CDlgMotor::FillMotorGantryAddrInfo() { CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd(); if (pDlg==NULL) return; CMotorControlInfo *pMotorInfo = pDlg->GetMot_MotorInfo(); if (pMotorInfo==NULL) return; int nGantryCount = pMotorInfo->GetMotorGantryAddrCount(); CString strItemText = _T(""); if(nGantryCount > 0) { CMotorGantryAddr motorGantryAddr; int nRowIdx = 1; m_nGantryCount = nGantryCount; UpdateData(FALSE); OnEnChangeEditSysMotorGantryCount(); for(int i = 0; i < nGantryCount; i++) { CMotorGantryAddr *pGantryAddr = pMotorInfo->GetMotorGantryAddr(i); if (pGantryAddr==NULL) continue; int nColIdx = 1; //1. °ÕÆ®¸® À̸§ strItemText.Format(_T("%s"), pGantryAddr->m_strName); m_ctrlGridMotorGantryAddr.SetItemText(nRowIdx, nColIdx, strItemText); //2. ¼öµ¿ À̵¿ nColIdx++; strItemText.Format(_T("%d"), pGantryAddr->m_nManualGoAddr); m_ctrlGridMotorGantryAddr.SetItemText(nRowIdx, nColIdx, strItemText); //3. ÀÚµ¿ À̵¿ nColIdx++; strItemText.Format(_T("%d"), pGantryAddr->m_nAutoReviewGoAddr); m_ctrlGridMotorGantryAddr.SetItemText(nRowIdx, nColIdx, strItemText); //4. À̵¿ °³¼ö nColIdx++; strItemText.Format(_T("%d"), pGantryAddr->m_nReviewMoveCountAddr); m_ctrlGridMotorGantryAddr.SetItemText(nRowIdx, nColIdx, strItemText); //5. Æ®¸®°Å °³¼ö nColIdx++; strItemText.Format(_T("%d"), pGantryAddr->m_nReviewTriggerCountAddr); m_ctrlGridMotorGantryAddr.SetItemText(nRowIdx, nColIdx, strItemText); //6. ÃøÁ¤ À̵¿ nColIdx++; strItemText.Format(_T("%d"), pGantryAddr->m_nAutoMeasureGoAddr); m_ctrlGridMotorGantryAddr.SetItemText(nRowIdx, nColIdx, strItemText); //7. ÃøÁ¤ À̵¿ °³¼ö nColIdx++; strItemText.Format(_T("%d"), pGantryAddr->m_nMeasureMoveCountAddr); m_ctrlGridMotorGantryAddr.SetItemText(nRowIdx, nColIdx, strItemText); //8. ÃøÁ¤ Æ®¸®°Å °³¼ö nColIdx++; strItemText.Format(_T("%d"), pGantryAddr->m_nMeasureTriggerCountAddr); m_ctrlGridMotorGantryAddr.SetItemText(nRowIdx, nColIdx, strItemText); //9. Other ÀÚµ¿ À̵¿ nColIdx++; strItemText.Format(_T("%d"), pGantryAddr->m_nAutoWsiGoAddr); m_ctrlGridMotorGantryAddr.SetItemText(nRowIdx, nColIdx, strItemText); //10. Manual Go Ack nColIdx++; strItemText.Format(_T("%d"), pGantryAddr->m_nManualGoAckAddr); m_ctrlGridMotorGantryAddr.SetItemText(nRowIdx, nColIdx, strItemText); //11. Review Auto Go Ack nColIdx++; strItemText.Format(_T("%d"), pGantryAddr->m_nAutoReviewGoAckAddr); m_ctrlGridMotorGantryAddr.SetItemText(nRowIdx, nColIdx, strItemText); //12. Measure Auto Go Ack nColIdx++; strItemText.Format(_T("%d"), pGantryAddr->m_nAutoMeasureGoAckAddr); m_ctrlGridMotorGantryAddr.SetItemText(nRowIdx, nColIdx, strItemText); //13. Wsi Auto Go Ack nColIdx++; strItemText.Format(_T("%d"), pGantryAddr->m_nAutoWsiGoAckAddr); m_ctrlGridMotorGantryAddr.SetItemText(nRowIdx, nColIdx, strItemText); //14. Other À̵¿ °³¼ö nColIdx++; strItemText.Format(_T("%d"), pGantryAddr->m_nWsiMoveCountAddr); m_ctrlGridMotorGantryAddr.SetItemText(nRowIdx, nColIdx, strItemText); //15. Other Æ®¸®°Å °³¼ö nColIdx++; strItemText.Format(_T("%d"), pGantryAddr->m_nWsiTriggerCountAddr); m_ctrlGridMotorGantryAddr.SetItemText(nRowIdx, nColIdx, strItemText); //16. Software Trigger Addr nColIdx++; strItemText.Format(_T("%d"), pGantryAddr->m_nSoftwareTriggerAddr); m_ctrlGridMotorGantryAddr.SetItemText(nRowIdx, nColIdx, strItemText); //17. Software Trigger Cmd nColIdx++; strItemText.Format(_T("%d"), pGantryAddr->m_nSoftwareTriggerCmdAdr); m_ctrlGridMotorGantryAddr.SetItemText(nRowIdx, nColIdx, strItemText); //18. ImageSnapComplete Addr nColIdx++; strItemText.Format(_T("%d"), pGantryAddr->m_nImageSnapCompleteAddr); m_ctrlGridMotorGantryAddr.SetItemText(nRowIdx, nColIdx, strItemText); // 19. gantry collision distance nColIdx++; strItemText.Format(_T("%d"), pGantryAddr->m_nCollisionXAddr); m_ctrlGridMotorGantryAddr.SetItemText(nRowIdx, nColIdx, strItemText); nRowIdx++; } } } void CDlgMotor::InitMotorAxisAddrInfoGridContorl() { int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols; int nMargin, nDefaultColumnWidth; CString strTemp; CRect rect; m_ctrlGridMotorAxisAddr.GetWindowRect(&rect); nMargin = 5; nDefaultColumnWidth = (rect.Width() - nMargin - 50) / (MOTOR_AXIS_ADDR_INFO_GRID_COL_COUNT - 1); nDefaultColumnWidth = 85; nRows = m_nGantryCount + 1; nCols = MOTOR_AXIS_ADDR_INFO_GRID_COL_COUNT; nFixRows = 1; nFixCols = 1; nRowIdx = 0; nColIdx = 0; m_ctrlGridMotorAxisAddr.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridMotorAxisAddr.SetRowCount(nRows); m_ctrlGridMotorAxisAddr.SetColumnCount(nCols); m_ctrlGridMotorAxisAddr.SetFixedRowCount(nFixRows); m_ctrlGridMotorAxisAddr.SetFixedColumnCount(nFixCols); GV_ITEM Item; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Index"));//_T("À妽º")); Item.strText = strTemp; m_ctrlGridMotorAxisAddr.SetColumnWidth(nColIdx++, 50); m_ctrlGridMotorAxisAddr.SetItem(&Item); //1. Total Index Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Total Index")); Item.strText = strTemp; m_ctrlGridMotorAxisAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorAxisAddr.SetItem(&Item); //2. Axis Index Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Axis Name"));//_T("Ãà À̸§")); Item.strText = strTemp; m_ctrlGridMotorAxisAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorAxisAddr.SetItem(&Item); //3. Gantry Index Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Gantry Index")); Item.strText = strTemp; m_ctrlGridMotorAxisAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorAxisAddr.SetItem(&Item); //4. STATUS Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Status")); Item.strText = strTemp; m_ctrlGridMotorAxisAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorAxisAddr.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Position"));//_T("ÇöÀç À§Ä¡")); Item.strText = strTemp; m_ctrlGridMotorAxisAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorAxisAddr.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Move Speed"));//_T("À̵¿ ¼Óµµ")); Item.strText = strTemp; m_ctrlGridMotorAxisAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorAxisAddr.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Move Acceleration"));//_T("À̵¿ °¡°¨¼Ó")); Item.strText = strTemp; m_ctrlGridMotorAxisAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorAxisAddr.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Jog Command"));//_T("Á¶±× ¸í·É")); Item.strText = strTemp; m_ctrlGridMotorAxisAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorAxisAddr.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Jog Speed"));//_T("Á¶±× ¼Óµµ")); Item.strText = strTemp; m_ctrlGridMotorAxisAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorAxisAddr.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Moving Position"));//_T("À̵¿ À§Ä¡")); Item.strText = strTemp; m_ctrlGridMotorAxisAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorAxisAddr.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Max Jog Speed"));//_T("MaxÁ¶±×¼Óµµ")); Item.strText = strTemp; m_ctrlGridMotorAxisAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorAxisAddr.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Min Jog Speed"));//_T("MinÁ¶±×¼Óµµ")); Item.strText = strTemp; m_ctrlGridMotorAxisAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorAxisAddr.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Limit(+)")); Item.strText = strTemp; m_ctrlGridMotorAxisAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorAxisAddr.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Limit(-)")); Item.strText = strTemp; m_ctrlGridMotorAxisAddr.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorAxisAddr.SetItem(&Item); } void CDlgMotor::FillMotorAxisAddrInfo() { int i, j, nRowIdx, nColIdx, nGantryCount, nAxisCount; CString strItemText; CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; CSys_MotorManager* pMotorManager = NULL; CMotorControlInfo *pMotorInfo = pDlg->GetMot_MotorInfo(); if(pMotorInfo == NULL) return; nGantryCount = (int)pMotorInfo->GetMotorGantryAddrCount(); if(nGantryCount > 0) { CMotorGantryAddr* pMotorGantryAddr; CMotorAxisAddr* pMotorAxisAddr; pMotorGantryAddr = pMotorInfo->GetMotorGantryAddr(0); nAxisCount = (int)pMotorGantryAddr->GetMotorAxisAddrCount(); m_nAxisCount = nAxisCount; UpdateData(FALSE); OnEnChangeEditSysMotorAxisCount(); for(i = 0; i < nGantryCount; i++) { nRowIdx = i * nAxisCount + 1; pMotorGantryAddr = pMotorInfo->GetMotorGantryAddr(i); if(pMotorGantryAddr == NULL) continue; for(j = 0; j < nAxisCount; j++) { nColIdx = 1; pMotorAxisAddr = pMotorGantryAddr->GetMotorAxisAddr(j); //1. Index strItemText.Format(_T("%d"), pMotorAxisAddr->m_nAxisIdx); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //2. Ãà À̸§ nColIdx++; strItemText.Format(_T("%s"), pMotorAxisAddr->m_strName); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //3. Gantry Index nColIdx++; strItemText.Format(_T("%d"), pMotorAxisAddr->m_nGantryIdx); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //4. STATUS nColIdx++; strItemText.Format(_T("%d"), pMotorAxisAddr->m_nStatusAddr); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //5. ÇöÀç À§Ä¡ nColIdx++; strItemText.Format(_T("%d"), pMotorAxisAddr->m_nPositionAddr); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //6. ¼öµ¿À̵¿ ¼Óµµ nColIdx++; strItemText.Format(_T("%d"), pMotorAxisAddr->m_nMoveSpeedAddr); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //7. ¼öµ¿À̵¿ °¡°¨¼Ó nColIdx++; strItemText.Format(_T("%d"), pMotorAxisAddr->m_nAccelTimeAddr); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //8. Á¶±× ¸í·É nColIdx++; strItemText.Format(_T("%d"), pMotorAxisAddr->m_nJogCommandAddr); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //9. Á¶±×¼Óµµ nColIdx++; strItemText.Format(_T("%d"), pMotorAxisAddr->m_nJogSpeedAddr); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //10. À̵¿ À§Ä¡ nColIdx++; strItemText.Format(_T("%d(%d)"), pMotorAxisAddr->m_nMovePositionCommonAddr, pMotorAxisAddr->m_nMovePositionAddr); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //11. ÃÖ´ë Á¶±×¼Óµµ nColIdx++; strItemText.Format(_T("%f"), pMotorAxisAddr->m_dMaxJogSpeed); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //12. ÃÖ¼Ò Á¶±×¼Óµµ nColIdx++; strItemText.Format(_T("%f"), pMotorAxisAddr->m_dMinJogSpeed); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //13. Limit(+) nColIdx++; strItemText.Format(_T("%f"), pMotorAxisAddr->m_dPlusLimitPos); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //14. Limit(-) nColIdx++; strItemText.Format(_T("%f"), pMotorAxisAddr->m_dMinusLimitPos); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); nRowIdx++; } } } // ThetaMotor Addr Update m_nThetaMotorAddr = pMotorInfo->GetThetaMotorAxisAddr()->m_nManualGoAddr; strItemText.Format(_T("%d"),m_nThetaMotorAddr); SetDlgItemText(IDC_EDIT_SYS_THETA_MOTOR_ADDR,strItemText); if(m_bUseThetaMotor) { nColIdx = 1; CMotorThetaAxisAddr* pMotorAxisAddr = pMotorInfo->GetThetaMotorAxisAddr(); if(pMotorAxisAddr != NULL) { //1. Index strItemText.Format(_T("%d"), pMotorAxisAddr->m_nAxisIdx); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //2. Ãà À̸§ nColIdx++; strItemText.Format(_T("%s"), pMotorAxisAddr->m_strName); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //3. Gantry Index nColIdx++; strItemText.Format(_T("%d"), pMotorAxisAddr->m_nGantryIdx); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //4. STATUS nColIdx++; strItemText.Format(_T("%d"), pMotorAxisAddr->m_nStatusAddr); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //5. ÇöÀç À§Ä¡ nColIdx++; strItemText.Format(_T("%d"), pMotorAxisAddr->m_nPositionAddr); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //6. ¼öµ¿À̵¿ ¼Óµµ nColIdx++; strItemText.Format(_T("%d"), pMotorAxisAddr->m_nMoveSpeedAddr); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //7. ¼öµ¿À̵¿ °¡°¨¼Ó nColIdx++; strItemText.Format(_T("%d"), pMotorAxisAddr->m_nAccelTimeAddr); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //8. Á¶±× ¸í·É nColIdx++; strItemText.Format(_T("%d"), pMotorAxisAddr->m_nJogCommandAddr); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //9. Á¶±×¼Óµµ nColIdx++; strItemText.Format(_T("%d"), pMotorAxisAddr->m_nJogSpeedAddr); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //10. À̵¿ À§Ä¡ nColIdx++; strItemText.Format(_T("%d"), pMotorAxisAddr->m_nMovePositionAddr); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //11. ÃÖ´ë Á¶±× ¸í·É nColIdx++; strItemText.Format(_T("%f"), pMotorAxisAddr->m_dMaxJogSpeed); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //12. ÃÖ¼Ò Á¶±× ¸í·É nColIdx++; strItemText.Format(_T("%f"), pMotorAxisAddr->m_dMinJogSpeed); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //13. Limit(+) nColIdx++; strItemText.Format(_T("%f"), pMotorAxisAddr->m_dPlusLimitPos); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); //14. Limit(-) nColIdx++; strItemText.Format(_T("%f"), pMotorAxisAddr->m_dMinusLimitPos); m_ctrlGridMotorAxisAddr.SetItemText(nRowIdx, nColIdx, strItemText); } } } void CDlgMotor::InitSchedulerMotorParamInfoGridControl() { int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols; CString strTemp; nRows = SCHEDULER_MOTOR_PARAM_INFO_GRID_ROW_COUNT; nCols = SCHEDULER_MOTOR_PARAM_INFO_GRID_COL_COUNT; nFixRows = 0; nFixCols = 1; nRowIdx = 0; nColIdx = 0; m_ctrlGridSchedulerMotorParamInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridSchedulerMotorParamInfo.SetRowCount(nRows); m_ctrlGridSchedulerMotorParamInfo.SetColumnCount(nCols); m_ctrlGridSchedulerMotorParamInfo.SetFixedRowCount(nFixRows); m_ctrlGridSchedulerMotorParamInfo.SetFixedColumnCount(nFixCols); GV_ITEM Item; Item.mask = GVIF_TEXT; Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("X Axis Speed(mm/sec)"));//_T("XÃà ¼Óµµ(mm/sec)")); Item.strText = strTemp; m_ctrlGridSchedulerMotorParamInfo.SetItem(&Item); Item.row = nRowIdx++; strTemp.Format(_T("Y Axis Speed(mm/sec)"));//_T("YÃà ¼Óµµ(mm/sec)")); Item.strText = strTemp; m_ctrlGridSchedulerMotorParamInfo.SetItem(&Item); Item.row = nRowIdx++; strTemp.Format(_T("X Axis Accecleration(ms)"));//_T("XÃà °¡¼Óµµ(ms)")); Item.strText = strTemp; m_ctrlGridSchedulerMotorParamInfo.SetItem(&Item); Item.row = nRowIdx++; strTemp.Format(_T("Y Axis Accecleration(ms)"));//_T("YÃà °¡¼Óµµ(ms)")); Item.strText = strTemp; m_ctrlGridSchedulerMotorParamInfo.SetItem(&Item); Item.row = nRowIdx++; strTemp.Format(_T("Statring Delay Time(ms)"));//_T("½ÃÀÛ ´ë±â ½Ã°£(ms)")); Item.strText = strTemp; m_ctrlGridSchedulerMotorParamInfo.SetItem(&Item); Item.row = nRowIdx++; strTemp.Format(_T("Moving Delay Time(ms)"));//_T("µ¿ÀÛ ´ë±â ½Ã°£(ms)")); Item.strText = strTemp; m_ctrlGridSchedulerMotorParamInfo.SetItem(&Item); Item.row = nRowIdx++; strTemp.Format(_T("TactTime(sec)"));//_T("ÅßÀÓ(sec)")); Item.strText = strTemp; m_ctrlGridSchedulerMotorParamInfo.SetItem(&Item); } void CDlgMotor::FillSchedulerMotorParamInfo() { //int nRowIdx, nColIdx; CString strItemText; CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd(); if(pDlg) { CMotorControlInfo *pMotorInfo = pDlg->GetMot_MotorInfo(); } } void CDlgMotor::InitMotorOffestAndDirectionGridContorl() { int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols; int nMargin, nDefaultColumnWidth; CString strTemp; CRect rect; m_ctrlGridMotorOffsetAndDirection.GetWindowRect(&rect); nMargin = 5; nDefaultColumnWidth = (rect.Width() - nMargin) / (MOTOR_OFFSET_AND_DIRECTION_GRID_COL_COUNT); nRows = 2; nCols = MOTOR_OFFSET_AND_DIRECTION_GRID_COL_COUNT; nFixRows = 1; nFixCols = 0; nRowIdx = 0; nColIdx = 0; m_ctrlGridMotorOffsetAndDirection.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridMotorOffsetAndDirection.SetRowCount(nRows); m_ctrlGridMotorOffsetAndDirection.SetColumnCount(nCols); m_ctrlGridMotorOffsetAndDirection.SetFixedRowCount(nFixRows); m_ctrlGridMotorOffsetAndDirection.SetFixedColumnCount(nFixCols); GV_ITEM Item; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Offset X(mm)")); Item.strText = strTemp; m_ctrlGridMotorOffsetAndDirection.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorOffsetAndDirection.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Offset Y(mm)")); Item.strText = strTemp; m_ctrlGridMotorOffsetAndDirection.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorOffsetAndDirection.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("X Axis Direction"));//_T("X Ãà¹æÇâ")); Item.strText = strTemp; m_ctrlGridMotorOffsetAndDirection.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorOffsetAndDirection.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Y Axis Direction"));//_T("Y Ãà¹æÇâ")); Item.strText = strTemp; m_ctrlGridMotorOffsetAndDirection.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridMotorOffsetAndDirection.SetItem(&Item); //m_ctrlGridMotorOffsetAndDirection.SetColumnWidth(0,100); } void CDlgMotor::FillMotorOffsetAndDirection() { int nRowIdx, nColIdx; CString strItemText; CStringArray strArrayOption; CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd(); if(pDlg == NULL) return ; CMotorControlInfo *pMotorInfo = pDlg->GetMot_MotorInfo(); if(pMotorInfo == NULL) return ; nRowIdx = 1; nColIdx = 0; // strItemText.Format(_T("%.03lf"), pMotorInfo->m_dOffsetX); // m_ctrlGridMotorOffsetAndDirection.SetItemText(nRowIdx, nColIdx++, strItemText); // // strItemText.Format(_T("%.03lf"), pMotorInfo->m_dOffsetY); // m_ctrlGridMotorOffsetAndDirection.SetItemText(nRowIdx, nColIdx++, strItemText); strArrayOption.Add(_T("Normal Direction"));//_T("Á¤¹æÇâ")); strArrayOption.Add(_T("Reverse Direction"));//_T("¿ª¹æÇâ")); m_ctrlGridMotorOffsetAndDirection.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); CGridCellCombo* pCellCombo = (CGridCellCombo*)m_ctrlGridMotorOffsetAndDirection.GetCell(nRowIdx, nColIdx); if(pCellCombo) { pCellCombo->SetOptions(strArrayOption); // switch(pMotorInfo->m_ndirectionX) // { // case -1 : // pCellCombo->SetText(_T("Reverse Direction"));//_T("¿ª¹æÇâ")); // break; // case 1 : // pCellCombo->SetText(_T("Noraml Direction"));//_T("Á¤¹æÇâ")); // break; // default: // pCellCombo->SetText(_T("")); // } } nColIdx++; m_ctrlGridMotorOffsetAndDirection.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridMotorOffsetAndDirection.GetCell(nRowIdx, nColIdx); if(pCellCombo) { pCellCombo->SetOptions(strArrayOption); // switch(pMotorInfo->m_ndirectionY) // { // case -1 : // pCellCombo->SetText(_T("Reverse Direction"));//_T("¿ª¹æÇâ")); // break; // case 1 : // pCellCombo->SetText(_T("Normal Direction"));//_T("Á¤¹æÇâ")); // break; // default: // pCellCombo->SetText(_T("")); // } } /* strItemText.Format(_T("%d"), pMotorInfo->m_ndirectionX); m_ctrlGridMotorOffsetAndDirection.SetItemText(nRowIdx, nColIdx++, strItemText); strItemText.Format(_T("%d"), pMotorInfo->m_ndirectionY); m_ctrlGridMotorOffsetAndDirection.SetItemText(nRowIdx, nColIdx++, strItemText); */ } void CDlgMotor::ResetSchedulerMotorParamInfoGrid() { int i, nRowIdx, nColIdx; CString strItemText; nRowIdx = 0; nColIdx = 1; strItemText = _T(""); for(i = 0; i < SCHEDULER_MOTOR_PARAM_INFO_GRID_ROW_COUNT; i++) { m_ctrlGridSchedulerMotorParamInfo.SetItemText(nRowIdx++, nColIdx, strItemText); } } void CDlgMotor::OnEnChangeEditSysMotorGantryCount() { // TODO: RICHEDIT ÄÁÆ®·ÑÀÎ °æ¿ì, ÀÌ ÄÁÆ®·ÑÀº // CDialog::OnInitDialog() ÇÔ¼ö¸¦ ÀçÁöÁ¤ //ÇÏ°í ¸¶½ºÅ©¿¡ OR ¿¬»êÇÏ¿© ¼³Á¤µÈ ENM_CHANGE Ç÷¡±×¸¦ ÁöÁ¤ÇÏ¿© CRichEditCtrl().SetEventMask()¸¦ È£ÃâÇÏÁö ¾ÊÀ¸¸é // ÀÌ ¾Ë¸² ¸Þ½ÃÁö¸¦ º¸³»Áö ¾Ê½À´Ï´Ù. // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. UpdateData(TRUE); int i, nRowIdx, nColIdx; CString strTemp; m_ctrlGridMotorGantryAddr.SetRowCount(m_nGantryCount + 1); if(m_nGantryCount > 0) { GV_ITEM Item; Item.mask = GVIF_TEXT; nRowIdx = 1; nColIdx = 0; for(i = 0; i < m_nGantryCount; i++) { //À妽º Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("%02d"), i); Item.strText = strTemp; m_ctrlGridMotorGantryAddr.SetItem(&Item); } } } void CDlgMotor::OnEnChangeEditSysMotorAxisCount() { // TODO: RICHEDIT ÄÁÆ®·ÑÀÎ °æ¿ì, ÀÌ ÄÁÆ®·ÑÀº // CDialog::OnInitDialog() ÇÔ¼ö¸¦ ÀçÁöÁ¤ //ÇÏ°í ¸¶½ºÅ©¿¡ OR ¿¬»êÇÏ¿© ¼³Á¤µÈ ENM_CHANGE Ç÷¡±×¸¦ ÁöÁ¤ÇÏ¿© CRichEditCtrl().SetEventMask()¸¦ È£ÃâÇÏÁö ¾ÊÀ¸¸é // ÀÌ ¾Ë¸² ¸Þ½ÃÁö¸¦ º¸³»Áö ¾Ê½À´Ï´Ù. // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. UpdateData(TRUE); int i, nRowIdx, nColIdx; CString strTemp; if(m_bUseThetaMotor) m_ctrlGridMotorAxisAddr.SetRowCount(m_nGantryCount * m_nAxisCount + 2); else m_ctrlGridMotorAxisAddr.SetRowCount(m_nGantryCount * m_nAxisCount + 1); if(m_nGantryCount * m_nAxisCount > 0) { GV_ITEM Item; Item.mask = GVIF_TEXT; nRowIdx = 1; nColIdx = 0; for(i = 0; i < m_nGantryCount * m_nAxisCount; i++) { //À妽º Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("%02d"), i); Item.strText = strTemp; m_ctrlGridMotorAxisAddr.SetItem(&Item); } if(m_bUseThetaMotor) { Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("Theta"), i); Item.strText = strTemp; m_ctrlGridMotorAxisAddr.SetItem(&Item); } } } void CDlgMotor::OnCheckedUseTheaMotor() { if(m_bUseThetaMotor) m_bUseThetaMotor = FALSE; else m_bUseThetaMotor = TRUE; m_ctrlThetaMotorAddr.SetReadOnly(!m_bUseThetaMotor); //InitMotorAxisAddrInfoGridContorl(); FillMotorAxisAddrInfo(); } void CDlgMotor::OnCheckedUseCheckMotorOffset() { if(m_bUseCheckMotorOffset) m_bUseCheckMotorOffset = FALSE; else m_bUseCheckMotorOffset = TRUE; }