⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 simsimensdoc.cpp

📁 用VC做的串口程序
💻 CPP
📖 第 1 页 / 共 3 页
字号:
{
	rt_number++;
    if((rt_number<TXA)&&(bcc!=char(DLE)))
	{
		SmallReturnIdle();
        SetTString();
		Transmit();
	}
	else
	{
        Show_TXA_OVER_T_TEXT();
		Write(char(NAK));
		Show_T_NAK();
		EmptyTempStr();
		LargeReturnIdle();
		LinkError();
	}
	return;
}

void CSimSimensDoc::ReadDLE_1()
{
	char c=NULL;
	c=Read();
	if(c==char(DLE))
	{
		Show_R_DLE();
		WriteText();
		m_nWriteStep=1;
	}
	else
	{
		if(c==char(STX))
		{
			Show_R_STX();
			if(!priority)
			{
				Write(char(DLE));
				Show_T_DLE();
				m_nStatus=0;
				m_nReadStep=1;
				m_nWriteStep=0;
			}
		}
		else
		{	
			Show_R_OTHER();
			Transmit();
			rt_STX_number++;		
		}
	}
	if(rt_STX_number>TXA)
	{
		Show_TXA_OVER_STX();
		EmptyTempStr();
		LargeReturnIdle();
		LinkError();
	}
	return;
}

void CSimSimensDoc::ReadDLE_2()
{
	char c=NULL;
	c=Read();
	if(c==char(DLE))
	{
		Show_R_DLE();
	    Show_T_TEXT_SUCCESS();
		EmptyTempStr();
	    LargeReturnIdle();
		if(is_replace)
		{
			if(replace_arr.GetSize()!=0)
			{
				ReplaceData(replace_arr.GetAt(0));
				replace_arr.RemoveAt(0);
			}
			else
				is_replace=false;
		}
	}
	else
	{
		Show_R_OTHER();
		Show_T_TEXT_UNSUCCESS();
		ReTransmit();
	}
	return;
}

void CSimSimensDoc::ReadSTX()
{
	char c=NULL;
	c=Read();
	if(c==char(STX))
	{
		EmptyRString();
		Show_R_STX();
		Write(char(DLE));
		Show_T_DLE();
		m_nReadStep=1;
	}
	else
	{
		if(c==char(NAK))
			LargeReturnIdle();
		else
		{		
			Show_R_OTHER();
			::Sleep(ZVZ);
			Show_ZVZ_WAIT();
			Write(char(NAK));
			Show_T_NAK();
			SmallReturnIdle();
		}
	}
	return;
}

void CSimSimensDoc::ReadText()
{
	COMSTAT ComStat;
	DWORD dwErrorFlags;
	char c=NULL;
	c=Read();
	if(ClearCommError(m_hCom,&dwErrorFlags,&ComStat))
		no_error=true;//?
	if(c==char(DLE))
		m_nReadStep=2;
	else
	{
		rc=c;
		receive_str[receive_number]=c;
		receive_number++;
	}
	if(OutTime(ZVZ))
	{
		Show_ZVZ_OUTTIME();
		Write(char(NAK));
		Show_T_NAK();
		rr_number++;
		SmallReturnIdle();
	}
	if(rr_number>TXA)
	{
		Show_TXA_OVER_R_TEXT();
		LargeReturnIdle();
		LinkError();
	}
	return;
}

void CSimSimensDoc::ReadETX()
{ 
	COMSTAT ComStat;
	DWORD dwErrorFlags;
	char c=NULL;
	c=Read();
	if(ClearCommError(m_hCom,&dwErrorFlags,&ComStat))
		no_error=true;//?
	if(c==char(DLE))
	{
		rc=c;
		receive_str[receive_number]=c;
		receive_number++;
		m_nReadStep=1;
	}
	else
	{
		if(c==char(ETX))
		{
			receive_str[receive_number]=char(DLE);
	        receive_number++;
	        receive_str[receive_number]=char(ETX);
	        receive_number++;
		    m_nReadStep=3;
		}
		else
		{
			Show_R_OTHER();
			no_error=false;
			m_nReadStep=1;
		}
	}
	if(OutTime(ZVZ))
	{
		Show_ZVZ_OUTTIME();
		Write(char(NAK));
		Show_T_NAK();
		rr_number++;
		SmallReturnIdle();
	}
    if(rr_number>TXA)
	{
		Show_TXA_OVER_R_TEXT();
		LargeReturnIdle();
		LinkError();
	}
	return;
}

void CSimSimensDoc::ReadBCC()
{
	COMSTAT ComStat;
	DWORD dwErrorFlags;
	char c=NULL;
	bool b=false;
	c=Read();
	if(ClearCommError(m_hCom,&dwErrorFlags,&ComStat))
		no_error=true;//?
	Show_R_DLEETXBCC();
	b=CheckBCC(c);
	if(b)
	{
		Show_CHECKBCC_SUCCESS();
		b=no_error;
		if(b)
		{
			Show_CHECK_SUCCESS();
			Show_R_TEXT_SUCCESS();
			Write(char(DLE));
			Show_T_DLE();
			if(receive_str[0]=='R')
				is_replace=true;
			else
                LargeReturnIdle();
			if(is_replace)
			{
				LargeReturnIdle();
				if(replace_arr.GetSize()!=0)
				{
					ReplaceData(replace_arr.GetAt(0));
					replace_arr.RemoveAt(0);
				}
				else
					is_replace=false;
			}
		}
		else
		{
			Show_CHECK_UNSUCCESS();
			Show_R_TEXT_UNSUCCESS();
		    rr_number++;
			if(rr_number>TXA)
			{
				Show_TXA_OVER_R_TEXT();
		        LargeReturnIdle();
				LinkError();
			}
		    else
			{
		        Write(char(NAK));
		    	Show_T_NAK();
			    SmallReturnIdle();
			}
		}
	}
	else
	{
		Show_CHECKBCC_UNSUCCESS();
		Show_R_TEXT_UNSUCCESS();
		rr_number++;
        if(rr_number>TXA)
		{
			Show_TXA_OVER_R_TEXT();
		    LargeReturnIdle();
			LinkError();
		}
		else
		{
			Write(char(NAK));
	        Show_T_NAK();
	        SmallReturnIdle();
		}
	}
	return;
}

void CSimSimensDoc::ReadComm()
{
	switch(m_nStatus)
	{
    case 0:
		switch(m_nReadStep)
		{
		case 0:
			ReadSTX();
			break;
		case 1:
		    ReadText();
			break;
		case 2:
			ReadETX();
			break;
        case 3:
            ReadBCC();
			break;
		default:;
		}
		break;
    case 1:
		switch(m_nWriteStep)
		{
		case 0:
			ReadDLE_1();
			break;
		case 1:
			ReadDLE_2();
			break;
		default:;
		}
		break;
   	default:;
	   }
	return;
}

void CSimSimensDoc::Show_T_STX()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_T_STX);
}

void CSimSimensDoc::Show_T_DLE()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_T_DLE);
}

void CSimSimensDoc::Show_T_NAK()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_T_NAK);
}

void CSimSimensDoc::Show_T_DLEETXBCC()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_T_DLEETXBCC);
}

void CSimSimensDoc::Show_R_STX()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_R_STX);
}

void CSimSimensDoc::Show_R_DLE()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_R_DLE);
}

void CSimSimensDoc::Show_R_NAK()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_R_NAK);
}

void CSimSimensDoc::Show_R_DLEETXBCC()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_R_DLEETXBCC);
}

void CSimSimensDoc::Show_ZVZ_OUTTIME()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_ZVZ_OUTTIME);
}

void CSimSimensDoc::Show_QVZ_OUTTIME()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_QVZ_OUTTIME);
}

void CSimSimensDoc::Show_BWA_OUTTIME()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_BWA_OUTTIME);
}

void CSimSimensDoc::Show_ZVZ_WAIT()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_ZVZ_WAIT);
}

void CSimSimensDoc::Show_TXA_OVER_STX()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_TXA_OVER_STX);
}

void CSimSimensDoc::Show_TXA_OVER_T_TEXT()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_TXA_OVER_T_TEXT);
}

void CSimSimensDoc::Show_TXA_OVER_R_TEXT()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_TXA_OVER_R_TEXT);
}

void CSimSimensDoc::Show_T_TEXT_SUCCESS()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_T_TEXT_SUCCESS);
}

void CSimSimensDoc::Show_T_TEXT_UNSUCCESS()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_T_TEXT_UNSUCCESS);
}

void CSimSimensDoc::Show_R_TEXT_SUCCESS()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_R_TEXT_SUCCESS);
}

void CSimSimensDoc::Show_R_TEXT_UNSUCCESS()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_R_TEXT_UNSUCCESS);
}

void CSimSimensDoc::Show_CHECKBCC_SUCCESS()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_CHECKBCC_SUCCESS);
}

void CSimSimensDoc::Show_CHECKBCC_UNSUCCESS()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_CHECKBCC_UNSUCCESS);
}

void CSimSimensDoc::Show_CHECK_SUCCESS()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_CHECK_SUCCESS);
}

void CSimSimensDoc::Show_CHECK_UNSUCCESS()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_CHECK_UNSUCCESS);
}

void CSimSimensDoc::Show_R_OTHER()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_R_OTHER);
}

void CSimSimensDoc::Show_T_A()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_T_A);
}

void CSimSimensDoc::Show_R_A()
{
	POSITION firstViewPos;
	CView * pView;

	firstViewPos=GetFirstViewPosition();
	pView=GetNextView(firstViewPos);

	pView->SendMessage(WM_SHOW_R_A);
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -