find Stateflow Test Points in Simulink model

조회 수: 1 (최근 30일)
Andy
Andy 2015년 6월 26일
댓글: Andy 2015년 7월 15일
I need to find all of the Stateflow Test Points in all charts of a SImulink model. In my experience, find_system can only be used to find Test Points in native Simulink, but not Stateflow. I am lost; please help.

채택된 답변

Debarati Banerjee
Debarati Banerjee 2015년 7월 7일
편집: Debarati Banerjee 2015년 7월 7일
The following piece of code will list the names of all the states in a model ('model_name.slx') with 'Test Point' enabled.
rt = sfroot;
m = rt.find('-isa', 'Simulink.BlockDiagram','-and','Name', 'model_name');
allStates = m.find('-isa','Stateflow.State','TestPoint',1);
p=get(allStates,'Name')
You can refer to this link for more information on Stateflow API.
  댓글 수: 1
Andy
Andy 2015년 7월 15일
I still have not gotten around to comparing this answer to the one I came up with while in a holding pattern, but I like it as it looks really similar, and looks like it will catch more Test Points if I ever put one on a state. Here is the essence of what worked for me; at this time, I don't know if Stateflow.State is a subset or different from Stateflow.Data.
MySF = sfroot;
M_atj = find(MySF,'-isa','Simulink.BlockDiagram');
m_sf_atj = M_atj.find('-isa','Stateflow.Chart');
d_sf_atj = m_sf_atj.find('-isa','Stateflow.Data');
TP_sf = d_sf_atj.find('TestPoint', true);
TP_sfPath = get(TP_sf,'Path');
TP_sfName = get(TP_sf,'Name');
for ii=1:length(TP_sf)
TP_list{ii} = [TP_sfPath{ii}, ' ', TP_sfName{ii}];
end

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Complex Logic에 대해 자세히 알아보기

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by