📄 genio.cpp
字号:
// GenIO.cpp: implementation of the CGenIO class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "GenIO.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CGenIO::CGenIO()
{
m_nStyle|=WS_MAXIMIZE;
}
CGenIO::~CGenIO()
{
}
//消息处理函数
void CGenIO::WndProc(int nMessage, int wParam, int lParam)
{
GWnd* pWnd;
switch(nMessage)
{
case WM_PAINT:
if(wParam & ~ODA_CLIENT)OnNcPaint();
if(wParam & ODA_CLIENT){OnPaint();DrawControls();}
break;
case WM_KICKIDLE:
OnIdle();
break;
case WM_COMMAND:
pWnd=(GWnd*)wParam;
if(pWnd==&m_btnPulserFreq)OnPulserFreq();
else if(pWnd==&m_btnCounterFreq)OnCounterFreq();
else if(pWnd==&m_btnADStart)OnADStart();
else if(pWnd==&m_btnActionStart)OnActionStart();
else OnEdit(pWnd);
break;
case WM_CREATE:
OnCreate();
break;
default:
GDialog::WndProc(nMessage, wParam,lParam);
break;
}
}
void CGenIO::OnEdit(GWnd* pWnd)
{
GIME dlg;
dlg.m_btn[0].m_strText=pWnd->m_strText;
dlg.DoModal();
pWnd->m_strText=dlg.m_btn[0].m_strText;
}
void CGenIO::OnCreate()
{
GDialog::OnCreate();
m_strText="IO卡调试";
//Status;
AddControl(&m_lblStatus0,"状态口",0);
m_lblStatus0.MoveWindow(8,16,48,16);
AddControl(&m_edtStatus,"0x100",WS_CLIENT|BS_FLAT);
m_edtStatus.MoveWindow(64,8,81,33);
m_edtStatus.m_nBackColor=RGB(255,255,255)|EdgeRGB(255,255,255);
m_edtStatus.m_nForeColor=RGB(0,0,0);
AddControl(&m_lblStatus,"FF,FF",WS_CLIENT|BS_FLAT);
m_lblStatus.MoveWindow(152,8,161,33);
//Pulser
AddControl(&m_lblPulserAddr,"脉冲器",0);
m_lblPulserAddr.MoveWindow(8,56,48,16);
AddControl(&m_edtPulserAddr,"0x100",WS_CLIENT|BS_FLAT);
m_edtPulserAddr.MoveWindow(64,48,81,33);
m_edtPulserAddr.m_nBackColor=RGB(255,255,255)|EdgeRGB(255,255,255);
m_edtPulserAddr.m_nForeColor=RGB(0,0,0);
AddControl(&m_lblPulserMask,"掩码",0);
m_lblPulserMask.MoveWindow(152,56,36,16);
AddControl(&m_edtPulserMask,"0x02",WS_CLIENT|BS_FLAT);
m_edtPulserMask.MoveWindow(192,48,57,33);
m_edtPulserMask.m_nBackColor=RGB(255,255,255)|EdgeRGB(255,255,255);
m_edtPulserMask.m_nForeColor=RGB(0,0,0);
AddControl(&m_btnPulserFreq,"500 Hz",0);
m_btnPulserFreq.MoveWindow(256,48,57,33);
//Counter
AddControl(&m_lblCounterAddr,"计数器",0);
m_lblCounterAddr.MoveWindow(8,96,48,16);
AddControl(&m_edtCounterAddr,"0x100",WS_CLIENT|BS_FLAT);
m_edtCounterAddr.MoveWindow(64,88,81,33);
m_edtCounterAddr.m_nBackColor=RGB(255,255,255)|EdgeRGB(255,255,255);
m_edtCounterAddr.m_nForeColor=RGB(0,0,0);
AddControl(&m_lblCounterMask,"掩码",0);
m_lblCounterMask.MoveWindow(152,96,36,16);
AddControl(&m_edtCounterMask,"0x02",WS_CLIENT|BS_FLAT);
m_edtCounterMask.MoveWindow(192,88,57,33);
m_edtCounterMask.m_nBackColor=RGB(255,255,255)|EdgeRGB(255,255,255);
m_edtCounterMask.m_nForeColor=RGB(0,0,0);
AddControl(&m_btnCounterFreq,"0)频率",0);
m_btnCounterFreq.MoveWindow(256,88,57,33);
//AD频率
AddControl(&m_lblADFreq,"AD频率",0);
m_lblADFreq.MoveWindow(8,136,48,16);
AddControl(&m_edtADFreq,"10000",WS_CLIENT|BS_FLAT);
m_edtADFreq.MoveWindow(64,128,81,33);
m_edtADFreq.m_nBackColor=RGB(255,255,255)|EdgeRGB(255,255,255);
m_edtADFreq.m_nForeColor=RGB(0,0,0);
AddControl(&m_btnADStart,"A0.00 V0.00 P0.00",0);
m_btnADStart.MoveWindow(152,128,161,33);
//动作
AddControl(&m_lblAction,"动作",0);
m_lblAction.MoveWindow(8,176,32,16);
AddControl(&m_edtAction,"ff,ff,ff",WS_CLIENT|BS_FLAT);
m_edtAction.MoveWindow(64,168,185,33);
m_edtAction.m_nBackColor=RGB(255,255,255)|EdgeRGB(255,255,255);
m_edtAction.m_nForeColor=RGB(0,0,0);
AddControl(&m_btnActionStart,"发送",0);
m_btnActionStart.MoveWindow(256,168,57,33);
}
//extern int nHalFreq;
void CGenIO::OnPulserFreq()
{
OnEdit(&m_btnPulserFreq);
// nHalFreq=m_btnPulserFreq.m_strText.toInt();
}
void CGenIO::OnCounterFreq()
{
if(m_btnCounterFreq.m_strText[0]=='0')
{
m_btnCounterFreq.m_strText="1)电平";
}
else
{
m_btnCounterFreq.m_strText="0)频率";
}
m_btnCounterFreq.PostMessage(WM_PAINT,-1,-1);
}
void CGenIO::OnADStart()
{
static BOOL bRun=FALSE;
if(bRun)
{
bRun=FALSE;
m_btnADStart.m_strText="开始";
m_btnADStart.PostMessage(WM_PAINT,ODA_CLIENT,-1);
}
else
{
bRun=TRUE;
while(bRun)
{
DWORD i,nTick=GetTickCount()+500;
double dValue=0;
for(i=0;i<20;i++)
{
Sleep(1);
}
dValue*=2.50/1024/i;
m_btnADStart.m_strText.Format("T=%d V=%4g",GetTickCount(),dValue);
m_btnADStart.PostMessage(WM_PAINT,ODA_CLIENT,-1);
while(GetTickCount()<nTick)
{
DoEvents();
}
}
}
}
void CGenIO::OnActionStart()
{
}
void CGenIO::OnIdle()
{
if(GetTickCount()%100)return;
m_lblStatus.PostMessage(WM_PAINT,ODA_CLIENT,-1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -