📄 mycom.cpp
字号:
// MyCom.cpp: implementation of the CMyCom class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "stdafx.h"
#include "CommTest.h"
#include "MyCom.h"
#include "CommTestDlg.h"
#define LINELBYTES 25
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMyCom::CMyCom()
{
pCommTestDlg = FALSE;
}
CMyCom::~CMyCom()
{
}
CMyCom::CMyCom(CCommTestDlg *pDlg)
{
pCommTestDlg = pDlg;
}
BOOL CMyCom::OnReceive()
{
BYTE buff[1024];
time_ttc1 = ::GetTickCount() - time_ttc;
GetSystemTime( &m_time );
DWORD Len = Read( buff, sizeof(buff));
if( Len > 0)
DisplayCommunicateCode(buff, Len, TRUE);
return Len;
}
BOOL CMyCom::DisplayCommunicateCode(BYTE *buff, DWORD Len, BOOL Flags)
{
DWORD i = 0;
CString str;
char temp[LINELBYTES] = {0};
if(pCommTestDlg == NULL || Len == 0)
return FALSE;
if(!pCommTestDlg ->m_hex)
{
str ="";
for(i = 0; i < Len; i++)
{
sprintf(temp,"%02x ",buff[i]);
str = str + temp;
if((i + 1) % LINELBYTES == 0)
str += "\r\n";
}
}
else
{
str ="";
for(i = 0; i < Len / LINELBYTES; i++)
{
strncpy(temp,(char *)&buff[i * LINELBYTES],LINELBYTES);
str += temp;
str += "\r\n";
}
memset(temp,0,LINELBYTES);
strncpy(temp,(char *)&buff[i * LINELBYTES],Len % LINELBYTES);
str += temp;
}
pCommTestDlg->m_display += "\r\n";
if(Flags)
{
char tmp[20] = {0};
sprintf( tmp,"\n time = %d mis = %d \n", time_ttc1, m_time.wMilliseconds);
pCommTestDlg->m_display += tmp;
if(m_send)
{
m_send = false;
pCommTestDlg->m_display += "接收:";
}
}
else
pCommTestDlg->m_display += "发送:";
pCommTestDlg->m_display += "\r\n";
str.MakeUpper();
pCommTestDlg->m_display += str;
pCommTestDlg->SendMessage(WM_USER + 100,0,0);
return TRUE;
}
DWORD CMyCom::Write(BYTE *buff, DWORD bufflen)
{
DWORD Len = CAsyncCom::Write(buff, bufflen,FALSE);
DisplayCommunicateCode(buff, bufflen,FALSE);
time_ttc = ::GetTickCount();
m_send = true;
return Len;
}
BOOL CMyCom::SetCom(COMM_STRUCT &t)
{
StopBits = t.stbit + 1;
Parity = t.parity ;
//##ModelId=3BDCCE3D03B4
ByteSize = t.dabit + 6;
//##ModelId=3BDCCE3D03BD
BaudRate = 1200;
sComName.Format("\\\\.\\COM%d",t.comno + 1);
// sComName.Format("\\\\.\\LPT1");
return TRUE;
}
//"LD_LIBRARY_PATH", "/lib:/usr/lib:/home/et1000"
//export LD_LIBRARY_PATH="/lib:/usr/lib:/home/et1000"
//insmod /data0/serial.o
//fopen
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -