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

📄 commtestliudlg.cpp

📁 Windows串行通信程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
                                 m_ChannelValue7=Channel[6];
                                 m_ChannelValue8=Channel[7];
                                 m_ChannelValue9=Channel[8];
                                 m_ChannelValue10=Channel[9];
                                 Fo=buffer.GetAt(head+849);
						         Th=buffer.GetAt(head+850);
						         Hi=buffer.GetAt(head+851);
						         Lo=buffer.GetAt(head+852);
						         long temp;
						         temp=((Fo<<24)+(Th<<16)+(Hi<<8)+Lo);
						         m_Frequency=*((float*)(&temp));
								 CString strLong;					              
                                 strLong.Format("%2.2d号机数据\n",m_Id);//下位机ID
							      CString strTemper;//放一行AD数
								  strTemper="";
								  CString tempTen;//十进制
								  m_Sampling+=strLong;
								for(i=0;i<10;i++)
								{   strLong.Format("%2.2d||",i);//此为通道数
									strTemper="";
									for(k=0;k<40;k++) 
								      { tempTen.Format("%2d  ",Ad[i][k]);
								        strTemper+=tempTen;
										if(k==19)
										strTemper+="\n    ";
									  }
								//	MessageBox(m_Sampling);
									 m_Sampling+=strLong+strTemper+'\n';						    
								     // UpdateData(FALSE); //更新编辑框内容
							//		 MessageBox(m_Sampling);
								 }    
								
	///////
							 
				   }
			buffer.RemoveAll();
              
              }
			}
		}
		
		
 
   
   	    UpdateData(FALSE); //更新编辑框内容
		 return;
	
			
			
		
			
			
			
		
		 
		       
		   
			
		  
		   
		   
	 }  
     
    UpdateData(FALSE);  
}

void CCommTestLiuDlg::OnSend() 
{
	// TODO: Add your control notification handler code here
	
}

void CCommTestLiuDlg::OnClear() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
    m_ReceiveData.Empty();//
    m_Sampling.Empty();//
    
	UpdateData(FALSE);
}

void CCommTestLiuDlg::OnReceiveAd() 
{
	// TODO: Add your control notification handler code here
    CByteArray buf;
	char *data;
    if(!m_Comm.GetPortOpen()) 
        m_Comm.SetPortOpen(TRUE);//打开串口 
	UpdateData(TRUE); //读取编辑框数据
	buf.Add('$');//串头:$$$$
	buf.Add('$');
	buf.Add('$');
	buf.Add('$');
	data=(char*)(&m_SendId);
            
			
				buf.Add(data[0]);
            		
    
    buf.Add('B');//	下位机发送A/D命令
	buf.Add('B');
	buf.Add('B');
	buf.Add('B');
    buf.Add('*');
	buf.Add('*');
	buf.Add('*');
	buf.Add('*');
    m_Comm.SetOutput(COleVariant(buf));
	     buf.RemoveAll();
	     UpdateData(FALSE);	
}

void CCommTestLiuDlg::OnReceiveAll() 
{
	// TODO: Add your control notification handler code here
   CByteArray buf;
	char *data;
	if(!m_Comm.GetPortOpen()) 
        m_Comm.SetPortOpen(TRUE);//打开串口 
	UpdateData(TRUE); //读取编辑框数据
	buf.Add('$');//串头:$$$$
	buf.Add('$');
	buf.Add('$');
	buf.Add('$');
	data=(char*)(&m_SendId);
    buf.Add(data[0]);
    buf.Add('A');//	下位机全部发送命令
	buf.Add('A');
	buf.Add('A');
	buf.Add('A');
    buf.Add('*');
	buf.Add('*');
	buf.Add('*');
	buf.Add('*');
    m_Comm.SetOutput(COleVariant(buf));
	buf.RemoveAll();
	UpdateData(FALSE);	
}

void CCommTestLiuDlg::OnReceiveChannelValue() 
{
	// TODO: Add your control notification handler code here
   CByteArray buf;
	char *data;
	if(!m_Comm.GetPortOpen()) 
        m_Comm.SetPortOpen(TRUE);//打开串口 
	UpdateData(TRUE); //读取编辑框数据
	buf.Add('$');//串头:$$$$
	buf.Add('$');
	buf.Add('$');
	buf.Add('$');
	data=(char*)(&m_SendId);
    buf.Add(data[0]);
    buf.Add('C');//	召唤下位机发送A/D命令
	buf.Add('C');
	buf.Add('C');
	buf.Add('C');
    buf.Add('*');
	buf.Add('*');
	buf.Add('*');
	buf.Add('*');
    m_Comm.SetOutput(COleVariant(buf));
	buf.RemoveAll();
	UpdateData(FALSE);	
}

void CCommTestLiuDlg::OnReceiveFrequency() 
{
	// TODO: Add your control notification handler code here
	CByteArray buf;
	char *data;
	if(!m_Comm.GetPortOpen()) 
        m_Comm.SetPortOpen(TRUE);//打开串口 
	UpdateData(TRUE); //读取编辑框数据
	buf.Add('$');//串头:$$$$
	buf.Add('$');
	buf.Add('$');
	buf.Add('$');
	data=(char*)(&m_SendId);
        buf.Add(data[0]);
    
    buf.Add('D');//下位机发送频率命令
	buf.Add('D');
	buf.Add('D');
	buf.Add('D');
    buf.Add('*');
	buf.Add('*');
	buf.Add('*');
	buf.Add('*');
    m_Comm.SetOutput(COleVariant(buf));
	buf.RemoveAll();
	UpdateData(FALSE);
}

void CCommTestLiuDlg::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
  //OnSimulate();
	//OnSimu();
	OnReceiveAll();
	CDialog::OnTimer(nIDEvent);
}

void CCommTestLiuDlg::OnCheckautosend() 
{
	// TODO: Add your control notification handler code here
m_bAutoSend=!m_bAutoSend;
if(m_bAutoSend)
{
SetTimer(1,1000,NULL);//时间为1000毫秒
}
else
{
KillTimer(1);  //取消定时
}
}

void CCommTestLiuDlg::OnSimulate()//模拟下位机发送频率命令 
{
	// TODO: Add your control notification handler code here
	CByteArray buf;
	char *data;
	int i;
	if(!m_Comm.GetPortOpen()) 
        m_Comm.SetPortOpen(TRUE);//打开串口 
	UpdateData(TRUE); //读取编辑框数据
	buf.Add('$');//串头:$$$$
	buf.Add('$');
	buf.Add('$');
	buf.Add('$');
	buf.Add('D');//模拟下位机发送频率命令
	buf.Add('D');
	buf.Add('D');
	buf.Add('D');
	data=(char*)(&m_SendId);
    buf.Add(data[0]);
    data=(char*)(&m_SendFrequency);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
	
	
	buf.Add('*');
	buf.Add('*');
	buf.Add('*');
	buf.Add('*');
    m_Comm.SetOutput(COleVariant(buf));
	buf.RemoveAll();
	UpdateData(FALSE);
}

void CCommTestLiuDlg::OnSimu()//模拟下位机发通道值命令 
{
	// TODO: Add your control notification handler code here
    	CByteArray buf;
	char *data;
	int i;
	if(!m_Comm.GetPortOpen()) 
        m_Comm.SetPortOpen(TRUE);//打开串口 
	UpdateData(TRUE); //读取编辑框数据
	buf.Add('$');//串头:$$$$
	buf.Add('$');
	buf.Add('$');
	buf.Add('$');
	buf.Add('C');//模拟下位机发通道值命令
	buf.Add('C');
	buf.Add('C');
	buf.Add('C');
	data=(char*)(&m_SendId);
    buf.Add(data[0]);
    data=(char*)(&m_ChannelParameter1);
	for(i=3;i>=0;i--)//先发送高位
	{
		buf.Add(data[i]);
	}
	data=(char*)(&m_ChannelParameter2);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
    data=(char*)(&m_ChannelParameter3);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
	data=(char*)(&m_ChannelParameter4);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
	data=(char*)(&m_ChannelParameter5);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
	data=(char*)(&m_ChannelParameter6);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
	data=(char*)(&m_ChannelParameter7);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
	data=(char*)(&m_ChannelParameter8);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
	data=(char*)(&m_ChannelParameter9);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
	data=(char*)(&m_ChannelParameter10);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
	buf.Add('*');
	buf.Add('*');
	buf.Add('*');
	buf.Add('*');
    m_Comm.SetOutput(COleVariant(buf));
	buf.RemoveAll();
	UpdateData(FALSE);	
}

void CCommTestLiuDlg::OnCheckautosend2() 
{
	// TODO: Add your control notification handler code here
	
}

void CCommTestLiuDlg::OnGiveparameter() 
{
	// TODO: Add your control notification handler code here
	CByteArray buf;
	char *data;
	int i;
	if(!m_Comm.GetPortOpen()) 
        m_Comm.SetPortOpen(TRUE);//打开串口 
	UpdateData(TRUE); //读取编辑框数据
	buf.Add('$');//串头:$$$$
	buf.Add('$');
	buf.Add('$');
	buf.Add('$');
	data=(char*)(&m_SendId);
    buf.Add(data[0]);
	buf.Add('F');//给下位机下通道系数
	buf.Add('F');
	buf.Add('F');
	buf.Add('F');
	
    data=(char*)(&m_ChannelParameter1);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
	data=(char*)(&m_ChannelParameter2);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
   data=(char*)(&m_ChannelParameter3);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
	data=(char*)(&m_ChannelParameter4);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
	data=(char*)(&m_ChannelParameter5);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
	data=(char*)(&m_ChannelParameter6);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
	data=(char*)(&m_ChannelParameter7);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
	data=(char*)(&m_ChannelParameter8);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
	data=(char*)(&m_ChannelParameter9);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
	data=(char*)(&m_ChannelParameter10);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
	buf.Add('*');
	buf.Add('*');
	buf.Add('*');
	buf.Add('*');
    m_Comm.SetOutput(COleVariant(buf));
	buf.RemoveAll();
	UpdateData(FALSE);	
}

void CCommTestLiuDlg::OnGivefixedvalue() 
{
	// TODO: Add your control notification handler code here
	CByteArray buf;
	char *data;
	int i;
	if(!m_Comm.GetPortOpen()) 
        m_Comm.SetPortOpen(TRUE);//打开串口 
	UpdateData(TRUE); //读取编辑框数据
	buf.Add('$');//串头:$$$$
	buf.Add('$');
	buf.Add('$');
	buf.Add('$');
	data=(char*)(&m_SendId);
    buf.Add(data[0]);
	buf.Add('E');//给下位机发送频率和端电压命令
	buf.Add('E');
	buf.Add('E');
	buf.Add('E');
	
	
	data=(char*)(&m_SendFrequency);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
    data=(char*)(&m_SendVoltage);
	for(i=3;i>=0;i--)
	{
		buf.Add(data[i]);
	}
   
	buf.Add('*');
	buf.Add('*');
	buf.Add('*');
	buf.Add('*');
    m_Comm.SetOutput(COleVariant(buf));
	buf.RemoveAll();
	UpdateData(FALSE);	
}

⌨️ 快捷键说明

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