增加手动机测试
This commit is contained in:
@@ -21,7 +21,7 @@ static char Codes[][6] =
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// CSerial() : Constructor
|
// CPSerial() : Constructor
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// CSerialTask() : Function to run ReceiveTask() method as a task
|
// CSerialTask() : Function to run ReceiveTask() method as a task
|
||||||
@@ -31,7 +31,7 @@ unsigned int WINAPI CSerialTask(LPVOID CSerialPtr)
|
|||||||
{
|
{
|
||||||
TRACE( TEXT("Serial task has started \n") );
|
TRACE( TEXT("Serial task has started \n") );
|
||||||
// Call the ControlTask function in the specified plugin
|
// Call the ControlTask function in the specified plugin
|
||||||
((CSerial *)CSerialPtr)->ReceiveTask();
|
((CPSerial *)CSerialPtr)->ReceiveTask();
|
||||||
|
|
||||||
TRACE( TEXT("Serial task has completed \n") );
|
TRACE( TEXT("Serial task has completed \n") );
|
||||||
|
|
||||||
@@ -40,7 +40,7 @@ unsigned int WINAPI CSerialTask(LPVOID CSerialPtr)
|
|||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
CSerial::CSerial()
|
CPSerial::CPSerial()
|
||||||
{
|
{
|
||||||
// Serial port is not open
|
// Serial port is not open
|
||||||
m_PortHandle = INVALID_HANDLE_VALUE;
|
m_PortHandle = INVALID_HANDLE_VALUE;
|
||||||
@@ -93,9 +93,9 @@ CSerial::CSerial()
|
|||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// ~CSerial() : Destructor - Close the port and free up the CriticalSection
|
// ~CPSerial() : Destructor - Close the port and free up the CriticalSection
|
||||||
|
|
||||||
CSerial::~CSerial()
|
CPSerial::~CPSerial()
|
||||||
{
|
{
|
||||||
if( IsOpen( ) )
|
if( IsOpen( ) )
|
||||||
{
|
{
|
||||||
@@ -122,7 +122,7 @@ CSerial::~CSerial()
|
|||||||
// OpenPort() : Opens the serial port using the parameters set by default
|
// OpenPort() : Opens the serial port using the parameters set by default
|
||||||
// or a call to SetPort
|
// or a call to SetPort
|
||||||
|
|
||||||
DWORD CSerial::Open()
|
DWORD CPSerial::Open()
|
||||||
{
|
{
|
||||||
CString PortName;
|
CString PortName;
|
||||||
COMMTIMEOUTS CommTimeOut;
|
COMMTIMEOUTS CommTimeOut;
|
||||||
@@ -201,7 +201,7 @@ DWORD CSerial::Open()
|
|||||||
// IsOpen() : returns true if the serial port is open
|
// IsOpen() : returns true if the serial port is open
|
||||||
//
|
//
|
||||||
|
|
||||||
int CSerial::IsOpen( )
|
int CPSerial::IsOpen( )
|
||||||
{
|
{
|
||||||
return( m_PortHandle != INVALID_HANDLE_VALUE );
|
return( m_PortHandle != INVALID_HANDLE_VALUE );
|
||||||
}
|
}
|
||||||
@@ -211,7 +211,7 @@ int CSerial::IsOpen( )
|
|||||||
// SetPort() : Store the serial settings. If the port is open then these
|
// SetPort() : Store the serial settings. If the port is open then these
|
||||||
// settings are applied now
|
// settings are applied now
|
||||||
|
|
||||||
int CSerial::SetPort(int Port,int Baud,char Parity,int Bits,int StopBits,int HandShake)
|
int CPSerial::SetPort(int Port,int Baud,char Parity,int Bits,int StopBits,int HandShake)
|
||||||
{
|
{
|
||||||
// Use the current settings if the value has the default of 0
|
// Use the current settings if the value has the default of 0
|
||||||
m_Port = Port;
|
m_Port = Port;
|
||||||
@@ -243,7 +243,7 @@ int CSerial::SetPort(int Port,int Baud,char Parity,int Bits,int StopBits,int Han
|
|||||||
// GetPortData() : return the current settings
|
// GetPortData() : return the current settings
|
||||||
//
|
//
|
||||||
|
|
||||||
void CSerial::GetPortData(int *Port,int *Baud,char *Parity,int *Bits,int *StopBits,int *HandShake)
|
void CPSerial::GetPortData(int *Port,int *Baud,char *Parity,int *Bits,int *StopBits,int *HandShake)
|
||||||
{
|
{
|
||||||
// return the requested settings
|
// return the requested settings
|
||||||
if( Port )
|
if( Port )
|
||||||
@@ -265,7 +265,7 @@ void CSerial::GetPortData(int *Port,int *Baud,char *Parity,int *Bits,int *StopBi
|
|||||||
// ClosePort() : Close the port and shut down the monitoring thread
|
// ClosePort() : Close the port and shut down the monitoring thread
|
||||||
//
|
//
|
||||||
|
|
||||||
DWORD CSerial::Close()
|
DWORD CPSerial::Close()
|
||||||
{
|
{
|
||||||
//struct SerialList *Free;
|
//struct SerialList *Free;
|
||||||
HANDLE Port;
|
HANDLE Port;
|
||||||
@@ -319,13 +319,13 @@ DWORD CSerial::Close()
|
|||||||
// Send functions // [8/11/2004]
|
// Send functions // [8/11/2004]
|
||||||
//
|
//
|
||||||
|
|
||||||
DWORD CSerial::Send(LPCSTR buffer, int l, BOOL /*needsResponse=FALSE*/)
|
DWORD CPSerial::Send(LPCSTR buffer, int l, BOOL /*needsResponse=FALSE*/)
|
||||||
{
|
{
|
||||||
|
|
||||||
return ( WritePort ((const char*) buffer, (DWORD) l));
|
return ( WritePort ((const char*) buffer, (DWORD) l));
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
DWORD CSerial::Send(CString buffer)
|
DWORD CPSerial::Send(CString buffer)
|
||||||
{
|
{
|
||||||
char LocBuffer[MAX_OUTPUT_BUFFER_SIZE];
|
char LocBuffer[MAX_OUTPUT_BUFFER_SIZE];
|
||||||
int length = buffer.GetLength ();
|
int length = buffer.GetLength ();
|
||||||
@@ -347,7 +347,7 @@ return res;
|
|||||||
// WritePort() : Writes the specifed bytes to the serial port
|
// WritePort() : Writes the specifed bytes to the serial port
|
||||||
//
|
//
|
||||||
|
|
||||||
DWORD CSerial::WritePort(const char *Buffer,DWORD Bytes)
|
DWORD CPSerial::WritePort(const char *Buffer,DWORD Bytes)
|
||||||
{
|
{
|
||||||
DWORD BytesWritten, TotalWritten, Error;
|
DWORD BytesWritten, TotalWritten, Error;
|
||||||
BOOL WriteState;
|
BOOL WriteState;
|
||||||
@@ -413,7 +413,7 @@ DWORD CSerial::WritePort(const char *Buffer,DWORD Bytes)
|
|||||||
// ReceiveTask() : Internal function, this runs as a thread and provides the
|
// ReceiveTask() : Internal function, this runs as a thread and provides the
|
||||||
// OnRecieve and OnTransmit events
|
// OnRecieve and OnTransmit events
|
||||||
|
|
||||||
void CSerial::ReceiveTask( void )
|
void CPSerial::ReceiveTask( void )
|
||||||
{
|
{
|
||||||
//DWORD BytesWritten;
|
//DWORD BytesWritten;
|
||||||
DWORD Events;
|
DWORD Events;
|
||||||
@@ -478,7 +478,7 @@ void CSerial::ReceiveTask( void )
|
|||||||
// OnReceive() : Default OnReceive()
|
// OnReceive() : Default OnReceive()
|
||||||
// V114
|
// V114
|
||||||
|
|
||||||
void CSerial::OnReceive()
|
void CPSerial::OnReceive()
|
||||||
{
|
{
|
||||||
// Dummy OnReceieve if not used
|
// Dummy OnReceieve if not used
|
||||||
char s[255]={0};
|
char s[255]={0};
|
||||||
@@ -510,7 +510,7 @@ void CSerial::OnReceive()
|
|||||||
// ReadPort() : Read the specifed number of bytes.
|
// ReadPort() : Read the specifed number of bytes.
|
||||||
//
|
//
|
||||||
|
|
||||||
DWORD CSerial::ReadPort(char *Buffer,DWORD Bytes)
|
DWORD CPSerial::ReadPort(char *Buffer,DWORD Bytes)
|
||||||
{
|
{
|
||||||
DWORD BytesRead,Error;
|
DWORD BytesRead,Error;
|
||||||
BOOL ReadState;
|
BOOL ReadState;
|
||||||
@@ -564,7 +564,7 @@ DWORD CSerial::ReadPort(char *Buffer,DWORD Bytes)
|
|||||||
// ReadPort() : Read the specifed number of bytes into a CString class.
|
// ReadPort() : Read the specifed number of bytes into a CString class.
|
||||||
//
|
//
|
||||||
#if 0
|
#if 0
|
||||||
DWORD CSerial::ReadPort(CString &Buffer,DWORD Bytes)
|
DWORD CPSerial::ReadPort(CString &Buffer,DWORD Bytes)
|
||||||
{
|
{
|
||||||
DWORD BytesRead;
|
DWORD BytesRead;
|
||||||
|
|
||||||
@@ -581,7 +581,7 @@ DWORD CSerial::ReadPort(CString &Buffer,DWORD Bytes)
|
|||||||
// ProgramPort() : Internal function to setup the serial port
|
// ProgramPort() : Internal function to setup the serial port
|
||||||
//
|
//
|
||||||
|
|
||||||
int CSerial::ProgramPort(int Port,int Baud,char Parity,int Bits,int StopBits,int HandShake)
|
int CPSerial::ProgramPort(int Port,int Baud,char Parity,int Bits,int StopBits,int HandShake)
|
||||||
{
|
{
|
||||||
CString Param,Params;
|
CString Param,Params;
|
||||||
DCB SerialDCB;
|
DCB SerialDCB;
|
||||||
@@ -728,7 +728,7 @@ int CSerial::ProgramPort(int Port,int Baud,char Parity,int Bits,int StopBits,int
|
|||||||
// OnTransmit() : Default OnTransmit()
|
// OnTransmit() : Default OnTransmit()
|
||||||
//
|
//
|
||||||
|
|
||||||
void CSerial::OnTransmit(int /*Item*/, DWORD /*Error*/)
|
void CPSerial::OnTransmit(int /*Item*/, DWORD /*Error*/)
|
||||||
{
|
{
|
||||||
// Dummy OnTransmit if not used
|
// Dummy OnTransmit if not used
|
||||||
}
|
}
|
||||||
@@ -738,7 +738,7 @@ void CSerial::OnTransmit(int /*Item*/, DWORD /*Error*/)
|
|||||||
// SetTimeouts() : Sets the rx and tx timeouts
|
// SetTimeouts() : Sets the rx and tx timeouts
|
||||||
//
|
//
|
||||||
|
|
||||||
void CSerial::SetTimeouts( int RXTimeout, int TXTimeout )
|
void CPSerial::SetTimeouts( int RXTimeout, int TXTimeout )
|
||||||
{
|
{
|
||||||
COMMTIMEOUTS CommTimeOut;
|
COMMTIMEOUTS CommTimeOut;
|
||||||
|
|
||||||
@@ -764,7 +764,7 @@ void CSerial::SetTimeouts( int RXTimeout, int TXTimeout )
|
|||||||
// AddToDebug() : Add the data to the debug output. State is 1 = rx 2 = tx
|
// AddToDebug() : Add the data to the debug output. State is 1 = rx 2 = tx
|
||||||
// 3 = user
|
// 3 = user
|
||||||
|
|
||||||
void CSerial::AddToDebug( const char * /*Ptr*/, DWORD /*BytesToCopy*/, int /*State*/ )
|
void CPSerial::AddToDebug( const char * /*Ptr*/, DWORD /*BytesToCopy*/, int /*State*/ )
|
||||||
{
|
{
|
||||||
//ZH
|
//ZH
|
||||||
#if 0
|
#if 0
|
||||||
@@ -831,7 +831,7 @@ void CSerial::AddToDebug( const char * /*Ptr*/, DWORD /*BytesToCopy*/, int /*Sta
|
|||||||
// FlushPort() : Removes all characters in the serial buffer
|
// FlushPort() : Removes all characters in the serial buffer
|
||||||
//
|
//
|
||||||
/*
|
/*
|
||||||
int CSerial::FlushPort(void)
|
int CPSerial::FlushPort(void)
|
||||||
{
|
{
|
||||||
int TXTimeout,RXTimeout;
|
int TXTimeout,RXTimeout;
|
||||||
char FlushBuffer[256];
|
char FlushBuffer[256];
|
||||||
@@ -879,7 +879,7 @@ return(BytesTotal);
|
|||||||
// MaxPort() :
|
// MaxPort() :
|
||||||
//
|
//
|
||||||
|
|
||||||
int CSerial::MaxPort()
|
int CPSerial::MaxPort()
|
||||||
{
|
{
|
||||||
// return the max port, :-)
|
// return the max port, :-)
|
||||||
return(8);
|
return(8);
|
||||||
@@ -892,7 +892,7 @@ int CSerial::MaxPort()
|
|||||||
// data sent.
|
// data sent.
|
||||||
//
|
//
|
||||||
|
|
||||||
int CSerial::Transmit(const char * /*Buffer*/,DWORD /*Bytes*/)
|
int CPSerial::Transmit(const char * /*Buffer*/,DWORD /*Bytes*/)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
struct SerialList *Ptr;
|
struct SerialList *Ptr;
|
||||||
@@ -952,7 +952,7 @@ int CSerial::Transmit(const char * /*Buffer*/,DWORD /*Bytes*/)
|
|||||||
//
|
//
|
||||||
|
|
||||||
/*
|
/*
|
||||||
int CSerial::AddReceived( const char *Buffer,DWORD Bytes)
|
int CPSerial::AddReceived( const char *Buffer,DWORD Bytes)
|
||||||
{
|
{
|
||||||
DWORD index = 0; //primary buffer index
|
DWORD index = 0; //primary buffer index
|
||||||
struct SerialList *Ptr;
|
struct SerialList *Ptr;
|
||||||
@@ -1081,7 +1081,7 @@ return(TRUE);
|
|||||||
//
|
//
|
||||||
//ZH
|
//ZH
|
||||||
/*
|
/*
|
||||||
char *CSerial::GetNextReceived(void)
|
char *CPSerial::GetNextReceived(void)
|
||||||
{
|
{
|
||||||
struct SerialList *Free;
|
struct SerialList *Free;
|
||||||
|
|
||||||
@@ -1120,7 +1120,7 @@ return( m_RXTempPtr );
|
|||||||
// ascii hex
|
// ascii hex
|
||||||
//
|
//
|
||||||
|
|
||||||
int CSerial::HexToInt(char *Data, int Bytes)
|
int CPSerial::HexToInt(char *Data, int Bytes)
|
||||||
{
|
{
|
||||||
int Byte;
|
int Byte;
|
||||||
int HexChar, Value;
|
int HexChar, Value;
|
||||||
@@ -1150,7 +1150,7 @@ int CSerial::HexToInt(char *Data, int Bytes)
|
|||||||
//
|
//
|
||||||
//ZH
|
//ZH
|
||||||
/*
|
/*
|
||||||
void CSerial::RegisterDebugWindow()
|
void CPSerial::RegisterDebugWindow()
|
||||||
{
|
{
|
||||||
// Register the CSerialRaw window for future use
|
// Register the CSerialRaw window for future use
|
||||||
WNDCLASS wndcls;
|
WNDCLASS wndcls;
|
||||||
@@ -1160,7 +1160,7 @@ wndcls.hInstance = AfxGetInstanceHandle( );
|
|||||||
wndcls.hCursor = LoadCursor( NULL, IDC_ARROW );
|
wndcls.hCursor = LoadCursor( NULL, IDC_ARROW );
|
||||||
wndcls.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
|
wndcls.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
|
||||||
wndcls.style = CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;
|
wndcls.style = CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;
|
||||||
wndcls.lpszClassName = TEXT("CSerial");
|
wndcls.lpszClassName = TEXT("CPSerial");
|
||||||
AfxRegisterClass( &wndcls );
|
AfxRegisterClass( &wndcls );
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
@@ -1172,7 +1172,7 @@ AfxRegisterClass( &wndcls );
|
|||||||
// SendBuffer() : Internal function, this writes the next block of data
|
// SendBuffer() : Internal function, this writes the next block of data
|
||||||
// queued to the serial port.
|
// queued to the serial port.
|
||||||
|
|
||||||
void CSerial::SendBuffer(int Next)
|
void CPSerial::SendBuffer(int Next)
|
||||||
{
|
{
|
||||||
struct SerialList *Free;
|
struct SerialList *Free;
|
||||||
// DWORD BytesWritten;
|
// DWORD BytesWritten;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
*$!! Serial.h
|
*$!! Serial.h
|
||||||
*$!!
|
*$!!
|
||||||
*$!! DESCRIPTION
|
*$!! DESCRIPTION
|
||||||
*$!! Header file for CSerial.
|
*$!! Header file for CPSerial.
|
||||||
*$!!
|
*$!!
|
||||||
*$!! AUTHOR
|
*$!! AUTHOR
|
||||||
*$!! M.J.S.Gooder.
|
*$!! M.J.S.Gooder.
|
||||||
@@ -69,17 +69,17 @@ const int CS_DEFAULT_RX_TIMEOUT = 25;
|
|||||||
const int CS_DEFAULT_TX_TIMEOUT = 1000;
|
const int CS_DEFAULT_TX_TIMEOUT = 1000;
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// The CSerial class
|
// The CPSerial class
|
||||||
|
|
||||||
class CSerial : public CMMIO
|
class CPSerial : public CMMIO
|
||||||
{
|
{
|
||||||
// Construction
|
// Construction
|
||||||
public:
|
public:
|
||||||
CSerial();
|
CPSerial();
|
||||||
|
|
||||||
// Implementation
|
// Implementation
|
||||||
public:
|
public:
|
||||||
virtual ~CSerial();
|
virtual ~CPSerial();
|
||||||
|
|
||||||
// Attributes
|
// Attributes
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -0,0 +1,170 @@
|
|||||||
|
// Serial.cpp
|
||||||
|
|
||||||
|
#include "stdafx.h"
|
||||||
|
#include<WinBase.h>
|
||||||
|
#include<WinDef.h>
|
||||||
|
#include "Serial.h"
|
||||||
|
|
||||||
|
CSerial::CSerial()
|
||||||
|
{
|
||||||
|
|
||||||
|
memset( &m_OverlappedRead, 0, sizeof( OVERLAPPED ) );
|
||||||
|
memset( &m_OverlappedWrite, 0, sizeof( OVERLAPPED ) );
|
||||||
|
m_hIDComDev = NULL;
|
||||||
|
m_bOpened = FALSE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
CSerial::~CSerial()
|
||||||
|
{
|
||||||
|
|
||||||
|
Close();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL CSerial::Open( int nPort, int nBaud )
|
||||||
|
{
|
||||||
|
|
||||||
|
if( m_bOpened ) return( TRUE );
|
||||||
|
|
||||||
|
TCHAR szPort[15];
|
||||||
|
TCHAR szComParams[50];
|
||||||
|
DCB dcb;
|
||||||
|
|
||||||
|
wsprintf( szPort, _T("COM%d"), nPort );
|
||||||
|
m_hIDComDev = CreateFile( szPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL );
|
||||||
|
if( m_hIDComDev == NULL ) return( FALSE );
|
||||||
|
|
||||||
|
memset( &m_OverlappedRead, 0, sizeof( OVERLAPPED ) );
|
||||||
|
memset( &m_OverlappedWrite, 0, sizeof( OVERLAPPED ) );
|
||||||
|
|
||||||
|
COMMTIMEOUTS CommTimeOuts;
|
||||||
|
CommTimeOuts.ReadIntervalTimeout = 0xFFFFFFFF;
|
||||||
|
CommTimeOuts.ReadTotalTimeoutMultiplier = 0;
|
||||||
|
CommTimeOuts.ReadTotalTimeoutConstant = 0;
|
||||||
|
CommTimeOuts.WriteTotalTimeoutMultiplier = 0;
|
||||||
|
CommTimeOuts.WriteTotalTimeoutConstant = 5000;
|
||||||
|
SetCommTimeouts( m_hIDComDev, &CommTimeOuts );
|
||||||
|
|
||||||
|
wsprintf( szComParams, _T("COM%d:%d,n,8,1"), nPort, nBaud );
|
||||||
|
|
||||||
|
m_OverlappedRead.hEvent = CreateEvent( NULL, TRUE, FALSE, NULL );
|
||||||
|
m_OverlappedWrite.hEvent = CreateEvent( NULL, TRUE, FALSE, NULL );
|
||||||
|
|
||||||
|
dcb.DCBlength = sizeof( DCB );
|
||||||
|
GetCommState( m_hIDComDev, &dcb );
|
||||||
|
dcb.BaudRate = nBaud;
|
||||||
|
dcb.ByteSize = 8;
|
||||||
|
unsigned char ucSet;
|
||||||
|
ucSet = (unsigned char) ( ( FC_RTSCTS & FC_DTRDSR ) != 0 );
|
||||||
|
ucSet = (unsigned char) ( ( FC_RTSCTS & FC_RTSCTS ) != 0 );
|
||||||
|
ucSet = (unsigned char) ( ( FC_RTSCTS & FC_XONXOFF ) != 0 );
|
||||||
|
if( !SetCommState( m_hIDComDev, &dcb ) ||
|
||||||
|
!SetupComm( m_hIDComDev, 10000, 10000 ) ||
|
||||||
|
m_OverlappedRead.hEvent == NULL ||
|
||||||
|
m_OverlappedWrite.hEvent == NULL ){
|
||||||
|
DWORD dwError(0);
|
||||||
|
dwError = GetLastError();
|
||||||
|
if( m_OverlappedRead.hEvent != NULL ) CloseHandle( m_OverlappedRead.hEvent );
|
||||||
|
if( m_OverlappedWrite.hEvent != NULL ) CloseHandle( m_OverlappedWrite.hEvent );
|
||||||
|
CloseHandle( m_hIDComDev );
|
||||||
|
return( FALSE );
|
||||||
|
}
|
||||||
|
|
||||||
|
m_bOpened = TRUE;
|
||||||
|
|
||||||
|
return( m_bOpened );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL CSerial::Close( void )
|
||||||
|
{
|
||||||
|
|
||||||
|
if( !m_bOpened || m_hIDComDev == NULL ) return( TRUE );
|
||||||
|
|
||||||
|
if( m_OverlappedRead.hEvent != NULL ) CloseHandle( m_OverlappedRead.hEvent );
|
||||||
|
if( m_OverlappedWrite.hEvent != NULL ) CloseHandle( m_OverlappedWrite.hEvent );
|
||||||
|
CloseHandle( m_hIDComDev );
|
||||||
|
m_bOpened = FALSE;
|
||||||
|
m_hIDComDev = NULL;
|
||||||
|
|
||||||
|
return( TRUE );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL CSerial::WriteCommByte( unsigned char ucByte )
|
||||||
|
{
|
||||||
|
BOOL bWriteStat;
|
||||||
|
DWORD dwBytesWritten;
|
||||||
|
|
||||||
|
bWriteStat = WriteFile( m_hIDComDev, (LPSTR) &ucByte, 1, &dwBytesWritten, &m_OverlappedWrite );
|
||||||
|
if( !bWriteStat && ( GetLastError() == ERROR_IO_PENDING ) ){
|
||||||
|
if( WaitForSingleObject( m_OverlappedWrite.hEvent, 1000 ) ) dwBytesWritten = 0;
|
||||||
|
else{
|
||||||
|
GetOverlappedResult( m_hIDComDev, &m_OverlappedWrite, &dwBytesWritten, FALSE );
|
||||||
|
m_OverlappedWrite.Offset += dwBytesWritten;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return( TRUE );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int CSerial::SendData( const char *buffer, int size )
|
||||||
|
{
|
||||||
|
|
||||||
|
if( !m_bOpened || m_hIDComDev == NULL ) return( 0 );
|
||||||
|
|
||||||
|
DWORD dwBytesWritten = 0;
|
||||||
|
int i;
|
||||||
|
for( i=0; i<size; i++ ){
|
||||||
|
WriteCommByte( buffer[i] );
|
||||||
|
dwBytesWritten++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return( (int) dwBytesWritten );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int CSerial::ReadDataWaiting( void )
|
||||||
|
{
|
||||||
|
|
||||||
|
if( !m_bOpened || m_hIDComDev == NULL ) return( 0 );
|
||||||
|
|
||||||
|
DWORD dwErrorFlags;
|
||||||
|
COMSTAT ComStat;
|
||||||
|
|
||||||
|
ClearCommError( m_hIDComDev, &dwErrorFlags, &ComStat );
|
||||||
|
|
||||||
|
return( (int) ComStat.cbInQue );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int CSerial::ReadData( void *buffer, int limit )
|
||||||
|
{
|
||||||
|
|
||||||
|
if( !m_bOpened || m_hIDComDev == NULL ) return( 0 );
|
||||||
|
|
||||||
|
BOOL bReadStatus;
|
||||||
|
DWORD dwBytesRead, dwErrorFlags;
|
||||||
|
COMSTAT ComStat;
|
||||||
|
|
||||||
|
ClearCommError( m_hIDComDev, &dwErrorFlags, &ComStat );
|
||||||
|
if( !ComStat.cbInQue ) return( 0 );
|
||||||
|
|
||||||
|
dwBytesRead = (DWORD) ComStat.cbInQue;
|
||||||
|
if( limit < (int) dwBytesRead ) dwBytesRead = (DWORD) limit;
|
||||||
|
|
||||||
|
bReadStatus = ReadFile( m_hIDComDev, buffer, dwBytesRead, &dwBytesRead, &m_OverlappedRead );
|
||||||
|
if( !bReadStatus ){
|
||||||
|
if( GetLastError() == ERROR_IO_PENDING ){
|
||||||
|
WaitForSingleObject( m_OverlappedRead.hEvent, 2000 );
|
||||||
|
return( (int) dwBytesRead );
|
||||||
|
}
|
||||||
|
return( 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
return( (int) dwBytesRead );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
// Serial.h
|
||||||
|
|
||||||
|
#ifndef __SERIAL_H__
|
||||||
|
#define __SERIAL_H__
|
||||||
|
|
||||||
|
#define FC_DTRDSR 0x01
|
||||||
|
#define FC_RTSCTS 0x02
|
||||||
|
#define FC_XONXOFF 0x04
|
||||||
|
#define ASCII_BEL 0x07
|
||||||
|
#define ASCII_BS 0x08
|
||||||
|
#define ASCII_LF 0x0A
|
||||||
|
#define ASCII_CR 0x0D
|
||||||
|
#define ASCII_XON 0x11
|
||||||
|
#define ASCII_XOFF 0x13
|
||||||
|
|
||||||
|
class CSerial
|
||||||
|
{
|
||||||
|
|
||||||
|
public:
|
||||||
|
CSerial();
|
||||||
|
~CSerial();
|
||||||
|
|
||||||
|
BOOL Open( int nPort = 2, int nBaud = 9600 );
|
||||||
|
BOOL Close( void );
|
||||||
|
|
||||||
|
int ReadData( void *, int );
|
||||||
|
int SendData( const char *, int );
|
||||||
|
int ReadDataWaiting( void );
|
||||||
|
|
||||||
|
BOOL IsOpened( void ){ return( m_bOpened ); }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
BOOL WriteCommByte( unsigned char );
|
||||||
|
|
||||||
|
HANDLE m_hIDComDev;
|
||||||
|
OVERLAPPED m_OverlappedRead, m_OverlappedWrite;
|
||||||
|
BOOL m_bOpened;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -1103,3 +1103,8 @@ Construct Cso7_Proto.
|
|||||||
Destruct Cso7_Proto.
|
Destruct Cso7_Proto.
|
||||||
Construct Cso7_Proto.
|
Construct Cso7_Proto.
|
||||||
Destruct Cso7_Proto.
|
Destruct Cso7_Proto.
|
||||||
|
Construct Cso7_Proto.
|
||||||
|
Init:Open device succeed .
|
||||||
|
_start_machine
|
||||||
|
Exit: Exit_SO7Usb
|
||||||
|
Destruct Cso7_Proto.
|
||||||
|
|||||||
@@ -582,15 +582,14 @@ BEGIN
|
|||||||
CONTROL "4",IDC_RADIO_TC4000_CHANNEL4,"Button",BS_AUTORADIOBUTTON,451,213,20,10
|
CONTROL "4",IDC_RADIO_TC4000_CHANNEL4,"Button",BS_AUTORADIOBUTTON,451,213,20,10
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_SO7_UTIL_MANUAL_MACHINE DIALOGEX 0, 0, 333, 330
|
IDD_SO7_UTIL_MANUAL_MACHINE DIALOGEX 0, 0, 356, 330
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Manual Machine"
|
CAPTION "Manual Machine"
|
||||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "Exit",IDCANCEL,276,292,50,14
|
PUSHBUTTON "Exit",IDCANCEL,299,292,50,14
|
||||||
PUSHBUTTON "Start Machine",IDC_BUTTON_SO7_MANUAL_MACHINE_START_MACHINE,24,39,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
|
PUSHBUTTON "Stop Machine",IDC_BUTTON_SO7_MANUAL_MACHINE_STOP_MACHINE,24,65,50,14
|
||||||
EDITTEXT IDC_EDIT1,20,217,252,58,ES_AUTOHSCROLL
|
|
||||||
GROUPBOX "Position",IDC_STATIC,19,99,297,107
|
GROUPBOX "Position",IDC_STATIC,19,99,297,107
|
||||||
GROUPBOX "Send Data",IDC_STATIC,86,18,237,76
|
GROUPBOX "Send Data",IDC_STATIC,86,18,237,76
|
||||||
PUSHBUTTON "Send",IDC_BUTTON_SO7_MANUAL_MACHINE_SEND_DATA,267,74,50,14
|
PUSHBUTTON "Send",IDC_BUTTON_SO7_MANUAL_MACHINE_SEND_DATA,267,74,50,14
|
||||||
@@ -620,6 +619,7 @@ BEGIN
|
|||||||
LTEXT "Scale resolution",IDC_STATIC,209,119,51,11
|
LTEXT "Scale resolution",IDC_STATIC,209,119,51,11
|
||||||
PUSHBUTTON "Clear All",IDC_BUTTON_SO7_MANUAL_MACHINE_CLEAR_MSG,280,224,40,17
|
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
|
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
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_SO7_UTIL_VERIFICATION_ALGORITHM DIALOGEX 0, 0, 617, 254
|
IDD_SO7_UTIL_VERIFICATION_ALGORITHM DIALOGEX 0, 0, 617, 254
|
||||||
@@ -801,7 +801,7 @@ BEGIN
|
|||||||
IDD_SO7_UTIL_MANUAL_MACHINE, DIALOG
|
IDD_SO7_UTIL_MANUAL_MACHINE, DIALOG
|
||||||
BEGIN
|
BEGIN
|
||||||
LEFTMARGIN, 7
|
LEFTMARGIN, 7
|
||||||
RIGHTMARGIN, 326
|
RIGHTMARGIN, 349
|
||||||
TOPMARGIN, 7
|
TOPMARGIN, 7
|
||||||
BOTTOMMARGIN, 306
|
BOTTOMMARGIN, 306
|
||||||
END
|
END
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
#include "SO7_Move_Location.h"
|
#include "SO7_Move_Location.h"
|
||||||
#include "SO7_Automatic_Zoom.h"
|
#include "SO7_Automatic_Zoom.h"
|
||||||
|
|
||||||
extern CSerial* m_pSO7_Serial;
|
extern CPSerial* m_pSO7_PCDSerial;
|
||||||
extern CSO7_Proto* m_pSO7_Proto;
|
extern CSO7_Proto* m_pSO7_Proto;
|
||||||
extern CLogger* g_pLoggerDebug;
|
extern CLogger* g_pLoggerDebug;
|
||||||
#define PI 3.1415926535897932384626433
|
#define PI 3.1415926535897932384626433
|
||||||
@@ -143,9 +143,9 @@ BOOL CSO7_Automatic_Zoom::OnInitDialog()
|
|||||||
int arWidth[] = {330,450, -1 };
|
int arWidth[] = {330,450, -1 };
|
||||||
m_StatusBar.SetParts(3, arWidth);
|
m_StatusBar.SetParts(3, arWidth);
|
||||||
((CButton *)GetDlgItem(IDC_RADIO_SENDCMD))->SetCheck(true);
|
((CButton *)GetDlgItem(IDC_RADIO_SENDCMD))->SetCheck(true);
|
||||||
if (m_pSO7_Serial)
|
if (m_pSO7_PCDSerial)
|
||||||
{
|
{
|
||||||
m_pSO7_Serial->GetPortData(&Port,&Baud,&Parity,&Bits,&StopBits,&HandShake);
|
m_pSO7_PCDSerial->GetPortData(&Port,&Baud,&Parity,&Bits,&StopBits,&HandShake);
|
||||||
Params.Format( TEXT("[COM%d]"), Port );
|
Params.Format( TEXT("[COM%d]"), Port );
|
||||||
Param.Format( TEXT(" Baud=%d"), Baud );
|
Param.Format( TEXT(" Baud=%d"), Baud );
|
||||||
Params += Param;
|
Params += Param;
|
||||||
@@ -157,7 +157,7 @@ BOOL CSO7_Automatic_Zoom::OnInitDialog()
|
|||||||
Params += Param;
|
Params += Param;
|
||||||
m_StatusBar.SetText(Params, 0, 0);
|
m_StatusBar.SetText(Params, 0, 0);
|
||||||
|
|
||||||
if(m_pSO7_Serial->Open())
|
if(m_pSO7_PCDSerial->Open())
|
||||||
{
|
{
|
||||||
m_StatusBar.SetText(_T("成功打开串口。"), 1, 0);
|
m_StatusBar.SetText(_T("成功打开串口。"), 1, 0);
|
||||||
|
|
||||||
@@ -408,8 +408,8 @@ void CSO7_Automatic_Zoom::OnBnClickedCancel()
|
|||||||
{
|
{
|
||||||
delete g_pLoggerDebug;
|
delete g_pLoggerDebug;
|
||||||
g_pLoggerDebug=NULL;
|
g_pLoggerDebug=NULL;
|
||||||
delete m_pSO7_Serial;
|
delete m_pSO7_PCDSerial;
|
||||||
m_pSO7_Serial=NULL;
|
m_pSO7_PCDSerial=NULL;
|
||||||
KillTimer(1);
|
KillTimer(1);
|
||||||
KillTimer(2);
|
KillTimer(2);
|
||||||
KillTimer(3);
|
KillTimer(3);
|
||||||
@@ -532,24 +532,24 @@ double CSO7_Automatic_Zoom::ReadZoomAngle()
|
|||||||
{
|
{
|
||||||
double dZoomAngle(-1);
|
double dZoomAngle(-1);
|
||||||
char sendData[6]={'A','D',':','0',13,10};
|
char sendData[6]={'A','D',':','0',13,10};
|
||||||
DWORD iWriteByte=m_pSO7_Serial->Send(sendData,6);
|
DWORD iWriteByte=m_pSO7_PCDSerial->Send(sendData,6);
|
||||||
|
|
||||||
INT iRetrys(0);
|
INT iRetrys(0);
|
||||||
while(!m_pSO7_Serial->m_iRecvState && iRetrys<20 && iWriteByte==6)
|
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys<20 && iWriteByte==6)
|
||||||
{
|
{
|
||||||
iRetrys++;
|
iRetrys++;
|
||||||
Sleep(10);
|
Sleep(10);
|
||||||
}
|
}
|
||||||
if (m_pSO7_Serial->m_iRecvState)
|
if (m_pSO7_PCDSerial->m_iRecvState)
|
||||||
{
|
{
|
||||||
if(m_pSO7_Serial->m_csRecv==_T(""))
|
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
|
||||||
Sleep(50);
|
Sleep(50);
|
||||||
|
|
||||||
USES_CONVERSION;
|
USES_CONVERSION;
|
||||||
char *cRecvData= NULL;
|
char *cRecvData= NULL;
|
||||||
char *token = NULL;
|
char *token = NULL;
|
||||||
char cTemp[20]={0};
|
char cTemp[20]={0};
|
||||||
cRecvData=T2A(m_pSO7_Serial->m_csRecv);
|
cRecvData=T2A(m_pSO7_PCDSerial->m_csRecv);
|
||||||
char seps[] = "$AD:";
|
char seps[] = "$AD:";
|
||||||
|
|
||||||
token = strtok(cRecvData,seps);
|
token = strtok(cRecvData,seps);
|
||||||
@@ -567,8 +567,8 @@ double CSO7_Automatic_Zoom::ReadZoomAngle()
|
|||||||
};
|
};
|
||||||
token=NULL;
|
token=NULL;
|
||||||
cRecvData=NULL;
|
cRecvData=NULL;
|
||||||
m_pSO7_Serial->m_csRecv=_T("");
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
||||||
m_pSO7_Serial->m_iRecvState=FALSE;
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
||||||
|
|
||||||
return dZoomAngle;
|
return dZoomAngle;
|
||||||
|
|
||||||
@@ -588,72 +588,72 @@ BOOL CSO7_Automatic_Zoom::CalibrateEncoder()
|
|||||||
csRightRecv.Format(_T("@OK\r\n"));
|
csRightRecv.Format(_T("@OK\r\n"));
|
||||||
INT iRetrys(0);
|
INT iRetrys(0);
|
||||||
DWORD iWriteByte(0);
|
DWORD iWriteByte(0);
|
||||||
m_pSO7_Serial->m_csRecv=_T("");
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
||||||
m_pSO7_Serial->m_iRecvState=FALSE;
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
||||||
|
|
||||||
//Phase I
|
//Phase I
|
||||||
iWriteByte=m_pSO7_Serial->Send(sendDataI,12);
|
iWriteByte=m_pSO7_PCDSerial->Send(sendDataI,12);
|
||||||
while(!m_pSO7_Serial->m_iRecvState && iRetrys<20 && iWriteByte==12)
|
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys<20 && iWriteByte==12)
|
||||||
{
|
{
|
||||||
iRetrys++;
|
iRetrys++;
|
||||||
Sleep(50);
|
Sleep(50);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_pSO7_Serial->m_iRecvState)
|
if (m_pSO7_PCDSerial->m_iRecvState)
|
||||||
{
|
{
|
||||||
if(m_pSO7_Serial->m_csRecv==_T(""))
|
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
|
||||||
Sleep(100);
|
Sleep(100);
|
||||||
|
|
||||||
if(m_pSO7_Serial->m_csRecv==csRightRecv)
|
if(m_pSO7_PCDSerial->m_csRecv==csRightRecv)
|
||||||
{
|
{
|
||||||
m_pSO7_Serial->m_csRecv=_T("");
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
||||||
m_pSO7_Serial->m_iRecvState=FALSE;
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
||||||
iRetrys=0;
|
iRetrys=0;
|
||||||
iWriteByte=0;
|
iWriteByte=0;
|
||||||
//Phase II
|
//Phase II
|
||||||
|
|
||||||
iWriteByte=m_pSO7_Serial->Send(sendDataII,6);
|
iWriteByte=m_pSO7_PCDSerial->Send(sendDataII,6);
|
||||||
while(!m_pSO7_Serial->m_iRecvState && iRetrys<20 && iWriteByte==6)
|
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys<20 && iWriteByte==6)
|
||||||
{
|
{
|
||||||
iRetrys++;
|
iRetrys++;
|
||||||
Sleep(50);
|
Sleep(50);
|
||||||
}
|
}
|
||||||
if(m_pSO7_Serial->m_iRecvState)
|
if(m_pSO7_PCDSerial->m_iRecvState)
|
||||||
{
|
{
|
||||||
if(m_pSO7_Serial->m_csRecv==_T(""))
|
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
|
||||||
Sleep(100);
|
Sleep(100);
|
||||||
|
|
||||||
if(m_pSO7_Serial->m_csRecv==csRightRecv)
|
if(m_pSO7_PCDSerial->m_csRecv==csRightRecv)
|
||||||
{
|
{
|
||||||
m_pSO7_Serial->m_csRecv=_T("");
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
||||||
m_pSO7_Serial->m_iRecvState=FALSE;
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
||||||
iRetrys=0;
|
iRetrys=0;
|
||||||
iWriteByte=0;
|
iWriteByte=0;
|
||||||
//Phase III
|
//Phase III
|
||||||
|
|
||||||
iWriteByte=m_pSO7_Serial->Send(sendDataIII,6);
|
iWriteByte=m_pSO7_PCDSerial->Send(sendDataIII,6);
|
||||||
while(!m_pSO7_Serial->m_iRecvState && iRetrys<20 && iWriteByte==6)
|
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys<20 && iWriteByte==6)
|
||||||
{
|
{
|
||||||
iRetrys++;
|
iRetrys++;
|
||||||
Sleep(50);
|
Sleep(50);
|
||||||
}
|
}
|
||||||
if(m_pSO7_Serial->m_iRecvState)
|
if(m_pSO7_PCDSerial->m_iRecvState)
|
||||||
{
|
{
|
||||||
if(m_pSO7_Serial->m_csRecv==_T(""))
|
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
|
||||||
Sleep(100);
|
Sleep(100);
|
||||||
|
|
||||||
if(m_pSO7_Serial->m_csRecv==csRightRecv)
|
if(m_pSO7_PCDSerial->m_csRecv==csRightRecv)
|
||||||
{
|
{
|
||||||
m_pSO7_Serial->m_csRecv=_T("");
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
||||||
m_pSO7_Serial->m_iRecvState=FALSE;
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
||||||
iRetrys=0;
|
iRetrys=0;
|
||||||
iWriteByte=0;
|
iWriteByte=0;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_pSO7_Serial->m_csRecv=_T("");
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
||||||
m_pSO7_Serial->m_iRecvState=FALSE;
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -664,8 +664,8 @@ BOOL CSO7_Automatic_Zoom::CalibrateEncoder()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_pSO7_Serial->m_csRecv=_T("");
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
||||||
m_pSO7_Serial->m_iRecvState=FALSE;
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -677,8 +677,8 @@ BOOL CSO7_Automatic_Zoom::CalibrateEncoder()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_pSO7_Serial->m_csRecv=_T("");
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
||||||
m_pSO7_Serial->m_iRecvState=FALSE;
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -749,7 +749,7 @@ void CSO7_Automatic_Zoom::OnBnClickedButtonSendData()
|
|||||||
UpdateData(TRUE);
|
UpdateData(TRUE);
|
||||||
CString csSendData("");
|
CString csSendData("");
|
||||||
GetDlgItem(IDC_EDIT_DATASEND)->GetWindowText(csSendData);
|
GetDlgItem(IDC_EDIT_DATASEND)->GetWindowText(csSendData);
|
||||||
m_pSO7_Serial->m_csRecv=_T("");
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
||||||
USES_CONVERSION;
|
USES_CONVERSION;
|
||||||
//加上回车换行符
|
//加上回车换行符
|
||||||
CString csTemp;
|
CString csTemp;
|
||||||
@@ -759,7 +759,7 @@ void CSO7_Automatic_Zoom::OnBnClickedButtonSendData()
|
|||||||
const char* cSendData;
|
const char* cSendData;
|
||||||
cSendData=T2A(csSendData);
|
cSendData=T2A(csSendData);
|
||||||
DWORD iSendDataLength=csSendData.GetLength();
|
DWORD iSendDataLength=csSendData.GetLength();
|
||||||
DWORD iWriteByte=m_pSO7_Serial->Send(cSendData,iSendDataLength);
|
DWORD iWriteByte=m_pSO7_PCDSerial->Send(cSendData,iSendDataLength);
|
||||||
|
|
||||||
((CListBox *)GetDlgItem(IDC_LIST_SHOWMESSAGE))->InsertString(-1,CString(_T("[Send]: "))+cSendData);//
|
((CListBox *)GetDlgItem(IDC_LIST_SHOWMESSAGE))->InsertString(-1,CString(_T("[Send]: "))+cSendData);//
|
||||||
|
|
||||||
@@ -767,36 +767,36 @@ void CSO7_Automatic_Zoom::OnBnClickedButtonSendData()
|
|||||||
m_StatusBar.SetText(csSendData, 1, 0);
|
m_StatusBar.SetText(csSendData, 1, 0);
|
||||||
//接受数据
|
//接受数据
|
||||||
INT iRetrys(0);
|
INT iRetrys(0);
|
||||||
while(!m_pSO7_Serial->m_iRecvState && iRetrys<20)
|
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys<20)
|
||||||
{
|
{
|
||||||
iRetrys++;
|
iRetrys++;
|
||||||
Sleep(100);
|
Sleep(100);
|
||||||
}
|
}
|
||||||
if (m_pSO7_Serial->m_iRecvState)
|
if (m_pSO7_PCDSerial->m_iRecvState)
|
||||||
{
|
{
|
||||||
if(m_pSO7_Serial->m_csRecv==_T(""))
|
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
|
||||||
{
|
{
|
||||||
m_pSO7_Serial->m_iRecvState=FALSE;
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
||||||
INT iRetrys2(0);
|
INT iRetrys2(0);
|
||||||
while(!m_pSO7_Serial->m_iRecvState && iRetrys2<60)
|
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys2<60)
|
||||||
{
|
{
|
||||||
iRetrys2++;
|
iRetrys2++;
|
||||||
Sleep(100);
|
Sleep(100);
|
||||||
}
|
}
|
||||||
((CListBox *)GetDlgItem(IDC_LIST_SHOWMESSAGE))->InsertString(-1,CString(_T("[Recv]: "))+m_pSO7_Serial->m_csRecv);
|
((CListBox *)GetDlgItem(IDC_LIST_SHOWMESSAGE))->InsertString(-1,CString(_T("[Recv]: "))+m_pSO7_PCDSerial->m_csRecv);
|
||||||
m_pSO7_Serial->m_csRecv=_T("");
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
||||||
csSendData.Format(_T("Recv(%dByte)"),m_pSO7_Serial->m_iRecvByte);
|
csSendData.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvByte);
|
||||||
m_StatusBar.SetText(csSendData, 2, 0);
|
m_StatusBar.SetText(csSendData, 2, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
((CListBox *)GetDlgItem(IDC_LIST_SHOWMESSAGE))->InsertString(-1,CString(_T("[Recv]: "))+m_pSO7_Serial->m_csRecv);
|
((CListBox *)GetDlgItem(IDC_LIST_SHOWMESSAGE))->InsertString(-1,CString(_T("[Recv]: "))+m_pSO7_PCDSerial->m_csRecv);
|
||||||
m_pSO7_Serial->m_csRecv=_T("");
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
||||||
csSendData.Format(_T("Recv(%dByte)"),m_pSO7_Serial->m_iRecvByte);
|
csSendData.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvByte);
|
||||||
m_StatusBar.SetText(csSendData, 2, 0);
|
m_StatusBar.SetText(csSendData, 2, 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
m_pSO7_Serial->m_iRecvState=FALSE;
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
#include "SO7_UtilDlg.h"
|
#include "SO7_UtilDlg.h"
|
||||||
// CSO7_UtilDlg ¶Ô»°¿ò
|
// CSO7_UtilDlg ¶Ô»°¿ò
|
||||||
|
|
||||||
extern CSerial* m_pSO7_Serial;
|
extern CPSerial* m_pSO7_PCDSerial;
|
||||||
extern CSO7_Proto* m_pSO7_Proto;
|
extern CSO7_Proto* m_pSO7_Proto;
|
||||||
CLogger* g_pLoggerDebug=NULL;
|
CLogger* g_pLoggerDebug=NULL;
|
||||||
CSO7_VolComp* g_pVolComp=NULL;
|
CSO7_VolComp* g_pVolComp=NULL;
|
||||||
@@ -437,9 +437,6 @@ void CSO7_UtilDlg::OnBnClickedButtonSo7ResetXyz()
|
|||||||
//=====================================================================
|
//=====================================================================
|
||||||
void CSO7_UtilDlg::OnBnClickedButtonMoveTo()
|
void CSO7_UtilDlg::OnBnClickedButtonMoveTo()
|
||||||
{
|
{
|
||||||
if (!m_pSO7_Serial)
|
|
||||||
m_pSO7_Serial = new CSerial();
|
|
||||||
|
|
||||||
if(!g_pVolComp)
|
if(!g_pVolComp)
|
||||||
g_pVolComp=new CSO7_VolComp();
|
g_pVolComp=new CSO7_VolComp();
|
||||||
|
|
||||||
@@ -448,11 +445,6 @@ void CSO7_UtilDlg::OnBnClickedButtonMoveTo()
|
|||||||
delete pSO7_Move_Location;
|
delete pSO7_Move_Location;
|
||||||
pSO7_Move_Location=NULL;
|
pSO7_Move_Location=NULL;
|
||||||
|
|
||||||
if (m_pSO7_Serial)
|
|
||||||
{
|
|
||||||
delete m_pSO7_Serial;
|
|
||||||
m_pSO7_Serial=NULL;
|
|
||||||
}
|
|
||||||
if (g_pVolComp)
|
if (g_pVolComp)
|
||||||
{
|
{
|
||||||
delete g_pVolComp;
|
delete g_pVolComp;
|
||||||
@@ -465,8 +457,8 @@ void CSO7_UtilDlg::OnBnClickedButtonMoveTo()
|
|||||||
void CSO7_UtilDlg::OnBnClickedButtonAutoZoom()
|
void CSO7_UtilDlg::OnBnClickedButtonAutoZoom()
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!m_pSO7_Serial)
|
if (!m_pSO7_PCDSerial)
|
||||||
m_pSO7_Serial = new CSerial();
|
m_pSO7_PCDSerial = new CPSerial();
|
||||||
|
|
||||||
delete g_pLoggerDebug;
|
delete g_pLoggerDebug;
|
||||||
g_pLoggerDebug=NULL;
|
g_pLoggerDebug=NULL;
|
||||||
@@ -956,17 +948,17 @@ void CSO7_UtilDlg::OnBnClickedButtonLoadSo7config()
|
|||||||
void CSO7_UtilDlg::OnBnClickedButtonSetupSo7config()
|
void CSO7_UtilDlg::OnBnClickedButtonSetupSo7config()
|
||||||
{
|
{
|
||||||
KillTimer(1);
|
KillTimer(1);
|
||||||
if (!m_pSO7_Serial)
|
if (!m_pSO7_PCDSerial)
|
||||||
m_pSO7_Serial = new CSerial();
|
m_pSO7_PCDSerial = new CPSerial();
|
||||||
|
|
||||||
CSetup_so7config* pSetup_so7config=new CSetup_so7config;
|
CSetup_so7config* pSetup_so7config=new CSetup_so7config;
|
||||||
pSetup_so7config->DoModal();
|
pSetup_so7config->DoModal();
|
||||||
delete pSetup_so7config;
|
delete pSetup_so7config;
|
||||||
|
|
||||||
if (m_pSO7_Serial)
|
if (m_pSO7_PCDSerial)
|
||||||
{
|
{
|
||||||
delete m_pSO7_Serial;
|
delete m_pSO7_PCDSerial;
|
||||||
m_pSO7_Serial=NULL;
|
m_pSO7_PCDSerial=NULL;
|
||||||
}
|
}
|
||||||
SetTimer(1,150,NULL);
|
SetTimer(1,150,NULL);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ protected:
|
|||||||
protected:
|
protected:
|
||||||
CFont m_BTNFont;
|
CFont m_BTNFont;
|
||||||
public:
|
public:
|
||||||
BOOL ThreePntsConstructionPanel(Struct_3DPoint* pArr,double* Coe);
|
BOOL ThreePntsConstructPlane(Struct_3DPoint* pArr,double* Coe);
|
||||||
double PointToPanelDistance(Struct_3DPoint PntPos,double* Coe);
|
double PointToPlaneDistance(Struct_3DPoint PntPos,double* Coe);
|
||||||
|
|
||||||
afx_msg void OnBnClickedButtonImagedll2laserCalculate();
|
afx_msg void OnBnClickedButtonImagedll2laserCalculate();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
|
|
||||||
#include "Setup_so7config.h"
|
#include "Setup_so7config.h"
|
||||||
extern CSerial* m_pSO7_Serial;
|
extern CPSerial* m_pSO7_PCDSerial;
|
||||||
extern CSO7_Proto* m_pSO7_Proto;
|
extern CSO7_Proto* m_pSO7_Proto;
|
||||||
#define PI 3.1415926535897932384626433
|
#define PI 3.1415926535897932384626433
|
||||||
// CSetup_so7config dialog
|
// CSetup_so7config dialog
|
||||||
@@ -96,9 +96,9 @@ BOOL CSetup_so7config::OnInitDialog()
|
|||||||
m_pSO7_Proto->g_machine.zm._Move_Speed_Gear=2;
|
m_pSO7_Proto->g_machine.zm._Move_Speed_Gear=2;
|
||||||
|
|
||||||
((CButton *)GetDlgItem(IDC_RADIO_SO7CONFIG_ZOOM_MOVE_FAST))->SetCheck(true);
|
((CButton *)GetDlgItem(IDC_RADIO_SO7CONFIG_ZOOM_MOVE_FAST))->SetCheck(true);
|
||||||
if (m_pSO7_Serial)
|
if (m_pSO7_PCDSerial)
|
||||||
{
|
{
|
||||||
if(m_pSO7_Serial->Open())
|
if(m_pSO7_PCDSerial->Open())
|
||||||
{
|
{
|
||||||
ChangGUIWithStep(m_nStep);
|
ChangGUIWithStep(m_nStep);
|
||||||
m_csMsg.Format(_T("´®¿Ú´ò¿ªÕý³££¡"));
|
m_csMsg.Format(_T("´®¿Ú´ò¿ªÕý³££¡"));
|
||||||
@@ -389,24 +389,24 @@ double CSetup_so7config::ReadZoomAngle()
|
|||||||
_bReading=true;
|
_bReading=true;
|
||||||
double dZoomAngle(-1);
|
double dZoomAngle(-1);
|
||||||
char sendData[6]={'A','D',':','0',13,10};
|
char sendData[6]={'A','D',':','0',13,10};
|
||||||
DWORD iWriteByte=m_pSO7_Serial->Send(sendData,6);
|
DWORD iWriteByte=m_pSO7_PCDSerial->Send(sendData,6);
|
||||||
|
|
||||||
INT iRetrys(0);
|
INT iRetrys(0);
|
||||||
while(!m_pSO7_Serial->m_iRecvState && iRetrys<20 && iWriteByte==6)
|
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys<20 && iWriteByte==6)
|
||||||
{
|
{
|
||||||
iRetrys++;
|
iRetrys++;
|
||||||
Sleep(10);
|
Sleep(10);
|
||||||
}
|
}
|
||||||
if (m_pSO7_Serial->m_iRecvState)
|
if (m_pSO7_PCDSerial->m_iRecvState)
|
||||||
{
|
{
|
||||||
if(m_pSO7_Serial->m_csRecv==_T(""))
|
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
|
||||||
Sleep(40);//200
|
Sleep(40);//200
|
||||||
|
|
||||||
char *cRecvData= NULL;
|
char *cRecvData= NULL;
|
||||||
char *token = NULL;
|
char *token = NULL;
|
||||||
char cTemp[20]={0};
|
char cTemp[20]={0};
|
||||||
USES_CONVERSION;
|
USES_CONVERSION;
|
||||||
cRecvData=T2A(m_pSO7_Serial->m_csRecv);
|
cRecvData=T2A(m_pSO7_PCDSerial->m_csRecv);
|
||||||
|
|
||||||
char seps[] = "$AD:";
|
char seps[] = "$AD:";
|
||||||
|
|
||||||
@@ -419,8 +419,8 @@ double CSetup_so7config::ReadZoomAngle()
|
|||||||
};
|
};
|
||||||
token=NULL;
|
token=NULL;
|
||||||
cRecvData=NULL;
|
cRecvData=NULL;
|
||||||
m_pSO7_Serial->m_csRecv=_T("");
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
||||||
m_pSO7_Serial->m_iRecvState=FALSE;
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
||||||
_bReading=false;
|
_bReading=false;
|
||||||
return dZoomAngle;
|
return dZoomAngle;
|
||||||
}
|
}
|
||||||
@@ -484,72 +484,72 @@ BOOL CSetup_so7config::CalibrateEncoder()
|
|||||||
csRightRecv.Format(_T("@OK\r\n"));
|
csRightRecv.Format(_T("@OK\r\n"));
|
||||||
INT iRetrys(0);
|
INT iRetrys(0);
|
||||||
DWORD iWriteByte(0);
|
DWORD iWriteByte(0);
|
||||||
m_pSO7_Serial->m_csRecv=_T("");
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
||||||
m_pSO7_Serial->m_iRecvState=FALSE;
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
||||||
|
|
||||||
//Phase I
|
//Phase I
|
||||||
iWriteByte=m_pSO7_Serial->Send(sendDataI,12);
|
iWriteByte=m_pSO7_PCDSerial->Send(sendDataI,12);
|
||||||
while(!m_pSO7_Serial->m_iRecvState && iRetrys<20 && iWriteByte==12)
|
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys<20 && iWriteByte==12)
|
||||||
{
|
{
|
||||||
iRetrys++;
|
iRetrys++;
|
||||||
Sleep(50);
|
Sleep(50);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_pSO7_Serial->m_iRecvState)
|
if (m_pSO7_PCDSerial->m_iRecvState)
|
||||||
{
|
{
|
||||||
if(m_pSO7_Serial->m_csRecv==_T(""))
|
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
|
||||||
Sleep(100);
|
Sleep(100);
|
||||||
|
|
||||||
if(m_pSO7_Serial->m_csRecv==csRightRecv)
|
if(m_pSO7_PCDSerial->m_csRecv==csRightRecv)
|
||||||
{
|
{
|
||||||
m_pSO7_Serial->m_csRecv=_T("");
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
||||||
m_pSO7_Serial->m_iRecvState=FALSE;
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
||||||
iRetrys=0;
|
iRetrys=0;
|
||||||
iWriteByte=0;
|
iWriteByte=0;
|
||||||
//Phase II
|
//Phase II
|
||||||
|
|
||||||
iWriteByte=m_pSO7_Serial->Send(sendDataII,6);
|
iWriteByte=m_pSO7_PCDSerial->Send(sendDataII,6);
|
||||||
while(!m_pSO7_Serial->m_iRecvState && iRetrys<20 && iWriteByte==6)
|
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys<20 && iWriteByte==6)
|
||||||
{
|
{
|
||||||
iRetrys++;
|
iRetrys++;
|
||||||
Sleep(50);
|
Sleep(50);
|
||||||
}
|
}
|
||||||
if(m_pSO7_Serial->m_iRecvState)
|
if(m_pSO7_PCDSerial->m_iRecvState)
|
||||||
{
|
{
|
||||||
if(m_pSO7_Serial->m_csRecv==_T(""))
|
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
|
||||||
Sleep(100);
|
Sleep(100);
|
||||||
|
|
||||||
if(m_pSO7_Serial->m_csRecv==csRightRecv)
|
if(m_pSO7_PCDSerial->m_csRecv==csRightRecv)
|
||||||
{
|
{
|
||||||
m_pSO7_Serial->m_csRecv=_T("");
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
||||||
m_pSO7_Serial->m_iRecvState=FALSE;
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
||||||
iRetrys=0;
|
iRetrys=0;
|
||||||
iWriteByte=0;
|
iWriteByte=0;
|
||||||
//Phase III
|
//Phase III
|
||||||
|
|
||||||
iWriteByte=m_pSO7_Serial->Send(sendDataIII,6);
|
iWriteByte=m_pSO7_PCDSerial->Send(sendDataIII,6);
|
||||||
while(!m_pSO7_Serial->m_iRecvState && iRetrys<20 && iWriteByte==6)
|
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys<20 && iWriteByte==6)
|
||||||
{
|
{
|
||||||
iRetrys++;
|
iRetrys++;
|
||||||
Sleep(50);
|
Sleep(50);
|
||||||
}
|
}
|
||||||
if(m_pSO7_Serial->m_iRecvState)
|
if(m_pSO7_PCDSerial->m_iRecvState)
|
||||||
{
|
{
|
||||||
if(m_pSO7_Serial->m_csRecv==_T(""))
|
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
|
||||||
Sleep(100);
|
Sleep(100);
|
||||||
|
|
||||||
if(m_pSO7_Serial->m_csRecv==csRightRecv)
|
if(m_pSO7_PCDSerial->m_csRecv==csRightRecv)
|
||||||
{
|
{
|
||||||
m_pSO7_Serial->m_csRecv=_T("");
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
||||||
m_pSO7_Serial->m_iRecvState=FALSE;
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
||||||
iRetrys=0;
|
iRetrys=0;
|
||||||
iWriteByte=0;
|
iWriteByte=0;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_pSO7_Serial->m_csRecv=_T("");
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
||||||
m_pSO7_Serial->m_iRecvState=FALSE;
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -560,8 +560,8 @@ BOOL CSetup_so7config::CalibrateEncoder()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_pSO7_Serial->m_csRecv=_T("");
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
||||||
m_pSO7_Serial->m_iRecvState=FALSE;
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -573,8 +573,8 @@ BOOL CSetup_so7config::CalibrateEncoder()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_pSO7_Serial->m_csRecv=_T("");
|
m_pSO7_PCDSerial->m_csRecv=_T("");
|
||||||
m_pSO7_Serial->m_iRecvState=FALSE;
|
m_pSO7_PCDSerial->m_iRecvState=FALSE;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,10 +3,11 @@
|
|||||||
|
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
#include "..\..\..\SevenOcean\CMMIO_SERIAL.H"
|
#include "..\..\..\SevenOcean\Serial.h"
|
||||||
#include "So7_Manual_Machine.h"
|
#include "So7_Manual_Machine.h"
|
||||||
#include "afxdialogex.h"
|
#include "afxdialogex.h"
|
||||||
|
|
||||||
|
#define MAX_OUTPUT_BUFFER_SIZE 512
|
||||||
extern CSerial* m_pSO7_Serial;
|
extern CSerial* m_pSO7_Serial;
|
||||||
// CSo7_Manual_Machine dialog
|
// CSo7_Manual_Machine dialog
|
||||||
|
|
||||||
@@ -24,6 +25,7 @@ CSo7_Manual_Machine::~CSo7_Manual_Machine()
|
|||||||
|
|
||||||
void CSo7_Manual_Machine::DoDataExchange(CDataExchange* pDX)
|
void CSo7_Manual_Machine::DoDataExchange(CDataExchange* pDX)
|
||||||
{
|
{
|
||||||
|
DDX_Control(pDX, IDC_EDIT_MANUAL_MACHINE_MSG, m_edMSG);
|
||||||
CDialog::DoDataExchange(pDX);
|
CDialog::DoDataExchange(pDX);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,26 +97,11 @@ void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineStartMachine()
|
|||||||
{
|
{
|
||||||
if (m_pSO7_Serial)
|
if (m_pSO7_Serial)
|
||||||
{
|
{
|
||||||
CString Param,Params;
|
CString Params;
|
||||||
int Port;
|
Params =_T("[COM1]Baud=19200,Parity=N,Data=8,Stop=0");
|
||||||
int Baud;
|
|
||||||
char Parity;
|
|
||||||
int Bits;
|
|
||||||
int StopBits;
|
|
||||||
int HandShake;
|
|
||||||
m_pSO7_Serial->GetPortData(&Port,&Baud,&Parity,&Bits,&StopBits,&HandShake);
|
|
||||||
Params.Format( TEXT("[COM%d]"), Port );
|
|
||||||
Param.Format( TEXT(" Baud=%d"), Baud );
|
|
||||||
Params += Param;
|
|
||||||
Param.Format( TEXT(" Parity=%c"), Parity );
|
|
||||||
Params += Param;
|
|
||||||
Param.Format( TEXT(" Data=%d"), Bits );
|
|
||||||
Params += Param;
|
|
||||||
Param.Format( TEXT(" Stop=%d"), StopBits );
|
|
||||||
Params += Param;
|
|
||||||
m_StatusBar.SetText(Params, 0, 0);
|
m_StatusBar.SetText(Params, 0, 0);
|
||||||
|
|
||||||
if(m_pSO7_Serial->Open())
|
if(m_pSO7_Serial->Open(1,19200))
|
||||||
{
|
{
|
||||||
m_StatusBar.SetText(_T("成功打开串口"), 1, 0);
|
m_StatusBar.SetText(_T("成功打开串口"), 1, 0);
|
||||||
GetDlgItem(IDC_BUTTON_SO7_MANUAL_MACHINE_SEND_DATA)->EnableWindow(TRUE);
|
GetDlgItem(IDC_BUTTON_SO7_MANUAL_MACHINE_SEND_DATA)->EnableWindow(TRUE);
|
||||||
@@ -130,6 +117,10 @@ void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineStartMachine()
|
|||||||
//===================================================
|
//===================================================
|
||||||
void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineStopMachine()
|
void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineStopMachine()
|
||||||
{
|
{
|
||||||
|
if (m_pSO7_Serial)
|
||||||
|
{
|
||||||
|
m_pSO7_Serial->Close();
|
||||||
|
}
|
||||||
GetDlgItem(IDC_BUTTON_SO7_MANUAL_MACHINE_SEND_DATA)->EnableWindow(TRUE);
|
GetDlgItem(IDC_BUTTON_SO7_MANUAL_MACHINE_SEND_DATA)->EnableWindow(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -166,50 +157,64 @@ void CSo7_Manual_Machine::OnBnClickedRadioSo7ManualMachineSendDataTypeAnscii()
|
|||||||
//===================================================
|
//===================================================
|
||||||
void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineSendData()
|
void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineSendData()
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
UpdateData(TRUE);
|
UpdateData(TRUE);
|
||||||
USES_CONVERSION;
|
USES_CONVERSION;
|
||||||
CString csSendData(L"");
|
CString csSendData(L"");
|
||||||
|
|
||||||
GetDlgItem(IDC_EDIT_SO7_MANUAL_MACHINE_DATA)->GetWindowText(csSendData);
|
GetDlgItem(IDC_EDIT_SO7_MANUAL_MACHINE_DATA)->GetWindowText(csSendData);
|
||||||
const char* cSendData=T2A(csSendData);
|
const char* cSendData=T2A(csSendData);
|
||||||
|
|
||||||
|
int iSendDataLength(0);
|
||||||
|
int iWriteByte(0);
|
||||||
|
int iReadByte(0);
|
||||||
|
|
||||||
if (m_SendType==HEXADECIMAL)
|
if (m_SendType==HEXADECIMAL)
|
||||||
{
|
{
|
||||||
char* stop;
|
char* stop;
|
||||||
BYTE bSendData[MAX_OUTPUT_BUFFER_SIZE]={0};
|
BYTE bSendData[MAX_OUTPUT_BUFFER_SIZE]={0};
|
||||||
INT iSendDataLength=(csSendData.GetLength()+1)/3;
|
iSendDataLength=(csSendData.GetLength()+1)/3;
|
||||||
for(INT i=0;i<iSendDataLength;i++)
|
for(int i=0;i<iSendDataLength;i++)
|
||||||
{
|
{
|
||||||
bSendData[i]=(BYTE)strtol(cSendData+i*3,&stop,16);
|
bSendData[i]=(BYTE)strtol(cSendData+i*3,&stop,16);
|
||||||
}
|
}
|
||||||
|
iWriteByte=m_pSO7_Serial->SendData((const char*)bSendData,iSendDataLength);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_pSO7_Serial->m_csRecv=_T("");
|
|
||||||
|
|
||||||
//加上回车换行符
|
//加上回车换行符
|
||||||
CString csTemp;
|
CString csTemp;
|
||||||
csTemp.Format(_T("\r\n"));
|
csTemp.Format(_T("\r\n"));
|
||||||
csSendData+=csTemp;
|
csSendData+=csTemp;
|
||||||
|
|
||||||
|
|
||||||
cSendData=T2A(csSendData);
|
cSendData=T2A(csSendData);
|
||||||
|
iSendDataLength=csSendData.GetLength();
|
||||||
|
iWriteByte=m_pSO7_Serial->SendData(cSendData,iSendDataLength);
|
||||||
}
|
}
|
||||||
DWORD iSendDataLength=csSendData.GetLength();
|
|
||||||
DWORD iWriteByte=m_pSO7_Serial->Send(cSendData,iSendDataLength);
|
|
||||||
|
|
||||||
((CListBox *)GetDlgItem(IDC_LIST_SHOWMESSAGE))->InsertString(-1,CString(_T("[Send]: "))+cSendData);//
|
m_OutMessage=_T("[Send] ")+csSendData;
|
||||||
|
OutputWithScroll(m_OutMessage,m_edMSG);
|
||||||
|
|
||||||
csSendData.Format(_T("Send(%dByte)"),iWriteByte);
|
m_OutMessage.Format(_T("Send(%dByte)"),iWriteByte);
|
||||||
m_StatusBar.SetText(csSendData, 1, 0);
|
m_StatusBar.SetText(m_OutMessage, 1, 0);
|
||||||
//接受数据
|
//接受数据
|
||||||
INT iRetrys(0);
|
INT iRetrys(0);
|
||||||
while(!m_pSO7_Serial->m_iRecvState && iRetrys<20)
|
while(!m_pSO7_Serial->ReadDataWaiting() && iRetrys<20)
|
||||||
{
|
{
|
||||||
iRetrys++;
|
iRetrys++;
|
||||||
Sleep(100);
|
Sleep(100);
|
||||||
}
|
}
|
||||||
*/
|
if (iRetrys<20)
|
||||||
|
{
|
||||||
|
BYTE RecvData[MAX_OUTPUT_BUFFER_SIZE]={0};
|
||||||
|
iReadByte=m_pSO7_Serial->ReadData(RecvData,MAX_OUTPUT_BUFFER_SIZE);
|
||||||
|
m_OutMessage.Format(_T("[Recv]%s"),RecvData);
|
||||||
|
OutputWithScroll(m_OutMessage,m_edMSG);
|
||||||
|
m_OutMessage.Format(_T("Recv(%dByte)"),iReadByte);
|
||||||
|
m_StatusBar.SetText(m_OutMessage, 2, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_StatusBar.SetText(_T("Time Out!"), 2, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//===================================================
|
//===================================================
|
||||||
@@ -248,3 +253,25 @@ void CSo7_Manual_Machine::OnBnClickedCancel()
|
|||||||
OnBnClickedButtonSo7ManualMachineStopMachine();
|
OnBnClickedButtonSo7ManualMachineStopMachine();
|
||||||
CDialog::OnCancel();
|
CDialog::OnCancel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=====================================================================================
|
||||||
|
//Print message on edit control
|
||||||
|
void CSo7_Manual_Machine::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);
|
||||||
|
}
|
||||||
|
|||||||
@@ -23,8 +23,10 @@ protected:
|
|||||||
DECLARE_MESSAGE_MAP()
|
DECLARE_MESSAGE_MAP()
|
||||||
protected:
|
protected:
|
||||||
CStatusBarCtrl m_StatusBar;
|
CStatusBarCtrl m_StatusBar;
|
||||||
CEdit m_edit_Log;
|
CString m_OutMessage;
|
||||||
|
CEdit m_edMSG;
|
||||||
char m_SendType;
|
char m_SendType;
|
||||||
|
void OutputWithScroll(const CString &strNewText,CEdit &edtOutput);
|
||||||
public:
|
public:
|
||||||
afx_msg void OnBnClickedButtonSo7ManualMachineStartMachine();
|
afx_msg void OnBnClickedButtonSo7ManualMachineStartMachine();
|
||||||
afx_msg void OnBnClickedButtonSo7ManualMachineStopMachine();
|
afx_msg void OnBnClickedButtonSo7ManualMachineStopMachine();
|
||||||
|
|||||||
@@ -32,12 +32,15 @@
|
|||||||
|
|
||||||
#include "SO7_Verfication_Algorithm.h"
|
#include "SO7_Verfication_Algorithm.h"
|
||||||
|
|
||||||
|
#include "..\..\..\SevenOcean\Serial.h"
|
||||||
|
#include "So7_Manual_Machine.h"
|
||||||
|
|
||||||
#include "So7_Option.h"
|
#include "So7_Option.h"
|
||||||
#include "afxdialogex.h"
|
#include "afxdialogex.h"
|
||||||
//#define _RELEASE_ONLY_ONE_FUNCTION
|
//#define _RELEASE_ONLY_ONE_FUNCTION
|
||||||
|
|
||||||
|
|
||||||
CSerial* m_pSO7_Serial=NULL;
|
CSerial* m_pSO7_Serial=NULL;
|
||||||
|
CPSerial* m_pSO7_PCDSerial=NULL;
|
||||||
CSO7_Proto* m_pSO7_Proto=NULL;
|
CSO7_Proto* m_pSO7_Proto=NULL;
|
||||||
CKeyence_Laser* m_pKeyence_Laser=NULL;
|
CKeyence_Laser* m_pKeyence_Laser=NULL;
|
||||||
CKeyence_Laser_LK_H* m_pKeyence_Laser_LK_H=NULL;
|
CKeyence_Laser_LK_H* m_pKeyence_Laser_LK_H=NULL;
|
||||||
@@ -101,9 +104,9 @@ BOOL CSo7_Option::OnInitDialog()
|
|||||||
((CButton *)GetDlgItem(IDC_RADIO_VIDEOCARD_SDK3000))->SetCheck(FALSE);
|
((CButton *)GetDlgItem(IDC_RADIO_VIDEOCARD_SDK3000))->SetCheck(FALSE);
|
||||||
((CButton *)GetDlgItem(IDC_RADIO_VIDEOCARD_SV2000E))->SetCheck(FALSE);
|
((CButton *)GetDlgItem(IDC_RADIO_VIDEOCARD_SV2000E))->SetCheck(FALSE);
|
||||||
((CButton *)GetDlgItem(IDC_RADIO_VIDEOCARD_TC4000))->SetCheck(FALSE);
|
((CButton *)GetDlgItem(IDC_RADIO_VIDEOCARD_TC4000))->SetCheck(FALSE);
|
||||||
((CButton *)GetDlgItem(IDC_RADIO_KEYENCE_LASER))->SetCheck(TRUE);
|
((CButton *)GetDlgItem(IDC_RADIO_KEYENCE_LASER))->SetCheck(FALSE);
|
||||||
((CButton *)GetDlgItem(IDC_RADIO_SO7_IP_CAMERA))->SetCheck(FALSE);
|
((CButton *)GetDlgItem(IDC_RADIO_SO7_IP_CAMERA))->SetCheck(FALSE);
|
||||||
((CButton *)GetDlgItem(IDC_RADIO__SO7_RS232))->SetCheck(FALSE);
|
((CButton *)GetDlgItem(IDC_RADIO__SO7_RS232))->SetCheck(TRUE);
|
||||||
((CButton *)GetDlgItem(IDC_RADIO_SO7_VERIFICATION_ALGORITHM))->SetCheck(FALSE);
|
((CButton *)GetDlgItem(IDC_RADIO_SO7_VERIFICATION_ALGORITHM))->SetCheck(FALSE);
|
||||||
|
|
||||||
#ifdef _RELEASE_ONLY_ONE_FUNCTION
|
#ifdef _RELEASE_ONLY_ONE_FUNCTION
|
||||||
@@ -196,6 +199,20 @@ void CSo7_Option::OnBnClickedOk()
|
|||||||
CSO7_Verfication_Algorithm* pSO7_Verfication_Algorithm=new CSO7_Verfication_Algorithm();
|
CSO7_Verfication_Algorithm* pSO7_Verfication_Algorithm=new CSO7_Verfication_Algorithm();
|
||||||
pSO7_Verfication_Algorithm->DoModal();
|
pSO7_Verfication_Algorithm->DoModal();
|
||||||
}
|
}
|
||||||
|
else if (((CButton *)GetDlgItem(IDC_RADIO__SO7_RS232))->GetCheck())
|
||||||
|
{
|
||||||
|
if (!m_pSO7_Serial)
|
||||||
|
m_pSO7_Serial = new CSerial();
|
||||||
|
|
||||||
|
CSo7_Manual_Machine* pSo7_Manual_Machine=new CSo7_Manual_Machine();
|
||||||
|
pSo7_Manual_Machine->DoModal();
|
||||||
|
|
||||||
|
if (m_pSO7_Serial)
|
||||||
|
{
|
||||||
|
delete m_pSO7_Serial;
|
||||||
|
m_pSO7_Serial=NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef _RELEASE_ONLY_ONE_FUNCTION
|
#ifdef _RELEASE_ONLY_ONE_FUNCTION
|
||||||
|
|||||||
@@ -213,6 +213,7 @@
|
|||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\..\SevenOcean\CMMIO_BASE.CPP" />
|
<ClCompile Include="..\..\..\SevenOcean\CMMIO_BASE.CPP" />
|
||||||
<ClCompile Include="..\..\..\SevenOcean\CMMIO_SERIAL.CPP" />
|
<ClCompile Include="..\..\..\SevenOcean\CMMIO_SERIAL.CPP" />
|
||||||
|
<ClCompile Include="..\..\..\SevenOcean\Serial.cpp" />
|
||||||
<ClCompile Include="..\..\..\SevenOcean\So7_Interface.cpp" />
|
<ClCompile Include="..\..\..\SevenOcean\So7_Interface.cpp" />
|
||||||
<ClCompile Include="..\..\..\SevenOcean\SO7_Proto.cpp" />
|
<ClCompile Include="..\..\..\SevenOcean\SO7_Proto.cpp" />
|
||||||
<ClCompile Include="..\LOGGER.CPP" />
|
<ClCompile Include="..\LOGGER.CPP" />
|
||||||
@@ -267,6 +268,7 @@
|
|||||||
<ClInclude Include="..\..\..\SevenOcean\CMMIO_SERIAL.H" />
|
<ClInclude Include="..\..\..\SevenOcean\CMMIO_SERIAL.H" />
|
||||||
<ClInclude Include="..\..\..\SevenOcean\DLL.h" />
|
<ClInclude Include="..\..\..\SevenOcean\DLL.h" />
|
||||||
<ClInclude Include="..\..\..\SevenOcean\NewDataStruct.h" />
|
<ClInclude Include="..\..\..\SevenOcean\NewDataStruct.h" />
|
||||||
|
<ClInclude Include="..\..\..\SevenOcean\Serial.h" />
|
||||||
<ClInclude Include="..\..\..\SevenOcean\So7_Interface.h" />
|
<ClInclude Include="..\..\..\SevenOcean\So7_Interface.h" />
|
||||||
<ClInclude Include="..\..\..\SevenOcean\SO7_Proto.h" />
|
<ClInclude Include="..\..\..\SevenOcean\SO7_Proto.h" />
|
||||||
<ClInclude Include="..\..\..\Videocard\SDK3000\sdk3000_7130.h" />
|
<ClInclude Include="..\..\..\Videocard\SDK3000\sdk3000_7130.h" />
|
||||||
|
|||||||
@@ -121,7 +121,12 @@
|
|||||||
<ClCompile Include="So7_Manual_Machine.cpp">
|
<ClCompile Include="So7_Manual_Machine.cpp">
|
||||||
<Filter>Sources Files</Filter>
|
<Filter>Sources Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="SO7_Verfication_Algorithm.cpp" />
|
<ClCompile Include="SO7_Verfication_Algorithm.cpp">
|
||||||
|
<Filter>Sources Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\SevenOcean\Serial.cpp">
|
||||||
|
<Filter>Sources Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="CaptureDataDlg.h">
|
<ClInclude Include="CaptureDataDlg.h">
|
||||||
@@ -274,7 +279,12 @@
|
|||||||
<ClInclude Include="So7_Manual_Machine.h">
|
<ClInclude Include="So7_Manual_Machine.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="SO7_Verfication_Algorithm.h" />
|
<ClInclude Include="SO7_Verfication_Algorithm.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\SevenOcean\Serial.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="ReadMe.txt" />
|
<None Include="ReadMe.txt" />
|
||||||
|
|||||||
@@ -345,6 +345,8 @@
|
|||||||
#define IDC_EDIT_IMAGEDLL_2LASER_TOPZ1 1274
|
#define IDC_EDIT_IMAGEDLL_2LASER_TOPZ1 1274
|
||||||
#define IDC_EDIT_FRESHSPEED_X2 1275
|
#define IDC_EDIT_FRESHSPEED_X2 1275
|
||||||
#define IDC_EDIT_IMAGEDLL_2LASER_TOPZ2 1275
|
#define IDC_EDIT_IMAGEDLL_2LASER_TOPZ2 1275
|
||||||
|
#define IDC_EDIT_REPRETEST2 1275
|
||||||
|
#define IDC_EDIT_MANUAL_MACHINE_MSG 1275
|
||||||
#define IDC_EDIT_FRESHSPEED_X3 1276
|
#define IDC_EDIT_FRESHSPEED_X3 1276
|
||||||
#define IDC_EDIT_IMAGEDLL_2LASER_TOPZ3 1276
|
#define IDC_EDIT_IMAGEDLL_2LASER_TOPZ3 1276
|
||||||
#define IDC_BUTTON_ZERO_SET 1277
|
#define IDC_BUTTON_ZERO_SET 1277
|
||||||
@@ -356,7 +358,6 @@
|
|||||||
#define IDC_EDIT_FRESHSPEED_Y1 1279
|
#define IDC_EDIT_FRESHSPEED_Y1 1279
|
||||||
#define IDC_EDIT_IMAGEDLL_2LASER_TOPZ6 1279
|
#define IDC_EDIT_IMAGEDLL_2LASER_TOPZ6 1279
|
||||||
#define IDC_BUTTON_SAVE 1280
|
#define IDC_BUTTON_SAVE 1280
|
||||||
#define IDC_EDIT_IMAGEDLL_2LASER_TOPZ7 1280
|
|
||||||
#define IDC_EDIT_IMAGEDLL_2LASER_BOTTOMZ__CALIBRATE 1280
|
#define IDC_EDIT_IMAGEDLL_2LASER_BOTTOMZ__CALIBRATE 1280
|
||||||
#define IDC_BUTTON_SAVE_PARAMETER 1281
|
#define IDC_BUTTON_SAVE_PARAMETER 1281
|
||||||
#define IDC_EDIT_IMAGEDLL_2LASER_TOPZ_CALIBRATE 1281
|
#define IDC_EDIT_IMAGEDLL_2LASER_TOPZ_CALIBRATE 1281
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user