-
虚拟仪器问题集锦
1.
如何减少
CVI
程序的
CPU
占用率?
回答
=<
/p>
可以在
Options
-》
Enviroment
中进行设置,将
Sleep
Policy
设置为
Sleep
Mo
re
。或者在程序中进行设置,设置函数为:
SetSleep
Policy (VAL_SLEEP_MORE)
。
2.
在
CV
I
中如何实现将这次面板参数作为下次的缺省值使用?
回答
=
一般情况下可以使用文件将各参数保存
下来,在下次调用面板时再调用这些
参数。也可以使用
CVI<
/p>
自带的函数
SavePanelState
和
RecallPanelState
。
中如何实现进度条功能?
回答
=CVI
中可以使用
slide
控件实现进度条功能。也可以使用
Programm
er's
Toolbox
里带的函数来创建进度条。
中的
TUI
文件?
回答
=TUI
文件实际上是
UIR
文件的文本版本,
在使用时同
UIR
< br>文件的调用方式相同。
p>
中使用控件的
Tab
顺序功能时如何略过某
些控件?
回答
=
将控件改变为
Indicator
控件,在
CVI
中
Tab
顺序是略过显
示控件的;
2
、将
控件灰掉,
CVI
会略过灰掉的控件;
3
< br>、
将下一个控件作为活动控件,
从而略过一个控件。
p>
6.
在
LabWindows/CVI
中如何用多个安全队列
(SafeQueue)
来实现对多个采集任务的
数据
保护?
回
答
=
一
般
来
说<
/p>
,
在
编
写
一
个
多
线
程
程
序
时
,
我
们
会
在
默
认
的
线
程
池
(DefaultThread
Pool)
中建立一个或多个
SafeQueue
;然后再建立
2
个新的线程池
(NewThreadPool)
,分别用于数据的采集和处理;在用于采集的线程池
中建立多个线程
(Thread)
,分别对应各个板卡或通道;
在用于数据处理的线程池
(ThreadPool)
中建立一<
/p>
个或多个线程来对进行相应的操作。
7.
在安装
NI
软件的过程中(包括
LabVIEW,
CVI,
hardware
drivers,
或使用了
MSI
installer
进行安装的其它
NI
软件),出现错误
2894
致使安装程序被迫中止,如何解
决该问题?
回答
=
该问题是微软网站上已经公布的
Microsoft Installer
p>
常出现的问题之一。
已知有两个原因可能导致出现该问题:其一就是
错误的或者被破坏了的
存在于用户的计算机上,或用户计算机上
的的
文件丢失。其二就是用户
的计算机
被诸如
.A@mm
的病毒感染。
p>
针对第一种情况,用户需要从其他机器上拷贝正确版本的
文件或者重新
安装
MSI installer<
/p>
。如果用户的操作系统为
Windows95,98
或者
ME
,那么必须下载并
安装
,如果用户使用
Windows
NT4.0, 2000
或者
Xp
,那
么必须下载安装
。该执行文件将会修复用户系统里的所有损坏文
件。针对第二种情况,用
户则需要杀毒并重新安装上述文件。
dows/CVI
中的堆栈大小?
<
/p>
回答
=LabWindows/CVI
中
的堆栈大小直接影响可以分配的数组大小。如果数组的大
小超过堆栈大小,则会报告错误
。该值可以在
Options->Build Options
中设置。缺省
值为:
250000
。建
议使用动态内存分配。
中如何画极坐标?
< br>回答
=CVI
中没有专门提供画极坐标的控件。
可以使用
Picture
控件自己画,
或者使
用绘图软件绘制出极坐标图,然后保存为图片再使用
canvas
控件将图片导入。
10.
如何在启动
< br>CVS
之后立即启动下载到
CVS
上的执行程序
?
一般有两种方式,其中一种你可以使用
p>
LV
的工程项来把程序下载到
CVS
中,那么
ationPath=c:
,
AppAtBoot=True
这两个设置
就会自动被
LV
设置。如果你是通过
F
TP
把程序下载到
CVS
上,上述两个
标签就得手动设置。
中如何进行二维指针的内存分配?
<
/p>
回答
=
具体例子代码如下:
p=(ComplexNum**)malloc(3*sizeof(int));
for(i=0;i<3;i++)
<
/p>
p=(ComplexNum*)malloc(3*sizeof(ComplexNu
m
));
其
中
p
类
型
为
:
ComplexNum**
;
中如何实现颜色选择对话框?
回答
=
可以使用
Co
lorChangePopup
。具体例子代码:
static
ColorChangeEntry
sEntry;
static ListType colorList = 0;
static int iResult;
colorList = ListCreate(sizeof(ColorChangeEntry));
=
= VAL_RED;
tColor =
VAL_BLUE;
ListInsertItem(colorList, &sEntry, END_OF_LIST);
=
= VAL_GREEN;
tColor =
VAL_BLUE;
ListInsertItem(colorList, &sEntry, END_OF_LIST);
=
= VAL_BLUE;
tColor = VAL_YELLOW;
ListInsertItem(colorList, &sEntry, END_OF_LIST);
iResult
=
p>
ColorChangePopup(
颜色选择
colorList,
1,
0,0);
ListDispose(colorList);
1
3.
如何在
CVI
中实现
Flash
文件的播放
?
回答
=
首先需要安装
FLASH
p>
PLAYER
的
ActiveX
控件。在
PANEL
上面添加
ActiveX
控
件,在向导中添加
SHOCKWAVEFLASH
控件。然后使用
CVI
的自动生成程序框架代码,在
向导中会自动生成相应的
FP
文件。可以根据
FP
文件
提供的函数进行编程了。
GetObjHandleFromActiveXCtrl<
/p>
获得
ActiveX
控件的句柄,
ShockwaveFlashObjects_IShockwa
veFlashSetMovie
设置要播放的文件
ShockwaveFlashObjects_IShockwaveFlashPlay
p>
播放文件
ShockwaveFlash
Objects_IShockwaveFlashStop
停止播放
< br>
14.
在
< br>LabWindows/CVI
中如何使用
DAQmx<
/p>
采集数据
?
回答
=
在
LabWindows/CVI
中的
Function
Panel
里调用
NI-DAQmx Library
目录下的
函数,调用顺序与在
LabVIEW<
/p>
中使用
DAQmx
的
API
函数基本一致,都必须遵守创建任务
->
配置通道
->
设置采样率
->
设置触发
->
采集数据
->
停止任务
->
清除任
务这样的基本顺
序。
中如何使用
UDP
协议?<
/p>
回答
=CVI
中没有带有关于
UDP
协议的
fp
p>
文件,需要使用
winsock
来写。
p>
下如何编写多线程程序?
回
答
=
可
以
使
用
函
数
模
版
中
的
Utility
Library
目
录
下
的
函
p>
数
,
首
先
用
CmtNewThreadPool (int
Maximum_Number_of_Threads, int *Pool_Handle)
函数创建一
个线程池
(也可以使用程序默认的线程池
)
,
然后使用
CmtSchedule
ThreadPoolFunction
-
-
-
-
-
-
-
-
-
上一篇:考研复试英语问答
下一篇:myeclipse自带json包及json插件使用法