Пакет: slreportgen.finder
Суперклассы:
Создание поисковика для диаграмм
Поиск диаграмм Simulink ® и диаграмм Stateflow ®.
создает поисковик, который по умолчанию находит все некомментированные блок-схемы Simulink и диаграммы Stateflow в указанном finder = DiagramFinder(container)container. Чтобы ограничить поиск включением определенных типов диаграмм, используйте свойства этого поиска.
Примечание
Этот поисковик может работать в режиме поиска или итератора. В режиме поиска используйте его find для возврата результатов поиска в виде массива результатов. В режиме итератора используйте его hasNext и next для возврата результатов поиска один за другим. При поиске в моделях с большим количеством привязок модели используйте режим итератора. Режим итератора закрывает модель после компиляции и поиска, в то время как режим поиска сохраняет все модели, которые она ищет, открытыми. Наличие множества открытых моделей может потреблять всю системную память и замедлять формирование отчетов. Режим итератора медленнее, чем режим поиска, поэтому используйте режим поиска для поиска моделей, которые ссылаются на несколько других моделей или не ссылаются на них.
задает свойства, используя пары имя-значение. Можно указать несколько аргументов пары имя-значение в любом порядке. Заключите каждое имя свойства в отдельные кавычки.finder = DiagramFinder(Name,Value)
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 метод в цикле while.
Примечание
Если текущий результат является последним результатом в очереди поиска для текущей модели и AutoCloseModel свойство - trueэтот метод закрывает текущую модель перед открытием следующей модели. Хотя это увеличивает время поиска, это уменьшает потребление памяти при поиске в верхней модели, которая ссылается на многие другие модели. Если модель не ссылается на многие другие модели, для ускорения поиска установите AutoCloseModel свойство для false или используйте find способ.
result = next(finder) возвращает следующий поиск result в очереди результатов, которая hasNext создан метод. Результат поиска содержит результирующую диаграмму. Добавление этого result объект в отчет или репортер добавляет репортер Схема для диаграммы.
Ручка. Сведения о том, как классы обработки влияют на операции копирования, см. в разделе Копирование объектов.
Создание отчета, содержащего изображение всех диаграмм в 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 модель и найти все блоки усиления со значением Zw.
model = 'f14'; load_system(model); finder = slreportgen.finder.DiagramElementFinder(model) finder.Properties = {'Gain','Zw'}; results = find(finder);
slreportgen.finder.ChartDiagramFinder | slreportgen.finder.DiagramElementFinder | slreportgen.finder.DiagramResult | slreportgen.finder.StateflowDiagramElementFinder | slreportgen.finder.SystemDiagramFinder | slreportgen.report.Diagram | slreportgen.report.Report