Текущий раздел:

Описания RDS

Описание пользователя

Глава 2. Интерфейс пользователя

§2.15. Операции с несколькими блоками и связями одновременно

§2.15.1. Выделение блоков и связей по заданному критерию

# Описание пользователя

## Глава 2. Интерфейс пользователя

### §2.15. Операции с несколькими блоками и связями одновременно

Описываются действия, которые одновременно затрагивают несколько блоков и связей, а также способы поиска и выделения блоков, имеющих общие параметры.

#### §2.15.1. Выделение блоков и связей по заданному критерию

Описывается выделение в подсистеме блоков и связей, имеющих какие-либо общие параметры. Эта функция бывает полезна при внесении изменений в сложные схемы и при отладке таких схем.

Выделить в подсистеме несколько блоков и связей можно разными способами – например, щелчками на них левой кнопкой мыши с нажатой клавишей Shift, или указанием прямоугольной области, внутрь которой должны попасть выделенные объекты. Однако, иногда удобнее выделить блоки или связи, у которых есть нечто общее: например, одна и та же функция модели, или один и тот же текст в комментарии блока. Особенно это удобно при наличии в схеме большого количества однотипных или похожих блоков. После этого для всех выделенных в подсистеме объектов можно, например, установить одинаковые параметры при помощи функции групповой установки. Такое выделение по заданному критерию вызывается пунктом «редактирование | выделить» главного меню RDS). При выборе этого пункта открывается окно (рис. 230), в котором выбираются способ и критерии выделения.

Рис. 230. Окно выделения: вкладка «основные параметры»

Окно выделения по заданному критерию содержит четыре вкладки, главная из которых – «основные параметры». В левой верхней ее части установкой флажка на панели «способ выделения» выбирается действие, которое будет выполнено при закрытии окна кнопкой «OK»:

- «сделать выделенными» – блоки, связи и шины, соответствующие выбранным в окне критериям, станут выделенными, все остальные объекты выделены не будут;
- «добавить к выделению» – блоки, связи и шины, соответствующие выбранным критериям, будут добавлены к уже выделенным объектам;
- «исключить из выделения» – выделенные блоки, связи и шины, соответствующие критериям, перестанут быть выделенными.

Таким образом, вызывая это окно несколько раз и меняя способ выделения, можно выделять объекты по довольно сложным алгоритмам. Если, например, необходимо выделить все блоки, функция модели которых находится в библиотеке «Library.dll», кроме тех, в комментарии которых содержится слово «временный», нужно провести выделение два раза. Сначала следует установить флажок «сделать выделенными» и выделить все блоки с моделью из библиотеки «Library.dll», а затем снова открыть окно выделения, установить флажок «исключить из выделения» и снять выделение со всех блоков со словом «временный» в комментарии. В результате останутся выделенными только нужные блоки (для автоматизации таких действий служит функция пакетной обработки).

Поскольку выбором способа выделения можно как установить выделение для блоков, связей и шин, так и снять его, в дальнейшем будем обобщенно называть действие, выполняемое окном, «обработкой», имея в виду как включение, так и выключение выделения для объектов подсистемы в зависимости от установок панели «способ выделения».

Флажками на панели «выделить» выбираются обрабатываемые при установке (или снятии) выделения объекты: блоки, связи и шины. Флажки для блоков разбиты по типам – можно независимо выделять простые блоки, подсистемы, внешние входы и выходы и вводы шин. Если флажок рядом с типом объекта не будет установлен, такой объект не будет обработан, даже если он будет удовлетворять остальным критериям, заданным в окне.

В левой нижней части вкладки располагается панель «слои» со списком слоев подсистемы: при установке флажка «только на слоях» будут обработаны только блоки, связи и шины, находящиеся на отмеченных в списке слоях.

В правой части вкладки находятся три панели: «блоки», «связи» и «шины», на которых задаются критерии выделения соответствующих объектов. Рядом с каждым критерием располагается флажок: если он не установлен, то критерий не будет учтен при обработке, если установлен, то будут обработаны только объекты, удовлетворяющие этому критерию. На панели «блоки» можно задать следующие критерии обработки блоков:

- «По шаблону имени блока» – обрабатываются только блоки, имена которых соответствуют указанному шаблону. В шаблоне можно применять метасимволы «∗», заменяющий произвольное число символов, и «?», заменяющий один символ (точно так же в ОС задают шаблоны имен файлов).
- «По файлу DLL» – обрабатываются только блоки, к которым подключены функции моделей, находящихся в указанной библиотеке. Имя библиотеки можно выбирать из выпадающего списка (в нем содержатся имена всех библиотек, используемых данной схемой) или вводить вручную, вместо стандартной папки Dll RDS можно указывать символическое имя «$DLL$». Можно также использовать и другие символические имена папок.
- «По функции DLL» – обрабатываются только блоки, к которым подключена функция модели с указанным именем. Имя можно выбирать из выпадающего списка (он содержит все имена функций моделей, используемые в данной схеме) или вводить вручную.
- «Использующие структуру» – обрабатываются только блоки, в составе статических переменных которых используется структура с указанным именем типа. Имя типа структуры выбирается из выпадающего списка. Глубина вложенности структуры указанного типа не важна: если среди переменных блока нет структуры указанного типа, но есть структура, содержащая эту структуру в качестве поля, блок все равно будет обработан.

На панели «связи» задаются критерии обработки связей (шины, хотя и являются видом связей, сюда не входят – у них отдельная панель):

- «По типу источника данных» – обрабатываются только связи, передающие переменную указанного типа. Тип задается в отдельном окне нажатием кнопки справа от флажка.
- «По стилю» – обрабатываются только связи, внешний вид которых соответствует одному из стандартных стилей. Имя стиля выбирается из выпадающего списка.
- «По состоянию» («включенные» или «выключенные») – в зависимости от того, какой из дополнительных флажков установлен, обрабатываются только включенные или отключенные связи.

На панели «шины» указываются критерии обработки шин:

- «По шаблону имени шины» – обрабатываются только шины, имена которых соответствуют указанному шаблону. В шаблоне можно применять метасимволы «∗» и «?». Этот критерий, фактически, единственное место в RDS, где используются имена шин.
- «Использующие структуру» – обрабатываются только шины, среди каналов которых используется структура с указанным именем типа. Имя типа структуры выбирается из выпадающего списка. Глубина вложенности структуры, как и при обработке блоков, не важна.
- «По стилю» – обрабатываются только шины, внешний вид которых соответствует одному из стандартных стилей.

На вкладке «дополнительно» окна выделения задаются критерии, используемые реже (рис. 231). Панель «комментарий» позволяет обработать блоки, содержащие заданные фрагменты в тексте комментария. Если на панели установлен флажок «содержащим один из фрагментов», будут обработаны блоки, содержащие любой из указанных фрагментов, если же установлен флажок «содержащим все фрагменты», будут обработаны только блоки, содержащие все из них. Фрагменты текста для поиска задаются в строчках таблицы на этой же панели, кнопки справа от нее служат для добавления и удаления строчек. Отдельный флажок «с учетом регистра» под таблицей позволяет искать фрагменты комментария как с учетом, так и без учета регистра символов.

Рис. 231. Окно выделения: вкладка «дополнительно»

На панели «внешний вид блока» можно указать критерии, имеющие отношение к изображению блока:

- «По наличию картинки» – будут обработаны только блоки, либо содержащие (выбрано «да»), либо не содержащие (выбрано «нет») векторную картинку. Следует помнить, что картинку могут содержать и блоки, для которых задано программное рисование. Этот критерий имеет отношение именно к наличию картинки, а не к ее использованию в изображении блока.
- «По способу рисования» – будут обработаны только блоки, изображаемые выбранным в выпадающем списке способом:

- «картинка» – внешний вид блока задается векторной картинкой (даже если самой картинки у блока при этом нет);
- «DLL» – внешний вид блока рисуется программно его функцией модели;
- «прямоуг.» – блок изображается прямоугольником с текстом.

На панели «наличие соединений» можно разрешить обработку либо только блоков, к которым не подключено ни одной связи (вариант «неподключенные блоки» в выпадающем списке), либо только соединенных с чем-то блоков (вариант «блоки с подключенными связями»). Это может оказаться полезным для выявления уже не используемых блоков. Разумеется, при этом нужно учитывать, что не все не подключенные блоки бесполезны: некоторые из них, например, блок-планировщик, обмениваются данными с другими блоками через динамические переменные или каким-либо другим образом.

На панели «запуск модели блока» можно отобрать блоки по способу запуска их функции модели: каждый такт или по сигналу. Этот критерий более полезен для программистов моделей, чем для пользователей: например, программист, переписав модель блока для работы с запуском по сигналу, может выделить все блоки со своей моделью и запуском каждый такт, чтобы изменить в них способ запуска на новый.

На панели «внешние входы и выходы» можно задать тип переменной для блоков-внешних входов и выходов: все внешние входы и выходы, тип которых не соотвествует указанному, будут исключены из обработки. Тип переменной задается в отдельном окне нажатием кнопки справа от флажка «по типу».

На панели «параметры связей» можно задать значения дополнительных параметров для связей, которые должны быть включены в обработку. Если у связи вообще не будет параметра с указанным именем, или если значение параметра будет отличаться от введенного, связь будет исключена. В выпадающем списке можно выбрать два варианта проверки: «все значения» (все указанные параметры должны иметь указанные значения) или «одно из значений» (для включения связи в обработку достаточно, чтобы значение хотя бы одного из указанных параметров совпало с заданным). Флажок «использовать метасимволы» позволяет вводить в значениях параметров метасимволы «*», заменяющий произвольное число символов, и «?», заменяющий один символ (точно так же в ОС задают шаблоны имен файлов). Ниже располагается список параметров и их значений вида «имя = значение», элементы которого можно добавлять и удалять кнопками справа.

На вкладке «ошибки» окна выделения можно отобрать блоки и связи с какими-либо ошибками (рис. 232). Она содержит две панели: одну – для блоков, другую – для связей. Если установить на панели «выделение блоков по состоянию функции DLL» флажок «выделять только блоки с ошибками», то, среди блоков, удовлетворяющих всем остальным критериям в окне выделения, будут отобраны только те, состояние которых соответствует хотя бы одному из установленных дополнительных флажков:

Рис. 232. Окно выделения: вкладка «ошибки»

- «блоки, функция отклика которых не совместима со структурой переменных» – будут обработаны блоки, функция модели которых отказывается работать из-за того, что структура статических переменных блока не удовлетворяет ее требованиям (как правило, такая ситуация возникает в тех случаях, когда пользователь по ошибке изменяет структуру переменных библиотечного блока);
- «блоки, функция отклика которых не найдена в библиотеке» – будут обработаны блоки, у которых имя функции модели, заданное в окне параметров, не найдено среди экспортированных функций заданного там же файла DLL (чаще всего это свидетельствует либо об ошибке в задании параметров блока, либо о том, что компилятор изменяет имена экспортируемых функций;
- «блоки, для которых не найдена библиотека» – будут обработаны блоки, для которых отсутствует файл DLL, указанный в окне параметров (вероятнее всего, из-за неполного комплекта файлов в установленной версии RDS).

Установив на панели «выделение связей с ошибками подключения» одноименный флажок «выделять только связи с ошибками подключения», можно отобрать связи со следующими ошибками:

- «недопустимое соединение» – будут обработаны связи, либо соединяющие выход со входами, несовместимыми по типам, либо соединяющие между собой два выхода;
- «одна из соединяемых переменных не найдена» – будут обработаны связи, одна из точек соединения которых ссылается на переменную, отсутствующую в блоке, или на канал, отсутствующий в шине.

Вкладка «автокомпиляция» окна выделения (рис. 233) позволяет обработать блоки с теми или иными параметрами подключенного модуля автоматической компиляции моделей (см. также главу 3), если установить на ней флажок «выделять блоки, функция которых компилируется автоматически». При этом можно выбрать либо вообще все блоки с подключенным модулем автокомпиляции (дополнительный флажок «все автокомпилируемые блоки»), либо отобрать их по модулю, по имени модели или и по тому, и по другому параметру.

Рис. 233. Окно выделения: вкладка «автокомпиляция»

Если установлен дополнительный флажок «по используемому модулю компиляции», будут обработаны только блоки, к которым подключен модуль, определяемый следующими флажками:

- «по названию модуля» – из выпадающего списка выбирается название модуля автокомпиляции, с которым он зарегистрирован в RDS, при установке этого флажка установка двух следующих невозможна;
- «по файлу DLL модуля» – из выпадающего списка выбирается имя файла динамически подключаемой библиотеки, в которой находится нужный модуль (в списке будут присутствовать только файлы библиотек с модулями, используемыми в данной схеме);
- «по функции DLL модуля» – из выпадающего списка выбирается экспортированное имя функции нужного модуля автокомпиляции (в списке будут присутствовать только имена функций модулей, используемых в данной схеме).

Если установлен дополнительный флажок «по имени модели», будут обработаны только блоки с указанным именем модели. Имя модели выбирается из выпадающего списка, в котором будут присутствовать только используемые в схеме модели, или вводится вручную. Если установить флажок «использовать метасимволы» справа от списка, то во вводимом имени модели можно будет использовать стандартные метасимволы «∗» и «?».

Если для схемы заданы какие-либо классы объектов, в окне выделения по заданному критерию будет присутствовать вкладка «классы» (рис. 234), которая позволяет обработать блоки, связи и шины по признаку принадлежности к заданным классам. При отсутствии в схеме классов эта вкладка не отображается.

Рис. 234. Окно выделения: вкладка «классы»

Чтобы обработать объекты подсистемы (блоки, связи и шины) по признаку принадлежности к классам, необходимо установить флажок «выделять объекты, принадлежащие…», выбрать в выпадающем списке справа от него один из вариантов обработки и расставить флажки возле названий требуемых классов в списке, занимающем большую часть вкладки. Возможны следующие варианты обработки:

- «в точности к указанным классам» – будут обработаны только объекты, принадлежность к классам которых в точности совпадает с заданной на вкладке (объекты должны принадлежать ко всем классам с установленными флажками и не принадлежать к классам, флажки для которых не установлены);
- «к любому из указанных классов» – для обработки объекта достаточно, чтобы он принадлежал хотя бы к одному из классов, отмеченных в списке флажками;
- «ко всем указанным классам» – для обработки объекта необходимо, чтобы он одновременно принадлежал ко всем классам, отмеченным в списке флажками.

Кнопки «включить все» и «выключить все» внизу вкладки устанавливают и сбрасывают все флажки классов соответственно.

В левой нижней части окна находятся кнопки «загрузить», «сохранить» и «сброс». Кнопки «сохранить» и «загрузить» открывают диалоги сохранения и загрузки файла и позволяют записать выбранные в окне критерии в файл для повторного использования в будущем, или загрузить их из этого файла. По умолчанию такому файлу дается расширение «.sel», но в момент сохранения ему можно дать любое расширение по желанию пользователя. Такие сохраненные файлы критериев используются при пакетной обработке. Кнопка «сброс» сбрасывает все флажки в окне. При закрытии окна выделения и повторном его открытии флажки автоматически не сбрасываются (это позволяет быстро поправить критерии, если они были заданы с ошибкой), поэтому для возврата всех флажков в исходное состояние предусмотрена специальная кнопка.

Нажатие кнопки «отмена» в правой нижней части окна закроет его без выполнения каких-либо действий по выделению блоков и связей (при этом, как было указано выше, заданные в окне критерии не сбросятся, и при повторном открытии окна выделения можно будет продолжать работать с ними). Нажатии кнопки «OK» выполнит в текущей подсистеме выделение по указанным критериям, при этом, если ни один блок, связь или шина не будут удовлетворять этим критериям, RDS сообщит об этом пользователю.

Следует помнить, что выделение по заданным критериям выделяет блоки, связи и шины только в одной, текущей, подсистеме. Если требуется найти похожие блоки в разных подсистемах схемы, следует использовать функцию поиска.