slreportgen.finder. Класс AnnotationFinder

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

Найдите объекты аннотации Simulink

Описание

Найдите объекты аннотации в схеме Stateflow® или Simulink®.

Конструкция

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

Примечание

Это средство поиска имеет два способа найти, что объекты — находят режим итератора и режим. В режиме находки используйте его метод find, чтобы возвратить результаты поиска как массив результатов. Затем используйте цикл for, чтобы обработать результаты. В режиме итератора используйте его hasNext и методы next, чтобы возвратить результаты поиска по одному. Используя эти методы итератора, используйте некоторое время цикл, чтобы обработать результаты. Ни один из этих методов не имеет преимущество производительности перед другим, так используйте или режим в зависимости от того, предпочитаете ли вы в то время как или циклы for.

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

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

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

Свойство See Container.

Свойства

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

Схематически изобразите, в котором можно искать, заданный как одно из этих значений:

  • Обработайте к блоку Simulink

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

  • Обработайте к блоку диаграммы Stateflow

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

  • ID диаграммы 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 в некоторое время цикле.

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

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

Указатель. Чтобы изучить, как классы Handle влияют на операции копии, смотрите Копирование Объектов (MATLAB).

Примеры

Найдите аннотации в модели

Создайте отчет, который находит аннотации в модели sf_car.

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

model_name = '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