If I have understood the query properly, you want mscript that can :
- Search through a model (including library blocks) and
- Identify “tick functions” in Stateflow charts.
The following script will scan your model, including library blocks for Stateflow tick functions or events and print their locations :
% Define the model name
modelName = 'your_model_name'; % <-- Change this to your model
% Load the model (if not already loaded)
load_system(modelName);
% Find all Stateflow charts in the model (including library links)
rt = sfroot;
charts = rt.find('-isa', 'Stateflow.Chart');
fprintf('Searching for tick functions/events in model: %s\n', modelName);
for i = 1:length(charts)
chart = charts(i);
chartPath = chart.Path;
% Search for functions named 'tick' (case-insensitive)
tickFuncs = chart.find('-isa', 'Stateflow.Function', '-and', 'Name', @(x) strcmpi(x, 'tick'));
for j = 1:length(tickFuncs)
fprintf('Tick function found in chart: %s\n', chartPath);
end
% Search for events named 'tick' (case-insensitive)
tickEvents = chart.find('-isa', 'Stateflow.Event', '-and', 'Name', @(x) strcmpi(x, 'tick'));
for j = 1:length(tickEvents)
fprintf('Tick event found in chart: %s\n', chartPath);
end
end
fprintf('Search complete.\n');
Also, If you want to search in library models, make sure those libraries are loaded and referenced in your main model.
Hope this helps!
