MFC工控项目实例之十五定时刷新PC6325A模拟量输入

news2024/12/23 2:56:53

承接专栏《MFC工控项目实例之十四模拟量信号名称从文件读写》
1、在BoardTest.h文件中添加代码

class CBoardTest : public CDialog
{
public:
	short m_saveData[32];
	unsigned short m_cardAddr;
	CBoardTest(CWnd* pParent = NULL);   // standard constructor
	CButtonST   m_btnStart[16],m_btnStart_O[16];
	CWinThread* pThread; 
	bool isThreadBegin ;  //线程退出/执行控制
	void My_Func();
  static UINT My_TheradFunc(LPVOID lparam);
    

CString NO_Combox[16];
CString strTemp[16];//数据项名称
CString strRead[16];
int strReadId[16];
char strBuff[256];
CString	m_Path;
CString strFilePath;
...
protected:
unsigned short nAddr;

2、在BoardTest.cpp文件中添加代码

UINT CBoardTest::My_TheradFunc(LPVOID lparam)//将窗口指针赋给无类型指针
 
{
 
     CBoardTest *dlg = (CBoardTest*)lparam;   //可以调用CBoardTest定义的类成员函数
     while (dlg->isThreadBegin)
	{
		dlg->My_Func(); //线程要执行的函数(调用CTheradtDlg定义的类成员函数)
	
	}
 return 0;
     
}

void CBoardTest::My_Func() //处理函数在这里写
{
	
int i;
	int b[16];
	CString	n[16];
    CString str1;
    int m1= rand() % 65537; 
    //int m1= 9; 
//	str1.Format("%d",m1);
//	SetDlgItemText(IDC_EDIT1,str1);
	for (i=0;i<16;i++)
	{
	//	b[i]=((m1>>i)& 1);
      b[i]=(( DI6408All(nAddr)>>i)& 1); 
    }
	for (i=0;i<16;i++)
	{
		n[i].Format("%d",b[i]);
    }
		for (i=0;i<16;i++)
		{
	if ( b[i] == 1)
	{
     m_btnStart[i].SetIcon(IDI_ICON_LedOn);	 
	}
	else  
	{
		m_btnStart[i].SetIcon(IDI_ICON_LedOff);
	}
		}
	
Sleep(500);
}




void CBoardTest::OnButton1() 
{
isThreadBegin  = false;            //停止线程执行
KillTimer(1); 
 Sleep(500);
EndDialog(IDD_DIALOG_BOA_TEST);	
}

void CBoardTest::OnTimer(UINT nIDEvent) 
{
// TODO: Add your message handler code here and/or call default
	if( nIDEvent == 1 )
	{
		//16通道,2 = -5000 -- 5000 mV采集
        AI6325AAllSingle(0X110, 2, m_saveData);
		CString tempStr;
		tempStr.Format("错误号: %d", GetDll_LastErrNO());
		SetWindowText(tempStr);        
		for(int i=0; i<16; i++)
		{
			tempStr.Format("%d mV", m_saveData[i]);
			SetDlgItemText(IDC_STATIC0+i, tempStr);
		}
		UpdateData(TRUE);
	}	

	CDialog::OnTimer(nIDEvent);
}

运行程序
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2136397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

64位系统中不支持In.vi与Out.vi的原因

在LabVIEW开发环境中&#xff0c;使用In.vi和Out.vi可以直接进行端口读写操作&#xff0c;这在32位操作系统中运行良好。然而&#xff0c;随着64位操作系统的普及&#xff0c;特别是Windows Vista及之后的系统版本&#xff0c;LabVIEW中这些VI的支持逐渐被移除。LabVIEW 2012是…

dedecms靶场(四种webshell姿势)

姿势一:通过文件管理器上传WebShell 1.登陆到后台点击【核心】【文件式管理器】【文件上传】将准备好的一句话木马上传 2.点击访问成功蚁剑连接 姿势二:修改模板文件拿WebShell 1.点击【模板】【默认模板管理】【index.htm】【修改】 在文件修改中添加一句话木马 保存 2.点击…

环境搭建2(游戏逆向)

#include<iostream> #include<windows.h> #include<tchar.h> #include<stdio.h> #pragma warning(disable:4996) //exe应用程序 VOID PrintUI(CONST CHAR* ExeName, CONST CHAR* UIName, CONST CHAR* color, SHORT X坐标, SHORT y坐标, WORD UIwide, W…

438 找到字符串中所有字母异位词

解题思路&#xff1a; \qquad 这个题目解法没什么特别的&#xff0c;遍历所有子串&#xff0c;比较与目标字符串是否满足异位词即可。唯一需要注意的是&#xff0c;提示s和p仅包含小写字母&#xff0c;且异位词不关心字符的顺序&#xff0c;可以使用长度为26的数组&#xff0c…

Unity3D类似于桌面精灵的功能实现

前言&#xff1a; 由于最近在做游戏魔改&#xff0c;很多功能在游戏里面没法实现&#xff08;没错&#xff0c;说的就是排行榜&#xff09;&#xff0c;所以准备用Unity3D开发一个类似于桌面精灵的功能部件&#xff0c;实现效果如下&#xff1a; PS&#xff1a;有需要定制的老…

MySQL聚合统计

【数据库】MySQL聚合统计 王笃笃-CSDN博客https://blog.csdn.net/wangduduniubi?typeblog显示平均工资低于2000的部门和它的平均工资 mysql> select deptno,avg(sal) deptavg from emp group by deptno; --------------------- | deptno | deptavg | --------------…

ESKF学习笔记

参考资料 https://zhuanlan.zhihu.com/p/441182819 惯性导航(三)-基于流型的ESKF及代码实现_eskf和ekf-CSDN博客 用ESKF实现IMU/GNSS组合导航&#xff08;学习记录&#xff09;_eskf imu-CSDN博客 0.ESKF与KF的区别以及总体流程 0.1卡尔曼滤波过程 卡尔曼滤波的流程按照1…

微信阅读小程序的设计与实现(lw+演示+源码+运行)

题目&#xff1a;微信阅读小程序的设计与实现 摘 要 由于APP软件在开发以及运营上面所需成本较高&#xff0c;而用户手机需要安装各种APP软件&#xff0c;因此占用用户过多的手机存储空间&#xff0c;导致用户手机运行缓慢&#xff0c;体验度比较差&#xff0c;进而导致用户会…

学习之IDEA集成GitHub

一、配置github账号 使用token登录 二、分享代码到github 2.1 当pycharm中找不到VCS时 2.2 分享代码到github 2.3 push推送代码 2.4pull拉取代码 2.5 克隆代码 三、github打开双重身份认证

Docker构建Java镜像及使用

前言 最近在项目中使用到了一些docker技术&#xff0c;因为没有专业的运维人员&#xff0c;所以在部署版本应用的时候&#xff0c;都是自己在进行打包部署。经过一段时间的操作和使用&#xff0c;在这里和大家分享一下自己的心得&#xff0c;也算是做一下总结吧。 准备工作 首…

【Unity学习心得】如何制作俯视角射击游戏

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、导入素材二、制作流程 1.制作地图2.实现人物动画和移动脚本3.制作单例模式和对象池4.制作手枪pistol和子弹bullet和子弹壳bulletShell5.制作散弹枪shotgun总…

AIDA64 Extreme(硬件检测工具)v7.20绿色不需要安装版,供大家学习研究参考

一款综合性的系统硬件检测工具,号称最权威的电脑硬件检测,监控与测试软件,这款专业的硬件检测大师也是每位高手玩家,菜鸟用户必备的硬件检测利器.AIDA64不仅提供诸如协助超频,硬件侦错,压力测试和传感器监测等多种功能,而且还可以对处理器,系统内存和磁盘驱动器性能进行全面评估…

家具行业短视频矩阵获客,轻松实现百万曝光!

当前家具行业的营销正面临一个新阶段&#xff0c;但同时也遭遇了增长的瓶颈&#xff0c;主要问题在于营销策略过于雷同&#xff0c;这导致产品难以在市场中获得足够关注&#xff0c;从而在品牌和消费者之间形成了隔阂。 同时在这样一个信息爆炸的时代&#xff0c;就算是最优秀…

pandas 生成excel多级表头

使用pandas导出excel 表格时类似这种 其中含有多级表头的情况也就是涉及到表头需要合并单元格&#xff08;横向及纵向&#xff09; 1、表头设置 columns [("xx公司路产月报表","序号","序号"),("xx公司路产月报表","单位"…

【树形dp】P2014 [CTSC1997] 选课 题解

题目描述 在大学里每个学生&#xff0c;为了达到一定的学分&#xff0c;必须从很多课程里选择一些课程来学习&#xff0c;在课程里有些课程必须在某些课程之前学习&#xff0c;如高等数学总是在其它课程之前学习。现在有 N ( 1 ≤ N ≤ 300 ) N(1\leq N \leq 300) N(1≤N≤30…

Leetcode 每日一题:Longest Increasing Path in a Matrix

写在前面&#xff1a; 今天我们继续看一道 图论和遍历 相关的题目。这道题目的背景是在一个矩阵当中找寻最长的递增数列长度。思路上非常好想&#xff0c;绝对和 DFS 相关&#xff0c;但是题目的优化要求非常高&#xff0c;对于语言和内存特性的考察特别丰富&#xff0c;如果是…

【Python报错已解决】ERROR: No matching distribution found for PIL

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一&#xff1a;安装Pillow2.2 步骤二&a…

CentOS安装Hadoop系列

安装Hadoop 1、安装SDK 2、Wget下载安装包到指定目录 3、选择hadoop的配置模式&#xff0c;单机模式&#xff0c;伪集群模式&#xff0c;集群模式 1、查找APACHE下载官网&#xff0c;搜索hadoop,进入目录&#xff0c;找到common目录&#xff0c;下载对应版本 国内&#xff0c;…

uniapp 原生插件开发 UI

前言&#xff1a; 在集成某些特定 原生SDK的时候&#xff0c;它本身是带UI控件的。当我们使用 uniapp 开发app的时候实是 可以使使用 nvue 页面&#xff0c;以 weex 的方式嵌入原生的UI控件。 我这边的场景是 接入连连app的支付&#xff0c;它有个自己的密码键盘 控件是原生的页…

好用的电脑录屏软件有哪些?推荐4款专业工具。

不同系统的电脑上面带有的录屏功能不一样&#xff0c;比如win10上面有Xbox game bar,Mac系统则用的是QuickTime Player&#xff0c;或者是使用快捷键“CommandShift5”。但更方便的&#xff0c;我自己认为是使用一些专业的录屏软件&#xff0c;他门的录制模式多&#xff0c;兼容…