📄 smt5kview.cpp
字号:
}
break;
case 3 :
if(AxisNo==CurrentAxis)
{
pMonitorAxis[0]->UpdateIntSrc(GetBit(lData,0,8));
}
break;
case 4 :
if(CurrentAxis==0)
pMonitorAxis[0]->UpdateIO(GetBit(lData,0,8));
else if(CurrentAxis==1)
pMonitorAxis[0]->UpdateIO(GetBit(lData,8,8));
break;
case 5 :
if(CurrentAxis==2)
pMonitorAxis[0]->UpdateIO(GetBit(lData,0,8));
else if(CurrentAxis==3)
pMonitorAxis[0]->UpdateIO(GetBit(lData,8,8));
break;
case 13 :
if(AxisNo==CurrentAxis)
{
pMonitorAxis[0]->UpdateOUTH(GetBit(lData,7,5));
}
break;
case 14 :
pMonitorAxis[0]->UpdateOUTL(GetBit(lData,CurrentAxis*4,4));
break;
case 15 :
pMonitorIPL->UpdateWR5(GetBit(lData,0,16));
break;
case 20 :
if(!m_ShowIplState && AxisNo == CurrentAxis )
{
pMonitorAxis[0]->UpdateLP(lData);
if(!m_DrawSelEP)
AddPointToLPCurve(lData);
}
if(AxisIsDrving)
pDoc->AddData(0,AxisNo,lData);
break;
case 21 :
if(!m_ShowIplState && AxisNo == CurrentAxis )
{
pMonitorAxis[0]->UpdateEP(lData);
if(m_DrawSelEP)
AddPointToLPCurve(lData);
}
if(AxisIsDrving)
pDoc->AddData(1,AxisNo,lData);
break;
case 22 :
if(!m_ShowIplState && AxisNo == CurrentAxis )
{
pMonitorAxis[0]->UpdateCV(lData);
AddPointToCVCurve(lData);
}
if(AxisNo==pMonitorIPL->m_Axis[0])
pMonitorIPL->UpdateCV(lData);
if(AxisIsDrving)
pDoc->AddData(2,AxisNo,lData);
break;
case 23 :
if(!m_ShowIplState && AxisNo == CurrentAxis )
{
// pMonitorAxis[0]->UpdateCA(lData);
AddPointToCACurve(lData);
}
if(AxisNo==pMonitorIPL->m_Axis[0])
pMonitorIPL->UpdateCA(lData);
if(AxisIsDrving)
pDoc->AddData(3,AxisNo,lData);
break;
default:
break;
}
return 0;
}
LONG CSMT5KView::OnCommunication(WPARAM ch, LPARAM port)
{
//HWND hWndReadReg;
static int wData;
int lData;
CString str1;
if(port==SerialPortNo) //COM1接收到数据
{
switch(ch)
{
case '$':
bStart = TRUE;
break;
case '!': // for notes from serial port
bStart = FALSE;
m_strRXDataCOM1.Empty();
break;
case '#':
wData = atoi((LPCTSTR)m_strRXDataCOM1);
m_strRXDataCOM1.Empty();
break;
case '*':
bStart = FALSE;
lData = atoi((LPCTSTR)m_strRXDataCOM1);
m_strRXDataCOM1.Empty();
AfxGetMainWnd()->SendMessage(WM_SM5K_DATA_READ, (WPARAM) wData, (LPARAM) lData );
SendMessage(WM_SM5K_DATA_READ, (WPARAM) wData, (LPARAM) lData );
break;
default:
if(bStart==TRUE)
{
m_strRXDataCOM1 += (char)ch;
}
}
}
return 0;
}
void CSMT5KView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CFormView::OnTimer(nIDEvent);
}
void CSMT5KView::SendString(CString &str, int Port)
{
CString str1;
str1='$'+str+"*";
m_ComPort.WriteToPort((LPCTSTR)str1);
TRACE(str1);
}
void CSMT5KView::OnTestReg()
{
// TODO: Add your command handler code here
CRegTestDlg RegTestDlg;
pRegTestDlg = &RegTestDlg;
RegTestDlg.DoModal();
}
void CSMT5KView::OnTestConfig()
{
CString str;
CConfigDlg ConfigDlg;
pConfigDlg = &ConfigDlg;
ConfigDlg.DoModal();
}
int CSMT5KView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFormView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
pMonitorAxis[0] = new CMonitorAxis;
pMonitorAxis[0]->Create(IDD_MONITOR_AXIS_DLG,this);
pMonitorAxis[0]->MoveWindow(0,0,270,500);
pMonitorAxis[0]->ShowWindow(SW_SHOW);
pMonitorIPL = new CMonitorIPL;
pMonitorIPL->Create(IDD_MONITOR_IPL_DLG,this);
pMonitorIPL->MoveWindow(0,0,900,500);
pMonitorIPL->ShowWindow(SW_HIDE);
return 0;
}
void CSMT5KView::SetDrawRange(short ParamID, long Data , short AxisXEn, short AxisYEn, short AxisZEn, short AxisUEn)
{
if (ParamID == 6 && Data!=0 ) // P
{
if(AxisXEn) m_YDivLP[0] = abs(Data);
if(AxisYEn) m_YDivLP[1] = abs(Data);
if(AxisZEn) m_YDivLP[2] = abs(Data);
if(AxisUEn) m_YDivLP[3] = abs(Data);
}
else if(ParamID == 5 && Data!=0 ) // V
{
if(AxisXEn) m_YDivCV[0] = Data;
if(AxisYEn) m_YDivCV[1] = Data;
if(AxisZEn) m_YDivCV[2] = Data;
if(AxisUEn) m_YDivCV[3] = Data;
}
else if(ParamID == 2 && Data!=0 ) // A
{
if(AxisXEn) m_YDivCA[0] = Data;
if(AxisYEn) m_YDivCA[1] = Data;
if(AxisZEn) m_YDivCA[2] = Data;
if(AxisUEn) m_YDivCA[3] = Data;
}
}
int CSMT5KView::GetAxisLpRange(short AxisNo)
{
return m_YDivLP[AxisNo];
}
void CSMT5KView::UpdateCurveRect(CRect m_CurveRect)
{
CRect InvalidRect = m_CurveRect;
CClientDC ClientDC(this);
OnPrepareDC(&ClientDC);
ClientDC.LPtoDP(&InvalidRect);
InvalidateRect(&InvalidRect);
}
void CSMT5KView::OnDeltaposSpinXRange(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;
// TODO: Add your control notification handler code here
if(pNMUpDown->iDelta==1) // up
m_XDiv[CurrentAxis] *= 2;
else if(pNMUpDown->iDelta==-1) // down
m_XDiv[CurrentAxis] /= 2;
UpdateCurveRect(m_RectCV);
UpdateCurveRect(m_RectCA);
UpdateCurveRect(m_RectLP);
*pResult = 0;
}
void CSMT5KView::OnDeltaposSpinCvYRange(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;
// TODO: Add your control notification handler code here
if(pNMUpDown->iDelta==-1) // up
m_YDivCV[CurrentAxis] /= 2;
else if(pNMUpDown->iDelta==1) // down
m_YDivCV[CurrentAxis] *= 2;
UpdateCurveRect(m_RectCV);
*pResult = 0;
}
void CSMT5KView::OnDeltaposSpinLpRange(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;
// TODO: Add your control notification handler code here
if(pNMUpDown->iDelta==-1) // up
m_YDivLP[CurrentAxis] /= 2;
else if(pNMUpDown->iDelta==1) // down
m_YDivLP[CurrentAxis] *= 2;
UpdateCurveRect(m_RectLP);
*pResult = 0;
}
void CSMT5KView::OnDeltaposSpinCaRange(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;
// TODO: Add your control notification handler code here
if(pNMUpDown->iDelta==-1) // up
{
m_YDivCA[CurrentAxis] /= 2;
}
else if(pNMUpDown->iDelta==1) // down
{
m_YDivCA[CurrentAxis] *= 2;
}
UpdateCurveRect(m_RectCA);
*pResult = 0;
}
void CSMT5KView::OnTestDrvMove()
{
pDrvFuncTestDlg = new CDrvFuncTest;
pDrvFuncTestDlg->Create(IDD_DRV_FUNC_TEST_DLG,NULL);
// pDrvFuncTestDlg->MoveWindow(450,100,550,580);
pDrvFuncTestDlg->ShowWindow(SW_SHOW);
}
void CSMT5KView::OnTestIplMove()
{
pIPLFuncTestDlg = new CIPLFuncTest;
pIPLFuncTestDlg->Create(IDD_IPL_FUNC_TEST_DLG,NULL);
pIPLFuncTestDlg->ShowWindow(SW_SHOW);
}
void CSMT5KView::OnTestWriteReg()
{
CWriteReg WriteRegisterDlg;
WriteRegisterDlg.DoModal();
}
void CSMT5KView::OnTestWriteParam()
{
CWriteParam WriteParameterDlg;
WriteParameterDlg.DoModal();
}
void CSMT5KView::OnTestSendDrvcmd()
{
CWriteDrvCmd WriteDrvCommandDlg;
WriteDrvCommandDlg.DoModal();
}
void CSMT5KView::OnTestSendIplcmd()
{
CWriteIPLCmd WriteIPLCommandDlg;
WriteIPLCommandDlg.DoModal();
}
void CSMT5KView::OnTestReadReg()
{
CReadReg ReadRegisterDlg;
pReadRegisterDlg = &ReadRegisterDlg;
ReadRegisterDlg.DoModal();
}
void CSMT5KView::OnTestShowDrv()
{
m_ShowIplState = 0;
pMonitorAxis[0]->ShowWindow(SW_SHOW);
pMonitorIPL->ShowWindow(SW_HIDE);
pMonitorIPL->KillTimer(2);
GetDlgItem(IDC_STATIC_DRAW_LP)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC_DRAW_CV)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC_DRAW_CA)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_SPIN_LP_RANGE )->ShowWindow(SW_SHOW);
GetDlgItem(IDC_SPIN_CV_RANGE )->ShowWindow(SW_SHOW);
GetDlgItem(IDC_SPIN_CA_RANGE )->ShowWindow(SW_SHOW);
GetDlgItem(IDC_SPIN_X_RANGE )->ShowWindow(SW_SHOW);
// GetDlgItem(IDC_STATIC_GROUP )->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BUTTON_CLR )->ShowWindow(SW_SHOW);
}
void CSMT5KView::OnUpdateTestShowDrv(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetRadio(!m_ShowIplState);
}
void CSMT5KView::OnTestShowIpl()
{
m_ShowIplState = 1;
pMonitorAxis[0]->ShowWindow(SW_HIDE);
pMonitorIPL->ShowWindow(SW_SHOW);
pMonitorIPL->SetTimer(2,300,NULL);
GetDlgItem(IDC_STATIC_DRAW_LP)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC_DRAW_CV)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC_DRAW_CA)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_SPIN_LP_RANGE )->ShowWindow(SW_HIDE);
GetDlgItem(IDC_SPIN_CV_RANGE )->ShowWindow(SW_HIDE);
GetDlgItem(IDC_SPIN_CA_RANGE )->ShowWindow(SW_HIDE);
GetDlgItem(IDC_SPIN_X_RANGE )->ShowWindow(SW_HIDE);
// GetDlgItem(IDC_STATIC_GROUP )->ShowWindow(SW_HIDE);
GetDlgItem(IDC_BUTTON_CLR )->ShowWindow(SW_HIDE);
}
void CSMT5KView::OnUpdateTestShowIpl(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetRadio(m_ShowIplState);
}
void CSMT5KView::OnButtonClr()
{
// TODO: Add your control notification handler code here
CSMT5KDoc *pDoc = GetDocument();
pDoc->ClearData(0);
pDoc->ClearData(1);
pDoc->ClearData(2);
pDoc->ClearData(3);
UpdateCurveRect(m_RectLP);
UpdateCurveRect(m_RectCV);
UpdateCurveRect(m_RectCA);
}
void CSMT5KView::OnTestDownSpeed()
{
m_strTXDataCOM1.Empty();
pMonitorAxis[0]->SpeedDownStop();
pMonitorIPL->SpeedDownStop();
m_ComPort.WriteToPort((LPCTSTR)m_strTXDataCOM1);
}
void CSMT5KView::OnTestImstop()
{
m_strTXDataCOM1.Empty();
pMonitorAxis[0]->EmergencyStop();
pMonitorIPL->EmergencyStop();
m_ComPort.WriteToPort((LPCTSTR)m_strTXDataCOM1);
}
void CSMT5KView::OnTestGoHome()
{
m_strTXDataCOM1.Empty();
//pMonitorAxis[0]->GoHome();
pMonitorIPL->GoHome();
m_ComPort.WriteToPort((LPCTSTR)m_strTXDataCOM1);
}
void CSMT5KView::OnButton2()
{
m_DrawSelEP = 0;
UpdateCurveRect(m_RectLP);
}
void CSMT5KView::OnButton6()
{
m_DrawSelEP = 1;
UpdateCurveRect(m_RectLP);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -