// 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; nGantryIdx<m_nGantryCount; nGantryIdx++)
|
{
|
int nGantryColIdx = 0;
|
CMotorGantryAddr *pMotorGantryAddr = pMotorInfo->GetMotorGantryAddr(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; nAxisIdx<m_nAxisCount; nAxisIdx++)
|
{
|
CMotorAxisAddr *pMotorAxisAddr = pMotorGantryAddr->GetMotorAxisAddr(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;
|
}
|