主要内容

动态屏蔽对话框

您可以为屏蔽块创建对话框,屏蔽块的外观会根据用户输入而改变。屏蔽对话框的特性可以通过这种方式改变,包括:

  • 参数控件的可见性——改变一个参数可以导致另一个参数的控件出现或消失。控件出现或消失时,对话框分别展开或缩小。

  • 参数控件的启用状态——更改一个参数会导致另一个参数的控件在输入时启用或禁用。禁用控件将显示为灰色,以在视觉上表示其禁用。

  • 参数值—修改掩码对话框参数可以使相关的掩码对话框参数设置为合适的值。

请注意

掩码参数的添加、删除或修改被限制在掩码回调中。

创建动态遮罩对话框需要使用“遮罩编辑器”set_param命令。具体来说,您可以使用Mask Editor来定义对话框的静态和动态参数。对于每个动态参数,您输入一个回调函数,该函数定义对话框如何响应对该参数的更改(参见执行回调代码).回调函数可以依次使用set_param命令设置影响对话框上其他控件外观的掩码参数和“设置”(请参见创建动态掩码对话框).最后,保存包含屏蔽子系统的模型或库,以完成动态屏蔽对话框的创建。

要查看相关示例,请参见创建动态掩码对话框

显示参数

选中此选项(默认)后,所选参数才会出现在掩码对话框中。

使参数

清除此选项将使所选参数的提示变为灰色,并禁用提示的编辑控制。

创建动态掩码对话框

这个例子展示了如何创建一个遮罩对话框块,它的外观会随着你的输入而改变。

您可以在此掩码对话框中设置两个参数。第一个参数是一个弹出菜单,通过它你可以选择三个增益值之一:25,或用户定义的.根据您在此弹出菜单中选择的值,用于指定增益的编辑字段会出现或消失。

  1. 选择一个子系统并在子系统块选项卡,面具组中,单击创建面具

  2. 选择参数和对话框面板上。

  3. 拖放弹出参数并在对话框窗格。

    1. 提示字段中,输入获得

    2. 的名字字段中,输入gainpopup

    3. 在“属性编辑器”窗格中,清除评估所以仿真软件金宝app®使用您为弹出窗口指定的文字值。

    4. 类型的选择字段中,单击编辑按钮,在弹出选项对话框中输入这三个值:

      2 5用户定义

  4. 将此代码输入对话框回调字段:

    获取掩码参数值。这是一个字符向量的单元格%数组。“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);结束

  5. 拖放编辑参数并在对话框窗格。

    1. 提示字段中,输入价值

    2. 的名字字段中,输入editvalue

    3. 在“属性编辑器”窗格中,清除可见这样Simuli金宝appnk就会默认关闭这个属性的可见性。

  6. 点击应用

  7. 要打开屏蔽对话框,双击屏蔽子系统。

    如果您选择25随着获得, 金宝appSimulink隐藏价值.如果您选择用户定义的随着获得价值是可见的。

设置嵌套屏蔽块参数

如果低级别屏蔽子系统引用了高级别屏蔽子系统定义的符号,并且试图在低级别屏蔽子系统中设置块的参数,则可能会发生无法解析的符号错误。因此,避免使用set_param用于设置隐藏子系统中的块参数的命令,这些块驻留在被初始化的屏蔽子系统中。尝试低级屏蔽子系统是否引用高级屏蔽子系统定义的符号。

例如,假设一个屏蔽子系统a包含一个屏蔽子系统B,该屏蔽子系统B包含增益块C,增益参数引用了一个由B定义的变量。

set_param([gcb '/B/C'], 'SampleTime', '-1');

模拟或更新包含a的模型会导致无法解决的符号错误。

相关的话题