📄 dyrasview.cpp
字号:
dc.Rectangle(135,70,175,75);
dc.SelectObject(pOldpen);
dc.SelectObject(pOldbr);
}
void CDyRasView::DrawJdRect(int num)
{
CClientDC dc(this);
CPen penGray,penGree;
penGray.CreatePen(PS_SOLID,1,RGB(200,200,200));
penGree.CreatePen(PS_SOLID,1,RGB(0,255,0));
CPen* pOldpen;
CRect rc;
GetClientRect(&rc);
CBrush br;
CBrush* pOldbr;
if(num==1) {// turn on the mark
br.CreateSolidBrush(RGB(0,255,0));
pOldbr=dc.SelectObject(&br);
GetDlgItem(IDC_STATICJDNAME)->EnableWindow(TRUE);
pOldpen=dc.SelectObject(&penGree);
}
else if(num==0) {// turn off the mark
br.CreateSolidBrush(RGB(185,185,185));
pOldbr=dc.SelectObject(&br);
GetDlgItem(IDC_STATICJDNAME)->EnableWindow(FALSE);
pOldpen=dc.SelectObject(&penGray);
}
dc.Rectangle(230,50,260,70);
dc.Rectangle(225,70,265,75);
dc.SelectObject(pOldpen);
dc.SelectObject(pOldbr);
}
void CDyRasView::DrawJbRect(int num)
{
CClientDC dc(this);
CPen penGray,penGree;
penGray.CreatePen(PS_SOLID,1,RGB(200,200,200));
penGree.CreatePen(PS_SOLID,1,RGB(0,255,0));
CPen* pOldpen;
CRect rc;
GetClientRect(&rc);
CBrush br;
CBrush* pOldbr;
if(num==1) {// turn on the mark
br.CreateSolidBrush(RGB(0,255,0));
pOldbr=dc.SelectObject(&br);
GetDlgItem(IDC_STATICJBNAME)->EnableWindow(TRUE);
pOldpen=dc.SelectObject(&penGree);
}
else if(num==0) {// turn off the mark
br.CreateSolidBrush(RGB(185,185,185));
pOldbr=dc.SelectObject(&br);
GetDlgItem(IDC_STATICJBNAME)->EnableWindow(FALSE);
pOldpen=dc.SelectObject(&penGray);
}
dc.Rectangle(320,50,350,70);
dc.Rectangle(315,70,355,75);
dc.SelectObject(pOldpen);
dc.SelectObject(pOldbr);
}
void CDyRasView::InitComm1()
{
BOOL ComBuf,CommState;
hCommDev1=CreateFile("COM3",GENERIC_READ|GENERIC_WRITE,
0,NULL,OPEN_EXISTING,0,NULL);//打开串口
if(hCommDev1==(HANDLE)-1) {
m_ctlRasRun.InsertString(0,"串口3初始化错误!");
return ;
}
ComBuf=SetupComm(hCommDev1,1024,1024);
dcb1.EvtChar='z';
CommState=GetCommState(hCommDev1,&dcb1);
BuildCommDCB("COM3:4800,e,8,1",&dcb1);
CommState=SetCommState(hCommDev1,&dcb1);
COMMTIMEOUTS CommTimeOuts;
CommTimeOuts.ReadIntervalTimeout=MAXDWORD;
CommTimeOuts.ReadTotalTimeoutMultiplier=0;
CommTimeOuts.ReadTotalTimeoutConstant=0;
CommTimeOuts.WriteTotalTimeoutMultiplier=0;
CommTimeOuts.WriteTotalTimeoutConstant=1000;
SetCommTimeouts(hCommDev1,&CommTimeOuts);
PurgeComm(hCommDev1,PURGE_TXCLEAR);//清发送缓冲区
PurgeComm(hCommDev1,PURGE_RXCLEAR);//清发收缓冲区
}
void CDyRasView::OnClose()
{
// TODO: Add your message handler code here and/or call default
CloseHandle(hCommDev1);
CloseHandle(hCommDev2);
CloseHandle(hCommDev3);
SendTestMsg(m_pCommSocket,WCLOSE);
CFormView::OnClose();
}
void CDyRasView::InitComm2()
{
BOOL ComBuf,CommState;
hCommDev2=CreateFile("COM4",GENERIC_READ|GENERIC_WRITE,
0,NULL,OPEN_EXISTING,0,NULL);//打开串口
if(hCommDev1==(HANDLE)-1) {
m_ctlRasRun.InsertString(0,"串口4=Modem2初始化错误!");
return ;
}
ComBuf=SetupComm(hCommDev2,1024,1024);
CommState=GetCommState(hCommDev2,&dcb2);
BuildCommDCB("COM4:4800,e,8,1",&dcb2);
CommState=SetCommState(hCommDev2,&dcb2);
COMMTIMEOUTS CommTimeOuts;
CommTimeOuts.ReadIntervalTimeout=MAXDWORD;
CommTimeOuts.ReadTotalTimeoutMultiplier=0;
CommTimeOuts.ReadTotalTimeoutConstant=0;
CommTimeOuts.WriteTotalTimeoutMultiplier=0;
CommTimeOuts.WriteTotalTimeoutConstant=0;
SetCommTimeouts(hCommDev2,&CommTimeOuts);
PurgeComm(hCommDev2,PURGE_TXCLEAR);//清发送缓冲区
PurgeComm(hCommDev2,PURGE_RXCLEAR);//清发收缓冲区
}
void CDyRasView::InitComm3()
{
BOOL ComBuf,CommState;
hCommDev3=CreateFile("COM5",GENERIC_READ|GENERIC_WRITE,
0,NULL,OPEN_EXISTING,0,NULL);//打开串口
if(hCommDev3==(HANDLE)-1) {
m_ctlRasRun.InsertString(0,"串口5初始化错误!");
return ;
}
ComBuf=SetupComm(hCommDev3,1024,1024);
CommState=GetCommState(hCommDev3,&dcb3);
BuildCommDCB("COM5:4800,e,8,1",&dcb3);
CommState=SetCommState(hCommDev3,&dcb3);
COMMTIMEOUTS CommTimeOuts;
CommTimeOuts.ReadIntervalTimeout=MAXDWORD;
CommTimeOuts.ReadTotalTimeoutMultiplier=0;
CommTimeOuts.ReadTotalTimeoutConstant=0;
CommTimeOuts.WriteTotalTimeoutMultiplier=0;
CommTimeOuts.WriteTotalTimeoutConstant=1000;
SetCommTimeouts(hCommDev3,&CommTimeOuts);
PurgeComm(hCommDev3,PURGE_TXCLEAR);//清发送缓冲区
PurgeComm(hCommDev3,PURGE_RXCLEAR);//清发收缓冲区
}
void CDyRasView::ReadComm1()
{
int iRecvStrLen,i,j=0;
char x='s',y='r',z='a';
DWORD dwRead;
BOOL bReturn=FALSE,mbdStat1=FALSE;
CString str="轧钢";
BYTE ZgBuff[1024];
ZGBUFF[0]=ZG;
SendTestMsg(m_pCommSocket,ZGTEST);
ClearCommError(hCommDev1,&dwErrorFlag,&comStat);
m_bMark[1]=TRUE;
iRecvStrLen=comStat.cbInQue;
if(iRecvStrLen==ZGRECELEN) {
bReturn=ReadFile(hCommDev1,ZgBuff,1024,&dwRead,NULL);
if(!bReturn) return;
ShowFolloTime(str,y);
for(i=0;i<ZGRECELEN;i++)
if(ZGBUFF[i+1]==ZgBuff[i]) j++;
if(j<ZGRECELEN-1) {
for(i=0;i<ZGRECELEN;i++) ZGBUFF[i+1]=ZgBuff[i];
SendMsg(m_pCommSocket,ZGBUFF);
ShowFolloTime(str,x);
}
}
PurgeComm(hCommDev1,PURGE_TXCLEAR);//清发送缓冲区
PurgeComm(hCommDev1,PURGE_RXCLEAR);//清收缓冲区
if(m_ctlSend.GetCount()>LISTLEN) m_ctlSend.ResetContent();
if(m_ctlReceive.GetCount()>LISTLEN) m_ctlReceive.ResetContent();
}
void CDyRasView::ReadComm2()
{
int iRecvStrLen,i,j=0;
char x='s',y='r';
DWORD dwRead;
BOOL bReturn=FALSE;
CString str="嘉东",strr1;
BYTE JdBuff[1024];
JDBUFF[0]=JD;
SendTestMsg(m_pCommSocket,JDTEST);
ClearCommError(hCommDev2,&dwErrorFlag,&comStat);
m_bMark[2]=TRUE;
iRecvStrLen=comStat.cbInQue;
// strr1.Format("%d",iRecvStrLen);
// ShowFolloTime(strr1,y);
if(iRecvStrLen==JDRECELEN) {
bReturn=ReadFile(hCommDev2,JdBuff,1024,&dwRead,NULL);
if(!bReturn) return;
ShowFolloTime(str,y);
for(i=0;i<JDRECELEN;i++)
if(JDBUFF[i+1]==JdBuff[i]) j++;
if(j<JDRECELEN-1) {
for(i=0;i<JDRECELEN;i++) JDBUFF[i+1]=JdBuff[i];
SendMsg(m_pCommSocket,JDBUFF);
ShowFolloTime(str,x);
}
}
PurgeComm(hCommDev2,PURGE_TXCLEAR);//清发送缓冲区
PurgeComm(hCommDev2,PURGE_RXCLEAR);//清收缓冲区
if(m_ctlSend.GetCount()>LISTLEN) m_ctlSend.ResetContent();
if(m_ctlReceive.GetCount()>LISTLEN) m_ctlReceive.ResetContent();
}
void CDyRasView::ReadComm3()
{
int iRecvStrLen,i,j=0;
char x='s',y='r',z='a';
DWORD dwRead;
BOOL bReturn=FALSE,mbdStat2=FALSE;
CString str="嘉北",strr1;
BYTE JbBuff[1024];
JBBUFF[0]=JB;
SendTestMsg(m_pCommSocket,JBTEST);
ClearCommError(hCommDev3,&dwErrorFlag,&comStat);
m_bMark[3]=TRUE;
iRecvStrLen=comStat.cbInQue;
// strr1.Format("%d",iRecvStrLen);
// ShowFolloTime(strr1,y);
if(iRecvStrLen==JBRECELEN) {
bReturn=ReadFile(hCommDev3,JbBuff,1024,&dwRead,NULL);
if(!bReturn) return;
ShowFolloTime(str,y);
for(i=0;i<JBRECELEN;i++)
if(JBBUFF[i+1]==JbBuff[i]) j++;
if(j<JBRECELEN-1) {
for(i=0;i<JBRECELEN;i++) JBBUFF[i+1]=JbBuff[i];
SendMsg(m_pCommSocket,JBBUFF);
ShowFolloTime(str,x);
}
}
PurgeComm(hCommDev3,PURGE_TXCLEAR);//清发送缓冲区
PurgeComm(hCommDev3,PURGE_RXCLEAR);//清收缓冲区
if(m_ctlSend.GetCount()>LISTLEN) m_ctlSend.ResetContent();
if(m_ctlReceive.GetCount()>LISTLEN) m_ctlReceive.ResetContent();
}
void CDyRasView::ShowFolloTime(LPCTSTR lpszstrMsg,char x)
{
CString strMsg=lpszstrMsg,strName;
char strTmsg[20];
CString strTt;
CString strTemp;
strTemp=strMsg.Left(10);
CTime time=CTime::GetCurrentTime();
wsprintf(strTmsg,"%2d:%2d:%2d",time.GetHour(),time.GetMinute(),time.GetSecond());
strTt=_T(" ");
strTemp=strMsg+strTt+strTmsg;
if(m_ctlSend.GetCount()>LISTLEN) m_ctlSend.ResetContent();
if(m_ctlReceive.GetCount()>LISTLEN) m_ctlReceive.ResetContent();
switch(x) {
case 'r': {
m_ctlReceive.InsertString(0,strTemp);
break;
}
case 's':{
m_ctlSend.InsertString(0,strTemp);
break;
}
case 'u':{
m_ctlRasRun.InsertString(0,strTemp);
break;
}
case 'a':{
m_ctlReceive.InsertString(0,strTemp);
m_ctlSend.InsertString(0,strTemp);
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -