完善Tesa star e测试功能。
This commit is contained in:
@@ -1,9 +1,7 @@
|
||||
#include "StdAfx.h"
|
||||
#include "TesaStarE.h"
|
||||
|
||||
#define PI 3.1415926535897932384626433
|
||||
#define MAX_BUFF_SIZE 0x200
|
||||
|
||||
const int MAX_RETRY_CNTS=5;
|
||||
//==================================================================
|
||||
CTesaStarE::CTesaStarE(void)
|
||||
{
|
||||
@@ -11,14 +9,19 @@ CTesaStarE::CTesaStarE(void)
|
||||
m_pSerial=NULL;
|
||||
_bReading=FALSE;
|
||||
bEnComm=false;
|
||||
m_TesaStarEAngle[0]=(double)0.0;
|
||||
m_TesaStarEAngle[1]=(double)0.0;
|
||||
memset(m_RecvData,0,sizeof(m_RecvData));
|
||||
|
||||
}
|
||||
//==================================================================
|
||||
CTesaStarE::~CTesaStarE(void)
|
||||
{
|
||||
if (m_pSerial)
|
||||
if (this->m_pSerial)
|
||||
{
|
||||
delete m_pSerial;
|
||||
m_pSerial=NULL;
|
||||
this->m_pSerial->Close();
|
||||
delete this->m_pSerial;
|
||||
this->m_pSerial=NULL;
|
||||
}
|
||||
}
|
||||
//==================================================================
|
||||
@@ -39,8 +42,8 @@ BOOL CTesaStarE::Initialization(bool _bInitConfig)
|
||||
if(m_pSerial->Open())
|
||||
{
|
||||
bEnComm=TRUE;
|
||||
status=TRUE;
|
||||
status=CheckStatus();
|
||||
status=SetPassword();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -58,164 +61,417 @@ BOOL CTesaStarE::Unload()
|
||||
if (m_pSerial)
|
||||
{
|
||||
m_pSerial->Close();
|
||||
delete m_pSerial;
|
||||
m_pSerial=NULL;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
//==================================================================
|
||||
BOOL CTesaStarE::SetTesaStarEAngle(const int& _AngleNumber,double* _Angle,bool _bReturnPosInfo)
|
||||
{
|
||||
BOOL rStatus(FALSE);
|
||||
if (_AngleNumber>=2)
|
||||
{
|
||||
USES_CONVERSION;
|
||||
CString csSendData("");
|
||||
csSendData.Format(L"A%.1f",_Angle[0]);
|
||||
csSendData+=_T("\r");
|
||||
CStringA csaSendData(csSendData);
|
||||
const char* cSendData=csaSendData.GetString();
|
||||
int iSendDataLength=csSendData.GetLength();
|
||||
_Send_Command(cSendData,iSendDataLength);
|
||||
_Receive_Data(m_RecvData,m_RecvDataSize);
|
||||
|
||||
csSendData.Format(L"B%.1f",_Angle[1]);
|
||||
csSendData+=_T("\r");
|
||||
csaSendData=csSendData;
|
||||
const char* cSendData2=csaSendData.GetString();
|
||||
iSendDataLength=csSendData.GetLength();
|
||||
_Send_Command(cSendData2,iSendDataLength);
|
||||
_Receive_Data(m_RecvData,m_RecvDataSize);
|
||||
|
||||
char bSendData[2]={'U',0X0D};
|
||||
iSendDataLength=2;
|
||||
_Send_Command((const char*)bSendData,iSendDataLength);
|
||||
rStatus=_Receive_Data(m_RecvData,m_RecvDataSize);
|
||||
int iRetryCnts(0);
|
||||
if (_bReturnPosInfo)
|
||||
{
|
||||
int iDataStartCnt(0);
|
||||
if(rStatus)
|
||||
{
|
||||
bool IsTheEnd(false);
|
||||
do
|
||||
{
|
||||
if(m_RecvDataSize>16)
|
||||
{
|
||||
rStatus=FALSE;
|
||||
for (int i=0;i<static_cast<int>(m_RecvDataSize);i++)
|
||||
{
|
||||
if (m_RecvData[i]=='U')
|
||||
{
|
||||
rStatus=TRUE;
|
||||
iDataStartCnt=i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ((m_RecvDataSize-iDataStartCnt)<16)
|
||||
{
|
||||
rStatus=FALSE;
|
||||
}
|
||||
if (rStatus)
|
||||
{
|
||||
if (CheckRecvData(4,&m_RecvData[iDataStartCnt],1,bSendData,0))
|
||||
{
|
||||
if (CheckRecvData(3,&m_RecvData[m_RecvDataSize-3],0,bSendData,1))
|
||||
{
|
||||
char CData[10]={0};
|
||||
int jj(0);
|
||||
int iADataStartCnt(0);
|
||||
int iBDataStartCnt(0);
|
||||
for (int i=(iDataStartCnt+4);i<static_cast<int>(m_RecvDataSize-3);i++)
|
||||
{
|
||||
if (m_RecvData[i]=='H' && m_RecvData[i+1]=='A')
|
||||
{
|
||||
iADataStartCnt=i+2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (int i=(iDataStartCnt+4);i<static_cast<int>(m_RecvDataSize-3);i++)
|
||||
{
|
||||
if (m_RecvData[i]=='B')
|
||||
{
|
||||
iBDataStartCnt=i+1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (int i=iADataStartCnt;i<(iBDataStartCnt-1);i++)
|
||||
{
|
||||
if (jj<10)
|
||||
{
|
||||
CData[jj++]=m_RecvData[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
m_TesaStarEAngle[0]=atof(CData);
|
||||
|
||||
memset(CData,0,sizeof(CData));
|
||||
jj=0;
|
||||
for (int i=iBDataStartCnt;i<static_cast<int>(m_RecvDataSize-3);i++)
|
||||
{
|
||||
if (jj<10)
|
||||
{
|
||||
CData[jj++]=m_RecvData[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
m_TesaStarEAngle[1]=atof(CData);
|
||||
IsTheEnd=true;
|
||||
}
|
||||
else
|
||||
{
|
||||
rStatus=_Receive_Data(m_RecvData,m_RecvDataSize);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
rStatus=_Receive_Data(m_RecvData,m_RecvDataSize);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
rStatus=_Receive_Data(m_RecvData,m_RecvDataSize);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
rStatus=_Receive_Data(m_RecvData,m_RecvDataSize);
|
||||
}
|
||||
iRetryCnts++;
|
||||
} while ((!IsTheEnd)&&(iRetryCnts<=MAX_RETRY_CNTS));
|
||||
}
|
||||
if(iRetryCnts>MAX_RETRY_CNTS)
|
||||
{
|
||||
_Angle[0]=0.0;
|
||||
_Angle[1]=0.0;
|
||||
CheckStatus();
|
||||
}
|
||||
else
|
||||
{
|
||||
_Angle[0]=m_TesaStarEAngle[0];
|
||||
_Angle[1]=m_TesaStarEAngle[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
return rStatus;
|
||||
}
|
||||
//==================================================================
|
||||
BOOL CTesaStarE::GetTesaStarEAngle(int& _AngleNumber,double* _Angle)
|
||||
{
|
||||
_AngleNumber=2;
|
||||
_Angle[0]=m_TesaStarEAngle[0];
|
||||
_Angle[1]=m_TesaStarEAngle[1];
|
||||
return TRUE;
|
||||
BOOL rStatus(FALSE);
|
||||
rStatus=ReadTesaStarEAngle();
|
||||
if (rStatus)
|
||||
{
|
||||
_AngleNumber=2;
|
||||
_Angle[0]=m_TesaStarEAngle[0];
|
||||
_Angle[1]=m_TesaStarEAngle[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
_AngleNumber=0;
|
||||
}
|
||||
return rStatus;
|
||||
}
|
||||
//==================================================================
|
||||
BOOL CTesaStarE::ReadTesaStarEAngle()
|
||||
{
|
||||
BOOL rStatus(FALSE);
|
||||
char bSendData[2]={'S',0X0D};
|
||||
int iSendDataLength=2;
|
||||
_Send_Command((const char*)bSendData,iSendDataLength);
|
||||
rStatus=_Receive_Data(m_RecvData,m_RecvDataSize);
|
||||
if(rStatus)
|
||||
{
|
||||
bool IsTheEnd(false);
|
||||
do
|
||||
{
|
||||
if(m_RecvDataSize>16)
|
||||
{
|
||||
if (CheckRecvData(4,m_RecvData,1,bSendData,0))
|
||||
{
|
||||
if (CheckRecvData(3,&m_RecvData[m_RecvDataSize-3],0,bSendData,1))
|
||||
{
|
||||
char CData[10]={0};
|
||||
int jj(0);
|
||||
int iADataStartCnt(0);
|
||||
int iBDataStartCnt(0);
|
||||
for (int i=4;i<static_cast<int>(m_RecvDataSize-3);i++)
|
||||
{
|
||||
if (m_RecvData[i]=='H' && m_RecvData[i+1]=='A')
|
||||
{
|
||||
iADataStartCnt=i+2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (int i=4;i<static_cast<int>(m_RecvDataSize-3);i++)
|
||||
{
|
||||
if (m_RecvData[i]=='B')
|
||||
{
|
||||
iBDataStartCnt=i+1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (int i=iADataStartCnt;i<(iBDataStartCnt-1);i++)
|
||||
{
|
||||
if (jj<10)
|
||||
{
|
||||
CData[jj++]=m_RecvData[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
m_TesaStarEAngle[0]=atof(CData);
|
||||
|
||||
memset(CData,0,sizeof(CData));
|
||||
jj=0;
|
||||
for (int i=iBDataStartCnt;i<static_cast<int>(m_RecvDataSize-3);i++)
|
||||
{
|
||||
if (jj<10)
|
||||
{
|
||||
CData[jj++]=m_RecvData[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
m_TesaStarEAngle[1]=atof(CData);
|
||||
IsTheEnd=true;
|
||||
}
|
||||
else
|
||||
{
|
||||
rStatus=_Receive_Data(m_RecvData,m_RecvDataSize);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
rStatus=_Receive_Data(m_RecvData,m_RecvDataSize);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
rStatus=_Receive_Data(m_RecvData,m_RecvDataSize);
|
||||
}
|
||||
if (!rStatus)
|
||||
{
|
||||
IsTheEnd=true;
|
||||
}
|
||||
} while (!IsTheEnd);
|
||||
}
|
||||
if (!rStatus)
|
||||
{
|
||||
CheckStatus();
|
||||
}
|
||||
return rStatus;
|
||||
}
|
||||
//==================================================================
|
||||
BOOL CTesaStarE::CheckStatus()
|
||||
{
|
||||
BOOL rStatus(FALSE);
|
||||
char bSendData[]={0X0D};
|
||||
int iSendDataLength=1;
|
||||
_Send_Command((const char*)bSendData,iSendDataLength);
|
||||
rStatus=_Receive_Data(m_RecvData,m_RecvDataSize);
|
||||
if(rStatus)
|
||||
{
|
||||
if (CheckRecvData(3,m_RecvData,0,0,1))
|
||||
{
|
||||
rStatus=TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
rStatus=FALSE;
|
||||
}
|
||||
}
|
||||
return rStatus;
|
||||
}
|
||||
//==================================================================
|
||||
BOOL CTesaStarE::SetPassword()
|
||||
{
|
||||
BOOL rStatus(FALSE);
|
||||
char bSendData[]={'P','2','0','0','4',0X0D};
|
||||
int iSendDataLength=6;
|
||||
_Send_Command((const char*)bSendData,iSendDataLength);
|
||||
rStatus=_Receive_Data(m_RecvData,m_RecvDataSize);
|
||||
if(rStatus)
|
||||
{
|
||||
if (CheckRecvData(4,m_RecvData,0,0,2))
|
||||
{
|
||||
rStatus=TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
rStatus=FALSE;
|
||||
}
|
||||
}
|
||||
return rStatus;
|
||||
}
|
||||
//==================================================================
|
||||
void CTesaStarE::LoadConfig()
|
||||
{
|
||||
}
|
||||
//==================================================================
|
||||
BOOL CTesaStarE::ReadTesaStarEAngle()
|
||||
//===================================================
|
||||
BOOL CTesaStarE::CheckRecvData(const int& _ComparedDataSize,char* _ComparedData,const int& _JudgeDataSize,char* _JudgeVal,int _Mode)
|
||||
{
|
||||
return TRUE;
|
||||
BOOL rStatus(FALSE);
|
||||
UNREFERENCED_PARAMETER(_JudgeDataSize);
|
||||
switch(_Mode)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
if (_ComparedDataSize>=4)
|
||||
{
|
||||
if ((_JudgeVal[0]==_ComparedData[0])&&(_ComparedData[1]==0X0D)&&
|
||||
(_ComparedData[2]==0X0A)&&(_ComparedData[3]==0X0D))
|
||||
{
|
||||
rStatus=TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
rStatus=FALSE;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
if (_ComparedDataSize>=3)
|
||||
{
|
||||
if ((_ComparedData[0]==0X0D)&&(_ComparedData[1]==0X0A)&&(_ComparedData[2]==0X0D))
|
||||
{
|
||||
rStatus=TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
rStatus=FALSE;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
if (_ComparedDataSize>=4)
|
||||
{
|
||||
if ((_ComparedData[0]=='P')&&(_ComparedData[1]=='*')&&(_ComparedData[2]=='*')&&(_ComparedData[3]=='*'))
|
||||
{
|
||||
rStatus=TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
rStatus=FALSE;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
rStatus=FALSE;
|
||||
break;
|
||||
}
|
||||
return rStatus;
|
||||
}
|
||||
//==================================================================
|
||||
BOOL CTesaStarE::CheckStatus()
|
||||
//===================================================
|
||||
BOOL CTesaStarE::_Send_Command(const char* _SendData,DWORD _SendDataLength)
|
||||
{
|
||||
return TRUE;
|
||||
/*
|
||||
BOOL rStatus(FALSE);
|
||||
if (bEnComm)
|
||||
{
|
||||
char sendDataI[12]={'U','P',':','1','1','1','1','1','1','1',13,10};
|
||||
char sendDataII[6]={'S','C',':','1',13,10};
|
||||
char sendDataIII[6]={'R','F',':','1',13,10};
|
||||
CString csRightRecv;
|
||||
csRightRecv.Format(_T("@OK\r\n"));
|
||||
CStringA m_csRecv("");
|
||||
INT iRetrys(0);
|
||||
DWORD iWriteByte(0);
|
||||
m_pSerial->m_iRecvState=FALSE;
|
||||
|
||||
//Phase I
|
||||
iWriteByte=m_pSerial->Send(sendDataI,12);
|
||||
while(!m_pSerial->m_iRecvState && iRetrys<20 && iWriteByte==12)
|
||||
DWORD iWriteByte(0);
|
||||
iWriteByte=m_pSerial->Send(_SendData,_SendDataLength);
|
||||
}
|
||||
return rStatus;
|
||||
};
|
||||
//===================================================
|
||||
BOOL CTesaStarE::_Receive_Data(char* _SendData,DWORD& _RecvDataLength)
|
||||
{
|
||||
BOOL rStatus(FALSE);
|
||||
if (bEnComm)
|
||||
{
|
||||
iRetrys++;
|
||||
Sleep(50);
|
||||
INT iRetrys(0);
|
||||
CString csTemp;
|
||||
while(!m_pSerial->m_iRecvState && iRetrys<20)
|
||||
{
|
||||
iRetrys++;
|
||||
Sleep(100);
|
||||
}
|
||||
if (m_pSerial->m_iRecvState)
|
||||
{
|
||||
if(m_pSerial->m_RecvData[0]==0)
|
||||
{
|
||||
m_pSerial->m_iRecvState=FALSE;
|
||||
INT iRetrys2(0);
|
||||
while(!m_pSerial->m_iRecvState && iRetrys2<60)
|
||||
{
|
||||
iRetrys2++;
|
||||
Sleep(100);
|
||||
}
|
||||
}
|
||||
memcpy(_SendData,m_pSerial->m_RecvData,m_pSerial->m_iRecvBytes);
|
||||
_RecvDataLength=m_pSerial->m_iRecvBytes;
|
||||
m_pSerial->m_iRecvState=FALSE;
|
||||
rStatus=TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
rStatus=FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
if (m_pSerial->m_iRecvState)
|
||||
{
|
||||
if(m_pSerial->m_RecvData[0]==0)
|
||||
{
|
||||
m_pSerial->m_iRecvState=FALSE;
|
||||
iRetrys=0;
|
||||
while(!m_pSerial->m_iRecvState && iRetrys<30)
|
||||
{
|
||||
iRetrys++;
|
||||
Sleep(50);
|
||||
}
|
||||
}
|
||||
|
||||
m_csRecv.Format(("%s"),m_pSerial->m_RecvData);
|
||||
if((CString)m_csRecv==csRightRecv)
|
||||
{
|
||||
m_pSerial->m_iRecvState=FALSE;
|
||||
iRetrys=0;
|
||||
iWriteByte=0;
|
||||
//Phase II
|
||||
|
||||
iWriteByte=m_pSerial->Send(sendDataII,6);
|
||||
while(!m_pSerial->m_iRecvState && iRetrys<20 && iWriteByte==6)
|
||||
{
|
||||
iRetrys++;
|
||||
Sleep(50);
|
||||
}
|
||||
if(m_pSerial->m_iRecvState)
|
||||
{
|
||||
if(m_pSerial->m_RecvData[0]==0)
|
||||
{
|
||||
m_pSerial->m_iRecvState=FALSE;
|
||||
iRetrys=0;
|
||||
while(!m_pSerial->m_iRecvState && iRetrys<30)
|
||||
{
|
||||
iRetrys++;
|
||||
Sleep(50);
|
||||
}
|
||||
}
|
||||
|
||||
m_csRecv.Format(("%s"),m_pSerial->m_RecvData);
|
||||
if((CString)m_csRecv==csRightRecv)
|
||||
{
|
||||
m_pSerial->m_iRecvState=FALSE;
|
||||
iRetrys=0;
|
||||
iWriteByte=0;
|
||||
//Phase III
|
||||
|
||||
iWriteByte=m_pSerial->Send(sendDataIII,6);
|
||||
while(!m_pSerial->m_iRecvState && iRetrys<20 && iWriteByte==6)
|
||||
{
|
||||
iRetrys++;
|
||||
Sleep(50);
|
||||
}
|
||||
if(m_pSerial->m_iRecvState)
|
||||
{
|
||||
if(m_pSerial->m_RecvData[0]==0)
|
||||
{
|
||||
m_pSerial->m_iRecvState=FALSE;
|
||||
iRetrys=0;
|
||||
while(!m_pSerial->m_iRecvState && iRetrys<30)
|
||||
{
|
||||
iRetrys++;
|
||||
Sleep(50);
|
||||
}
|
||||
}
|
||||
|
||||
m_csRecv.Format(("%s"),m_pSerial->m_RecvData);
|
||||
if((CString)m_csRecv==csRightRecv)
|
||||
{
|
||||
m_pSerial->m_iRecvState=FALSE;
|
||||
iRetrys=0;
|
||||
iWriteByte=0;
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_pSerial->m_iRecvState=FALSE;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_pSerial->m_iRecvState=FALSE;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
m_pSerial->m_iRecvState=FALSE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
*/
|
||||
}
|
||||
return rStatus;
|
||||
};
|
||||
|
||||
@@ -14,12 +14,19 @@ public:
|
||||
~CTesaStarE(void);
|
||||
BOOL Initialization(bool _bInitConfig=true);
|
||||
BOOL Unload();
|
||||
BOOL CheckStatus();
|
||||
void LoadConfig();
|
||||
BOOL ReadTesaStarEAngle();
|
||||
BOOL SetTesaStarEAngle(const int& _AngleNumber,double* _Angle,bool _bReturnPosInfo=false);
|
||||
BOOL GetTesaStarEAngle(int& _AngleNumber,double* _Angle);
|
||||
CPSerial* m_pSerial;
|
||||
protected:
|
||||
BOOL ReadTesaStarEAngle();
|
||||
BOOL CheckStatus();
|
||||
BOOL SetPassword();
|
||||
BOOL CheckRecvData(const int& _ComparedDataSize,char* _ComparedData,const int& _JudgeDataSize,char* _JudgeVal,int _Mode);
|
||||
BOOL _Send_Command(const char* _SendData,DWORD _SendDataLength);
|
||||
BOOL _Receive_Data(char* _SendData,DWORD& _SendDataLength);
|
||||
char m_RecvData[MAX_RECIEVE_BUFFER_SIZE];
|
||||
DWORD m_RecvDataSize;
|
||||
int SerialComPort;
|
||||
BOOL _bReading;
|
||||
BOOL bEnComm;
|
||||
|
||||
@@ -824,12 +824,19 @@ BEGIN
|
||||
PUSHBUTTON "Exit",IDCANCEL,346,249,50,14
|
||||
PUSHBUTTON "Start",IDC_BUTTON_TESA_STAR_START_MACHINE,27,30,50,14
|
||||
PUSHBUTTON "Stop",IDC_BUTTON_TESA_STAR_STOP_MACHINE,27,59,50,14
|
||||
EDITTEXT IDC_EDIT_MOVETO_DEG,209,31,40,14,ES_AUTOHSCROLL
|
||||
PUSHBUTTON "MoveTo",IDC_BUTTONIDC_BUTTON_TESA_STAR_MOVETO,207,59,50,14
|
||||
EDITTEXT IDC_EDIT_TESA_STAR_MESSAGE,119,31,40,14,ES_AUTOHSCROLL
|
||||
PUSHBUTTON "Send Message",IDC_BUTTON_TESA_STAR_SENDMSG,113,59,50,14
|
||||
EDITTEXT IDC_EDIT_MOVETO_DEG,184,55,40,14,ES_AUTOHSCROLL
|
||||
PUSHBUTTON "MoveTo",IDC_BUTTONIDC_BUTTON_TESA_STAR_MOVETO,231,44,50,14
|
||||
EDITTEXT IDC_EDIT_TESA_STAR_MESSAGE,105,31,40,14,ES_AUTOHSCROLL
|
||||
PUSHBUTTON "Send Message",IDC_BUTTON_TESA_STAR_SENDMSG,102,59,50,14
|
||||
EDITTEXT IDC_EDIT_TESA_STAR_E_LOG,20,88,326,161,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
|
||||
PUSHBUTTON "Clear all",IDC_BUTTON_TESA_STAR_CLEAR_LOG,351,170,38,14
|
||||
PUSHBUTTON "Read",IDC_BUTTONIDC_BUTTON_TESA_STAR_READ_POS,290,44,50,14
|
||||
GROUPBOX "Machine",IDC_STATIC,20,15,67,65
|
||||
GROUPBOX "CMD",IDC_STATIC,93,16,67,65
|
||||
GROUPBOX "Motion",IDC_STATIC,167,16,180,65
|
||||
LTEXT "A",IDC_STATIC,174,35,8,8
|
||||
LTEXT "B",IDC_STATIC,174,57,8,8
|
||||
EDITTEXT IDC_EDIT_MOVETO_DEGA,184,33,40,14,ES_AUTOHSCROLL
|
||||
END
|
||||
|
||||
|
||||
|
||||
@@ -8,6 +8,10 @@
|
||||
#include "afxdialogex.h"
|
||||
|
||||
extern CTesaStarE* g_pTesaStarE;
|
||||
char m_RecvData[MAX_RECIEVE_BUFFER_SIZE]={0};
|
||||
double m_MoveToPos[2]={0.0};
|
||||
int m_SendType=1;
|
||||
|
||||
// TestTesaStarEDialog dialog
|
||||
|
||||
IMPLEMENT_DYNAMIC(TestTesaStarEDialog, CDialog)
|
||||
@@ -15,7 +19,7 @@ IMPLEMENT_DYNAMIC(TestTesaStarEDialog, CDialog)
|
||||
TestTesaStarEDialog::TestTesaStarEDialog(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(TestTesaStarEDialog::IDD, pParent)
|
||||
{
|
||||
m_SendType=1;
|
||||
m_OutMessage=L"";
|
||||
}
|
||||
|
||||
TestTesaStarEDialog::~TestTesaStarEDialog()
|
||||
@@ -38,6 +42,8 @@ BEGIN_MESSAGE_MAP(TestTesaStarEDialog, CDialog)
|
||||
ON_BN_CLICKED(IDC_BUTTON_TESA_STAR_STOP_MACHINE, &TestTesaStarEDialog::OnBnClickedButtonTesaStarStopMachine)
|
||||
ON_BN_CLICKED(IDC_BUTTON_TESA_STAR_SENDMSG, &TestTesaStarEDialog::OnBnClickedButtonTesaStarSendmsg)
|
||||
ON_BN_CLICKED(IDC_BUTTON_TESA_STAR_CLEAR_LOG, &TestTesaStarEDialog::OnBnClickedButtonTesaStarClearLog)
|
||||
ON_BN_CLICKED(IDC_BUTTONIDC_BUTTON_TESA_STAR_READ_POS, &TestTesaStarEDialog::OnBnClickedButtonidcButtonTesaStarReadPos)
|
||||
ON_EN_KILLFOCUS(IDC_EDIT_MOVETO_DEGA, &TestTesaStarEDialog::OnEnKillfocusEditMovetoDega)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
@@ -83,23 +89,10 @@ BOOL TestTesaStarEDialog::OnInitDialog()
|
||||
|
||||
void TestTesaStarEDialog::OnBnClickedCancel()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
g_pTesaStarE->Unload();
|
||||
CDialog::OnCancel();
|
||||
}
|
||||
|
||||
|
||||
void TestTesaStarEDialog::OnEnKillfocusEditMoveT_Deg()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
}
|
||||
|
||||
|
||||
void TestTesaStarEDialog::OnBnClickedButtonidcButtonTesaStarMoveto()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
}
|
||||
|
||||
|
||||
void TestTesaStarEDialog::OnBnClickedButtonTesaStarStartMachine()
|
||||
{
|
||||
g_pTesaStarE->Initialization();
|
||||
@@ -245,6 +238,48 @@ void TestTesaStarEDialog::OnBnClickedButtonTesaStarClearLog()
|
||||
GetDlgItem(IDC_EDIT_TESA_STAR_E_LOG)->SetWindowTextW(_T(""));
|
||||
}
|
||||
|
||||
|
||||
void TestTesaStarEDialog::OnEnKillfocusEditMoveT_Deg()
|
||||
{
|
||||
UpdateData(TRUE);
|
||||
USES_CONVERSION;
|
||||
CString csMoveToPos(L"");
|
||||
GetDlgItem(IDC_EDIT_MOVETO_DEG)->GetWindowText(csMoveToPos);
|
||||
const char* cMove_to_Pos=T2A(csMoveToPos);
|
||||
m_MoveToPos[1]=atof(cMove_to_Pos);
|
||||
}
|
||||
void TestTesaStarEDialog::OnEnKillfocusEditMovetoDega()
|
||||
{
|
||||
UpdateData(TRUE);
|
||||
USES_CONVERSION;
|
||||
CString csMoveToPos(L"");
|
||||
GetDlgItem(IDC_EDIT_MOVETO_DEGA)->GetWindowText(csMoveToPos);
|
||||
const char* cMove_to_Pos=T2A(csMoveToPos);
|
||||
m_MoveToPos[0]=atof(cMove_to_Pos);
|
||||
}
|
||||
|
||||
|
||||
void TestTesaStarEDialog::OnBnClickedButtonidcButtonTesaStarMoveto()
|
||||
{
|
||||
double dMovetoPos[2]={0.0};
|
||||
dMovetoPos[0]=m_MoveToPos[0];
|
||||
dMovetoPos[1]=m_MoveToPos[1];
|
||||
g_pTesaStarE->SetTesaStarEAngle(2,dMovetoPos,true);
|
||||
m_OutMessage.Format(_T("[Move Finished]A:%.4f;B:%.4f"),dMovetoPos[0],dMovetoPos[1]);
|
||||
OutputWithScroll(m_OutMessage,m_edMSG);
|
||||
}
|
||||
|
||||
void TestTesaStarEDialog::OnBnClickedButtonidcButtonTesaStarReadPos()
|
||||
{
|
||||
int iDataSize(0);
|
||||
double dData[2]={0.0};
|
||||
g_pTesaStarE->GetTesaStarEAngle(iDataSize,dData);
|
||||
m_OutMessage.Format(_T("A:%.4f;B:%.4f"),dData[0],dData[1]);
|
||||
OutputWithScroll(m_OutMessage,m_edMSG);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
//Print message on edit control
|
||||
void TestTesaStarEDialog::OutputWithScroll(const CString &strNewText,CEdit &edtOutput)
|
||||
@@ -266,3 +301,5 @@ void TestTesaStarEDialog::OutputWithScroll(const CString &strNewText,CEdit &edtO
|
||||
edtOutput.SetSel(iCount, iCount);
|
||||
edtOutput.SetRedraw(TRUE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -22,9 +22,6 @@ protected:
|
||||
CEdit m_edMSG;
|
||||
CString m_OutMessage;
|
||||
CStatusBarCtrl m_StatusBar;
|
||||
int m_SendType;
|
||||
char m_RecvData[MAX_RECIEVE_BUFFER_SIZE];
|
||||
|
||||
public:
|
||||
void OutputWithScroll(const CString &strNewText,CEdit &edtOutput);
|
||||
afx_msg void OnBnClickedCancel();
|
||||
@@ -34,4 +31,6 @@ public:
|
||||
afx_msg void OnBnClickedButtonTesaStarStopMachine();
|
||||
afx_msg void OnBnClickedButtonTesaStarSendmsg();
|
||||
afx_msg void OnBnClickedButtonTesaStarClearLog();
|
||||
afx_msg void OnBnClickedButtonidcButtonTesaStarReadPos();
|
||||
afx_msg void OnEnKillfocusEditMovetoDega();
|
||||
};
|
||||
|
||||
@@ -866,10 +866,12 @@
|
||||
#define IDC_RADIO_MACHINE_TESASTARE 1806
|
||||
#define IDC_EDIT_MOVETO_DEG 1807
|
||||
#define IDC_BUTTON_TESA_STAR_SENDMSG 1808
|
||||
#define IDC_EDIT2 1809
|
||||
#define IDC_EDIT_TESA_STAR_E_LOG 1809
|
||||
#define IDC_BUTTON_TESA_STAR_CLEAR_LOG 1810
|
||||
#define IDC_EDIT_TESA_STAR_MESSAGE 1811
|
||||
#define IDC_BUTTONIDC_BUTTON_TESA_STAR_READ_POS 1812
|
||||
#define IDC_EDIT_MOVETO_DEG2 1813
|
||||
#define IDC_EDIT_MOVETO_DEGA 1813
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
@@ -877,7 +879,7 @@
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 189
|
||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
||||
#define _APS_NEXT_CONTROL_VALUE 1812
|
||||
#define _APS_NEXT_CONTROL_VALUE 1813
|
||||
#define _APS_NEXT_SYMED_VALUE 104
|
||||
#endif
|
||||
#endif
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user