动态屏蔽对话框
您可以为屏蔽块创建对话框,屏蔽块的外观会根据用户输入而改变。屏蔽对话框的特性可以通过这种方式改变,包括:
参数控件的可见性——改变一个参数可以导致另一个参数的控件出现或消失。控件出现或消失时,对话框分别展开或缩小。
参数控件的启用状态——更改一个参数会导致另一个参数的控件在输入时启用或禁用。禁用控件将显示为灰色,以在视觉上表示其禁用。
参数值—修改掩码对话框参数可以使相关的掩码对话框参数设置为合适的值。
请注意
掩码参数的添加、删除或修改被限制在掩码回调中。
创建动态遮罩对话框需要使用“遮罩编辑器”set_param
命令。具体来说,您可以使用Mask Editor来定义对话框的静态和动态参数。对于每个动态参数,您输入一个回调函数,该函数定义对话框如何响应对该参数的更改(参见执行回调代码).回调函数可以依次使用set_param
命令设置影响对话框上其他控件外观的掩码参数和“设置”(请参见创建动态掩码对话框).最后,保存包含屏蔽子系统的模型或库,以完成动态屏蔽对话框的创建。
要查看相关示例,请参见创建动态掩码对话框.
显示参数
选中此选项(默认)后,所选参数才会出现在掩码对话框中。
使参数
清除此选项将使所选参数的提示变为灰色,并禁用提示的编辑控制。
创建动态掩码对话框
这个例子展示了如何创建一个遮罩对话框块,它的外观会随着你的输入而改变。
您可以在此掩码对话框中设置两个参数。第一个参数是一个弹出菜单,通过它你可以选择三个增益值之一:2
,5
,或用户定义的
.根据您在此弹出菜单中选择的值,用于指定增益的编辑字段会出现或消失。
选择一个子系统并在子系统块选项卡,面具组中,单击创建面具.
选择参数和对话框面板上。
拖放弹出参数并在对话框窗格。
在提示字段中,输入
获得
.在的名字字段中,输入
gainpopup
.在“属性编辑器”窗格中,清除评估所以仿真软件金宝app®使用您为弹出窗口指定的文字值。
在类型的选择字段中,单击编辑按钮,在弹出选项对话框中输入这三个值:
2 5用户定义
将此代码输入对话框回调字段:
获取掩码参数值。这是一个字符向量的单元格%数组。“gainpopup”maskStr = get_param (gcb);弹出菜单是第一个掩码参数。如果strcmp(maskStr(1),'U'),检查在弹出窗口中选择的值,当%用户定义在弹出窗口中被选中时,设置两个参数的可见性。set_param(gcb,' maskvisibility ',{'on';'on'}),否则%当用户定义未被选中时,关闭Value字段%的可见性。在Values字段中设置字符向量等于在弹出菜单中选择的%字符向量。% maskStr {2} = maskStr {1};set_param (gcb, editvalue maskStr);结束
拖放编辑参数并在对话框窗格。
在提示字段中,输入
价值
.在的名字字段中,输入
editvalue
.在“属性编辑器”窗格中,清除可见这样Simuli金宝appnk就会默认关闭这个属性的可见性。
点击应用.
要打开屏蔽对话框,双击屏蔽子系统。
如果您选择
2
或5
随着获得, 金宝appSimulink隐藏价值.如果您选择用户定义的
随着获得的价值是可见的。
设置嵌套屏蔽块参数
如果低级别屏蔽子系统引用了高级别屏蔽子系统定义的符号,并且试图在低级别屏蔽子系统中设置块的参数,则可能会发生无法解析的符号错误。因此,避免使用set_param
用于设置隐藏子系统中的块参数的命令,这些块驻留在被初始化的屏蔽子系统中。尝试低级屏蔽子系统是否引用高级屏蔽子系统定义的符号。
例如,假设一个屏蔽子系统a包含一个屏蔽子系统B,该屏蔽子系统B包含增益块C,增益参数引用了一个由B定义的变量。
set_param([gcb '/B/C'], 'SampleTime', '-1');
模拟或更新包含a的模型会导致无法解决的符号错误。