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

Описания RDS

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

Глава 3. Использование стандартных модулей автокомпиляции

§3.7. Краткий перечень вводимых в модель описаний и реакций на события

§3.7.11. Прочие реакции

§3.7.11.2. Вызов настройки

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

## Глава 3. Использование стандартных модулей автокомпиляции

### §3.7. Краткий перечень вводимых в модель описаний и реакций на события

#### §3.7.11. Прочие реакции

##### §3.7.11.2. Вызов настройки

Это событие возникает при вызове пользователем окна настроек блока. В зависимости от того, добавлены ли в редакторе в модель блока настроечные параметры (см. §3.6.6), реакция на это событие вызывается по-разному.

- Если в редакторе модели не были созданы настроечные параметры и окно для их ввода, эта реакция будет вызвана в момент выбора пользователем пункта меню, открывающего окно настройки выделенного в подсистеме блока (обычно этот пункт называется «настройка», но может быть переименован пользователем в окне параметров блока). Всю работу по созданию окна со списком настроек, обеспечению их редактирования пользователем и записи измененных параметров в блок должен при этом вручную выполнять разработчик модели. Многочисленные примеры моделей, в которых настройка параметров осуществляется таким образом, приведены в §2.7 руководства программиста.
- Если в редактор модели было добавлено окно настройки параметров, то при выборе соответствующего пункта меню оно откроется автоматически, а эта реакция будет вызвана только после его закрытия кнопкой «OK», то есть после того, как пользователь примет внесенные изменения. При закрытии окна кнопкой «отмена» (то есть при отмене изменений) реакция вызвана не будет. В таком варианте реакция на вызов настройки чаще всего нужна для того, чтобы модель как-то отреагировала на измененные пользователем параметры. Пример такого ее использования приведен в §3.6.7.

Текст реакции на вызов (или изменение) настроек блока вводится на вкладке «события» левой панели редактора модели: раздел «разное», подраздел «вызов настройки». В классе блока для нее создается функция с именем rdsbcppSetupFunc следующего вида:

      // Setup function call
      void rdsbcppBlockClass::rdsbcppSetupFunc(int &Result)
      {
         … пользовательский текст реакции …
      }

Через параметр Result, передаваемый по ссылке, функция реакции может вернуть ноль, если схему следует считать не изменившейся, и любое ненулевое значение в противном случае. Если в редакторе модели создано окно параметров, то есть реакция вызвана во втором из перечисленных выше вариантов, можно ничего не присваивать параметру Result: в этом случае исходно он будет иметь значение 1, сигнализирующее о наличии изменений в схеме. Поскольку реакция при этом будет вызвана только при закрытии окна кнопкой «OK», то есть после изменения параметров блока, это значение будет соответствовать действительности.

При написании моделей блоков без использования модуля автокомпиляции событию вызова настроек блока в первом из перечисленных выше вариантов соответствует константа RDS RDS_BFM_SETUP. Второй вариант вызова реакции на это событие без участия модуля автокомпиляции невозможен.