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.

 Respuesta aceptada

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 comentarios

Jeffrey
Jeffrey el 28 de Nov. de 2012
That totally worked! Thanks Kaustubha!
Jeffrey
Jeffrey el 28 de Nov. de 2012
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';
Thank you :)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Decision Logic en Centro de ayuda y File Exchange.

Productos

Preguntada:

el 28 de Nov. de 2012

Comentada:

el 14 de Sept. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by