LabWindows/CVI虚拟仪器设计技术场景与游戏设计之: 下雪场景
(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 函数删除,在关闭面板时,会弹出运行时错误对话框,如
LabWindows 虚拟仪器 CVI 动画场景 相关文章:
- 用于雷达测试和验证的自动化测试设备(05-15)
- 基于LabWindows的录波分析仪的设计(03-01)
- LabWindows/CVI虚拟仪器设计技术基本控件使用之: Tab 控件(11-13)
- LabWindows/CVI虚拟仪器设计技术场景与游戏设计之:时钟制作(11-13)
- LabWindows/CVI虚拟仪器设计技术基本控件使用之:回调函数(11-13)
- LabWindows/CVI虚拟仪器设计技术场景与游戏设计之: 打蜜蜂(11-13)