新增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
@@ -44,7 +44,7 @@ CPSerial::CPSerial()
{
// Serial port is not open
m_PortHandle = INVALID_HANDLE_VALUE;
m_IsWrtingData=FALSE;
// Default port settings
m_Port = 1;
m_Baud = CBR_115200;
@@ -323,6 +323,7 @@ DWORD CPSerial::Close()
DWORD CPSerial::Send(LPCSTR buffer, int l, BOOL /*needsResponse=FALSE*/)
{
m_IsWrtingData=TRUE;
return ( WritePort ((const char*) buffer, (DWORD) l));
}
@@ -488,10 +489,21 @@ void CPSerial::OnReceive()
CurrentPointer = 0;
int num = ReadPort(s, MAX_RECIEVE_BUFFER_SIZE);
if ((num>0) && (num<MAX_RECIEVE_BUFFER_SIZE))
{
memset(m_RecvData,0,MAX_RECIEVE_BUFFER_SIZE);
memcpy(m_RecvData,s, num);
m_iRecvBytes=num;
{
if(m_IsWrtingData)
{
memset(m_RecvData,0,MAX_RECIEVE_BUFFER_SIZE);
m_IsWrtingData=FALSE;
m_iRecvBytes=0;
}
TRACE1("----RECV%d----\r\n",num);
TRACE3("%02X %02X %02X ",s[0],s[1],s[2]);
TRACE3("%02X %02X %02X ",s[3],s[4],s[5]);
TRACE3("%02X %02X %02X\r\n",s[6],s[7],s[8]);
for(int i=0;i<num;i++)
{
m_RecvData[m_iRecvBytes++]=s[i];
}
m_iRecvState=TRUE;
}
//LineReceive(s, num);
@@ -639,6 +651,17 @@ int CPSerial::ProgramPort(int Port,int Baud,char Parity,int Bits,int StopBits,in
SerialDCB.fOutxDsrFlow=FALSE;
SerialDCB.XonLim=2048;
SerialDCB.XoffLim=512;
case CS_HANDSHAKE_FOR_TRESASTR_E:
SerialDCB.EofChar = 26;
SerialDCB.XonChar = 17;
SerialDCB.XoffChar = 19;
SerialDCB.fOutX=TRUE;
SerialDCB.fInX=TRUE;
SerialDCB.fRtsControl=RTS_CONTROL_DISABLE;
SerialDCB.fDtrControl = DTR_CONTROL_ENABLE;
SerialDCB.fDsrSensitivity=FALSE;
SerialDCB.XonLim=256;
SerialDCB.XoffLim=256;
break;
default:
break;
@@ -704,6 +727,18 @@ int CPSerial::ProgramPort(int Port,int Baud,char Parity,int Bits,int StopBits,in
SerialDCB.XonLim=2048;
SerialDCB.XoffLim=512;
break;
case CS_HANDSHAKE_FOR_TRESASTR_E:
SerialDCB.EofChar = 26;
SerialDCB.XonChar = 17;
SerialDCB.XoffChar = 19;
SerialDCB.fOutX=TRUE;
SerialDCB.fInX=TRUE;
SerialDCB.fRtsControl=RTS_CONTROL_DISABLE;
SerialDCB.fDtrControl = DTR_CONTROL_ENABLE;
SerialDCB.fDsrSensitivity=FALSE;
SerialDCB.XonLim=256;
SerialDCB.XoffLim=256;
break;
default:
break;
}
@@ -56,6 +56,7 @@ const int CS_HANDSHAKE_XONXOFF = 2;
const int CS_HANDSHAKE_NONE = 3;
const int CS_HANDSHAKE_RTSCTS_DTRDSR = 4;
const int CS_HANDSHAKE_FOR_SO7 = 5;
const int CS_HANDSHAKE_FOR_TRESASTR_E = 6;
@@ -178,6 +179,7 @@ private:
//Buffer for incomming commands:
int CurrentPointer;
BOOL m_IsWrtingData;
public:
HANDLE m_hWaitCMMResponse;
HANDLE m_hNewRx;
@@ -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
@@ -2389,3 +2389,8 @@ Init:Open device succeed .
_start_machine
Construct Cso7_Proto.
Init:Open device succeed .
_start_machine
Exit: Exit_SO7Usb
@@ -16,12 +16,15 @@
#include "Animatics_UtilDlg.h"
#include "SO7_UtilDlg.h"
#include "So7_Option.h"
#include "..\..\..\Tesa\TesaStarE.h"
#include "TestTesaStarEDialog.h"
#include "Mv_MainDlg.h"
#include "KeyenceTM065_Dlg.h"
CMv_Proto *m_pMv_Proto = NULL;
CKeyenceTM065_Proto *m_pKeyenceTM065_Proto = NULL;
SmartMotor_Proto *pSmartMotor_Proto = NULL;
CTesaStarE *g_pTesaStarE= NULL;
IMPLEMENT_DYNAMIC(CMv_MainDlg, CDialogEx)
@@ -89,12 +92,21 @@ void CMv_MainDlg::OnBnClickedButtonDiagnostics()
pCKeyenceTM065_Dlg->DoModal();
delete pCKeyenceTM065_Dlg;
}
else if (((CButton *)GetDlgItem(IDC_RADIO_MACHINE_SevenOcean))->GetCheck())
{
CSo7_Option* pSo7_Option_Dlg = new CSo7_Option();
pSo7_Option_Dlg->DoModal();
delete pSo7_Option_Dlg;
};
else if (((CButton *)GetDlgItem(IDC_RADIO_MACHINE_TESASTARE))->GetCheck())
{
if (!g_pTesaStarE)
{
g_pTesaStarE=new CTesaStarE();
}
TestTesaStarEDialog* pTestTesaStarEDialog = new TestTesaStarEDialog();
pTestTesaStarEDialog->DoModal();
delete pTestTesaStarEDialog;
if (g_pTesaStarE)
{
delete g_pTesaStarE;
g_pTesaStarE=nullptr;
}
};
}
//===========================================================================
@@ -138,13 +150,16 @@ void CMv_MainDlg::OnBnClickedOk()
//===========================================================================
BOOL CMv_MainDlg::OnInitDialog()
{
((CButton *)GetDlgItem(IDC_RADIO_MACHINE_MITUTOYO))->SetCheck(false);
((CButton *)GetDlgItem(IDC_RADIO_MACHINE_MICROVU))->SetCheck(false);
((CButton *)GetDlgItem(IDC_RADIO_MACHINE_SevenOcean))->SetCheck(false);
((CButton *)GetDlgItem(IDC_RADIO_MACHINE_TM_065))->SetCheck(true);
((CButton *)GetDlgItem(IDC_RADIO_MACHINE_ANIMATICS))->SetCheck(false);
((CButton *)GetDlgItem(IDC_BUTTON_PROTOCOL_ANALYZER))->EnableWindow(true);
((CButton *)GetDlgItem(IDC_BUTTON_FILE_UTILITIES))->EnableWindow(true);
((CButton *)GetDlgItem(IDC_RADIO_MACHINE_MITUTOYO))->SetCheck(false);
((CButton *)GetDlgItem(IDC_RADIO_MACHINE_MICROVU))->SetCheck(false);
((CButton *)GetDlgItem(IDC_RADIO_MACHINE_SevenOcean))->SetCheck(false);
((CButton *)GetDlgItem(IDC_RADIO_MACHINE_TM_065))->SetCheck(false);
((CButton *)GetDlgItem(IDC_RADIO_MACHINE_ANIMATICS))->SetCheck(false);
((CButton *)GetDlgItem(IDC_RADIO_MACHINE_TESASTARE))->SetCheck(true);
((CButton *)GetDlgItem(IDC_BUTTON_PROTOCOL_ANALYZER))->EnableWindow(true);
((CButton *)GetDlgItem(IDC_BUTTON_FILE_UTILITIES))->EnableWindow(true);
return TRUE;
};
@@ -816,6 +816,22 @@ BEGIN
GROUPBOX "Times",IDC_STATIC,91,25,54,56
END
IDD_DIALOG_TESA_STAR_E DIALOGEX 0, 0, 403, 284
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "TESASTAR-e"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
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_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
END
/////////////////////////////////////////////////////////////////////////////
//
@@ -939,6 +955,14 @@ BEGIN
TOPMARGIN, 7
BOTTOMMARGIN, 379
END
IDD_DIALOG_TESA_STAR_E, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 396
TOPMARGIN, 7
BOTTOMMARGIN, 277
END
END
#endif // APSTUDIO_INVOKED
@@ -1751,6 +1775,7 @@ BEGIN
CONTROL "SO7",IDC_RADIO_MACHINE_SevenOcean,"Button",BS_AUTORADIOBUTTON,22,96,30,8
CONTROL "Animatics",IDC_RADIO_MACHINE_ANIMATICS,"Button",BS_AUTORADIOBUTTON,69,96,46,8
CONTROL "Generic",IDC_RADIO_MACHINE_GENERIC,"Button",BS_AUTORADIOBUTTON,124,96,39,8
CONTROL "TESASTAR-e",IDC_RADIO_MACHINE_TESASTARE,"Button",BS_AUTORADIOBUTTON,177,78,57,10
PUSHBUTTON "Auto Test",IDC_BUTTON_AUTO_TEST,16,127,79,30
PUSHBUTTON "Diagnostics",IDC_BUTTON_DIAGNOSTICS,16,162,79,30
PUSHBUTTON "Protocol Analyzer",IDC_BUTTON_PROTOCOL_ANALYZER,21,23,67,30
@@ -0,0 +1,268 @@
// TestTesaStarEDialog.cpp : implementation file
//
#include "stdafx.h"
#include "resource.h"
#include "..\..\..\Tesa\TesaStarE.h"
#include "TestTesaStarEDialog.h"
#include "afxdialogex.h"
extern CTesaStarE* g_pTesaStarE;
// TestTesaStarEDialog dialog
IMPLEMENT_DYNAMIC(TestTesaStarEDialog, CDialog)
TestTesaStarEDialog::TestTesaStarEDialog(CWnd* pParent /*=NULL*/)
: CDialog(TestTesaStarEDialog::IDD, pParent)
{
m_SendType=1;
}
TestTesaStarEDialog::~TestTesaStarEDialog()
{
}
void TestTesaStarEDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_EDIT_TESA_STAR_E_LOG, m_edMSG);
}
BEGIN_MESSAGE_MAP(TestTesaStarEDialog, CDialog)
ON_BN_CLICKED(IDCANCEL, &TestTesaStarEDialog::OnBnClickedCancel)
ON_EN_KILLFOCUS(IDC_EDIT_MOVETO_DEG, &TestTesaStarEDialog::OnEnKillfocusEditMoveT_Deg)
ON_BN_CLICKED(IDC_BUTTONIDC_BUTTON_TESA_STAR_MOVETO, &TestTesaStarEDialog::OnBnClickedButtonidcButtonTesaStarMoveto)
ON_BN_CLICKED(IDC_BUTTON_TESA_STAR_START_MACHINE, &TestTesaStarEDialog::OnBnClickedButtonTesaStarStartMachine)
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)
END_MESSAGE_MAP()
// TestTesaStarEDialog message handlers
//===================================================
BOOL TestTesaStarEDialog::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
//===============================================================================
// 创建状态栏
m_StatusBar.Create(WS_CHILD|WS_VISIBLE|SBS_SIZEGRIP, CRect(0, 0, 0, 0), this, 101);
m_StatusBar.SetBkColor(RGB(0xff, 0xff, 0x00));
int arWidth[] = {330,450, -1 };
m_StatusBar.SetParts(3, arWidth);
m_StatusBar.SetText(_T("System ready."), 0, 0);
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
}
void TestTesaStarEDialog::OnBnClickedCancel()
{
// TODO: Add your control notification handler code here
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();
}
void TestTesaStarEDialog::OnBnClickedButtonTesaStarStopMachine()
{
g_pTesaStarE->Unload();
}
void TestTesaStarEDialog::OnBnClickedButtonTesaStarSendmsg()
{
UpdateData(TRUE);
USES_CONVERSION;
CString csSendData(L"");
GetDlgItem(IDC_EDIT_TESA_STAR_MESSAGE)->GetWindowText(csSendData);
const char* cSendData=T2A(csSendData);
DWORD iSendDataLength(0);
DWORD iWriteByte(0);
if (m_SendType==0)
{
char* stop;
BYTE bSendData[MAX_OUTPUT_BUFFER_SIZE]={0};
iSendDataLength=(csSendData.GetLength()+1)/3;
for(DWORD i=0;i<iSendDataLength;i++)
{
bSendData[i]=(BYTE)strtol(cSendData+i*3,&stop,16);
}
iWriteByte=g_pTesaStarE->m_pSerial->Send((const char*)bSendData,iSendDataLength);
}
else
{
//加上回车换行符
csSendData+=_T("\r");
cSendData=T2A(csSendData);
iSendDataLength=csSendData.GetLength();
iWriteByte=g_pTesaStarE->m_pSerial->Send(cSendData,iSendDataLength);
}
m_OutMessage=_T("[Send] ")+csSendData;
OutputWithScroll(m_OutMessage,m_edMSG);
m_OutMessage.Format(_T("Send(%dByte)"),iWriteByte);
m_StatusBar.SetText(m_OutMessage, 1, 0);
//接受数据
INT iRetrys(0);
INT iRecvBytes(0);
CString csTemp;
bool IsTheEnd(false);
do
{
iRetrys=0;
while(!g_pTesaStarE->m_pSerial->m_iRecvState && iRetrys<20)
{
iRetrys++;
Sleep(100);
}
if (g_pTesaStarE->m_pSerial->m_iRecvState)
{
if(g_pTesaStarE->m_pSerial->m_RecvData[0]==0)
{
g_pTesaStarE->m_pSerial->m_iRecvState=FALSE;
INT iRetrys2(0);
while(!g_pTesaStarE->m_pSerial->m_iRecvState && iRetrys2<60)
{
iRetrys2++;
Sleep(100);
}
m_OutMessage=_T("[Recv]");
memcpy(m_RecvData,g_pTesaStarE->m_pSerial->m_RecvData, g_pTesaStarE->m_pSerial->m_iRecvBytes);
iRecvBytes=g_pTesaStarE->m_pSerial->m_iRecvBytes;
TRACE1("====RECV%d====\r\n",g_pTesaStarE->m_pSerial->m_iRecvBytes);
TRACE3("%02X %02X %02X ",g_pTesaStarE->m_pSerial->m_RecvData[0],g_pTesaStarE->m_pSerial->m_RecvData[1],g_pTesaStarE->m_pSerial->m_RecvData[2]);
TRACE3("%02X %02X %02X ",g_pTesaStarE->m_pSerial->m_RecvData[3],g_pTesaStarE->m_pSerial->m_RecvData[4],g_pTesaStarE->m_pSerial->m_RecvData[5]);
TRACE3("%02X %02X %02X\r\n",g_pTesaStarE->m_pSerial->m_RecvData[6],g_pTesaStarE->m_pSerial->m_RecvData[7],g_pTesaStarE->m_pSerial->m_RecvData[8]);
for (INT i=0;i<iRecvBytes;i++)
{
if((BYTE)m_RecvData[i]>32)
csTemp.Format(_T("%c "),(BYTE)m_RecvData[i]);
else
csTemp=_T("|");
m_OutMessage+=csTemp;
}
OutputWithScroll(m_OutMessage,m_edMSG);
m_OutMessage.Format(_T("Recv(%dByte)"),iRecvBytes);
m_StatusBar.SetText(m_OutMessage, 2, 0);
}
else
{
m_OutMessage=_T("[Recv]");
memcpy(m_RecvData,g_pTesaStarE->m_pSerial->m_RecvData, g_pTesaStarE->m_pSerial->m_iRecvBytes);
iRecvBytes=g_pTesaStarE->m_pSerial->m_iRecvBytes;
TRACE1("====RECV%d====\r\n",g_pTesaStarE->m_pSerial->m_iRecvBytes);
TRACE3("%02X %02X %02X ",g_pTesaStarE->m_pSerial->m_RecvData[0],g_pTesaStarE->m_pSerial->m_RecvData[1],g_pTesaStarE->m_pSerial->m_RecvData[2]);
TRACE3("%02X %02X %02X ",g_pTesaStarE->m_pSerial->m_RecvData[3],g_pTesaStarE->m_pSerial->m_RecvData[4],g_pTesaStarE->m_pSerial->m_RecvData[5]);
TRACE3("%02X %02X %02X\r\n",g_pTesaStarE->m_pSerial->m_RecvData[6],g_pTesaStarE->m_pSerial->m_RecvData[7],g_pTesaStarE->m_pSerial->m_RecvData[8]);
for (INT i=0;i<iRecvBytes;i++)
{
if((BYTE)m_RecvData[i]>32)
csTemp.Format(_T("%c "),(BYTE)m_RecvData[i]);
else
csTemp=_T("|");
m_OutMessage+=csTemp;
}
OutputWithScroll(m_OutMessage,m_edMSG);
m_OutMessage.Format(_T("Recv(%dByte)"),iRecvBytes);
m_StatusBar.SetText(m_OutMessage, 2, 0);
}
g_pTesaStarE->m_pSerial->m_iRecvState=FALSE;
}
else
{
m_StatusBar.SetText(_T("Time Out!"), 2, 0);
BYTE bSendData[MAX_OUTPUT_BUFFER_SIZE]={0x0d};
iWriteByte=g_pTesaStarE->m_pSerial->Send((const char*)bSendData,1);
}
iRecvBytes=g_pTesaStarE->m_pSerial->m_iRecvBytes;
if(iRecvBytes<3)
{
iRecvBytes=3;
}
if ((m_RecvData[iRecvBytes-1]==0X0D)&&
(m_RecvData[iRecvBytes-2]==0X0A)&&
(m_RecvData[iRecvBytes-3]==0X0D))
{
IsTheEnd=true;
}
} while (!IsTheEnd);
}
void TestTesaStarEDialog::OnBnClickedButtonTesaStarClearLog()
{
GetDlgItem(IDC_EDIT_TESA_STAR_E_LOG)->SetWindowTextW(_T(""));
}
//=====================================================================================
//Print message on edit control
void TestTesaStarEDialog::OutputWithScroll(const CString &strNewText,CEdit &edtOutput)
{
CString strOutput;
edtOutput.GetWindowText(strOutput);
strOutput += strNewText;
if ("\r\n" != strOutput.Right(2))
{
strOutput += "\r\n";
}
int iCount = strOutput.GetLength();
edtOutput.SetRedraw(FALSE);
edtOutput.SetWindowText(strOutput);
int iLine = edtOutput.GetLineCount();
edtOutput.LineScroll(iLine, 0);
edtOutput.SetSel(iCount, iCount);
edtOutput.SetRedraw(TRUE);
}
@@ -0,0 +1,37 @@
#pragma once
// TestTesaStarEDialog dialog
class TestTesaStarEDialog : public CDialog
{
DECLARE_DYNAMIC(TestTesaStarEDialog)
public:
TestTesaStarEDialog(CWnd* pParent = NULL); // standard constructor
virtual ~TestTesaStarEDialog();
// Dialog Data
enum { IDD = IDD_DIALOG_TESA_STAR_E };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP()
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();
afx_msg void OnEnKillfocusEditMoveT_Deg();
afx_msg void OnBnClickedButtonidcButtonTesaStarMoveto();
afx_msg void OnBnClickedButtonTesaStarStartMachine();
afx_msg void OnBnClickedButtonTesaStarStopMachine();
afx_msg void OnBnClickedButtonTesaStarSendmsg();
afx_msg void OnBnClickedButtonTesaStarClearLog();
};
@@ -319,6 +319,7 @@
<ClCompile Include="..\..\..\SevenOcean\Serial.cpp" />
<ClCompile Include="..\..\..\SevenOcean\So7_Interface.cpp" />
<ClCompile Include="..\..\..\SevenOcean\SO7_Proto.cpp" />
<ClCompile Include="..\..\..\Tesa\TesaStarE.cpp" />
<ClCompile Include="..\LOGGER.CPP" />
<ClCompile Include="..\Proto_Util.cpp" />
<ClCompile Include="AboutDlg.cpp" />
@@ -361,6 +362,7 @@
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='ReleaseSO7|x64'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="TestTesaStarEDialog.cpp" />
<ClCompile Include="Videocard_SDK3000.cpp" />
<ClCompile Include="Videocard_SV2000E.cpp" />
<ClCompile Include="Videocard_SV4000E.cpp" />
@@ -391,6 +393,7 @@
<ClInclude Include="..\..\..\SevenOcean\Serial.h" />
<ClInclude Include="..\..\..\SevenOcean\So7_Interface.h" />
<ClInclude Include="..\..\..\SevenOcean\SO7_Proto.h" />
<ClInclude Include="..\..\..\Tesa\TesaStarE.h" />
<ClInclude Include="..\..\..\Videocard\SDK3000\sdk3000_7130.h" />
<ClInclude Include="..\Proto_Util.h" />
<ClInclude Include="AboutDlg.h" />
@@ -429,6 +432,7 @@
<ClInclude Include="STATUS_MOTION.H" />
<ClInclude Include="stdafx.h" />
<ClInclude Include="targetver.h" />
<ClInclude Include="TestTesaStarEDialog.h" />
<ClInclude Include="VideoCardDefine.h" />
<ClInclude Include="Videocard_SDK3000.h" />
<ClInclude Include="Videocard_SV2000E.h" />
@@ -169,6 +169,12 @@
<ClCompile Include="KeyenceLKH_Dlg.cpp">
<Filter>Sources Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Tesa\TesaStarE.cpp">
<Filter>Sources Files</Filter>
</ClCompile>
<ClCompile Include="TestTesaStarEDialog.cpp">
<Filter>Sources Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="CaptureDataDlg.h">
@@ -372,6 +378,12 @@
<ClInclude Include="KeyenceLKH_Dlg.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Tesa\TesaStarE.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="TestTesaStarEDialog.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
@@ -54,6 +54,7 @@
#define IDB_BITMAP_X_LEFT 144
#define IDB_BITMAP_X_RIGHT 145
#define IDC_BUTTON_INIT_MVUSB 146
#define IDD_DIALOG_TESA_STAR_E 188
#define IDC_BUTTON_START_MACHINE 1000
#define IDC_BUTTON_START_MACHINE3 1001
#define IDC_BUTTON_START_POLL_58 1002
@@ -642,6 +643,7 @@
#define IDC_BUTTON_READ_IMAGE 1541
#define IDC_BUTTON2 1542
#define IDC_BUTTON_SO7_READDATAFROMFPGA 1542
#define IDC_BUTTON_TESA_STAR_STOP_MACHINE 1542
#define IDC_BUTTON_STOP_SAMPLE_SCURVE 1543
#define IDC_BTN_CONFIGURE_MOVEVOUT 1544
#define IDC_BUTTON_STOP_SCAN_KEYENCE_LK_GLASER 1545
@@ -685,6 +687,7 @@
#define IDC_EDIT_SET_PARAMETER_MSGOUTPUT 1583
#define IDC_RADIO_KEYENCE_LASER_LK_G 1584
#define IDC_BUTTON3 1585
#define IDC_BUTTONIDC_BUTTON_TESA_STAR_MOVETO 1585
#define IDC_BUTTON_INIT_SCAN_KEYENCE_LK_GLASER 1586
#define IDC_EDIT_MEASURE_VALUE 1587
#define IDC_RADIO_OUT_EXTRACT 1588
@@ -844,6 +847,7 @@
#define IDC_EDIT_RWDATA_DATA 1793
#define IDC_BUTTON1 1794
#define IDC_BUTTON_SO7_SENDDATATOFPGA 1794
#define IDC_BUTTON_TESA_STAR_START_MACHINE 1794
#define IDC_COMBO_RWDATA_ADDR 1795
#define IDC_EDIT_MOTION_SPEEDY 1796
#define IDC_COMBO_OUTPORT_NUMBER 1796
@@ -859,14 +863,21 @@
#define IDC_RADIO_READ_INPUT_PORT 1804
#define IDC_RADIO2 1805
#define IDC_RADIO_READ_OUTPUT_PORT 1805
#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
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 188
#define _APS_NEXT_RESOURCE_VALUE 189
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1806
#define _APS_NEXT_CONTROL_VALUE 1812
#define _APS_NEXT_SYMED_VALUE 104
#endif
#endif