slreportgen.finder.DiagramFinder class

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

Создайте поисковик для схем

Описание

Находит Simulink® диаграммы и Stateflow® чарты.

Конструкция

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

Примечание

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

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

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

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

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

Свойства

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

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

  • Указатель на модель Simulink, подсистему или блок модели

  • Путь к модели Simulink, подсистеме или блоку модели

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

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

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

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

Глубина поиска системной схемы, заданная как inf или положительное целое число. SearchDepth задает, сколько уровней глубоко для поиска схем в контейнере схем. Для поиска по всем уровням используйте inf.

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

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

Выбор для поиска Библиотеки Simulink ссылок, заданный как логический. Если и это свойство, и IncludeMaskedSubsystems являются trueпоисковик ищет ссылки в контейнере схем как на блоки Подсистемы, так и на блоки Subsystem в библиотеках Simulink. Выполняется поиск по указанному SearchDepth и включает схемы, которые он находит в результатах поиска. Если это свойство true, но IncludeMaskedSubsystems является falseпоисковик ищет только ссылки на блоки Subsystem в библиотеках Simulink.

Выбор для поиска ссылок на пользовательскую библиотеку, заданный как логический. Если это свойство true и IncludeMaskedSubsystems свойство trueпоисковик ищет ссылки в контейнере схем на Подсистему и маскированные Блоки Subsystem в библиотеках пользователей. Выполняется поиск по указанному SearchDepth и включает схемы, которые он находит в результатах поиска. Если это свойство true, но IncludeMaskedSubsystems свойство falseпоисковик ищет только ссылки на блоки Subsystem в библиотеках пользователей.

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

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

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

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

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

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

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

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

Примечание

The find метод finder игнорирует это свойство и оставляет все ссылки моделей открытыми. По этой причине вы не должны использовать метод find для поиска моделей со многими моделями-ссылками.

Методы

results = find(finder) находит схемы в заданном container. The finder является slreportgen.finder.DiagramFinder объект. results является массивом slreportgen.finder.DiagramResult объекты, каждый из которых содержит схему, найденную этим методом. Добавление этого массива к отчету или репортеру добавляет изображения всех схем, которые он содержит. Отчеты, в которые можно добавить results этого метода являются отчеты типа slreportgen.report.Report или другой объект, такой как slreportgen.report.Chapter репортер.

Примечание

The find метод открывает и компилирует модель верхнего уровня и все модели, на которые он ссылается. Этот метод оставляет все модели открытыми при завершении поиска, что может замедлить создание отчетов о моделях, которые содержат много модели-ссылки. Чтобы избежать этого замедления, используйте hasNext и next методы поиска такой модели.

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

Примечание

Если текущий результат является последним результатом в очереди поиска для текущей модели и AutoCloseModel свойство true, этот метод закрывает текущую модель, прежде чем она откроет следующую модель. Хотя это увеличивает время поиска, это уменьшает потребление памяти при поиске верхней модели, которая ссылается на многие другие модели. Если ваша модель не ссылается на многие другие модели, чтобы ускорить поиск, установите AutoCloseModel свойство к false или используйте find способ.

result = next(finder) возвращает следующую result поиска в очереди результатов, которую hasNext создан метод. Результат поиска содержит получившуюся схему. Добавление этого result объект к отчету или reporter добавляет репортер схемы для схемы.

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

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

Примеры

Поиск всех блоков и диаграмм Stateflow

Создайте отчет, который включает изображение всех схем в 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('%s Systems',...
     model_name)));

finder = DiagramFinder(model_name); 
while hasNext(finder)
    add(rpt,next(finder));
end    

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

Поиск всех схем в подсистеме

Откройте slrgex_sf_car моделировать и найти все схемы в своей Engine подсистема. Используйте путь к подсистеме или ее указатель. Затем можно включить результаты в отчет.

slrgex_sf_car

% Use path 
enginePath = "slrgex_sf_car/Engine";
finder = slreportgen.finder.DiagramFinder(enginePath);
results = find(finder);

% or use handle
engineHandle = get_param("slrgex_sf_car/Engine","Handle");
finder = slreportgen.finder.DiagramFinder(engineHandle);
results_enginehandle = find(finder);

Поиск элементов схемы с определенным значением свойства

Чтобы найти элементы с определенными значениями свойств, используйте объект slreportgen.finder.DiagramElementFinder класс. Откройте f14 моделировать и найти все блоки Gain со значением Zw.

model = 'f14';
load_system(model);
finder = slreportgen.finder.DiagramElementFinder(model)
finder.Properties = {'Gain','Zw'};
results = find(finder);

Введенный в R2017b