在自定义系统目标文件(Simulink Coder)中有条件地启用rtwoptions

时间:2014-06-02 12:27:02

标签: simulink s-function

我正在创建自定义系统目标文件(STF)并添加一些需要配置的RTW选项。某些选项取决于其他选项,可能会也可能没有意义,具体取决于它们的配置方式。在这些情况下,我想有条件地禁用它们(灰显)。

到目前为止,我有类似的东西(使用MATLAB R2014a)

...

rtwoptions(oIdx).prompt         = 'Enable Foo';
rtwoptions(oIdx).type           = 'Checkbox';
rtwoptions(oIdx).default        = 'off';
rtwoptions(oIdx).enable         = 'on';  
rtwoptions(oIdx).tlcvariable    = 'Foo';
rtwoptions(oIdx).makevariable   = 'FOO';

oIdx = oIdx + 1;

rtwoptions(oIdx).prompt         = 'Bar only makes sense if Foo is enabled';
rtwoptions(oIdx).type           = 'Checkbox';
rtwoptions(oIdx).default        = 'off';
if foo <--- WHAT DO I PUT HERE?
    rtwoptions(oIdx).enable         = 'on';
else
    rtwoptions(oIdx).enable         = 'off';
end

根据documentation,通过调用MATLAB函数可以得到条件rtwoption,但我想让它依赖于其他选项。

这必须是可能的,因为它在代码生成中实现 - &gt; “报告”选项卡(&#34;打开报告&#34;仅在启用&#34;创建报告&#34时启用)。

这种情况的语法是什么?我可以使用&#34; tlc变量&#34;?

1 个答案:

答案 0 :(得分:1)

使用rtwoptions(i).callback字段和使用slConfigUIGetVal获取控制选项(示例中为Foo)的值的Matlab函数和slConfigUISetEnabled来启用/禁用依赖选项(示例中为Bar)。