find_syste​m('statefl​ow_chart_h​andle', 'StateflowType', 'Data')

I'm trying to build up a Simulink model from script commands such as find_system, add_block, delete_block, etc. I'm building this model based on the information held within another model. Therefore, I need a list of data store memory blocks and stateflow data stores througout the model, so that I can then take those lists and build up an interface layer and not miss any. The find_system function works just fine for blocks, but it keeps returning an empty matrix when I try to use it on a known stateflow chart subsystem block handle.
My syntax is as follows: find_system('stateflow_chart_handle', 'StateflowType', 'Data')
Any ideas as to what is wrong, or suggestions as to how I can do this right or better?
Thanks.

 Risposta accettata

You need to use the Stateflow API to search inside a Stateflow chart. Something like:
rt = sfroot;
m = rt.find('-isa', 'Simulink.BlockDiagram', '-and', 'Name', 'myModel');
sfDSMData = m.find('-isa', 'Stateflow.Data', 'Scope', 'Data Store Memory');

4 Commenti

That totally worked! Thanks Kaustubha!
Follow up question, I want to change the scope of a data store to be, let's say, an input. What is the proper syntax using this Stateflow API to change that scope?
You should be able to do:
sfDSMData(1).Scope = 'Input';

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Decision Logic in Centro assistenza e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by