📄 serialthread.cpp
字号:
// SerialThread.cpp : implementation file
//
#include "stdafx.h"
#include "Fidelix Tools.h"
#include "Serial.h"
#include "SerialThread.h"
#include "ext_h.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSerialThread
IMPLEMENT_DYNCREATE(CSerialThread, CWinThread)
CSerialThread::CSerialThread()
{
}
CSerialThread::~CSerialThread()
{
}
BOOL CSerialThread::InitInstance()
{
// TODO: perform and per-thread initialization here
return TRUE;
}
int CSerialThread::ExitInstance()
{
// TODO: perform any per-thread cleanup here
return CWinThread::ExitInstance();
}
BEGIN_MESSAGE_MAP(CSerialThread, CWinThread)
//{{AFX_MSG_MAP(CSerialThread)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSerialThread message handlers
int CSerialThread::Run()
{
DWORD dwEvent;
while( 1 )
{
if( m_Serial.m_bOpened == TRUE ) //if serial port is opened
{
m_Serial.WaitEvent( &dwEvent );
int count = m_Serial.GetInBufferCount();
if( ( dwEvent & EV_RXCHAR ) && count )
{
tempstr = ( unsigned char * )malloc( count );
m_Serial.ReadData( tempstr, count );
for( int i = 0; i < count; i++ )
{
*( RcvCommBuf + RcvCommTail ) = *( ( ( unsigned char * ) tempstr ) + i );
RcvCommTail ++;
RcvCommTail %= MAXCOMBUF;
}
free(tempstr);
}
}
}
return CWinThread::Run();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -