MFC工控项目实例二十手动测试界面模拟量输入实时显示

承接专栏《MFC工控项目实例之十九手动测试界面输出信号切换》

根据板卡设置界面组合框选项设定的AD输入信号,通过读取文件中保存的键值,用定时器实时显示模拟量输入数值。

1、在Data_1.h文件中添加代码

cpp 复制代码
CString COMB_Data_AD_1[]={"AD输入1","AD输入2","AD输入3","AD输入4","AD输入5","AD输入6","AD输入7","AD输入8","AD输入9","AD输入10","AD输入11","AD输入12","AD输入13","AD输入14","AD输入15","AD输入16"};
int COMB_Data_AD_Number_1;
unsigned char b_AD_1[16];
CString b_str_AD_1[16];
unsigned short AD_1[16];

2、在JogTest.cpp中添加代码

cpp 复制代码
BOOL CJogTest::OnInitDialog() 
{
	CDialog::OnInitDialog();
	...
		for( i=0;i<=COMB_Data_AD_Number_1;i++)
   {
	   
	 GetPrivateProfileString("AD输入",COMB_Data_AD_1[i],NULL,b_str_AD_1[i].GetBuffer(20),20,strFilePath);	
     AD_1[i]=_ttoi(b_str_AD_1[i]);
	}
	SetTimer(1,500,NULL);
	...
}


void CJogTest::OnTimer(UINT nIDEvent) 
{
if( nIDEvent == 1 )
	{
		//16通道,2 = -5000 -- 5000 mV采集
        AI6325AAllSingle(nAddr_AD_1, 2, m_saveData_AD_1);
		CString tempStr;
		CString str[30];
		tempStr.Format("%d",m_saveData_AD_1[AD_1[0]]);
	
		for ( int i=0 ; i<4 ; i++)
	{		  
			GetDlgItem(m_nCounterID[i])->SetFont(&m_font);
            str[i]=tempStr.Mid(i,1);
		    SetDlgItemText(m_nCounterID[i],str[i]);
		  
	}
	
	}
	CDialog::OnTimer(nIDEvent);

}
相关推荐
niceffking6 分钟前
C++:initializer_list 与 {} 初始化的本质
开发语言·c++·cpp
.select.17 分钟前
虚函数和虚表
开发语言·c++·算法
王老师青少年编程18 分钟前
信奥赛C++提高组csp-s之数论基础专题课:中国剩余定理2(编程案例实践1)
c++·数论·中国剩余定理·csp·信奥赛·csp-s·提高组
乐观勇敢坚强的老彭20 分钟前
c++信奥for循环强化03
开发语言·c++
Aawy12031 分钟前
C++与Rust交互编程
开发语言·c++·算法
艾莉丝努力练剑41 分钟前
System V IPC底层原理详解
linux·运维·服务器·网络·c++·人工智能·学习
落羽的落羽42 分钟前
【Linux系统】信号机制拆解,透过内核三张表深入本质
android·java·linux·服务器·c++·spring·机器学习
十年编程老舅1 小时前
Linux 内存爆满?分清泄漏与正常占用
linux·c++·内存·内存管理·内存泄漏·内存溢出
艾莉丝努力练剑1 小时前
【Linux:文件 + 进程】进程间通信进阶(2)
linux·运维·服务器·开发语言·网络·c++·ubuntu
2401_894241921 小时前
C++中的策略模式变体
开发语言·c++·算法