exponenta event banner

slreportgen.finder.AnnotationFinder класс

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

Поиск объектов аннотации Simulink

Описание

Поиск объектов аннотации в схеме Simulink ® или Stateflow ®.

Строительство

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

Примечание

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

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

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

Ни один из вариантов не имеет преимущества в производительности.

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

Входные аргументы

развернуть все

См. раздел Свойство контейнера.

Свойства

развернуть все

Схема поиска, заданная как одно из следующих значений:

  • Обращение к блоку Simulink

  • Путь к блоку Simulink

  • Дескриптор блока диаграммы Stateflow

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

  • Идентификатор диаграммы потока состояний

  • Объект диаграммы потока состояний

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

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

Методы

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

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

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

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

Ручка. Сведения о том, как классы обработки влияют на операции копирования, см. в разделе Копирование объектов.

Примеры

Поиск аннотаций в модели

Создание отчета, который находит аннотации в 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');
add(rpt, TitlePage("Title",...
    sprintf('Annotations in %s Model',model_name)));
add(rpt, TableOfContents);

diagFinder = SystemDiagramFinder(model_name);
diagrams = find(diagFinder);
while hasNext(diagFinder)
    diagram = next(diagFinder);
    annotFinder = AnnotationFinder(diagram.Object);
    annotations = find(annotFinder);
    if ~isempty(annotations)
        chapter = Chapter("Title",diagram.Name);
        add(chapter, diagram);
        sect = Section("Title","Annotations");       
        add(sect,annotations);
        add(chapter,sect);
        add(rpt,chapter);
    end
end

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

Представлен в R2017b