📄 demo_alldlg.cpp
字号:
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 + -