
CVI编程
思维逆逝
CVI研究
展开
-
CVI 键盘输入信息读取记录TXT
如何用文本文件记录键盘按键及时间信息。如下:声明一个文件句柄:static int gLogFile = 0; 复制代码程序开始时初始化它:gLogFile = OpenFile("d:\\TestLog.txt",VAL_READ_WRITE,VAL_APPEND,VAL_ASCII);复制代码转载 2016-09-01 16:47:32 · 4110 阅读 · 0 评论 -
多线程技术
多任务、多线程和多处理这些术语经常被交替地使用,但是它们在本质上是不同的概念。多任务是指操作系统具有在任务间快速切换使得这些任务看起来是在同步执行的能力。在一个抢占式多任务系统中,应用程序可以随时被暂停。使用多线程技术,应用程序可以把它的任务分配到单独的线程中执行。在多线程程序中,操作系统让一个线程的代码执行一段时间(被称为时间片)后,会切换到另外的线程继续运行。暂停某个线程的运行而开始执行另一个转载 2016-11-07 15:29:41 · 3873 阅读 · 0 评论 -
羊与车的问题
一、问题的提出“一个娱乐节目上,主持人给了你一个可以拿走一辆诱人的高级跑车的机会:你的面前有一模一样的三扇门,只有一扇们的后面有你梦寐以求的高级跑车,剩下两个门里就只有羊了(就是‘回家吧’)。主持人让你选定一个门,你选定后告诉了他,他诡异地说:‘我看你小子人品不错,有前途,这样吧,我给你个提示……’说着就把另一个不是你选的门打开了,告诉你里面是羊。现在只剩两扇门了,一扇是你刚开始选的,另一原创 2016-10-27 15:59:34 · 3027 阅读 · 1 评论 -
fopen自动创建文件失败的原因
项目中需要在一个动态的路径下创建一个txt文件来保存数据。利用fopen()函数进行创建文件。调试半天没有成功,总是提示fp指针为空。经过查找资料,终于发现了问题所在。原博文地址:http://blog.youkuaiyun.com/u013485792/article/details/52327718总结: 1.路径不存在,文件也不存在,fopen打开失败 2.路径存原创 2016-11-08 15:59:56 · 13468 阅读 · 0 评论 -
CVI减少CPU占用率
当设计CVI程序时,会发现CVI程序占用CPU的资源很多。接下来讨论下为何减少CPU的占用率。 当程序运行RunUserInterface()函数时,CVI的运行引擎处于一个连续的循环中,等待系统事件。为了内部状态有效,CVI需要处理并分派这些事件。每次在这个循环中,根据用户的休眠策略进入休眠状态。虽然休眠越多,资源消耗越小,但正是这个循环在消耗CPU资源。此外,我们接收原创 2016-11-09 11:09:04 · 1885 阅读 · 0 评论 -
关于一般性保护错误的原因和解决办法
一 什么是一般性保护错误(GP)? 一般性保护错误(general protect简称GP),通常只是WINDOWS下的一个术语,我们现在也常把它引用到UNIX下指程序的崩溃。 本文主要探讨WINDOWS下面程序GP的原因,预防和解决办法。二 GP的原因 WIN32操作系统在发现某应用程序企图访问不属于自己的非法的内存区域时,将触发一般性保护错误,转载 2016-12-01 14:47:41 · 4835 阅读 · 0 评论 -
关于文件操作的多mode变换
在操作文件时,需要对文件内容进行读/写。首先来看下fopen函数: FILE * fopen(const char * path, const char * mode);path:文件的路径。mode:文件操作模式。mode说明:r 以只读方式打开文件,该文件必须存在。r+ 以读/写方式打开文件,该文件必须存在。rb+ 以读/写方式打开一个二进制文件,只允许读数据。原创 2016-11-21 16:43:41 · 506 阅读 · 0 评论 -
关于Confirm Popup中的YES,NO换成中文
CVI本身不可以改变英文,再次我们采取Windows编程方式改变。Win32 API中的函数MessageBox可以解决此问题。首先给一个例子:#includeint main(){ int result = MessageBox( NULL , TEXT("确认退出程序?") , TEXT("提示信息") , MB_ICONINFORMATION|MB_YESNO);原创 2016-10-25 15:01:44 · 1771 阅读 · 0 评论 -
多个控件共同应用一个回调函数
多个控件共同应用一个回调函数如何进行区分,首先看看回调函数形参:int CVICALLBACK ChangeCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2);panel:面板标识;control:控件的标识;event:事件标识;i原创 2016-10-14 10:14:19 · 1517 阅读 · 3 评论 -
CVI使用TCP/IP做客户端
客户端连接服务器。首先要注册一个客户端连接函数: ConnectToTCPServer(&conversationHandle, portnumber, address, TCPClientCB, NULL, 0); conversationHandle: 客户端句柄;portnumber: 服务器端口号;address:服务器IP地址;TC原创 2016-10-13 09:32:12 · 5229 阅读 · 0 评论 -
CVI面板全屏操作
函数使面板在载入时全屏:int ScreenPro (int panel){ int MonitorID = 0; int height = 0; int width = 0; GetMonitorFromPanel (panel, &MonitorID); GetMonitorAttribute (MonitorID, ATTR_HEIGHT, &height); GetMon原创 2016-10-09 15:22:14 · 2897 阅读 · 0 评论 -
CVI使用数据库时,在未装CVI的计算机上运行错误。
在用NSIS打包时,将cvidb32.dll文件加入打包文件即可。附带SQL ToolKit2.1点击打开链接原创 2016-09-23 15:56:21 · 870 阅读 · 0 评论 -
CVI多线程数据保护(线程锁)
两个线程操作全局变量,一个线程显示全局变量,主线程一直在打印************#include #include #include int CVICALLBACK ThreadFunction (void *functionData);int CVICALLBACK ThreadFunction1 (void *functionData);int CVICALLBACK Thr原创 2016-10-09 14:06:35 · 4037 阅读 · 2 评论 -
CVI多线程数据保护(安全队列)
一个线程产生数据,加入安全队列;一个线程显示数据,读取安全队列。#include #include #include int CVICALLBACK ThreadFunction (void *functionData);int CVICALLBACK ThreadFunction1 (void *functionData);int threadID;int threadID1原创 2016-10-09 16:52:13 · 3286 阅读 · 0 评论 -
CVI多线程数据保护(多个线程操作同一安全变量)
有网友提出多个线程操作多个变量不能明确显示是否做到异步操作,现在我们来看下多个线程操作同一变量,是不是有序的进行呢?#include #include #include int CVICALLBACK ThreadFunction (void *functionData);int CVICALLBACK ThreadFunction1 (void *functionData);i原创 2016-10-11 09:33:45 · 3187 阅读 · 1 评论 -
CVI多线程数据保护(安全变量)
DefineThreadSafeScalarVar(,,);此函数应用#include #include #include int CVICALLBACK ThreadFunction (void *functionData);int CVICALLBACK ThreadFunction1 (void *functionData);int CVICALLBACK ThreadFunc原创 2016-10-10 16:11:03 · 1379 阅读 · 4 评论 -
UDP广播socket实现
UDP广播:const int MAX_BUF_LEN = 255;int main(int argc, char* argv[]){WORD wVersionRequested;WSADATA wsaData;int err;// 启动socket apiwVersionRequested = MAKEWORD( 2, 2 );err = WSAStartup( wVersion原创 2016-10-21 12:20:09 · 1772 阅读 · 0 评论 -
CVI与PLC通信MPI
2 MPI通信接口设计 21 MPI通信接口的基本原理 MPI通信的最高速率达187.5KB/S。IPC与PLC的通信分为两种物理连接方法一种是在工控机PCI总线上插接CP5611卡通过此卡和MPI电缆将IPC连接到S7系列PLC本机上集成的MPI接口形成MPI网络另一种方法是直接使用PC/MPI编程电缆将连接具体连接方式见图1二者的通信速度不一样。转载 2016-10-11 14:09:16 · 2172 阅读 · 0 评论 -
CVI I/O端口操作
函数:char inp (short portNumber);char outp (short portNumber, char byte);short inpw (short portNumber);long inpd (short portNumber);short outpw (short portNumber, short word);在使用这些函数时先调用int CVI原创 2016-10-12 16:28:43 · 723 阅读 · 0 评论 -
关于DeclareThreadSafeArrayVar的用法
Using a Thread Safe Array in Multiple Source FilesUse the DeclareThreadSafeArrayVar macro if you want to use the thread safe array in more than one source file. TheDeclareThreadSafeArrayVar macro原创 2016-10-12 16:31:11 · 560 阅读 · 0 评论