新增Tesa star e测试功能。

This commit is contained in:
TAO Cheng
2013-12-05 18:16:31 +08:00
parent f5ce9cc087
commit 4632da1b05
14 changed files with 685 additions and 20 deletions
@@ -0,0 +1,221 @@
#include "StdAfx.h"
#include "TesaStarE.h"
#define PI 3.1415926535897932384626433
#define MAX_BUFF_SIZE 0x200
//==================================================================
CTesaStarE::CTesaStarE(void)
{
SerialComPort=1;
m_pSerial=NULL;
_bReading=FALSE;
bEnComm=false;
}
//==================================================================
CTesaStarE::~CTesaStarE(void)
{
if (m_pSerial)
{
delete m_pSerial;
m_pSerial=NULL;
}
}
//==================================================================
BOOL CTesaStarE::Initialization(bool _bInitConfig)
{
BOOL status(FALSE);
if (!m_pSerial)
{
m_pSerial = new CPSerial();
}
if (_bInitConfig)
{
LoadConfig();
}
if (m_pSerial)
{
m_pSerial->SetPort(SerialComPort,TESASTARE_BAUD,TESASTARE_PARITY,TESASTARE_BITS,TESASTARE_STOPBITS,TESASTARE_HandShake);
if(m_pSerial->Open())
{
bEnComm=TRUE;
status=TRUE;
status=CheckStatus();
}
else
{
status=FALSE;
bEnComm=FALSE;
delete m_pSerial;
m_pSerial=NULL;
}
}
return status;
}
//==================================================================
BOOL CTesaStarE::Unload()
{
if (m_pSerial)
{
m_pSerial->Close();
}
return TRUE;
}
//==================================================================
BOOL CTesaStarE::GetTesaStarEAngle(int& _AngleNumber,double* _Angle)
{
_AngleNumber=2;
_Angle[0]=m_TesaStarEAngle[0];
_Angle[1]=m_TesaStarEAngle[1];
return TRUE;
}
//==================================================================
void CTesaStarE::LoadConfig()
{
}
//==================================================================
BOOL CTesaStarE::ReadTesaStarEAngle()
{
return TRUE;
}
//==================================================================
BOOL CTesaStarE::CheckStatus()
{
return TRUE;
/*
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)
{
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 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;
}
*/
}
@@ -0,0 +1,30 @@
#ifndef _TesaStarE_H_
#define _TesaStarE_H_
#include "..\SevenOcean\CMMIO_SERIAL.H"
#define TESASTARE_BAUD CBR_1200
#define TESASTARE_PARITY 'N'
#define TESASTARE_BITS 8
#define TESASTARE_STOPBITS 1
#define TESASTARE_HandShake CS_HANDSHAKE_FOR_TRESASTR_E
class CTesaStarE
{
public:
CTesaStarE(void);
~CTesaStarE(void);
BOOL Initialization(bool _bInitConfig=true);
BOOL Unload();
BOOL CheckStatus();
void LoadConfig();
BOOL ReadTesaStarEAngle();
BOOL GetTesaStarEAngle(int& _AngleNumber,double* _Angle);
CPSerial* m_pSerial;
protected:
int SerialComPort;
BOOL _bReading;
BOOL bEnComm;
double m_TesaStarEAngle[2];
};
#endif