slreportgen.finder.StateFinder class

Пакет: slreportgen.finder
Суперклассы:

Поиск состояний Stateflow

Описание

Находит Stateflow® состояния.

Конструкция

finder = StateFinder(diagram) создает средство поиска, которое по умолчанию находит все незащищенные состояния Stateflow на указанном графике diagram. Чтобы ограничить поиск определенными типами графика схем, используйте свойства этого искателя.

Примечание

Этот поисковик предоставляет два способа получить результаты поиска:

  1. Чтобы вернуть результаты поиска в виде массива, используйте find способ. Добавьте результаты непосредственно к отчету или обработайте результаты в for цикл.

  2. Чтобы повторить результаты по одному, используйте hasNext и next методы в while цикл.

Опция не имеет преимущества эффективности.

finder = StateFinder(Name,Value) устанавливает свойства с помощью пар "имя-значение". Можно задать несколько аргументы пары "имя-значение" в любом порядке. Заключайте каждое имя свойства в одинарные кавычки.

Входные параметры

расширить все

См. «свойство контейнера».

Свойства

расширить все

График, в которой нужно искать, заданная как одно из следующих значений:

  • Указатель на блок диаграммы Stateflow

  • Путь к блоку диаграммы Stateflow

  • Идентификатор диаграммы Stateflow

  • Объект диаграммы Stateflow

Выбор включения комментируемых состояний в результаты поиска, заданный как логический. Если falseсостояния с комментариями исключаются из результатов поиска.

Свойства состояний, которые нужно найти, заданные как массив ячеек из пар "имя-значение". Поисковик возвращает только состояния, которые имеют заданные свойства с заданными значениями.

Пример: finder.Properties = {'ArrowSize','5'}

Методы

results = find(finder) находит состояния на графике diagram определяется поиском. Этот метод возвращает состояния, которые он находит обернутыми в объекты результата типа slreportgen.finder.DiagramElementResult. Чтобы добавить таблицы свойств состояний, добавьте объекты результатов непосредственно к отчету или добавьте их к репортеру, который вы затем добавляете к отчету. Отчеты, в которые можно добавить results этого метода должны быть отчеты типа slreportgen.report.Report.

tf = hasNext(finder) определяет, содержит ли схема графика, которую ищет поисковик, по крайней мере, одно состояние. Если график схема имеет хотя бы одно состояние, hasNext метод ставит это состояние в очередь как следующее состояние, которое next метод вернется. The hasNext затем метод возвращает true. Используйте next способ получения этого состояния. При последующих вызовах hasNext метод определяет, имеет ли график схема состояние, которое next метод еще не получен. Он помещает состояние в очередь для next метод для извлечения и возвратов true. Если больше нет состояний, которые нужно извлечь, этот метод возвращается false. Чтобы постепенно искать график схему для состояний, используйте hasNext метод с next метод в цикле while.

result = next(finder) возвращает следующую result поиска в очереди результатов, которую hasNext создан метод. Этот метод возвращает состояние, которое он находит упакованным в объект результата типа slreportgen.finder.DiagramElementResult. Чтобы добавить таблицы свойств состояний, добавьте объекты результатов непосредственно к отчету или добавьте их к репортеру, который вы затем добавляете к отчету. Отчеты, в которые можно добавить results этого метода должен быть типа slreportgen.report.Report.

Копировать семантику

Указатель. Чтобы узнать, как классы handle влияют на операции копирования, см. раздел «Копирование объектов».

Примеры

Поиск состояний Stateflow

Создайте отчет, который включает свойства всех состояний Stateflow в shift_logic график slrgex_sf_car модель.

import mlreportgen.report.*
import slreportgen.report.*
import slreportgen.finder.*

model_name = "slrgex_sf_car";
load_system(model_name);

rpt = slreportgen.report.Report("output","pdf");
open(rpt)

add(rpt, TitlePage("Title",...
    sprintf('States in %s Model',model_name)));
add(rpt, TableOfContents);

chartFinder = ChartDiagramFinder(model_name);
charts = find(chartFinder);
while hasNext(chartFinder)
    diagram = next(chartFinder);
    stFinder = StateFinder(diagram.Object);
    states = find(stFinder);
    if ~isempty(states)
        chapter = Chapter("Title",diagram.Name);
        add(chapter,diagram)
        for state = states
           sect = Section("Title","States");       
           add(sect,states)
        end
        add(chapter,sect)
        add(rpt,chapter)
    end
end

close(rpt)
close_system(model_name)
rptview(rpt)

Введенный в R2017b