温度采集 .txt

来自「搜集的一款LABWINDOWS/CVI温度采集显示用户界面设计源程序.」· 文本 代码 · 共 104 行

TXT
104
字号
#include <utility.h>
#include <analysis.h>
#include <ansi_c.h>
#include <cvirte.h>		
#include <userint.h>
#include "温度.h"

//定义面板句柄变量
static int panelHandle;		             

//主函数 
int main (int argc, char *argv[])		 
{
	//初始化CVI运行时引擎
	if (InitCVIRTE (0, argv, 0) == 0)   
		return -1;	/* out of memory */
	
	//装载用户面板
	if ((panelHandle = LoadPanel (0, "温度.uir", PANEL)) < 0)
		return -1;
	
	//显示面板
	DisplayPanel (panelHandle);
	
	//运行界面程序
	RunUserInterface ();

	//删除面板
	DiscardPanel (panelHandle);
	
	//如果成功,则返回0
	return 0;
}

int CVICALLBACK Acquire (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	static double max,min;
	static int max_index,min_index;
	int i,j,value;
	
	//定义信号采样数据点数组
	double datapoints[100];
	switch (event)
	{
		//控件所响应的事件
		case EVENT_COMMIT:
			
			//获得控件值
			GetCtrlVal (panelHandle, PANEL_BINARYSWITCH, &value);
			if (value==1)
			{
				//设置控件值
				SetCtrlVal (panelHandle, PANEL_LED, 1); 
				SetCtrlAttribute (panelHandle, PANEL_LED, ATTR_LABEL_TEXT, "开");
				for (i=0; i<100; i++)
			    {
				   //产生随机数
				   datapoints[i]=100*rand()/32767.0;
				   
				   //延时0.01秒
				   Delay (0.01);
			       SetCtrlVal (panelHandle, PANEL_NUMERICTHERM, datapoints[i]);
				   
				   //绘图
				   PlotStripChartPoint (panelHandle, PANEL_STRIPCHART, datapoints[i]);
				} 
				
				//获得1维数组的最大与最小值
				MaxMin1D (datapoints, 100, &max, &max_index, &min, &min_index);
				SetCtrlVal (panelHandle, PANEL_NUMERIC, max);
				SetCtrlVal (panelHandle, PANEL_NUMERIC_2, min);
				
				//当数据产生完毕后,关闭“开始采样”开关
				SetCtrlVal (panelHandle, PANEL_BINARYSWITCH, 0);
				SetCtrlVal (panelHandle, PANEL_LED, 0);
				SetCtrlVal (panelHandle, PANEL_NUMERICTHERM, 0.00);
				SetCtrlAttribute (panelHandle, PANEL_LED, ATTR_LABEL_TEXT, "关");
			}
			else
			{
				//关闭LED
				SetCtrlVal (panelHandle, PANEL_LED, 0);	
				SetCtrlVal (panelHandle, PANEL_NUMERICTHERM, 0.00); 
				SetCtrlAttribute (panelHandle, PANEL_LED, ATTR_LABEL_TEXT, "关");
			}
		break;	
	}		
	return 0;
}

int CVICALLBACK Quit (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
	{
		case EVENT_COMMIT:
			
			//退出用户界面
			QuitUserInterface(0);
			break;
	}
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?