本文首发于:VAPS XT开发入门教程10:基本数据类型介绍
VAPS XT提供了最基本的数据类型和可扩展的数据类型。
基本数据类型
byte/signed byte/string/utf16string/int16/int32/uint16/uint32/float32/float64
可以在基本数据类型的基础上扩展出自己的数据结构
dd文件
*.dd格式的文件是VAPS XT的扩展数据类型文件。其内部为标准的XML格式。
以下是VAPS XT新建工程自带的Float50数据格式。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dataDescription>
<dataDescription name="Float50">
<field>
<name>array</name>
<type>float</type>
<cardinality>50</cardinality>
</field>
</dataDescription>
- dataDescription name字段需要和文件名一样
- field字段可以有多个
- field name字段任意英文命名
- field type字段的值只能是byte/signed byte/string/utf16string/int16/int32/uint16/uint32/float32/float64。如果是其他值,在打开工程时会报错。
- field cardinality表示数量,50个表示array这个变量,是一个有50个float类型数据的数组。
- 此dd文件只能手动编辑,添加、删除、修改
将设计好的数据结构添加、导入、拖拽到工程的DataIO文件夹中,就可以在工程中使用了。
蓝色的即为我们设计的数据结构
vtyp
*.vtyp = v type = data type
(只能)用于定义对象(Objects)的属性(Property)
在Type字段直接选择我们的类型就可以了。
VAPS XT官方提供的类型位于工程的StandardElements->Data->DataTypes中
下面是一个自定义数据类型
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE type_decl PUBLIC "-//PresagisCanada//DTD VapsXT 18.0" "file:///C:/VAPSXTDTD/VapsXT_18.dtd">
<type_decl name="UInteger" cpp_class="vxtTypUInteger" c_struct="vxtCTypUInteger" build_output_location="VAPSXT_Install">
<struct_type>
<sfield name="Data" type="UInt"/>
</struct_type>
</type_decl>
类型为UInteger即无符号整型,内部实现是是UInt,变量名为Data,相当于对UInt进行了一次封装。
说明
VAPS XT是用于航天仪表的软件,不允许动态分配内存,也就是说new是不允许的,所有的数据类型在设计完成之后大小、数量就固定了。