VAPS XT入门教程13:文件类型
系列索引:VAPS XT入门教程索引
上一章:VAPSXT入门教程12:界面
本部分介绍VAPS XT通过界面、手动创建的文件以及对应的文件格式。
我们来看一下VAPS XT的基本文件类型和格式
VAPS XT工程的所有文件都是XML格式保存的。一个页面一般会保存为两个文件*.vcls/*.vimp
。vcls(v class)一般保存声明,比如数据结构、事件名称等等,vimp(v implementation)一般保存页面的实现、事件的操作等等
点击菜单中的File -> New按钮。
根工程
最开始的第一步肯定是新建根工程,扩展名为*.vrpj。vrpj是vaps root project的缩写,即VAPS XT根工程,每个工程中有且只有一个此文件。其他的所有文件都是依附于根工程下的。
设置工程名,工程保存路径,点击确认
可以看到,空白工程也会自动添加一些文件。
Graphical Object(GO)
图形对象,或者画面对象,最常用的一个控件类型。
新建完成后会自动跳转到属性设置界面,可以设置名称,路径,绘图单位。
添加我们需要的属性,可以是软件自带的,也可以是我们设计的数据结构。
打开设计文件
默认为黑色。
我们向里面添加一个子页面,虽然是子页面,但是有可能是可此页面是同级的。
可以看到,只要把子页面放进去,右侧就可以预览。
在数据流中,HyperTemplateSmallWindow_1是子页面的名称,而.
后面的选项就是在vcls中设置的属性数据结构。也可以在事件、状态机中使用。
可以看到GO涉及两个文件.vcls
和 .vimp
。
vcls是vaps class的缩写,即vaps类,作用和C/C++
中的.h文件一样,其中保存类名声明、数据结构声明。
vimp是vaps implementation的缩写,即vaps实现,作用和C/C++
中的.cpp文件一样,其中保持具体的实现,其依附于vcls文件,无法独立打开,打开后悔自动在预览窗口显示实现的内容。
这两个文件可以单独创建,即Class + Built Implementation 就是GO
GO只能生成代码。
Format
Format文件保存也是vcls/vimp,但是它没有属性页面,只有设计页面。可以看做是特殊的GO控件。
Format页面可以被编译为lib/exe。
Container
暂时没发现和GO有什么区别
Clipboard Object
使用和GO差不多,但是它和GO不同的地方是一般的GO在使用时是引用,而这个会创建一个新的。
Calculator
自定义计算器,不定数量的输入,不定数量的输出,具体的算法需要自己在vimp文件中实现。
当然,如果不需要自己实现计算器,可以使用Toolbox中的Calculators控件。
Data Sender/Receiver
nCOM中数据发送接收控件
既然是发送接收数据,那么是什么样的数据呢?需要在Type中指定,也可以是自定义数据结构
点击确定后,会在工程中添加两个文件
可以看到它在我们设置的名称f50Buff前自动添加了snd/rcv关键词。
使用时将需要的控件拖拽到界面中然后就能使用缓存中的数据了。
子工程
我们来看一下实际的效果
DataIO子工程下包含一系列文件,而且这个只是VAPS XT工程的树状管理,如果文件也需要树状管理,那么就需要手动操作修改文件所在的路径了
文件类型为vprj,是vaps project的缩写,即VAPS XT工程,被根工程包含,可以有多个。
自定义数据类型
*.dd
格式的文件是VAPS XT的扩展数据类型文件。其内部为标准的XML格式。
以下是VAPS XT新建工程自带的Float50数据格式。
1 |
|
- dataDescription name字段需要和文件名一样
- field字段可以有多个
- field name字段任意英文命名
- field type字段的值只能是之前提到的基本数据类型。如果是其他值,在打开工程时会报错。
- field cardinality表示数量,50个表示array这个变量,是一个有50个float类型数据的数组。
- 此dd文件只能手动复制官方的Float50.dd,然后重新编辑、添加、删除、修改
将设计好的数据结构添加、导入、拖拽到工程的DataIO文件夹中,就可以在工程中使用了。
蓝色的即为我们设计的数据结构
自定义数据类型实例化
新建一个Class
自动显示属性
然后将基类改为Data,新增接口并设置类型
文件格式为vcls
数据类型实例化
*.vtyp = v type =vaps data type
(只能)用于定义对象(Objects)的属性(Property)
在Type字段直接选择我们的类型就可以了。
VAPS XT官方提供的类型位于工程的StandardElements->Data->DataTypes中
下面是一个自定义数据类型
1 |
|
类型为UInteger即无符号整型,内部实现是是UInt,变量名为Data,相当于对UInt进行了一次封装。
vtyp和vcls的区别是vcls属于是自定义类型,可以添加至工程中;vtyp是官方提供的,不能添加至工程中只能添加到GO和Format使用。
编码对象
CodedObjects机制在后面会具体介绍。
此机制使用时先创建一个Class,格式为.vcls,再创建一个Coded Implementation,格式为.vimp,此文件可以直接导出为VS工程
Table
将表元素控件拖拽、添加至GO中,此GO就可以使用这些表元素,与根工程的表元素不同,这些表元素只能在此GO中使用。
Display Definition
一般只有Fomrat文件可以编译为exe执行,一次只能编译一个FOrmat,Display Definition可以将多个Format编译为一个exe并显示。
Styling Rules
类似Qt中的qss,设置统一的格式,然后共享使用
下一章:VAPSXT入门教程14:开发
技术交流群,欢迎加入讨论。这个圈子很小,大佬可能没兴趣加这些群聊社区之类的。所以只能带你入门,当然,欢迎大佬指导