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

📄 demo_alldlg.cpp

📁 《Windows CE .NET嵌入式工业用控制器及自动控制系统设计》的源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	m_STOP.EnableWindow(false); 
	Close_Com((char)m_ComPort);	 
	KillTimer(10);
}




void CDemo_allDlg::OnArithmetic1() 
{
	// TODO: Add your control notification handler code here
	m_ARITHMETIC1.EnableWindow(false);	
	m_ARITHMETIC2.EnableWindow(true);	
	m_ARITHMETIC3.EnableWindow(true);	
	m_87055_DO0.SetBitmap(m_DOon.GetBitmap());
	m_87055_DO1.SetBitmap(m_DOoff.GetBitmap());
	m_87055_DO2.SetBitmap(m_DOoff.GetBitmap()); 
	m_dwBuf[5]=1; 
	ArithmeticDO();
	ArithmeticDI();

}


void CDemo_allDlg::OnArithmetic2() 
{
	// TODO: Add your control notification handler code here
	m_ARITHMETIC1.EnableWindow(true);	
	m_ARITHMETIC2.EnableWindow(false);	
	m_ARITHMETIC3.EnableWindow(true);	
	m_87055_DO0.SetBitmap(m_DOoff.GetBitmap());
	m_87055_DO1.SetBitmap(m_DOon.GetBitmap());
	m_87055_DO2.SetBitmap(m_DOoff.GetBitmap()); 
	m_dwBuf[5]=2; 
	ArithmeticDO();
	ArithmeticDI();

}


void CDemo_allDlg::OnArithmetic3() 
{
	// TODO: Add your control notification handler code here
	m_ARITHMETIC1.EnableWindow(true);	
	m_ARITHMETIC2.EnableWindow(true);	
	m_ARITHMETIC3.EnableWindow(false);	
	m_87055_DO0.SetBitmap(m_DOoff.GetBitmap());
	m_87055_DO1.SetBitmap(m_DOoff.GetBitmap());
	m_87055_DO2.SetBitmap(m_DOon.GetBitmap()); 
	m_dwBuf[5]=4; 
	ArithmeticDO();
	ArithmeticDI();
	
}



void CDemo_allDlg::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default  
	TCHAR temp[20],*stopstring;
	unsigned char InTemp=0;
	float AI1;
	float AI2;
	float AO; 

	//Exp7K WORD CALLBACK AnalogIn(WORD wBuf[], float fBuf[],
	//        char szSend[], char szReceive[]);
	//---------------------- input -------------------------------------
	// wBuf[0];             // RS-232 port number: 1/2/3/4..../255
	// wBuf[1];             // module address: 0x00 to 0xFF
	// wBuf[2];             // module ID: 0x7011/12/13/14/16/17/18/33
	// wBuf[3];             // checksum: 0=disable, 1=enable
	// wBuf[4];             // TimeOut constant: normal=100
	// wBuf[5];             // channel number for multi-channel
	// wBuf[6];             // flag: 0=no save, 1=save send/receive string
	//---------------------- output ------------------------------------
    // fBuf[0]=analog input value
	m_wBuf[0]=m_ComPort;
	m_wBuf[1]=m_7012Addr;
	m_wBuf[2]=0x7012;
	m_wBuf[3]=m_Checksum;
	m_wBuf[4]=m_TimeOut;
	m_wBuf[5]=0;
	m_wBuf[6]=0;
	AnalogIn(m_wBuf, m_fBuf, m_szSend, m_szReceive);
	swprintf(temp, _T("%.3f"), m_fBuf[0]);
	m_VIN1.SetWindowText(temp);
	AI1=m_fBuf[0];


 
	//Exp87K WORD CALLBACK AnalogIn_87K(DWORD dwBuf[], float fBuf[],
	//        char szSend[], char szReceive[]);
	//---------------------- input -------------------------------------
	// dwBuf[0];            // RS-232 port number: 1/2/3/4..../255
	// dwBuf[1];            // module address: 0x00 to 0xFF
	// dwBuf[2];            // module ID: 0x87013/17/18/33
	// dwBuf[3];            // checksum: 0=disable, 1=enable
	// dwBuf[4];            // TimeOut constant: normal=100
	// dwBuf[5];            // channel number for multi-channel
	// dwBuf[6];            // flag: 0=no save, 1=save send/receive string
	//---------------------- output ------------------------------------
    // fBuf[0]=analog input value 
	m_dwBuf[0]=m_ComPort;
	m_dwBuf[1]=m_87017Addr;
	m_dwBuf[2]=0x87017;
	m_dwBuf[3]=m_Checksum;
	m_dwBuf[4]=m_TimeOut;
	m_dwBuf[5]=0;
	m_dwBuf[6]=0;
	AnalogIn_87K(m_dwBuf, m_fBuf, m_szSend, m_szReceive);
	swprintf(temp, _T("%.3f"), m_fBuf[0]);
	m_VIN2.SetWindowText(temp);
	AI2=m_fBuf[0];
 
 

	//---------------------- input -------------------------------------
	// dwBuf[0];             // RS-232 port number: 1/2/3/4..../255
	// dwBuf[1];             // module address: 0x00 to 0xFF
	// dwBuf[2];             // module ID: 0x8051/52/53/54/55/63
	// dwBuf[3];             // checksum: 0=disable, 1=enable
	// dwBuf[4];             // TimeOut constant: normal=100
	// dwBuf[6];             // flag: 0=no save, 1=save send/receive string
	//---------------------- output ------------------------------------
    // dwBuf[5]; // Read 16-bit input digital data
	m_dwBuf[0]=comport;
	m_dwBuf[1]=address;
	m_dwBuf[2]=i87055;
	m_dwBuf[3]=checksum;
	m_dwBuf[4]=timeout;
	m_dwBuf[6]=flag;
	ChangeSlotTo87K(i87055_slot);
	DigitalIn_87K(m_dwBuf,m_fBuf,m_szSend,m_szReceive);

	InTemp=(unsigned char)m_dwBuf[5];

	if ((InTemp&0x01)==0)
	{
		m_87055_DI0.SetBitmap(m_DOoff.GetBitmap());
	}
	else
	{
		m_87055_DI0.SetBitmap(m_DOon1.GetBitmap());
		AO=AI1-AI2;
	}
	if ((InTemp&0x02)==0)
	{
		m_87055_DI1.SetBitmap(m_DOoff.GetBitmap());
	}
	else
	{
		m_87055_DI1.SetBitmap(m_DOon1.GetBitmap());
		AO=AI2-AI1;
	}
	if ((InTemp&0x04)==0)
	{	
		m_87055_DI2.SetBitmap(m_DOoff.GetBitmap());
	}
	else
	{
		m_87055_DI2.SetBitmap(m_DOon1.GetBitmap());
		AO=AI1+AI2;
	}

 

	//---------------------- output -------------------------------------
	// i-8041 Wincon 8000 solt
	// display HEX value 
	//-------------------------------------------------------------------
	unsigned long DOVal;
	int slot=2; 
	if (AO == 10)
	{
		DOVal=AO/10;
		DOVal=DOVal*4294967295; 
	}
	else
	{	DOVal=AO/10*4294967295;	}
	DO_32(slot,DOVal);	 
	swprintf(temp, _T("%Xh"), DOVal);
	m_DO_HEX.SetWindowText(temp); 

	int i;
	CStatic* GetPic;
	unsigned long j=0x80000000; 
	for (i=0; i<32; i++)
	{
		GetPic = (CStatic*)GetDlgItem(1034-i);
		if ((DOVal & (j>>i)) == 0)
			GetPic->SetBitmap(m_DOoff.GetBitmap());
		else
			GetPic->SetBitmap(m_DOon.GetBitmap());
	}
 



	//Exp8K WORD CALLBACK AnalogOut_8K(DWORD dwBuf[], float fBuf[],
	//        char szSend[], char szReceive[]);
	//---------------------- input -------------------------------------
	// wBuf[0];   // RS-232 port number: 1/2/3/4..../255
	// wBuf[1];   // module address: 0x00 to 0xFF
	// wBuf[2];   // module ID: 0x8024,8022,8026
	// wBuf[3];   // checksum: 0=disable, 1=enable
	// wBuf[4];   // TimeOut constant: normal=100
	// wBuf[5];   // Channel No.(0 to 3) 
	// wBuf[6];   // flag: 0=no save, 1=save send/receive string
	// wBuf[7];   // slot
	// f7000[0];   // analog output value
 

	swprintf(temp, _T("%.3f"), AO);
	m_VOUT.SetWindowText(temp);
	AO=(float)wcstod(temp, &stopstring); 
 
	m_dwBuf[0]=m_ComPort;
	m_dwBuf[1]=m_NetID;
	m_dwBuf[2]=0x8024;
	m_dwBuf[3]=m_Checksum;
	m_dwBuf[4]=m_TimeOut;
	m_dwBuf[5]=0;
	m_dwBuf[6]=0;
	m_dwBuf[7]=m_8024Slot;
	m_fBuf[0]=AO;
	AnalogOut_8K(m_dwBuf, m_fBuf, m_szSend, m_szReceive); 

	CDialog::OnTimer(nIDEvent);
}


 

HBRUSH CDemo_allDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	
	// TODO: Change any attributes of the DC here 
	if (CTLCOLOR_BTN == nCtlColor)
	{
		if (pWnd == &m_START)
		{	pDC->SetTextColor(RGB(0,255,0));	}
		if (pWnd == &m_STOP)
		{	pDC->SetTextColor(RGB(255,0,0));	}
		if (pWnd == &m_ARITHMETIC1)
		{	pDC->SetTextColor(RGB(255,255,0));	} 
		if (pWnd == &m_ARITHMETIC2)
		{	pDC->SetTextColor(RGB(255,255,0));	} 
		if (pWnd == &m_ARITHMETIC3)
		{	pDC->SetTextColor(RGB(255,255,0)); 	} 
	}	

	if (pWnd->GetDlgCtrlID() == IDC_DO_HEX)
	{	pDC->SetTextColor(RGB(255,17,136));	}
	if (pWnd->GetDlgCtrlID() == IDC_VIN1)
	{	pDC->SetTextColor(RGB(60,247,143));	}
	if (pWnd->GetDlgCtrlID() == IDC_VIN2)
	{	pDC->SetTextColor(RGB(60,247,143));	}
	if (pWnd->GetDlgCtrlID() == IDC_VOUT)
	{	pDC->SetTextColor(RGB(84,191,222));	}
	if (pWnd->GetDlgCtrlID() == IDC_G1)
	{	pDC->SetTextColor(RGB(255,128,0)); 	}
	if (pWnd->GetDlgCtrlID() == IDC_G2)
	{	pDC->SetTextColor(RGB(0,0,160));	}
	if (pWnd->GetDlgCtrlID() == IDC_G3)
	{	pDC->SetTextColor(RGB(128,0,128));	}

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

⌨️ 快捷键说明

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