exponenta event banner

slreportgen.finder.DifficicalElityFinder класс

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

Создать объект поиска элементов схемы

Описание

Поиск элементов в блоке Simulink ® или диаграмме Stateflow ®.

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

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

Примечание

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

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

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

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

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

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

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

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

Свойства

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

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

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

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

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

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

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

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

Типы элементов диаграммы Simulink или Stateflow для поиска, указанные как строка, символьный массив, массив строк или массив ячеек символьных массивов. Если тип является массивом, он определяет набор типов элементов. Значение по умолчанию: All или all, который находит все элементы во всех диаграммах. Одно из этих значений используется для ограничения поиска определенными типами элементов диаграммы. Можно использовать полное или краткое имя.

Полное имяКраткое имя
Allall
Simulink.Annotationannotation
Simulink.Blockblock
Simulink.Segmentline
Simulink.Portport
Stateflow.Annotationsf_annotation
Stateflow.Boxbox
Stateflow.EMFunctionemfunction
Stateflow.Functionfunction
Stateflow.Junctionjunction
Stateflow.SLFunctionslfunction
Stateflow.Statestate
Stateflow.Transitiontransition
Stateflow.TruthTabletruthtable

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

Варианты для поиска диаграмм, заданные как строковый или символьный вектор. Значение по умолчанию: Active. Допустимые значения:

  • All - Все варианты

  • Active - Только активные варианты

  • ActivePlusCode - Все активные варианты и варианты кода

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

Пример: 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.

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

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

Примеры

Поиск элементов блоков, аннотаций и линий

Поиск элементов блока, аннотации и линейной диаграммы с глубиной поиска 1 в f14 модель.

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

model_name = 'f14';
load_system(model_name);

rpt = slreportgen.report.Report('output','pdf');
add(rpt, TitlePage("Title",sprintf('%s Model',...
    model_name)));
add(rpt, TableOfContents);

diagFinder = SystemDiagramFinder("Container", ...
     model_name,"SearchDepth",1);
while hasNext(diagFinder)
    system = next(diagFinder);
    chapter = Chapter("Title",system.Name);
    add(chapter,system);
    sect = Section("Title","Diagram Elements");
    elemFinder = DiagramElementFinder("Container", ...
        system.Object, "Types",...
        ["block" "annotation" "line"]);
    elems = find(elemFinder);
    for elem = elems
        add(sect, elem);
    end  
    add(chapter, sect);
    add(rpt, chapter);
end

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

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