slreportgen.finder.AnnotationFinder class

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

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

Описание

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

Конструкция

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

Примечание

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

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

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

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

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

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

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

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

Свойства

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

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

  • Указатель на блок Simulink

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

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

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

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

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

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

Пример: finder.Properties = {'Gain','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 влияют на операции копирования, см. раздел «Копирование объектов».

Примеры

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

Создайте отчет, который находит аннотации в 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