slreportgen.finder.DiagramElementFinder class

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

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

Описание

Находит элементы в Simulink® блок или Stateflow® график.

Конструкция

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

Примечание

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

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

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

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

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

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

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

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

Свойства

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

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

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

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

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

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

  • Идентификатор диаграммы 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 метод вернется. The hasNext затем метод возвращает true. Используйте next способ получения этого элемента. При последующих вызовах hasNext метод определяет, имеет ли схема элемент, который next метод еще не получен. Он ставит элемент в очередь для next метод для извлечения и возвратов true. Если больше не существует элементов, которые нужно извлечь, этот метод возвращается false. Для постепенного поиска элементов в схеме используйте hasNext метод с next метод в a while цикл.

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

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

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

Примеры

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

Найдите элементы блока, аннотации и линейной схемы на глубину поиска 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