How can I get the port number of a StateFlow input given it's handle programatically?

I have the handle of a StateFlow input from a previous find result. I'm trying to get the port number for that StateFlow input. I've been using the sf('get',<handle num>,<field name>) command for other fields like 'data.name', 'data.scope', etc. but can't see where I can get the port number. Can anyone help me with this?

1 comentario

chart = find(sfroot, '-isa', 'Stateflow.Chart', 'Name', 'YourChartName');
inputs = chart.find('-isa', 'Stateflow.Data', '-and', 'Scope', 'Input');
for i = 1:numel(inputs)
fprintf('Port %d: %s\n', inputs(i).Port, inputs(i).Name);
end

Iniciar sesión para comentar.

 Respuesta aceptada

It sounds like you are working with Stateflow.Data objects, where you have the ID property and want to find the Port property. In that case, you can do this:
>> x = find(sfgco,Id=301);
>> x.Port
4

4 comentarios

PS. If you are running an older version, you might have to use comma-separated values for find:
x = find(sfgco,"Id","301");
Hi Jorge, thank you for that suggestion however I am running a script programmatically which just gives me the handles (ID) to the StateFlow input data items. There is nothing actually being selected by the script so when I do a sfgco I get the empty list []. I thought having the StateFlow input data item ID would be sufficient as I'm working "upwards" from only having the SF ID to seeing the connected Simulink input line name. Do you have any other suggestions?
Jorge Calvo
Jorge Calvo el 8 de Oct. de 2021
Editada: Jorge Calvo el 8 de Oct. de 2021
You can use sfroot instead of sfgco. That will look at all the Stateflow charts you have loaded.
>> x = find(sfroot,Id=301);
Fantastic!!! Thank you Jorge that worked perfectly.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Productos

Versión

R2014b

Preguntada:

el 22 de Jul. de 2021

Comentada:

el 6 de Feb. de 2025

Community Treasure Hunt

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

Start Hunting!

Translated by