?? referview.cpp
字號:
// referView.cpp : implementation of the CReferView class
//
#include "stdafx.h"
#include "refer.h"
#include "referDoc.h"
#include "referView.h"
OVERLAPPED read_os;
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CReferView
IMPLEMENT_DYNCREATE(CReferView, CEditView)
BEGIN_MESSAGE_MAP(CReferView, CEditView)
//{{AFX_MSG_MAP(CReferView)
ON_WM_CREATE()
ON_WM_CHAR()
ON_WM_TIMER()
ON_WM_DESTROY()
ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CReferView construction/destruction
CReferView::CReferView()
{
// TODO: add construction code here
}
CReferView::~CReferView()
{
// TODO: add construction code here
}
BOOL CReferView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
BOOL bPreCreated = CEditView::PreCreateWindow(cs);
cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL); // Enable word-wrapping
return bPreCreated;
}
/////////////////////////////////////////////////////////////////////////////
// CReferView drawing
void CReferView::OnDraw(CDC* pDC)
{
CReferDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
RECT ClientRect;
GetClientRect(&ClientRect);
// pDC->ExtTextOut(0,0,ETO_OPAQUE,ClientRect,pDoc->GetShowString(),NULL);
// pDC->TextOut(0,0,pDoc->GetShowString());
// pDC->TextOut(pDoc->GetShowString(),-1,&ClientRect,
// DT_CENTER|DT_VCENTER|DT_SINGLELINE);
}
/////////////////////////////////////////////////////////////////////////////
// CReferView diagnostics
#ifdef _DEBUG
void CReferView::AssertValid() const
{
CEditView::AssertValid();
}
void CReferView::Dump(CDumpContext& dc) const
{
CEditView::Dump(dc);
}
CReferDoc* CReferView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CReferDoc)));
return (CReferDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CReferView message handlers
int CReferView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CEditView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
// OVERLAPPED read_os;
// MessageBox("hello");
CEdit&m_editCtrl=GetEditCtrl();
// m_editCtrl.SetReadOnly();
DCB dcb;
hCommDev=CreateFile(_T("COM1:"),GENERIC_READ|GENERIC_WRITE,
0,NULL,OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, NULL);//open port
if(hCommDev==(HANDLE)-1)
// if(hCommDev == INVALID_HANDLE_VALUE)
{ MessageBox(_T("PORT ERROR"));
return TRUE;
}
//*******************************************
COMMTIMEOUTS CommTimeOuts;
GetCommState(hCommDev, &dcb ) ;
dcb.DCBlength = sizeof( DCB ) ;
dcb.BaudRate =9600;
// dcb.BaudRate =57600;
dcb.fBinary = TRUE ;
dcb.fParity =FALSE;//TRUE ;
dcb.ByteSize =8;
dcb.Parity =0;//ODDPARITY;
dcb.StopBits =0;//ONESTOPBIT ;
dcb.fOutX=TRUE;
// dcb.fErrorChar=TRUE;
// dcb.XonChar = ASCII_XON ;
// dcb.XoffChar = ASCII_XOFF ;
dcb.XonLim = 100 ;
dcb.XoffLim = 100 ;
dcb.fNull=1;
dcb.fRtsControl=0;
SetCommState(hCommDev, &dcb ) ;
// SetupComm(hCommDev, 65535, 65535) ;
// purge any information in the buffer
PurgeComm(hCommDev, PURGE_TXABORT | PURGE_RXABORT |
PURGE_TXCLEAR | PURGE_RXCLEAR ) ;
// set up for overlapped I/O
CommTimeOuts.ReadIntervalTimeout =0xFFFFFFFF ;
CommTimeOuts.ReadTotalTimeoutMultiplier =0 ;
CommTimeOuts.ReadTotalTimeoutConstant =0;//100;
CommTimeOuts.WriteTotalTimeoutMultiplier = 0 ;
CommTimeOuts.WriteTotalTimeoutConstant =10;//1000;
SetCommTimeouts(hCommDev, &CommTimeOuts ) ;
//*****************************************
/* BuildCommDCB("COM2:1200,n,8,1",&dcb);
// GetCommState(hCommDev,&dcb);
SetCommState(hCommDev,&dcb);
COMMTIMEOUTS CommTimeOuts;
CommTimeOuts.ReadIntervalTimeout =MAXDWORD ;
CommTimeOuts.ReadTotalTimeoutMultiplier =0 ;
CommTimeOuts.ReadTotalTimeoutConstant =0;
CommTimeOuts.WriteTotalTimeoutMultiplier = 0 ;
CommTimeOuts.WriteTotalTimeoutConstant =10;//1000;
SetCommTimeouts(hCommDev, &CommTimeOuts ) ;
PurgeComm(hCommDev,PURGE_TXCLEAR);
PurgeComm(hCommDev,PURGE_RXCLEAR);*/
//*******************************************
char strOutMsg[20]="ATZ\r";
DWORD dwBytesWritten;
WriteFile(hCommDev,strOutMsg,strlen(strOutMsg),
&dwBytesWritten,NULL);
/* Sleep(2000);
char strOutMsg1[20]="ATDt169\r";
DWORD dwBytesWritten1;
WriteFile(hCommDev,strOutMsg1,strlen(strOutMsg1),
&dwBytesWritten1,NULL);
Sleep(2000);*/
// SetTimer(1,2000,NULL);
SetTimer(1,50,NULL);
return 0;
}
void CReferView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
DWORD dwBytesWritten;
WriteFile(hCommDev,&nChar,1,&dwBytesWritten,NULL);
// m_editCtrl=int(&nChar);
// MessageBox("nChar");
CEditView::OnChar(nChar, nRepCnt, nFlags);
}
void CReferView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
char strCommRecvMsg[911];
DWORD i=0,j=0,m=0;
// char a,b;
DWORD dwBytesRead;
BOOL bReturn=ReadFile(hCommDev,strCommRecvMsg,911,&dwBytesRead,
// &read_os);
NULL);
// BOOL bReturn=ReadFile(hCommDev,strCommRecvMsg,dwBytesRead,&dwBytesRead,
// NULL);
// if( strCommRecvMsg[0]==0x00)
// {
// for (i=0;i<=dwBytesRead;i++)
// { strCommRecvMsg[i]=strCommRecvMsg[i+1];
// }
// }
/* m=dwBytesRead;
for(i=0;i<m;i++)
{ a=strCommRecvMsg[i+j];
if(a!=0x0F)
{ strCommRecvMsg[i]=a|0x80;// china
}
else //0x0F English
{ j++;
// strCommRecvMsg[i]=strCommRecvMsg[i+j];
b=strCommRecvMsg[i+j];
while(b!=0x0E)
{ strCommRecvMsg[i]=strCommRecvMsg[i+j];
b=strCommRecvMsg[i];
i++;
if(i>m)
{i=i+2;
break;}
}
i=i-2;
j++;
}
}*/
if(!bReturn)
return;
if( dwBytesRead<1)
return;
CEdit&m_editCtrl=GetEditCtrl();
CString strTmp,strTmp1;
m_editCtrl,GetWindowText(strTmp);
// char str[100];
// wsprintf(str,"%s",strTmp);
strTmp1=strCommRecvMsg;
strTmp+=strTmp1.Left(dwBytesRead);
// m_editCtrl.SetWindowText(strTmp);
m_editCtrl.SetWindowText(strTmp);
CEditView::OnTimer(nIDEvent);
}
void CReferView::OnDestroy()
{
CEditView::OnDestroy();
// TODO: Add your message handler code here
KillTimer(1);
}
void CReferView::OnFileOpen()
{
// TODO: Add your command handler code here
// char buffer[1024];
// buffer[0]='2';
// DWORD dwBytesWritten;
// WriteFile(hCommDev,buffer,201,&dwBytesWritten,NULL);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -