|
|
|
@@ -32,6 +32,7 @@ void CSo7_Manual_Machine::DoDataExchange(CDataExchange* pDX)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CSo7_Manual_Machine, CDialog)
|
|
|
|
|
ON_WM_TIMER()
|
|
|
|
|
ON_BN_CLICKED(IDC_BUTTON_SO7_MANUAL_MACHINE_START_MACHINE, &CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineStartMachine)
|
|
|
|
|
ON_BN_CLICKED(IDC_BUTTON_SO7_MANUAL_MACHINE_STOP_MACHINE, &CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineStopMachine)
|
|
|
|
|
ON_BN_CLICKED(IDC_RADIO_SO7_MANUAL_MACHINE_COMMON_CMD1, &CSo7_Manual_Machine::OnBnClickedRadioSo7ManualMachineCommonCmd1)
|
|
|
|
@@ -46,6 +47,9 @@ BEGIN_MESSAGE_MAP(CSo7_Manual_Machine, CDialog)
|
|
|
|
|
ON_BN_CLICKED(IDC_BUTTON_SO7_MANUAL_MACHINE_CLEAR_MSG, &CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineClearMsg)
|
|
|
|
|
ON_BN_CLICKED(IDC_BUTTON_SO7_MANUAL_MACHINE_SAVE_MSG, &CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineSaveMsg)
|
|
|
|
|
ON_BN_CLICKED(IDCANCEL, &CSo7_Manual_Machine::OnBnClickedCancel)
|
|
|
|
|
ON_BN_CLICKED(IDC_BUTTON_SO7_MANUAL_MACHINEREAD_POS, &CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachinereadPos)
|
|
|
|
|
ON_BN_CLICKED(IDC_CHECK_SO7_MANUAL_MACHINE_READ_POS_CONTINUE, &CSo7_Manual_Machine::OnBnClickedCheckSo7ManualMachineReadPosContinue)
|
|
|
|
|
ON_BN_CLICKED(IDC_RADIO_SO7_MANUAL_MACHINE_COMMON_CMD4, &CSo7_Manual_Machine::OnBnClickedRadioSo7ManualMachineCommonCmd4)
|
|
|
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -78,7 +82,9 @@ BOOL CSo7_Manual_Machine::OnInitDialog()
|
|
|
|
|
((CButton *)GetDlgItem(IDC_RADIO_SO7_MANUAL_MACHINE_SEND_DATA_TYPE_HEX))->SetCheck(TRUE);
|
|
|
|
|
((CButton *)GetDlgItem(IDC_RADIO_SO7_MANUAL_MACHINE_SEND_DATA_TYPE_ANSCII))->SetCheck(FALSE);
|
|
|
|
|
m_SendType=HEXADECIMAL;
|
|
|
|
|
|
|
|
|
|
GetDlgItem(IDC_EDIT_X_SCALE_COEFFICIENT)->SetWindowText(_T("0.5"));
|
|
|
|
|
GetDlgItem(IDC_EDIT_Y_SCALE_COEFFICIENT)->SetWindowText(_T("0.5"));
|
|
|
|
|
GetDlgItem(IDC_EDIT_Z_SCALE_COEFFICIENT)->SetWindowText(_T("0.5"));
|
|
|
|
|
//===============================================================================
|
|
|
|
|
// 创建状态栏
|
|
|
|
|
m_StatusBar.Create(WS_CHILD|WS_VISIBLE|SBS_SIZEGRIP, CRect(0, 0, 0, 0), this, 101);
|
|
|
|
@@ -127,7 +133,7 @@ void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineStartMachine()
|
|
|
|
|
GetDlgItem(IDC_BUTTON_SO7_MANUAL_MACHINE_SEND_DATA)->EnableWindow(TRUE);
|
|
|
|
|
GetDlgItem(IDC_BUTTON_SO7_MANUAL_MACHINE_STOP_MACHINE)->EnableWindow(TRUE);
|
|
|
|
|
GetDlgItem(IDC_BUTTON_SO7_MANUAL_MACHINE_START_MACHINE)->EnableWindow(FALSE);
|
|
|
|
|
|
|
|
|
|
_Send_CMD_InitController();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
@@ -146,26 +152,32 @@ void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineStopMachine()
|
|
|
|
|
}
|
|
|
|
|
GetDlgItem(IDC_BUTTON_SO7_MANUAL_MACHINE_SEND_DATA)->EnableWindow(FALSE);
|
|
|
|
|
GetDlgItem(IDC_BUTTON_SO7_MANUAL_MACHINE_START_MACHINE)->EnableWindow(TRUE);
|
|
|
|
|
GetDlgItem(IDC_BUTTON_SO7_MANUAL_MACHINE_STOP_MACHINE)->EnableWindow(FALSE);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//===================================================
|
|
|
|
|
void CSo7_Manual_Machine::OnBnClickedRadioSo7ManualMachineCommonCmd1()
|
|
|
|
|
{
|
|
|
|
|
GetDlgItem(IDC_EDIT_SO7_MANUAL_MACHINE_DATA)->SetWindowTextW(_T("F4 0D"));
|
|
|
|
|
GetDlgItem(IDC_EDIT_SO7_MANUAL_MACHINE_DATA)->SetWindowTextW(_T("A6 30 30 31 47 0D"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//===================================================
|
|
|
|
|
void CSo7_Manual_Machine::OnBnClickedRadioSo7ManualMachineCommonCmd2()
|
|
|
|
|
{
|
|
|
|
|
GetDlgItem(IDC_EDIT_SO7_MANUAL_MACHINE_DATA)->SetWindowTextW(_T("F5 0D"));
|
|
|
|
|
GetDlgItem(IDC_EDIT_SO7_MANUAL_MACHINE_DATA)->SetWindowTextW(_T("A4 30 30 31 45 0D"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//===================================================
|
|
|
|
|
void CSo7_Manual_Machine::OnBnClickedRadioSo7ManualMachineCommonCmd3()
|
|
|
|
|
{
|
|
|
|
|
GetDlgItem(IDC_EDIT_SO7_MANUAL_MACHINE_DATA)->SetWindowTextW(_T("F6 0D"));
|
|
|
|
|
GetDlgItem(IDC_EDIT_SO7_MANUAL_MACHINE_DATA)->SetWindowTextW(_T("A5 30 30 31 46 0D"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//===================================================
|
|
|
|
|
void CSo7_Manual_Machine::OnBnClickedRadioSo7ManualMachineCommonCmd4()
|
|
|
|
|
{
|
|
|
|
|
GetDlgItem(IDC_EDIT_SO7_MANUAL_MACHINE_DATA)->SetWindowTextW(_T("A6 30 30 31 47 0D"));
|
|
|
|
|
}
|
|
|
|
|
//===================================================
|
|
|
|
|
void CSo7_Manual_Machine::OnBnClickedRadioSo7ManualMachineSendDataTypeHex()
|
|
|
|
|
{
|
|
|
|
@@ -190,8 +202,9 @@ void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineSendData()
|
|
|
|
|
|
|
|
|
|
DWORD iSendDataLength(0);
|
|
|
|
|
DWORD iWriteByte(0);
|
|
|
|
|
m_pSO7_PCDSerial->m_iReadDataNum=255;
|
|
|
|
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
|
|
|
|
if (true)//m_SendType==HEXADECIMAL)
|
|
|
|
|
if (m_SendType==HEXADECIMAL)
|
|
|
|
|
{
|
|
|
|
|
char* stop;
|
|
|
|
|
BYTE bSendData[MAX_OUTPUT_BUFFER_SIZE]={0};
|
|
|
|
@@ -238,7 +251,7 @@ void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineSendData()
|
|
|
|
|
m_OutMessage=_T("[Recv]");
|
|
|
|
|
for (INT i=0;i<m_pSO7_PCDSerial->m_iRecvByte;i++)
|
|
|
|
|
{
|
|
|
|
|
csTemp.Format(_T("%X "),m_pSO7_PCDSerial->m_RecvData[i]);
|
|
|
|
|
csTemp.Format(_T("%X "),(BYTE)m_pSO7_PCDSerial->m_RecvData[i]);
|
|
|
|
|
m_OutMessage+=csTemp;
|
|
|
|
|
}
|
|
|
|
|
OutputWithScroll(m_OutMessage,m_edMSG);
|
|
|
|
@@ -265,14 +278,430 @@ void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineSendData()
|
|
|
|
|
m_StatusBar.SetText(_T("Time Out!"), 2, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//===================================================
|
|
|
|
|
void CSo7_Manual_Machine::OnBnClickedCheckSo7ManualMachineReadPosContinue()
|
|
|
|
|
{
|
|
|
|
|
if (!((CButton*)(GetDlgItem(IDC_CHECK_SO7_MANUAL_MACHINE_READ_POS_CONTINUE)))->GetCheck())
|
|
|
|
|
{
|
|
|
|
|
m_pSO7_PCDSerial->m_iReadDataNum=255;
|
|
|
|
|
KillTimer(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//===================================================
|
|
|
|
|
void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachinereadPos()
|
|
|
|
|
{
|
|
|
|
|
_Send_CMD_ReadPositionX();
|
|
|
|
|
_Send_CMD_ReadPositionY();
|
|
|
|
|
_Send_CMD_ReadPositionZ();
|
|
|
|
|
UpdatePosDisplay();
|
|
|
|
|
if (((CButton*)(GetDlgItem(IDC_CHECK_SO7_MANUAL_MACHINE_READ_POS_CONTINUE)))->GetCheck())
|
|
|
|
|
{
|
|
|
|
|
m_pSO7_PCDSerial->m_iReadDataNum=255;
|
|
|
|
|
SetTimer(1,200,NULL);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
KillTimer(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//===================================================
|
|
|
|
|
BOOL CSo7_Manual_Machine::_Send_Common_CMD(const char* _SendData,DWORD _SendDataLength)
|
|
|
|
|
{
|
|
|
|
|
BOOL rStatus(FALSE);
|
|
|
|
|
DWORD iWriteByte(0);
|
|
|
|
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
|
|
|
|
m_pSO7_PCDSerial->m_iReadDataNum=255;
|
|
|
|
|
iWriteByte=m_pSO7_PCDSerial->Send(_SendData,_SendDataLength);
|
|
|
|
|
m_OutMessage.Format(_T("Send(%dByte)"),iWriteByte);
|
|
|
|
|
m_StatusBar.SetText(m_OutMessage, 1, 0);
|
|
|
|
|
//接受数据
|
|
|
|
|
INT iRetrys(0);
|
|
|
|
|
CString csTemp;
|
|
|
|
|
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys<20)
|
|
|
|
|
{
|
|
|
|
|
iRetrys++;
|
|
|
|
|
Sleep(100);
|
|
|
|
|
}
|
|
|
|
|
if (m_pSO7_PCDSerial->m_iRecvState)
|
|
|
|
|
{
|
|
|
|
|
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
|
|
|
|
|
{
|
|
|
|
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
|
|
|
|
INT iRetrys2(0);
|
|
|
|
|
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys2<60)
|
|
|
|
|
{
|
|
|
|
|
iRetrys2++;
|
|
|
|
|
Sleep(100);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
m_OutMessage.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvByte);
|
|
|
|
|
m_StatusBar.SetText(m_OutMessage, 2, 0);
|
|
|
|
|
|
|
|
|
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
|
|
|
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
|
|
|
|
rStatus=TRUE;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
m_StatusBar.SetText(_T("Time Out!"), 2, 0);
|
|
|
|
|
}
|
|
|
|
|
return rStatus;
|
|
|
|
|
};
|
|
|
|
|
//===================================================
|
|
|
|
|
void CSo7_Manual_Machine::_Send_CMD_InitController()
|
|
|
|
|
{
|
|
|
|
|
BYTE bSendData1[6]={0xA6,0x30,0x30,0x31,0x47,0x0D};
|
|
|
|
|
_Send_Common_CMD((const char*)bSendData1,6);
|
|
|
|
|
BYTE bSendData2[6]={0xA4,0x30,0x30,0x31,0x45,0x0D};
|
|
|
|
|
_Send_Common_CMD((const char*)bSendData2,6);
|
|
|
|
|
BYTE bSendData3[6]={0xA5,0x30,0x30,0x31,0x46,0x0D};
|
|
|
|
|
_Send_Common_CMD((const char*)bSendData3,6);
|
|
|
|
|
BYTE bSendData4[6]={0xA6,0x30,0x30,0x31,0x47,0x0D};
|
|
|
|
|
_Send_Common_CMD((const char*)bSendData4,6);
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
//===================================================
|
|
|
|
|
void CSo7_Manual_Machine::_Send_CMD_ReadPositionX()
|
|
|
|
|
{
|
|
|
|
|
BYTE bSendData[2]={0xF4,0x0D};
|
|
|
|
|
DWORD iSendDataLength(2);
|
|
|
|
|
DWORD iWriteByte(0);
|
|
|
|
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
|
|
|
|
m_pSO7_PCDSerial->m_iReadDataNum=255;
|
|
|
|
|
iWriteByte=m_pSO7_PCDSerial->Send((const char*)bSendData,iSendDataLength);
|
|
|
|
|
m_OutMessage.Format(_T("Send(%dByte)"),iWriteByte);
|
|
|
|
|
m_StatusBar.SetText(m_OutMessage, 1, 0);
|
|
|
|
|
//接受数据
|
|
|
|
|
INT iRetrys(0);
|
|
|
|
|
CString csTemp;
|
|
|
|
|
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys<20)
|
|
|
|
|
{
|
|
|
|
|
iRetrys++;
|
|
|
|
|
Sleep(100);
|
|
|
|
|
}
|
|
|
|
|
if (m_pSO7_PCDSerial->m_iRecvState)
|
|
|
|
|
{
|
|
|
|
|
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
|
|
|
|
|
{
|
|
|
|
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
|
|
|
|
INT iRetrys2(0);
|
|
|
|
|
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys2<60)
|
|
|
|
|
{
|
|
|
|
|
iRetrys2++;
|
|
|
|
|
Sleep(100);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
m_pSO7_Proto->g_machine.x._d_cur_pos_=HEXDataToIntScalePosX(&m_pSO7_PCDSerial->m_RecvData[2]);
|
|
|
|
|
m_pSO7_Proto->g_machine.x._d_cur_pos_ *= m_pSO7_Proto->g_machine.s_machine_config.x_axis._scale_resolution;
|
|
|
|
|
m_OutMessage.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvByte);
|
|
|
|
|
m_StatusBar.SetText(m_OutMessage, 2, 0);
|
|
|
|
|
|
|
|
|
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
|
|
|
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
m_StatusBar.SetText(_T("Time Out!"), 2, 0);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
//===================================================
|
|
|
|
|
void CSo7_Manual_Machine::_Send_CMD_ReadPositionY()
|
|
|
|
|
{
|
|
|
|
|
BYTE bSendData[2]={0xF5,0x0D};
|
|
|
|
|
DWORD iSendDataLength(2);
|
|
|
|
|
DWORD iWriteByte(0);
|
|
|
|
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
|
|
|
|
m_pSO7_PCDSerial->m_iReadDataNum=255;
|
|
|
|
|
iWriteByte=m_pSO7_PCDSerial->Send((const char*)bSendData,iSendDataLength);
|
|
|
|
|
m_OutMessage.Format(_T("Send(%dByte)"),iWriteByte);
|
|
|
|
|
m_StatusBar.SetText(m_OutMessage, 1, 0);
|
|
|
|
|
//接受数据
|
|
|
|
|
INT iRetrys(0);
|
|
|
|
|
CString csTemp;
|
|
|
|
|
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys<20)
|
|
|
|
|
{
|
|
|
|
|
iRetrys++;
|
|
|
|
|
Sleep(100);
|
|
|
|
|
}
|
|
|
|
|
if (m_pSO7_PCDSerial->m_iRecvState)
|
|
|
|
|
{
|
|
|
|
|
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
|
|
|
|
|
{
|
|
|
|
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
|
|
|
|
INT iRetrys2(0);
|
|
|
|
|
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys2<60)
|
|
|
|
|
{
|
|
|
|
|
iRetrys2++;
|
|
|
|
|
Sleep(100);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
m_pSO7_Proto->g_machine.y._d_cur_pos_=HEXDataToIntScalePosY(&m_pSO7_PCDSerial->m_RecvData[2]);
|
|
|
|
|
m_pSO7_Proto->g_machine.y._d_cur_pos_ *= m_pSO7_Proto->g_machine.s_machine_config.y_axis._scale_resolution;
|
|
|
|
|
m_OutMessage.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvByte);
|
|
|
|
|
m_StatusBar.SetText(m_OutMessage, 2, 0);
|
|
|
|
|
|
|
|
|
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
|
|
|
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
m_StatusBar.SetText(_T("Time Out!"), 2, 0);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
//===================================================
|
|
|
|
|
void CSo7_Manual_Machine::_Send_CMD_ReadPositionZ()
|
|
|
|
|
{
|
|
|
|
|
BYTE bSendData[2]={0xF6,0x0D};
|
|
|
|
|
DWORD iSendDataLength(2);
|
|
|
|
|
DWORD iWriteByte(0);
|
|
|
|
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
|
|
|
|
m_pSO7_PCDSerial->m_iReadDataNum=255;
|
|
|
|
|
iWriteByte=m_pSO7_PCDSerial->Send((const char*)bSendData,iSendDataLength);
|
|
|
|
|
m_OutMessage.Format(_T("Send(%dByte)"),iWriteByte);
|
|
|
|
|
m_StatusBar.SetText(m_OutMessage, 1, 0);
|
|
|
|
|
//接受数据
|
|
|
|
|
INT iRetrys(0);
|
|
|
|
|
CString csTemp;
|
|
|
|
|
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys<20)
|
|
|
|
|
{
|
|
|
|
|
iRetrys++;
|
|
|
|
|
Sleep(100);
|
|
|
|
|
}
|
|
|
|
|
if (m_pSO7_PCDSerial->m_iRecvState)
|
|
|
|
|
{
|
|
|
|
|
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
|
|
|
|
|
{
|
|
|
|
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
|
|
|
|
INT iRetrys2(0);
|
|
|
|
|
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys2<60)
|
|
|
|
|
{
|
|
|
|
|
iRetrys2++;
|
|
|
|
|
Sleep(100);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
m_pSO7_Proto->g_machine.z._d_cur_pos_=HEXDataToIntScalePosZ(&m_pSO7_PCDSerial->m_RecvData[2]);
|
|
|
|
|
m_pSO7_Proto->g_machine.z._d_cur_pos_ *= m_pSO7_Proto->g_machine.s_machine_config.z_axis._scale_resolution;
|
|
|
|
|
m_OutMessage.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvByte);
|
|
|
|
|
m_StatusBar.SetText(m_OutMessage, 2, 0);
|
|
|
|
|
|
|
|
|
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
|
|
|
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
m_StatusBar.SetText(_T("Time Out!"), 2, 0);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
void CSo7_Manual_Machine::_Process_RecvData()
|
|
|
|
|
{
|
|
|
|
|
//接受数据
|
|
|
|
|
CString csTemp;
|
|
|
|
|
if (m_pSO7_PCDSerial->m_iRecvState)
|
|
|
|
|
{
|
|
|
|
|
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
|
|
|
|
|
{
|
|
|
|
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
|
|
|
|
INT iRetrys2(0);
|
|
|
|
|
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys2<60)
|
|
|
|
|
{
|
|
|
|
|
iRetrys2++;
|
|
|
|
|
Sleep(50);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//m_OutMessage=_T("[Recv]");
|
|
|
|
|
//for (INT i=0;i<m_pSO7_PCDSerial->m_iRecvByte;i++)
|
|
|
|
|
//{
|
|
|
|
|
// csTemp.Format(_T("%X "),(BYTE)m_pSO7_PCDSerial->m_RecvData[i]);
|
|
|
|
|
// m_OutMessage+=csTemp;
|
|
|
|
|
//}
|
|
|
|
|
//OutputWithScroll(m_OutMessage,m_edMSG);
|
|
|
|
|
int i=0;
|
|
|
|
|
while(i<m_pSO7_PCDSerial->m_iRecvByte)
|
|
|
|
|
{
|
|
|
|
|
if ((BYTE)m_pSO7_PCDSerial->m_RecvData[i]==0xF4)//x
|
|
|
|
|
{
|
|
|
|
|
if ((m_pSO7_PCDSerial->m_iRecvByte-i)>=12)
|
|
|
|
|
{
|
|
|
|
|
m_pSO7_Proto->g_machine.x._d_cur_pos_=HEXDataToIntScalePosX(&m_pSO7_PCDSerial->m_RecvData[i+1]);
|
|
|
|
|
m_pSO7_Proto->g_machine.x._d_cur_pos_ *= m_pSO7_Proto->g_machine.s_machine_config.x_axis._scale_resolution;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
i+=12;
|
|
|
|
|
}
|
|
|
|
|
else if ((BYTE)m_pSO7_PCDSerial->m_RecvData[i]==0xF5)//y
|
|
|
|
|
{
|
|
|
|
|
if ((m_pSO7_PCDSerial->m_iRecvByte-i)>=12)
|
|
|
|
|
{
|
|
|
|
|
m_pSO7_Proto->g_machine.y._d_cur_pos_=HEXDataToIntScalePosY(&m_pSO7_PCDSerial->m_RecvData[i+1]);
|
|
|
|
|
m_pSO7_Proto->g_machine.y._d_cur_pos_ *= m_pSO7_Proto->g_machine.s_machine_config.y_axis._scale_resolution;
|
|
|
|
|
}
|
|
|
|
|
i+=12;
|
|
|
|
|
}
|
|
|
|
|
else if ((BYTE)m_pSO7_PCDSerial->m_RecvData[i]==0xF6)//z
|
|
|
|
|
{
|
|
|
|
|
if ((m_pSO7_PCDSerial->m_iRecvByte-i)>=12)
|
|
|
|
|
{
|
|
|
|
|
m_pSO7_Proto->g_machine.z._d_cur_pos_=HEXDataToIntScalePosZ(&m_pSO7_PCDSerial->m_RecvData[i+1]);
|
|
|
|
|
m_pSO7_Proto->g_machine.z._d_cur_pos_ *= m_pSO7_Proto->g_machine.s_machine_config.z_axis._scale_resolution;
|
|
|
|
|
}
|
|
|
|
|
i+=12;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
i++;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
m_OutMessage.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvByte);
|
|
|
|
|
m_StatusBar.SetText(m_OutMessage, 2, 0);
|
|
|
|
|
|
|
|
|
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
|
|
|
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
m_StatusBar.SetText(_T("Time Out!"), 2, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//===================================================
|
|
|
|
|
double CSo7_Manual_Machine::HEXDataToIntScalePosX(char* _RecvData)
|
|
|
|
|
{
|
|
|
|
|
char i=0,pc=0;
|
|
|
|
|
char tc=0;
|
|
|
|
|
float ine(0.0);
|
|
|
|
|
float dResult(0.0);
|
|
|
|
|
tc=0;
|
|
|
|
|
for(i=0;i<10;i++)
|
|
|
|
|
tc+=_RecvData[i];
|
|
|
|
|
tc=tc&0x7f;
|
|
|
|
|
pc=_RecvData[10]&0x7f;
|
|
|
|
|
|
|
|
|
|
if(tc==pc)
|
|
|
|
|
{
|
|
|
|
|
unsigned char tbak;
|
|
|
|
|
|
|
|
|
|
for(i=1;i<10;i++)
|
|
|
|
|
_RecvData[i]=_RecvData[i]-0x30;
|
|
|
|
|
tbak=_RecvData[2];
|
|
|
|
|
_RecvData[2]=_RecvData[4];
|
|
|
|
|
_RecvData[4]=tbak;
|
|
|
|
|
tbak=_RecvData[3];
|
|
|
|
|
_RecvData[3]=_RecvData[5];
|
|
|
|
|
_RecvData[5]=tbak;
|
|
|
|
|
|
|
|
|
|
for(i=2;i<6;i++)
|
|
|
|
|
_RecvData[i]=_RecvData[i]^0x03;
|
|
|
|
|
|
|
|
|
|
ine=float(0.1),dResult=0.0;
|
|
|
|
|
for(i=9;i>0;i--)
|
|
|
|
|
{
|
|
|
|
|
ine=ine*10;
|
|
|
|
|
dResult+=ine*_RecvData[i];
|
|
|
|
|
}
|
|
|
|
|
dResult=dResult/10000;
|
|
|
|
|
if(_RecvData[0]==16)
|
|
|
|
|
dResult=-dResult;
|
|
|
|
|
}
|
|
|
|
|
return static_cast<double>(dResult);
|
|
|
|
|
};
|
|
|
|
|
//===================================================
|
|
|
|
|
double CSo7_Manual_Machine::HEXDataToIntScalePosY(char* _RecvData)
|
|
|
|
|
{
|
|
|
|
|
char i=0,pc=0;
|
|
|
|
|
char tc=0;
|
|
|
|
|
float ine(0.0);
|
|
|
|
|
float dResult(0.0);
|
|
|
|
|
tc=0;
|
|
|
|
|
for(i=0;i<10;i++)
|
|
|
|
|
tc+=_RecvData[i];
|
|
|
|
|
tc=tc&0x7f;
|
|
|
|
|
pc=_RecvData[10]&0x7f;
|
|
|
|
|
|
|
|
|
|
if(tc==pc)
|
|
|
|
|
{
|
|
|
|
|
unsigned char tbak;
|
|
|
|
|
|
|
|
|
|
for(i=1;i<10;i++)
|
|
|
|
|
_RecvData[i]=_RecvData[i]-0x30;
|
|
|
|
|
tbak=_RecvData[3];
|
|
|
|
|
_RecvData[3]=_RecvData[5];
|
|
|
|
|
_RecvData[5]=tbak;
|
|
|
|
|
tbak=_RecvData[4];
|
|
|
|
|
_RecvData[4]=_RecvData[6];
|
|
|
|
|
_RecvData[6]=tbak;
|
|
|
|
|
for(i=3;i<7;i++)
|
|
|
|
|
_RecvData[i]=_RecvData[i]^0x05;
|
|
|
|
|
ine=float(0.1),dResult=0;
|
|
|
|
|
for(i=9;i>0;i--)
|
|
|
|
|
{
|
|
|
|
|
ine=ine*10;
|
|
|
|
|
dResult+=ine*_RecvData[i];
|
|
|
|
|
}
|
|
|
|
|
dResult = dResult/10000;
|
|
|
|
|
if(_RecvData[0]==16)
|
|
|
|
|
dResult=-dResult;
|
|
|
|
|
}
|
|
|
|
|
return static_cast<double>(dResult);
|
|
|
|
|
};
|
|
|
|
|
//===================================================
|
|
|
|
|
double CSo7_Manual_Machine::HEXDataToIntScalePosZ(char* _RecvData)
|
|
|
|
|
{
|
|
|
|
|
char i=0,pc=0;
|
|
|
|
|
char tc=0;
|
|
|
|
|
float ine(0.0);
|
|
|
|
|
float dResult(0.0);
|
|
|
|
|
tc=0;
|
|
|
|
|
for(i=0;i<10;i++)
|
|
|
|
|
tc+=_RecvData[i];
|
|
|
|
|
tc=tc&0x7f;
|
|
|
|
|
pc=_RecvData[10]&0x7f;
|
|
|
|
|
|
|
|
|
|
if(tc==pc)
|
|
|
|
|
{
|
|
|
|
|
unsigned char tbak;
|
|
|
|
|
|
|
|
|
|
for(i=1;i<10;i++)
|
|
|
|
|
_RecvData[i]=_RecvData[i]-0x30;
|
|
|
|
|
tbak=_RecvData[4];
|
|
|
|
|
_RecvData[4]=_RecvData[6];
|
|
|
|
|
_RecvData[6]=tbak;
|
|
|
|
|
tbak=_RecvData[5];
|
|
|
|
|
_RecvData[5]=_RecvData[7];
|
|
|
|
|
_RecvData[7]=tbak;
|
|
|
|
|
|
|
|
|
|
for(i=4;i<8;i++)
|
|
|
|
|
_RecvData[i]=_RecvData[i]^0x07;
|
|
|
|
|
|
|
|
|
|
ine=float(0.1),dResult=0;
|
|
|
|
|
for(i=9;i>0;i--)
|
|
|
|
|
{
|
|
|
|
|
ine=ine*10;
|
|
|
|
|
dResult+=ine*_RecvData[i];
|
|
|
|
|
}
|
|
|
|
|
dResult=dResult/10000;
|
|
|
|
|
if(_RecvData[0]==16)
|
|
|
|
|
dResult=-dResult;
|
|
|
|
|
}
|
|
|
|
|
return static_cast<double>(dResult);
|
|
|
|
|
};
|
|
|
|
|
void CSo7_Manual_Machine::UpdatePosDisplay()
|
|
|
|
|
{
|
|
|
|
|
CString cStr;
|
|
|
|
|
cStr.Format(_T("%8.4lf"), m_pSO7_Proto->g_machine.x._d_cur_pos_);
|
|
|
|
|
GetDlgItem(IDC_EDIT_X_POSITION_58)->SetWindowText(cStr);
|
|
|
|
|
cStr.Format(_T("%8.4lf"), m_pSO7_Proto->g_machine.y._d_cur_pos_);
|
|
|
|
|
GetDlgItem(IDC_EDIT_Y_POSITION_58)->SetWindowText(cStr);
|
|
|
|
|
cStr.Format(_T("%8.4lf"), m_pSO7_Proto->g_machine.z._d_cur_pos_);
|
|
|
|
|
GetDlgItem(IDC_EDIT_Z_POSITION_58)->SetWindowText(cStr);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
//===================================================
|
|
|
|
|
void CSo7_Manual_Machine::OnEnKillfocusEditXScaleCoefficient()
|
|
|
|
|
{
|
|
|
|
|
UpdateData(TRUE);
|
|
|
|
|
USES_CONVERSION;
|
|
|
|
|
CString str;
|
|
|
|
|
GetDlgItem(IDC_EDIT_X_AXIS)->GetWindowText(str);
|
|
|
|
|
GetDlgItem(IDC_EDIT_X_SCALE_COEFFICIENT)->GetWindowText(str);
|
|
|
|
|
const char* cTempValue=T2A(str);
|
|
|
|
|
m_pSO7_Proto->g_machine.s_machine_config.x_axis._scale_resolution=atof(cTempValue);
|
|
|
|
|
}
|
|
|
|
@@ -283,7 +712,7 @@ void CSo7_Manual_Machine::OnEnKillfocusEditYScaleCoefficient()
|
|
|
|
|
UpdateData(TRUE);
|
|
|
|
|
USES_CONVERSION;
|
|
|
|
|
CString str;
|
|
|
|
|
GetDlgItem(IDC_EDIT_Y_AXIS)->GetWindowText(str);
|
|
|
|
|
GetDlgItem(IDC_EDIT_Y_SCALE_COEFFICIENT)->GetWindowText(str);
|
|
|
|
|
const char* cTempValue=T2A(str);
|
|
|
|
|
m_pSO7_Proto->g_machine.s_machine_config.y_axis._scale_resolution=atof(cTempValue);
|
|
|
|
|
}
|
|
|
|
@@ -294,7 +723,7 @@ void CSo7_Manual_Machine::OnEnKillfocusEditZScaleCoefficient()
|
|
|
|
|
UpdateData(TRUE);
|
|
|
|
|
USES_CONVERSION;
|
|
|
|
|
CString str;
|
|
|
|
|
GetDlgItem(IDC_EDIT_Z_AXIS)->GetWindowText(str);
|
|
|
|
|
GetDlgItem(IDC_EDIT_Z_SCALE_COEFFICIENT)->GetWindowText(str);
|
|
|
|
|
const char* cTempValue=T2A(str);
|
|
|
|
|
m_pSO7_Proto->g_machine.s_machine_config.z_axis._scale_resolution=atof(cTempValue);
|
|
|
|
|
}
|
|
|
|
@@ -317,6 +746,20 @@ void CSo7_Manual_Machine::OnBnClickedCancel()
|
|
|
|
|
OnBnClickedButtonSo7ManualMachineStopMachine();
|
|
|
|
|
CDialog::OnCancel();
|
|
|
|
|
}
|
|
|
|
|
//===================================
|
|
|
|
|
void CSo7_Manual_Machine::OnTimer(UINT_PTR nIDEvent)
|
|
|
|
|
{
|
|
|
|
|
switch(nIDEvent)
|
|
|
|
|
{
|
|
|
|
|
case 1:
|
|
|
|
|
{
|
|
|
|
|
_Process_RecvData();
|
|
|
|
|
UpdatePosDisplay();
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
CDialog::OnTimer(nIDEvent);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//=====================================================================================
|
|
|
|
|
//Print message on edit control
|
|
|
|
@@ -339,3 +782,8 @@ void CSo7_Manual_Machine::OutputWithScroll(const CString &strNewText,CEdit &edtO
|
|
|
|
|
edtOutput.SetSel(iCount, iCount);
|
|
|
|
|
edtOutput.SetRedraw(TRUE);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|