How can I come to know whether a stateflow chart is open from command prompt?
古いコメントを表示
Hi,
I have stateflow in my model.If stateflow is open,then while doing simulation , it takes lot of time since it animates it. So I want to make sure that whether the staeflow in my model is open or not & if it is open then I want to close it first then save the model(so that when I run sim command, it will run quickly with state chart closed), but if stateflow is not open then there is no need to save the model & I can run sim command directly.using sfclose is an option, but it do not tell me whether stateflow was open or not(so I cant decide whether to save model or not ), I want to confirm first that it is open & then only I want to use sfclose. I have tried hndls =find_system(<mdl>,'BlockType','SubSystem','Open','on'); but it gives empty array even though stateflow chart is open or closed.
Please suggest. Thanks is advance! Sameer
採用された回答
その他の回答 (1 件)
Kaustubha Govind
2011 年 12 月 19 日
You can use the Stateflow API to do this:
myModel = 'sf_car';
open_system(myModel);
rt = sfroot;
m = rt.find('-isa', 'Simulink.BlockDiagram', '-and', 'Name', myModel);
ch = m.find('-isa','Stateflow.Chart');
anyOpen = false;
for i = 1:numel(ch)
if ~anyOpen && (ch.Visible==1)
anyOpen = true;
end
if (ch.Visible==1)
ch.Visible=0;
end
end
if anyOpen
save_system(myModel);
end
カテゴリ
ヘルプ センター および File Exchange で Decision Logic についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!