增加手动机测试,可正常读取数据。
This commit is contained in:
@@ -57,6 +57,7 @@ CPSerial::CPSerial()
|
||||
m_iRecvState=FALSE;
|
||||
m_csRecv=_T("");
|
||||
m_iRecvByte=0;
|
||||
m_iReadDataNum=255;
|
||||
// Everything else set to NULL
|
||||
m_ThreadHandle = NULL;
|
||||
//m_TXHead = NULL;
|
||||
@@ -488,7 +489,7 @@ void CPSerial::OnReceive()
|
||||
CurrentPointer = 0;
|
||||
int num=0;
|
||||
|
||||
num = ReadPort(s, 255);
|
||||
num = ReadPort(s, m_iReadDataNum);
|
||||
//for (int i=0;i<num;i++)
|
||||
//{
|
||||
// csTemp
|
||||
|
||||
@@ -187,6 +187,7 @@ public:
|
||||
BOOL m_iRecvState;
|
||||
CString m_csRecv;
|
||||
INT m_iRecvByte;
|
||||
int m_iReadDataNum;
|
||||
char m_RecvData[255];
|
||||
};
|
||||
|
||||
|
||||
@@ -1114,3 +1114,48 @@ Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
Construct Cso7_Proto.
|
||||
Destruct Cso7_Proto.
|
||||
|
||||
@@ -587,42 +587,39 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSM
|
||||
CAPTION "Manual Machine"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
BEGIN
|
||||
CONTROL "CMD1",IDC_RADIO_SO7_MANUAL_MACHINE_COMMON_CMD1,"Button",BS_AUTORADIOBUTTON | WS_GROUP,95,30,35,10
|
||||
CONTROL "CMD2",IDC_RADIO_SO7_MANUAL_MACHINE_COMMON_CMD2,"Button",BS_AUTORADIOBUTTON,136,30,35,10
|
||||
CONTROL "CMD3",IDC_RADIO_SO7_MANUAL_MACHINE_COMMON_CMD3,"Button",BS_AUTORADIOBUTTON,177,30,35,10
|
||||
CONTROL "CMD4",IDC_RADIO_SO7_MANUAL_MACHINE_COMMON_CMD4,"Button",BS_AUTORADIOBUTTON,218,30,35,10
|
||||
CONTROL "HEX",IDC_RADIO_SO7_MANUAL_MACHINE_SEND_DATA_TYPE_HEX,
|
||||
"Button",BS_AUTORADIOBUTTON | WS_GROUP,271,45,29,10
|
||||
CONTROL "ANSCII",IDC_RADIO_SO7_MANUAL_MACHINE_SEND_DATA_TYPE_ANSCII,
|
||||
"Button",BS_AUTORADIOBUTTON,271,57,39,10
|
||||
PUSHBUTTON "Send",IDC_BUTTON_SO7_MANUAL_MACHINE_SEND_DATA,267,74,50,14
|
||||
PUSHBUTTON "Exit",IDCANCEL,299,292,50,14
|
||||
PUSHBUTTON "Start Machine",IDC_BUTTON_SO7_MANUAL_MACHINE_START_MACHINE,24,39,50,14
|
||||
PUSHBUTTON "Stop Machine",IDC_BUTTON_SO7_MANUAL_MACHINE_STOP_MACHINE,24,65,50,14
|
||||
GROUPBOX "Position",IDC_STATIC,19,99,310,107
|
||||
GROUPBOX "Send Data",IDC_STATIC,86,18,243,76
|
||||
PUSHBUTTON "Send",IDC_BUTTON_SO7_MANUAL_MACHINE_SEND_DATA,267,74,50,14
|
||||
EDITTEXT IDC_EDIT_SO7_MANUAL_MACHINE_DATA,87,44,173,48,ES_AUTOHSCROLL
|
||||
CONTROL "HEX",IDC_RADIO_SO7_MANUAL_MACHINE_SEND_DATA_TYPE_HEX,
|
||||
"Button",BS_AUTORADIOBUTTON | WS_GROUP,271,45,29,10
|
||||
CONTROL "ANSCII",IDC_RADIO_SO7_MANUAL_MACHINE_SEND_DATA_TYPE_ANSCII,
|
||||
"Button",BS_AUTORADIOBUTTON,271,57,39,10
|
||||
CONTROL "CMD1",IDC_RADIO_SO7_MANUAL_MACHINE_COMMON_CMD1,"Button",BS_AUTORADIOBUTTON | WS_GROUP,95,30,35,10
|
||||
CONTROL "CMD2",IDC_RADIO_SO7_MANUAL_MACHINE_COMMON_CMD2,"Button",BS_AUTORADIOBUTTON,140,30,35,10
|
||||
CONTROL "CMD3",IDC_RADIO_SO7_MANUAL_MACHINE_COMMON_CMD3,"Button",BS_AUTORADIOBUTTON,185,30,35,10
|
||||
GROUPBOX "Machine Control",IDC_STATIC,17,18,62,75
|
||||
EDITTEXT IDC_EDIT_X_SCALE_COEFFICIENT,201,137,54,12,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_Y_SCALE_COEFFICIENT,201,155,54,12,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_Z_SCALE_COEFFICIENT,201,173,54,12,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_X_SCALE_COEFFICIENT,131,137,54,12,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_Y_SCALE_COEFFICIENT,131,155,54,12,ES_CENTER | ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_Z_SCALE_COEFFICIENT,131,173,54,12,ES_CENTER | ES_AUTOHSCROLL
|
||||
LTEXT "x",IDC_STATIC,36,138,8,11
|
||||
LTEXT "y",IDC_STATIC,36,155,8,11
|
||||
LTEXT "z",IDC_STATIC,36,174,8,11
|
||||
EDITTEXT IDC_EDIT_X_AXIS,47,137,54,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP
|
||||
EDITTEXT IDC_EDIT_Y_AXIS,47,155,54,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP
|
||||
EDITTEXT IDC_EDIT_Z_AXIS,47,173,54,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP
|
||||
EDITTEXT IDC_EDIT_X_POSITION_58,122,137,54,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP
|
||||
EDITTEXT IDC_EDIT_Y_POSITION_58,122,155,54,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP
|
||||
EDITTEXT IDC_EDIT_Z_POSITION_58,122,173,54,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP
|
||||
LTEXT "Scale Pulse",IDC_STATIC,56,119,36,8
|
||||
LTEXT "mm",IDC_STATIC,143,119,12,8
|
||||
LTEXT "Scale resolution",IDC_STATIC,205,119,51,11
|
||||
EDITTEXT IDC_EDIT_X_POSITION_58,52,137,54,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP
|
||||
EDITTEXT IDC_EDIT_Y_POSITION_58,52,155,54,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP
|
||||
EDITTEXT IDC_EDIT_Z_POSITION_58,52,173,54,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP
|
||||
LTEXT "mm",IDC_STATIC,73,119,12,8
|
||||
LTEXT "Scale resolution",IDC_STATIC,135,119,51,11
|
||||
PUSHBUTTON "Clear All",IDC_BUTTON_SO7_MANUAL_MACHINE_CLEAR_MSG,280,224,40,17
|
||||
PUSHBUTTON "Save as...",IDC_BUTTON_SO7_MANUAL_MACHINE_SAVE_MSG,280,249,40,17
|
||||
EDITTEXT IDC_EDIT_MANUAL_MACHINE_MSG,19,216,254,63,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
|
||||
CONTROL "Continuous",IDC_CHECK_SO7_MANUAL_MACHINE_READ_POS_CONTINUE,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,271,136,49,10
|
||||
PUSHBUTTON "Read Pos",IDC_BUTTON_SO7_MANUAL_MACHINEREAD_POS,268,155,50,14
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,220,141,49,10
|
||||
PUSHBUTTON "Read Pos",IDC_BUTTON_SO7_MANUAL_MACHINEREAD_POS,217,160,50,14
|
||||
END
|
||||
|
||||
IDD_SO7_UTIL_VERIFICATION_ALGORITHM DIALOGEX 0, 0, 617, 254
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -28,7 +28,18 @@ protected:
|
||||
CEdit m_edMSG;
|
||||
|
||||
public:
|
||||
void _Send_CMD_InitController();
|
||||
BOOL _Send_Common_CMD(const char* _SendData,DWORD _SendDataLength);
|
||||
void _Send_CMD_ReadPositionX();
|
||||
void _Send_CMD_ReadPositionY();
|
||||
void _Send_CMD_ReadPositionZ();
|
||||
void _Process_RecvData();
|
||||
double HEXDataToIntScalePosX(char* _RecvData);
|
||||
double HEXDataToIntScalePosY(char* _RecvData);
|
||||
double HEXDataToIntScalePosZ(char* _RecvData);
|
||||
void UpdatePosDisplay();
|
||||
void OutputWithScroll(const CString &strNewText,CEdit &edtOutput);
|
||||
afx_msg void OnTimer(UINT_PTR nIDEvent);
|
||||
afx_msg void OnBnClickedButtonSo7ManualMachineStartMachine();
|
||||
afx_msg void OnBnClickedButtonSo7ManualMachineStopMachine();
|
||||
afx_msg void OnBnClickedRadioSo7ManualMachineCommonCmd1();
|
||||
@@ -43,4 +54,7 @@ public:
|
||||
afx_msg void OnBnClickedButtonSo7ManualMachineClearMsg();
|
||||
afx_msg void OnBnClickedButtonSo7ManualMachineSaveMsg();
|
||||
afx_msg void OnBnClickedCancel();
|
||||
afx_msg void OnBnClickedButtonSo7ManualMachinereadPos();
|
||||
afx_msg void OnBnClickedCheckSo7ManualMachineReadPosContinue();
|
||||
afx_msg void OnBnClickedRadioSo7ManualMachineCommonCmd4();
|
||||
};
|
||||
|
||||
@@ -743,8 +743,9 @@
|
||||
#define IDC_EDIT_IMAGEDLL_2LASER_MEASURED_VALUE9 1610
|
||||
#define IDC_EDIT_TEST_KEYENCE_SETFOCUS 1650
|
||||
#define IDC_RADIO_SO7_VERIFICATION_ALGORITHM 1651
|
||||
#define IDC_BUTTON4 1652
|
||||
#define IDC_BUTTON_SO7_MANUAL_MACHINEREAD_POS 1652
|
||||
#define IDC_RADIO1 1653
|
||||
#define IDC_RADIO_SO7_MANUAL_MACHINE_COMMON_CMD4 1653
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
@@ -752,7 +753,7 @@
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 168
|
||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
||||
#define _APS_NEXT_CONTROL_VALUE 1653
|
||||
#define _APS_NEXT_CONTROL_VALUE 1654
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user