slreportgen.finder.DiagramFinder class

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

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

Описание

Находит Simulink® схемы и Stateflow® графики.

Конструкция

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

Примечание

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

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

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

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

Свойство See Container.

Свойства

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

Контейнер модели, в котором можно искать в виде одного из этих значений:

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

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

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

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

  • ID диаграммы 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 метод средства поиска закрывает в настоящее время открытую модель прежде, чем переместиться в следующую модель, чтобы искать. Закрытие моделей предотвращает чрезмерное потребление памяти при поиске модели, это ссылается на многие модели.

Примечание

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

Методы

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

Примечание

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

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

Примечание

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

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

Примеры

Найдите все блок-схемы и диаграммы 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