虚拟仪器设计与应用CVI复习资料.doc_第1页
虚拟仪器设计与应用CVI复习资料.doc_第2页
虚拟仪器设计与应用CVI复习资料.doc_第3页
虚拟仪器设计与应用CVI复习资料.doc_第4页
虚拟仪器设计与应用CVI复习资料.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

要求:1、 设置电源开关键,电源打开,LED灯亮,系统开始工作;否则,系统不工作。若电源未开,直接点击“OK”键,系统弹出错误报警对话框。2、 当电源打开后,定时器开始工作,定时间隔为1s。每隔一秒,电表的示数增加一度。电表示数的范围是0-20。当示数增加到20度后,定时器关闭,电表停止不动,直至再次按下“OK”键重新计数。3、 “QUIT”按钮用于在任意时刻退出整个面板的工作。#include #include #include sfeef.hstatic int panelHandle,t; double timer;int main (int argc, char *argv)if (InitCVIRTE (0, argv, 0) = 0)return -1;/* out of memory */if (panelHandle = LoadPanel (0, sfeef.uir, PANEL) 0)return -1;DisplayPanel (panelHandle);RunUserInterface ();DiscardPanel (panelHandle);return 0;int CVICALLBACK QuitCallback (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)switch (event)case EVENT_COMMIT:QuitUserInterface (0);break;return 0;int CVICALLBACK Kaishi (int panel, int control, int event,void *callbackData, int eventData1, int eventData2) switch (event)case EVENT_COMMIT:if (t = 0)MessagePopup (错误,电源没开) ;else SetCtrlAttribute (panelHandle, PANEL_TIMER, ATTR_ENABLED, 0);break;return 0;int CVICALLBACK Time (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)switch (event)case EVENT_TIMER_TICK: timer+; SetCtrlVal (panelHandle, PANEL_NUMERICGAUGE, timer);if (timer=20)timer=0;SetCtrlAttribute (panelHandle, PANEL_TIMER, ATTR_ENABLED,0);break;return 0;int CVICALLBACK Dianyuan (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)switch (event)case EVENT_COMMIT: GetCtrlVal (panelHandle, PANEL_BINARYSWITCH, &t);SetCtrlVal (panelHandle, PANEL_LED, t);break;return 0;设计一窗口闪烁程序,使其每0.5秒闪烁一次。表3-1 主要控件基本属性列表控件类型Constant Name 属性设置面板PanelPANEL命令按钮Command ButtonQUITBUTTONCallback FunctionQuitCallbackLable_Quit双态按钮Toggle ButtonTOGGLEBUTTONCallback FunctionFlashCBInitial StateoffLable控制按钮定时器控件TimerTIMERCallback FunctionFlashTimerCBInterval (seconds)0.5LableTimer#include #include #include wyf.h#includestatic int panelHandle;int hwnd;int main (int argc, char *argv)if (InitCVIRTE (0, argv, 0) = 0)return -1;/* out of memory */if (panelHandle = LoadPanel (0, wyf.uir, PANEL) 0)return -1;DisplayPanel (panelHandle);hwnd = GetCVIWindowHandle ();RunUserInterface ();DiscardPanel (panelHandle);return 0;int CVICALLBACK QuitCallback (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)switch (event)case EVENT_COMMIT:QuitUserInterface (0);break;return 0;int CVICALLBACK FlashCB (int panel, int control, int event,void *callbackData, int eventData1, int eventData2) int p;switch (event)case EVENT_COMMIT: GetCtrlVal (panelHandle, PANEL_TOGGLEBUTTON, &p);SetCtrlAttribute (panelHandle, PANEL_TIMER, ATTR_ENABLED, p);break;return 0;int CVICALLBACK FlashTimerCB (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)switch (event)case EVENT_TIMER_TICK: FlashWindow(HWND)hwnd,1);break;return 0;表2-1 添加控件的基本属性列表控件类型Constant Name 属性设置命令按钮Command ButtonSAVECallback FunctionSaveCBLable_SaveLOADCallback FunctionLoadCBLable_Load设计波形发生器,将产生的波形数据存储到文件中,并能够从文件中回读显示(要求用ANSI C库stdio.h中的文件打开和读写函数)。#include #include #include #include wyf.hstatic int panelHandle;double datapoints100;int main (int argc, char *argv)if (InitCVIRTE (0, argv, 0) = 0)return -1;/* out of memory */if (panelHandle = LoadPanel (0, wyf.uir, PANEL) 0)return -1;DisplayPanel (panelHandle);RunUserInterface ();DiscardPanel (panelHandle);return 0;int CVICALLBACK QuitCallback (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)switch (event)case EVENT_COMMIT:QuitUserInterface (0);break;return 0;int CVICALLBACK SaveCB (int panel, int control, int event,void *callbackData, int eventData1, int eventData2) size_t num;FILE *fp;switch (event)case EVENT_COMMIT:fp = fopen (test.dat, wb);/*为输出打开一个二进制文件*/num = fwrite (datapoints, sizeof(double), 100, fp);/*写文件*/fclose (fp);/*关闭文件*/break;return 0;int CVICALLBACK LoadCB (int panel, int control, int event,void *callbackData, int eventData1, int eventData2) int i;double data100;char fileNameMAX_PATHNAME_LEN;switch (event)case EVENT_COMMIT:i = FileSelectPopup (, .dat, , , VAL_LOAD_BUTTON, 0, 0, 1, 0, fileName);if(i=1) size_t num;FILE *fp;fp = fopen (fileName, rb);num = fread (data, sizeof(double), 100, fp);fclose (fp); DeleteGraphPlot (panelHandle, PANEL_GRAPH, -1, VAL_IMMEDIATE_DRAW); PlotY (panelHandle, PANEL_GRAPH, data, 100, VAL_DOUBLE, VAL_FAT_LINE, VAL_EMPTY_SQUARE, VAL_SOLID, 1, VAL_RED);break;return 0;int CVICALLBACK xiao (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)int i;int trace_color,shape;if(event = EVENT_COMMIT)GetCtrlVal (panelHandle, PANEL_RINGSLIDE, &shape);switch(shape)case 0:for(i=0;i100;i+)datapointsi=50*sin(2*3.1415926536)/100)*i)+50;break;case 1:for(i=0;i33;i+)datapointsi=33.0;for(i=33;i67;i+)datapointsi=67.0;for(i=67;i100;i+)datapointsi=33.0;break;case 2:for(i=0;i25;i+)datapointsi=i*4;datapointsi+25=100-(i*4);datapointsi+50=i*4;datapointsi+75=100-(i*4);break;case 3:for(i=0;i100;i+)datapointsi=rand()/32767.0*100.0;break;GetCtrlVal (panelHandle, PANEL_COLORNUM, &trace_color);DeleteGraphPlot (panelHandle, PANEL_GRAPH, -1, VAL_IMMEDIATE_DRAW);PlotY (panelHandle, PANEL_GRAPH, datapoints, 100, VAL_DOUBLE, VAL_THIN_LINE, VAL_EMPTY_SQUARE, VAL_SOLID, 1, trace_color);return 0;编写一个函数发生器,要求 :能够通过用户界面选择产生正弦波、三角波、锯齿波、方波等函数波形用曲线图控件绘制用户选择的波形表4-1 主要控件的基本属性列表控件类型Constant Name 属性设置面板PanelPANEL命令按钮Command ButtonQUITBUTTONCallback FunctionQuitCallbackLable_Quit曲线图控件GraphGRAPH1Lable波形显示下拉列表控件RingWAVEFORMCallback FunctionWaveFormChooseLabel波形选择Label/ValuePairsLabel无Value0Label正弦波Value1Label三角波Value2Label锯齿波Value3Label方波Value4#include #include #include #include wyf.hstatic int panelHandle,type=100,index=50,delay=30,width=10;static int n=2000,tablesize=100,t;double p=0.0,waveTable100,x2000;double amphase=1.0,f=0.001,amp=5.0,first=1.0,last=100.0;int main (int argc, char *argv)if (InitCVIRTE (0, argv, 0) = 0)return -1;/* out of memory */if (panelHandle = LoadPanel (0, wyf.uir, PANEL) 0)return -1;DisplayPanel (panelHandle);RunUserInterface ();DiscardPanel (panelHandle);return 0;int CVICALLBACK boxingxuanze (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)switch (event)case EVENT_COMMIT:GetCtrlVal (panelHandle, PANEL_BOXINGXUANZE, &t);switch (t)case 0:DeleteGraphPlot (panelHandle,PANEL_BOXINGXIANSHI,-1,VAL_IMMEDIATE_DRAW); break; case 1: SinePattern (type,amp,0.0,2,waveTable);break; case 2: Triangle (type,amp,waveTable);break;case 3: SawtoothWave (t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论