STRUCTURE -- 结构体定义

类型

语法指令

描述

结构体定义。

 

5系列控制器20180327以上固件支持。

4系列控制器fast版本20190107以上固件支持。

语法

Structure 结构名称

    Dim 成员1名称 [As数据类型1]

    ... ...

    Dim 成员n名称[(数组长度)] [As数据类型1]

End Structure

 

数据类型只支持结构体,每个元素都同数组元素,占用一个数组元素空间。

结构体不能递归。

 

结构变量定义:

DIM  变量名AS 结构名

DIM  结构数组名[(数组长度)]  AS 结构名

 

GLOBAL变量名AS 结构名

GLOBAL 结构数组名[(数组长度)]  AS 结构名

 

预留功能:

LOCAL变量名AS 结构名

 

支持使用FLASH_WRITEFLASH_READ指令读写结构体定义的变量和数组。

FLASH_WRITE  id,  结构变量

FLASH_WRITE  id,  结构数组

FLASH_WRITE  id,  结构数组(index)

FLASH_WRITE  id,  结构数组(index).item

FLASH_WRITE  id,  结构数组(index).item数组(index)

FLASH_READ同上

 

支持使用数组操作指令操作结构体数组。

DMINS   结构数组(index)  [,numes ]

DMINS   结构数组(index).item数组(index)  [,numes ]

DMDEL同上

 

DMCPY  结构数组1(index1),  结构数组2(index2)  [,size]

 

DMSET只支持对最后一层的数组进行操作,不能对结构数组赋值。

DMSET  结构变量.item数组(index, size, data)

DMADD同上

适用控制器

通用

例子

'声明结构体AA

GLOBAL Structure ClassAA

        DIM AA_val1         '成员变量

        DIM AA_array(10)     '成员数组

END Structure       

 

'声明结构体BB

GLOBAL Structure ClassBB

        DIM BB_val1 AS ClassAA    '成员变量为结构体

END Structure       

 

'创建结构体变量

GLOBAL Class1 AS ClassAA

GLOBAL Class2 AS ClassBB

 

Class1.AA_val1=123

?Class1.AA_val1

 

class1.AA_array="abc"

?class1.AA_array

 

Class2.BB_val1.AA_val1=567

?Class2.BB_val1.AA_val1

 

Class2.BB_val1.AA_array="zxc"

?Class2.BB_val1.AA_array

 

AA_val1=8

FLASH_WRITE 0,AA_val1

AA_val1=123

FLASH_READ 0,AA_val1

?AA_val1

 

END

相关指令

DIMGLOBALUNION