软件程序应该可重复使用,具有灵活性和扩展性。面向对象编程(Object Oriented Programming,OOP)可以让程序具有这些特点。面向对象程序设计把客观世界中的实体抽象为对象,以对象为核心,定义了类,数据抽象,继承,动态绑定,数据封装,多态性,消息传递等。类是客观世界的抽象,具有静态属性的数据和对数据的操作,对象是类的实体化,对象之间通过消息实现通讯。对象是组成程序的基本模块。“天下武功,唯快不破”。LabVIEW是图形化的编程语言,无需记住繁琐的编程语句和语法,可以象“搭积木”一样轻松,快速地编程,在工业应用中实现高效软件研发。G#框架是一个免费的LabVIEW插件,在LabVIEW中实现了面向对象编程。
1.使用VI Package Manager安装 G# Framework 软件包并重启 LabVIEW。
2.创建一个新项目并保存。鼠标右键点击我的电脑(MyComputer)->新建(NEW)->G#类(G# Class)。
3.在出现的对话框中输入类名(Class Name)和保存数据的类文件夹(Class Folder), 点击创建类按钮(Class)。
4.稍等片刻,出现类图标编辑器对话框(Class Icon Editor)。设置类图标头部文字(Header Text)和颜色,点击应用按钮(Apply)确认。
5.G#类定义完成, 定义的类名出项在项目管理对话框中。
6.在类中添加一个方法。鼠标右键点击类名->G#IDE->创建方法(Create Method…)。
7. 在出现的创建方法对话框中(Create Method),选定方法模板(Method Template),输入将创建的方法名称(Name)和相关信息(Description),设置创建的方法类型(Method Type),范围(Scope)等。点击创建方法按钮(Create Method)确认。
8.稍等片刻,出现图标编辑器对话框(Icon Editor),颜色在创建类时已经提前设定。输入方法图标文字(Body Text),点击应用按钮确认(Apply)。
9.方法定义完成。现在给类添加一个属性(Attribute)。在项目管理对话框中,展开被保护的文件夹(Protected Folder),鼠标左键双击对象属性控件(ObjectAttributes.ctl)或者鼠标右键点击类名,选择编辑属性(Edit Attributes…)。
10.在簇中添加一个新的属性元素。保存并关闭类型定义控件面板(Type def control)。
11. 使用功能方法 GetAttributes.vi访问属性。在LabVIEW中, G# 使用数据值调用(Data Value Reference,DVR) 访问属性。
12.请参考 G# 范例,进一步了解类如何工作。
G# Framework Examples 框架范例
G#框架范例: <LabVIEW>/examples/AddQ/G#
查找范例,在 LabVIEW “Find Examples…”中输入关键词 “G#”。
G# Templates 模板
创建类时有很多不同的模板供参考:
- G#Template – 创建类的标准模板。基础或子类. 推荐(Recommended)。
- G#Interface – 创建接口(Interface)的标准模板。
- G#StaticTemplate – 创建仅具有静态成员(Static Member)的静态类(Static class)的模板,不能被继承。
- LvNative – LabVIEW 母类(Native Class), 不基于引用。
- G#InterfaceImplementation – 使用接口时的模板。
- G#BaseTemplateG3 –用于创建和Endevo GOOP3兼容的基础类模板, 用于把类从GOOP3转换到G#。创建新类时,不推荐使用。
- G#SubTemplateG3 – 用于创建和Endevo GOOP3兼容的子类模板,用于把类从GOOP3转换 到G#。创建新类时,不推荐使用。
所有模板位于:<LabVIEW>/vi.lib/addons/_AddQ/G#Templates
G# Classes File Structure 类文件结构
所有G# 类具有如下相同的结构。 一个G# 类位于名为 <ClassName>_class的文件夹中,具有如下的结构:
- <top> - lvclass-文件和公共方法。
- protected – 被保护的方法和属性定义类型定义控件 type def controls。
- private – 类的私有方法。
- properties – 类的属性方法. 若使用LabVIEW 2010,将包含新属性定义文件夹。
- utils – G# 应用支持 VIs 和控价。 用于访问属性的GetAttributes 和GetClassAttributes Vis保存于此。
Property Definition 属性定义
属性定义文件夹将被用于包含属性。在代码中,可以使用LabVIEW类调用属性节点(Property Nodes),通过属性定义方法访问属性。
G# Wire Appearance 连线外观
G# 使用2种连线外观:
- G#对象 – 所用的 G# 对象调用获得这样的连线外观,一条绿实线。
- G#接口–所有的G# 接口调用获得这样的连线外观,一条绿虚线。