System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 结构体数据存储方法、加载方法、装置、电子设备及介质制造方法及图纸_技高网

结构体数据存储方法、加载方法、装置、电子设备及介质制造方法及图纸

技术编号:40704844 阅读:5 留言:0更新日期:2024-03-22 11:04
本申请公开了一种结构体数据存储方法、加载方法、装置、电子设备及介质,涉及工业控制技术领域,所述结构体数据存储方法包括:根据多个结构体分别对应的名称和数据类型,在预设的定义表内创建结构体定义记录;根据结构体与结构体、结构体与非结构体之间的层级关系,在所述定义表内创建每一所述结构体的第一层成员定义记录;根据各所述结构体定义记录和各所述第一层成员定义记录,生成结构体定义表并存储至数据库。本申请能够解决数据库中存储的结构体数据中冗余数据偏多的技术问题。

【技术实现步骤摘要】

本申请涉及工业控制,尤其涉及一种结构体数据存储方法、加载方法、装置、电子设备及介质


技术介绍

1、在工业控制
中应用到的组态软件中需要用到结构体,结构体是一种自定义数据类型,由一组被称为成员的相同类型数据或不同类型数据组成。因为工业设备使用现场的大型化、复杂化,普通变量已经难以用于描述设备的输入、输出或状态,而结构体由多种不同维度的变量组成,只需使用一个结构体变量即可描述工业设备的状态,有效简化了程序设计。

2、目前的结构体数据存储方案中,数据库中需要存储记录结构体及其结构体对应的所有成员信息,若成员也存在结构体嵌套关系,也需要记录成员对应的各级具体嵌套关系的各结构体信息,数据量较大,对数据库的存储带来较大的压力。而且在结构体中存在多层级嵌套时,可能需要存储同一数据类型的结构体多次,特别是对结构体嵌套关系的记录造成冗余数据堆积,影响数据库的操作效率。


技术实现思路

1、本申请的主要目的在于提供一种结构体数据存储方法、结构体数据加载方法、装置、电子设备及计算机可读存储介质,旨在解决数据库中存储的结构体数据中冗余数据偏多的技术问题。

2、为实现上述目的,本申请提供一种结构体数据存储方法,所述结构体数据存储方法包括:

3、根据多个结构体分别对应的名称和数据类型,在预设的定义表内创建每一所述结构体的结构体定义记录;

4、根据结构体与结构体、结构体与非结构体之间的层级关系,在所述定义表内创建第一层成员定义记录;

5、根据各所述结构体定义记录和各所述第一层成员定义记录,生成结构体定义表并存储至数据库。

6、可选地,所述根据多个结构体分别对应的名称和数据类型,在预设的定义表内创建结构体定义记录的步骤包括:

7、将所述结构体的记录序号、名称、数据类型关联存储到所述定义表,其中,所述数据类型用于表征结构体之间的嵌套关系;

8、将预设的定义记录标识存储至所述定义表中并与所述结构体的记录序号、名称、数据类型关联,得到所述结构体对应的结构体定义记录。

9、可选地,所述根据结构体与结构体、结构体与非结构体之间的层级关系,在所述定义表内创建每一所述结构体的第一层成员定义记录的步骤包括:

10、在所述定义表中每一个结构体后存储所述结构体的第一层成员定义记录,其中,所述第一层成员定义记录包括第一层成员的记录序号、名称、数据类型以及所述结构体对应的记录序号,所述结构体对应的记录序号用于表征所述第一层成员的父级结构体。

11、本申请还提供一种结构体数据存储方法,所述结构体数据存储方法包括:

12、从数据库中加载结构定义表中的结构体定义记录数据和第一层成员定义记录数据,并存储至在缓存空间中为所述结构体定义记录数据和所述第一层成员定义记录数据单独开辟的存储空间;

13、基于各所述第一层成员定义记录数据中第一层成员的数据类型与各所述结构体定义记录数据中各结构体的数据类型,建立指针指向关系;

14、根据各所述结构体定义记录数据、各所述第一层成员定义记录数据以及所述指针指向关系,以树形结构形式展示各所述结构体的组成结构。

15、可选地,各所述第一层成员中至少包括结构体成员,所述基于各所述第一层成员定义记录数据中第一层成员的数据类型与各所述结构体定义记录数据中各结构体的数据类型,建立指针指向关系的步骤包括:

16、查询与各所述结构体成员的数据类型相同的结构体定义记录数据;

17、将所述结构体成员通过指针形式指向具有相同数据类型的结构体定义记录数据对应的存储空间。

18、可选地,在所述将所述结构体成员通过指针形式指向具有相同数据类型的结构体定义记录数据对应的存储空间的步骤之后,所述方法还包括:

19、若获取到对所述结构体的更新指令,则将更新后的结构体存储至所述数据库,其中,所述更新指令至少包括新增、删除、修改中的一种;

20、基于指向所述结构体的指针,将更新后的结构体同步更新至所述结构体对应的父级结构体。

21、可选地,所述根据各所述结构体定义记录数据、各所述第一层成员定义记录数据以及所述指针指向关系,以树形结构形式展示各所述结构体的组成结构的步骤包括:

22、基于所述结构体定义记录数据对应的名称,创建树形结构的根节点;

23、在所述根节点下创建所述结构体定义记录数据对应的第一层成员分别对应的子节点;

24、若所述第一层成员中包括结构体成员,则通过所述指针指向关系确定所述结构体成员对应的结构体定义记录数据,并通过所述结构体成员对应的结构体定义记录数据查询所述结构体成员对应的下一层成员;

25、在所述结构体成员的子节点下创建各所述下一层成员对应的下一级子节点;

26、判断所述下一层成员中是否存在结构体成员,若是,则返回执行步骤:通过所述指针指向关系确定所述结构体成员对应的结构体定义记录数据,直至所述树形结构的叶子节点中不存在结构体成员,并展示最终得到的树形结构。

27、本申请还提供一种结构体数据存储装置,所述结构体数据存储装置应用于电子设备,所述结构体数据存储装置包括:

28、结构体记录模块,用于根据多个结构体分别对应的名称和数据类型,在预设的定义表内创建结构体定义记录;

29、成员记录模块,用于根据结构体与结构体、结构体与非结构体之间的层级关系,在所述定义表内创建每一所述结构体的第一层成员定义记录;

30、定义表存储模块,用于根据各所述结构体定义记录和各所述第一层成员定义记录,生成结构体定义表并存储至数据库。

31、本申请还提供一种结构体数据加载装置,所述结构体数据加载装置应用于电子设备,所述结构体数据加载装置包括:

32、数据存储模块,用于从数据库中加载结构定义表对应的结构体定义记录数据和第一层成员定义记录数据,并存储至在缓存空间中为所述结构体定义记录数据和所述第一层成员定义记录数据单独开辟的存储空间;

33、指针建立模块,用于基于各所述第一层成员定义记录数据中第一层成员的数据类型与各所述结构体定义记录数据中各结构体的数据类型,建立指针指向关系;

34、树形展示模块,用于根据各所述结构体定义记录数据、各所述第一层成员定义记录数据以及所述指针指向关系,以树形结构形式展示各所述结构体的组成结构。

35、本申请还提供一种电子设备,所述电子设备为实体设备,所述电子设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述结构体数据存储方法或所述结构体数据加载方法的程序,所述结构体数据存储方法或所述结构体数据加载方法的程序被处理器执行时可实现如上述的结构体数据存储方法或结构体数据加载方法的步骤。

36、本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有实现所述结构体数据存储方法或所述结构体数据加载方法的本文档来自技高网...

【技术保护点】

1.一种结构体数据存储方法,其特征在于,所述结构体数据存储方法包括:

2.如权利要求1所述结构体数据存储方法,其特征在于,所述根据多个结构体分别对应的名称和数据类型,在预设的定义表内创建结构体定义记录的步骤包括:

3.如权利要求2所述结构体数据存储方法,其特征在于,所述根据结构体与结构体、结构体与非结构体之间的层级关系,在所述定义表内创建每一所述结构体的第一层成员定义记录的步骤包括:

4.一种结构体数据加载方法,其特征在于,所述结构体数据加载方法包括:

5.如权利要求4所述结构体数据加载方法,其特征在于,各所述第一层成员中至少包括结构体成员,所述基于各所述第一层成员定义记录数据中第一层成员的数据类型与各所述结构体定义记录数据中各结构体的数据类型,建立指针指向关系的步骤包括:

6.如权利要求5所述结构体数据加载方法,其特征在于,在所述将所述结构体成员通过指针形式指向具有相同数据类型的结构体定义记录数据对应的存储空间的步骤之后,所述方法还包括:

7.如权利要求4所述结构体数据加载方法,其特征在于,所述根据各所述结构体定义记录数据、各所述第一层成员定义记录数据以及所述指针指向关系,以树形结构形式展示各所述结构体的组成结构的步骤包括:

8.一种结构体数据存储装置,其特征在于,所述结构体数据存储装置包括:

9.一种电子设备,其特征在于,所述电子设备包括:

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有实现结构体数据存储方法和结构体数据加载方法的程序,所述实现结构体数据存储方法和结构体数据加载方法的程序被处理器执行以实现如权利要求1至3中任一项所述的结构体数据存储方法或权利要求4至7中任一项所述的结构体数据加载方法的步骤。

...

【技术特征摘要】

1.一种结构体数据存储方法,其特征在于,所述结构体数据存储方法包括:

2.如权利要求1所述结构体数据存储方法,其特征在于,所述根据多个结构体分别对应的名称和数据类型,在预设的定义表内创建结构体定义记录的步骤包括:

3.如权利要求2所述结构体数据存储方法,其特征在于,所述根据结构体与结构体、结构体与非结构体之间的层级关系,在所述定义表内创建每一所述结构体的第一层成员定义记录的步骤包括:

4.一种结构体数据加载方法,其特征在于,所述结构体数据加载方法包括:

5.如权利要求4所述结构体数据加载方法,其特征在于,各所述第一层成员中至少包括结构体成员,所述基于各所述第一层成员定义记录数据中第一层成员的数据类型与各所述结构体定义记录数据中各结构体的数据类型,建立指针指向关系的步骤包括:

6.如权利要求5所述结构体数据加载方法,...

【专利技术属性】
技术研发人员:李嘉辉李云龙王斌薛嘉彪
申请(专利权)人:深圳市汇川技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1