# 创建模块封装
Mask(封装)模块是 Sysblock 中用于封装模型和子系统、隐藏内部逻辑并简化参数配置的重要工具。通过 Mask 模块,用户可以为模型和子系统创建自定义参数对话框,以及自己的模块描述、参数提示和帮助文本,提升参数管理效率。
# 封装基础知识
封装 Mask 模块可以:
为模块提供自定义对话框;
提供一个对话框,只允许您访问底层模块的所选参数;
提供特定于封装模块的用户自定义说明。
请考虑代表直线方程 y = mx + b 的模型。参考模型
和
每个模块都有它自己的对话框,这让指定直线方程变量的值变得复杂。为了简化用户界面,可在顶层子系统模块上应用封装。此示例中使用的模块是 Inport、Gain、Sum、Constant 和 Outport。
此处变量 m 表示斜率,变量 b 表示直线方程 y = mx + b 的截距。
参数对话框编辑器用于对封装进行定义,设置封装参数与属性。
参数对话框中显示了斜率和截距字段,分别对应于变量 m 和 b。
| 术语 | 描述 |
|---|---|
| 封装参数 | 在参数对话框编辑器中定义并显示在参数对话框中的参数。在参数对话框中设置封装参数值将会设置对应的模块参数值。 |
| 参数对话框 | 包含用于设置封装参数值的字段并提供封装描述的对话框。 |
| 参数对话框编辑器 | 用于创建和自定义模块封装。 |
# 创建简单封装
您可以使用参数对话框编辑器以交互方式封装模块。此示例说明使用参数对话框编辑器来封装模块的操作步骤。
# 步骤1 :打开参数对话框编辑器
打开您要在其中封装模块的模型。以某个模型为例,它包含直线方程 y = mx + b 的一个子系统模块。

选择该子系统模块,在弹出的菜单栏中选择编辑封装。

# 步骤2:定义封装
打开参数对话框编辑器如上图所示,整体布局可分为以下四个区域:
控件库(左侧)
- 提供可添加到参数界面的各种UI控件。
- 通过拖拽方式将控件添加到参数对话框,增强交互性。
参数列表(中上)
- 显示当前组件已经添加的参数控件及其基本属性。
- 支持参数选择、编辑和删除。
参数结构(中下)
- 展示当前模型/子系统内可供提升的参数列表。
- 支持组件参数的选择与提升,提升后的参数控件类型与之前保持一致。
属性编辑器(右侧)
- 用于调整当前选定参数的详细属性。
- 允许用户直接修改参数的配置,实现参数化管理。
在参数结构(中下)使用参数提升功能向参数列表(中上)添加参数、绑定控件,并在右侧属性编辑器中对参数进行设置。操作步骤如下:
在参数结构区域(中下)勾选参数,单击提升按钮添加到模型封装,在参数列表区域(中上)添加两个新行。

在属性编辑器(右侧),为两个编辑参数的文本一行分别键入“截距: "和”斜率:"。

单击确定或应用保存封装。

# 步骤3:调用封装后的参数对话框
在模型中双击该子系统,可以打开该子系统的参数对话框。

在参数对话框的截距和斜率框中键入值,单击确定或应用。
单击仿真,验证仿真结果。

# 注意事项
- 模型的封装仅支持仿真,暂不支持代码生成。
- 存在同名变量时,其优先级顺序为:模型工作区 > 数据字典 > 基础工作区>参数对话框中的 Paramter 参数。
# 功能限制
当前版本的部分功能尚未支持,具体包括:
- 不支持不定端口模块的参数提升
- 不支持用户自定义回调参数
- 不支持用户自定义数据绑定关系
- 不支持嵌套层级的 SubSystem 参数提升