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

📄 zibian1dlg.cpp

📁 自己编写的一个和DSP下位机进行串口通信的程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:

     GetDlgItem(IDC_RECV1)->ShowWindow(SW_SHOW);
     GetDlgItem(IDC_RECV2)->ShowWindow(SW_SHOW);
     GetDlgItem(IDC_RECV3)->ShowWindow(SW_SHOW);
     GetDlgItem(IDC_RECV4)->ShowWindow(SW_SHOW);
     GetDlgItem(IDC_RECV5)->ShowWindow(SW_SHOW);
     GetDlgItem(IDC_RECV6)->ShowWindow(SW_SHOW);

	 GetDlgItem(IDC_RECVEDIT1)->ShowWindow(SW_SHOW);
     GetDlgItem(IDC_RECVEDIT2)->ShowWindow(SW_SHOW);
     GetDlgItem(IDC_RECVEDIT3)->ShowWindow(SW_SHOW);
     GetDlgItem(IDC_RECVEDIT4)->ShowWindow(SW_SHOW);
     GetDlgItem(IDC_RECVEDIT5)->ShowWindow(SW_SHOW);
     GetDlgItem(IDC_RECVEDIT6)->ShowWindow(SW_SHOW);

     GetDlgItem(IDC_STATICy1)->ShowWindow(SW_SHOW);
     GetDlgItem(IDC_STATICy2)->ShowWindow(SW_SHOW);
     GetDlgItem(IDC_STATICy3)->ShowWindow(SW_SHOW);
     GetDlgItem(IDC_STATICy4)->ShowWindow(SW_SHOW);
     GetDlgItem(IDC_STATICy5)->ShowWindow(SW_SHOW);
     GetDlgItem(IDC_STATICy6)->ShowWindow(SW_SHOW);

	 GetDlgItem(IDC_dianya1)->ShowWindow(SW_SHOW);
     GetDlgItem(IDC_dianya2)->ShowWindow(SW_SHOW);
     GetDlgItem(IDC_dianya3)->ShowWindow(SW_SHOW);
     GetDlgItem(IDC_dianya4)->ShowWindow(SW_SHOW);
     GetDlgItem(IDC_dianya5)->ShowWindow(SW_SHOW);
     GetDlgItem(IDC_dianya6)->ShowWindow(SW_SHOW);

    /* GetDlgItem(IDC_RECVEDIT1)->EnableWindow(FALSE);
     GetDlgItem(IDC_RECVEDIT2)->EnableWindow(FALSE);
     GetDlgItem(IDC_RECVEDIT3)->EnableWindow(FALSE);
     GetDlgItem(IDC_RECVEDIT4)->EnableWindow(FALSE);
     GetDlgItem(IDC_RECVEDIT5)->EnableWindow(FALSE);
     GetDlgItem(IDC_RECVEDIT6)->EnableWindow(FALSE);

     GetDlgItem(IDC_dianya1)->EnableWindow(FALSE);
     GetDlgItem(IDC_dianya2)->EnableWindow(FALSE);
     GetDlgItem(IDC_dianya3)->EnableWindow(FALSE);
     GetDlgItem(IDC_dianya4)->EnableWindow(FALSE);
     GetDlgItem(IDC_dianya5)->EnableWindow(FALSE);
     GetDlgItem(IDC_dianya6)->EnableWindow(FALSE);*/
 }


//DEL void CZibian1Dlg::OnKillfocusEdit1() 
//DEL {
//DEL 	// TODO: Add your control notification handler code here
//DEL 	ShowWindow(SW_HIDE);
//DEL 	
//DEL }

BEGIN_EVENTSINK_MAP(CZibian1Dlg, CDialog)
    //{{AFX_EVENTSINK_MAP(CZibian1Dlg)
	ON_EVENT(CZibian1Dlg, IDC_MSCOMM1, 1 /* OnComm */, OnOnCommMscomm1, VTS_NONE)
	//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()

void CZibian1Dlg::OnOnCommMscomm1() 
{
	// TODO: Add your control notification handler code here
    VARIANT variant_inp;
	COleSafeArray safearray_inp;
	LONG len,k;
	BYTE rxdata[19] = {0};//设置BYTE数组 An 8-bit integer that is not signed.
	CString str;
	switch(m_comm.GetCommEvent())
	{
	case 1: // comEvSend发送数据
		break;
	case 2: // comEvReceive读取数据
		// MessageBox(_T("读取数据事件"), _T("TRACE"), MB_OK);
		Sleep(20);
		variant_inp=m_comm.GetInput(); //读缓冲区
		safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
		len=safearray_inp.GetOneDimSize(); //得到有效数据长度

		/*if (len==2)
		{
			// 接受数据
			for(k=0; k<len; k++)
			{
				safearray_inp.GetElement(&k,rxdata+k); //转换为BYTE型数组
			}

			TRACE("receiver data is %x  %x \n",rxdata[0],rxdata[1]);
		}*/
		//if (len==12)
		//{
			// 接受数据       
			for(k=0; k<len; k++)
			{				
				safearray_inp.GetElement(&k,rxdata+k); //转换为BYTE型数组
			}
			if ((rxdata[0]=='r') && (rxdata[18] == 13))
			{
				int num=(rxdata[1]-48)*10 + (rxdata[2]-48);
				myshow[num].count = TRUE;
				myshow[num].reptNum = 0;
				myshow[num].dianya=(rxdata[4]-48)*10 + (rxdata[5]-48) + (rxdata[7]-48)*0.1;
				myshow[num].dianliu=(rxdata[10]-48)*100 + (rxdata[11]-48)*10 + (rxdata[12]-48) + (rxdata[14]-48)*0.1;
			}		
		//}
		break;
	default: // 传输事件出错
		m_comm.SetOutBufferCount(0); //清空发送缓冲区 
		break;
	}
}

void CZibian1Dlg::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	static int reptNum = 0;
	if (1== nIDEvent)
	{
		int k=0;
		CString str;
		for(int i=0;i<100;i++)
		{ 
			if(myshow[i].count==TRUE)
			{ 
				k++;			
				if (k == 1)
				{   
					str.Format("%d",i);
					m_valNum1 = str;					
					m_valNum2 = "无设备";
					m_valNum3 = "无设备";
					m_valNum4 = "无设备";
					m_valNum5 = "无设备";
					m_valNum6 = "无设备";
					
					m_valRecv1=myshow[i].dianliu;
					m_dy1=myshow[i].dianya;
					
					m_valRecv2=0;
					m_dy2=0;
					m_valRecv3=0;
					m_dy3=0;
					m_valRecv4=0;
					m_dy4=0;
					m_valRecv5=0;
					m_dy5=0;
					m_valRecv6=0;
					m_dy6=0;
					
				}
				if (k == 2)
				{   
					str.Format("%d",i);
					m_valNum2 = str;
					
					m_valNum3 = "无设备";
					m_valNum4 = "无设备";
					m_valNum5 = "无设备";
					m_valNum6 = "无设备";
					
					m_valRecv2=myshow[i].dianliu;
					m_dy2=myshow[i].dianya;
					m_valRecv3=0;
					m_dy3=0;
					m_valRecv4=0;
					m_dy4=0;
					m_valRecv5=0;
					m_dy5=0;
					m_valRecv6=0;
					m_dy6=0;
					
				}
				if (k == 3)
				{   
					str.Format("%d",i);
					m_valNum3 = str;
					
					m_valNum4 = "无设备";
					m_valNum5 = "无设备";
					m_valNum6 = "无设备";
					
					m_valRecv3=myshow[i].dianliu;
					m_dy3=myshow[i].dianya;
					m_valRecv4=0;
					m_dy4=0;
					m_valRecv5=0;
					m_dy5=0;
					m_valRecv6=0;
					m_dy6=0;
				}
				if (k == 4)
				{   
					str.Format("%d",i);
					m_valNum4 = str;
					
					m_valNum5 = "无设备";
					m_valNum6 = "无设备";
					
					m_valRecv4=myshow[i].dianliu;
					m_dy4=myshow[i].dianya;
					m_valRecv5=0;
					m_dy5=0;
					m_valRecv6=0;
					m_dy6=0;
				}
				if (k == 5)
				{   
					str.Format("%d",i);
					m_valNum5 = str;
					
					m_valNum6 = "无设备";
					
					m_valRecv5=myshow[i].dianliu;
					m_dy5=myshow[i].dianya;
					m_valRecv6=0;
					m_dy6=0;
				}
				if (k == 6)
				{   
					str.Format("%d",i);
					m_valNum6 = str;
					
					m_valRecv6=myshow[i].dianliu;
					m_dy6=myshow[i].dianya;				
				}
			 }
		}
		UpdateData(FALSE);
		if(k==0)
		{
			m_valNum1 ="无设备"; 
			m_valNum2 = "无设备";
			m_valNum3 = "无设备";
			m_valNum4 = "无设备";
			m_valNum5 = "无设备";
			m_valNum6 = "无设备";
			m_valRecv1=0;
			m_dy1=0;
			m_valRecv2=0;
			m_dy2=0;
			m_valRecv3=0;
			m_dy3=0;
			m_valRecv4=0;
			m_dy4=0;
			m_valRecv5=0;
			m_dy5=0;
			m_valRecv6=0;
			m_dy6=0;
			UpdateData(FALSE);
		} 
		
		CByteArray buff;
		buff.SetSize(9);
		
		if (m_num == 100)
		{
			CDialog::OnTimer(nIDEvent);
			m_num = 0;
			return;
		}
		
		while((myshow[m_num].count == FALSE) && (m_num<100))
		{			
			m_num++;
		}
		if (m_num<100)
		{
			buff[0] = 'w';
			buff[1] = 's';
			buff[2] = m_num/10 + 48;//call each unit;
			buff[3] = m_num%10 + 48;

			char strbuff[6];
			sprintf(strbuff,"%.1f",myshow[m_num].setdianliu);
			if (myshow[m_num].setdianliu < 10)
			{
				buff[4] = '0';
				buff[5] = '0';
				buff[6] = strbuff[0];
				buff[7] = strbuff[2];
			}				
			else if ((10 <= myshow[m_num].setdianliu) && ( myshow[m_num].setdianliu < 100))
			{
				buff[4] = '0';
				buff[5] = strbuff[0];
				buff[6] = strbuff[1];
				buff[7] = strbuff[3];
			}
			else
			{
				buff[4] = strbuff[0];				
				buff[5] = strbuff[1];
				buff[6] = strbuff[2];
				buff[7] = strbuff[4];
			}
			buff[8] = 13;

			if (10 == myshow[m_num].reptNum)
			{
				myshow[m_num].count = FALSE;
				myshow[m_num].reptNum = 0;
			}
			myshow[m_num].reptNum++;
			m_num++;            
			m_comm.SetOutput(COleVariant(buff));
		}    
	}
	if (2 == nIDEvent)
	{
		static int num = 0;
		CByteArray buff;
		buff.SetSize(5);
		buff[0] = 'w';
		buff[1] = 'r';
		buff[2] = num/10 + 48;
		buff[3] = num%10 + 48;
		buff[4] = 13;
		m_comm.SetOutput(COleVariant(buff));
		num++;
		if (6 == num)
			num = 0;
	}
	CDialog::OnTimer(nIDEvent);
}

void CZibian1Dlg::OnJiazai() 
{
	// TODO: Add your control notification handler code here
	
       
	UpdateData(TRUE);
	if(m_valNum1 != "无设备")
	{
		int i;
		i=atoi(m_valNum1);
		myshow[i].setdianliu = m_dl1;
	}
    if(m_valNum2 != "无设备")
	{
		int i;
		i=atoi(m_valNum2);
		myshow[i].setdianliu = m_dl2;
	}
    if(m_valNum3!= "无设备")
	{
		int i;
		i=atoi(m_valNum3);
		myshow[i].setdianliu = m_dl3;
	}

    if(m_valNum4 != "无设备")
	{
		int i;
		i=atoi(m_valNum4);
		myshow[i].setdianliu = m_dl4;
	} 	
    if(m_valNum5 != "无设备")
	{
		int i;
		i=atoi(m_valNum5);
		myshow[i].setdianliu = m_dl5;
	}
    if(m_valNum6 != "无设备")
	{
		int i;
		i=atoi(m_valNum6);
		myshow[i].setdianliu = m_dl6;
	}
	SetTimer(1,300,NULL);

	GetDlgItem(IDC_dianliu1)->EnableWindow(FALSE);
    GetDlgItem(IDC_dianliu2)->EnableWindow(FALSE);
    GetDlgItem(IDC_dianliu3)->EnableWindow(FALSE);
    GetDlgItem(IDC_dianliu4)->EnableWindow(FALSE);
    GetDlgItem(IDC_dianliu5)->EnableWindow(FALSE);
    GetDlgItem(IDC_dianliu6)->EnableWindow(FALSE);
}

HBRUSH CZibian1Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	
	// TODO: Change any attributes of the DC here
	if (CTLCOLOR_EDIT == nCtlColor)
		pDC->SetTextColor(RGB(255,0,0));

	// TODO: Return a different brush if the default is not desired
	return hbr;
}

⌨️ 快捷键说明

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