微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > LabWindows/CVI虚拟仪器设计技术场景与游戏设计之: 下雪场景

LabWindows/CVI虚拟仪器设计技术场景与游戏设计之: 下雪场景

时间:11-13 来源:3721RD 点击:

(3)程序注释

① NewAsyncTimer 函数

创建一个异步定时器并返回异步定时器ID。创建的异步定时器会自动开辟一个新的线程,其默认优先级为THREAD_PRIORITY_HIGHEST ,如需要修改优先级,可调用NewAsyncTimer WithPriority 函数重新设置优先级,异步定时器支持Windows 、real-time (RT) 、Linux 等系统。函数原型为:

int NewAsyncTimer (double Interval, int Count, int Initial_State, void *Event_Function, void *Callback_Data);

Interval:指定触发事件时间间隔,以秒计。

Count :指定异步定时器触发的事件数目。如果输入负值,则异步定时器只有调用DiscardAsyncTimer 或SuspendAsyncTimerCallbacks 函数时才会被终止。如果输入0 则返回一个错误。

Initial_State :设置异步定时器为运行或暂停状态。可以通过SetAsyncTimerAttribute 函数重新设置状态。

*Callback_Data :用户定义回调数据。

返回值:返回异步定时器ID。负值表示产生错误。错误说明如表4-6 所示。

表4-6 异步定时器错误说明表

错误码

说明

–1

系统分配异步定时器资源失败

–2

没有ID 资源分配给异步定时器

–3

内存不足

–4

指定ID 不存在

–5

调用并初始化异步定时器未完成

–6

内部错误

–7

参数传递无效

–8

仅用于实时系统

–9

不能设置此属性

*Event_Function :指定用户自定义异步定时器函数名。此参数为AsyncTimerCallbackPtr 函数指针类型,函数定义与普通定时器类似,即:

int CVICALLBACK FunctionName (int reserved, int timerId, int event, void *callbackData, int eventData1, int eventData2);

reserved :保留参数。

timerId :异步定时器ID,用于产生回调事件。

event:响应事件,包含EVENT_TIMER_TICK 和EVENT_DISCARD 事件。

*callbackData :用户定义回调数据。

eventData1 :为双精度指针变量,指向异步定时器持续运行时间。

eventData2 :为双精度指针变量,指向异步定时器从上次触发事件到该时间持续时间。

② DiscardAsyncTimer 函数释放异步定时器资源。函数原型为:

int DiscardAsyncTimer (int Timer_ID);

Timer_ID :异步定时器ID。如果输入值为–1,将释放所有异步定时器资源。注意,创建或释放异步定时器只有当函数执行完毕返回时才能真正完成,否则会有错误产生。

③ SuspendAsyncTimerCallbacks 函数停止所有异步定时器,直到调用ResumeAsyncTimerCallbacks 函数。函数原型为:

int SuspendAsyncTimerCallbacks (void);

④ Delay 函数延时指定时间,以秒计。一般情况下,默认分辨率为1ms 。函数原型为:

void Delay (double Number_of_Seconds);

Number_of_Seconds :延时时间。

⑤ CanvasDrawPoint 函数在Canvas 控件上绘制点图。绘制时使用ATTR_PEN_COLOR 、ATTR_PEN_MODE 和ATTR_PEN_WIDTH 属性。当ATTR_PEN_WIDTH 属性不为1 时,可能出现非圆形点。函数原型为:

int CanvasDrawPoint (int Panel_Handle, int Control_ID, Point Point);

⑥ MakeColor 函数利用红、绿、蓝三色合成一个RGB 颜色值。RGB 值是一个4 字节整型数据,用十六进制表示为0x00RRGGBB,RR、GG、BB 分别表示红、绿、蓝三基色。函数原型为:int MakeColor (int Red, int Green, int Blue);

Red:红色分量值,取值范围为0~255 。

Green:绿色分量值,取值范围为0~255 。Blue:蓝色分量值,取值范围为0~255 。

⑦ DisableBreakOnLibraryErrors 函数

当产生库函数错误时,禁止弹出运行时错误对话框。可以使用SetBreakOnLibraryErrors 函数代替。函数原型为:

void DisableBreakOnLibraryErrors (void);

通常情况下,可以通过选择菜单Run→Break on→Library Errors 选择打开或关闭运行时错误对话框。如果需要打开运行时错误对话框,也可采用EnableBreakOnLibraryErrors 或SetBreakOnLibraryErrors 函数。

⑧ 异步定时器退出问题

如果将面板回调函数PanelCB 中的SuspendAsyncTimerCallbacks 和Delay 函数删除,在关闭面板时,会弹出运行时错误对话框,如

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top