Administrator
发布于 2025-04-02 / 7 阅读
0
0

Vi应用程序协调和设计

//1.应用程序控制(动态调用vi)
//2.同步控制
//   队列,通知,通道,数据缓冲区,信号量
//3.事件注册,使用
//4.设计模式s

vi属性,方法

  • 通用类属性

    • owner,owning-vi(所属者和所属vi):类型为引用句柄(引用类型),为前面板引用句柄和vi引用句柄

    • class-id,class-name:每个类都有自己独一无二的id(数值)和名字

  • 图形对象类的属性

    • 位置和边界属性:左上角坐标(可以改动),宽高(只读);

  • 其他属性

    • 值属性可读写值,值信号除此之外还可以表示事件

    • vi属性

      • 统计属性:观察vi内存情况

      • 控制工具栏:是否显示运行,中止,自动运行按钮

      • 自动错误处理:默认为true,出现错误的时候暂停程序执行,弹出错误对话框

      • 执行状态属性:bad,idle,run top level(顶层vi),running

  • 调用节点

VI动态调用

  • 调用严格类型VI(注:输入输出类型,位置,数量一致被认为是同一类型vi,可以使用动态调用严格类型vi)

    • open vi refrence --》vi path参数和vi type(创建常量,右键browser选择需要的vi确认类型)-->call by refrence(调用vi)

    • 不显示前面板,类似静态调用vi

    • 需要创建连线板

  • 调用一般类型VI

    • open vi refrence->打开vi前面板方法->判断vi运行状态,idle则运行vi;running则设置fp状态为标准->关闭vi

    • 不需要创建连线板

    • 数据交换

      • 获取动态vi的控件数组(通过属性节点)->获取控件的Label.Text(通过属性节点)->获取或设置控件value(通过vi的方法调用)

      • app引用句柄可以获得所有vi信息(判断内存中的vi)

同步

  • 队列

    • 获取队列引用:如果队列不存在则创建一个新的队列,如果同名队列存在则返回该队列的引用;意味着全局唯一

    • 释放队列引用

      • 强制销毁:默认false;为false的情况下需要所有的引用被销毁或停止所有使用该队列引用的vi

    • 入列和最前端入列,有损耗元素入队列

      • 有损耗元素入队列:当队列满的时候,表现为删除最前端元素,然后在末尾入列;可以实现数据缓冲区

    • 出队列,清空队列,预览队列元素,队列状态函数

      • 清空队列函数会清空队列返回元素数组;

      • 预览则返回最前面的元素但不从队列删除

      • 队列状态函数如果是否返回元素参数为true,则会返回所有元素

  • 通知器

    • 获取通知器引用:全局唯一(建议用LV2全局变量保存引用)

    • 释放通知器引用

    • 发送通知

    • 等待通知,等待多个通知(只要有一个通知到了,就继续执行)

    • 获取通知器状态


评论