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

Описания RDS

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

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

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

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

§3.7.11.9. Прочие события

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

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

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

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

##### §3.7.11.9. Прочие события

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

      // Other events
      void rdsbcppBlockClass::rdsbcppOther(int CallMode,void *ExtParam,int &Result)
      {
         … пользовательский текст реакции …
      }

Первый параметр функции – целый идентификатор произошедшего события CallMode. В нем передается одна из констант RDS_BFM_…. Второй параметр – указатель общего вида ExtParam. Он указывает на структуру параметров события, его необходимо привести к нужному, соответствующему конкретному событию, типу вручную. Третий параметр – ссылка на целую переменную Result, в которую можно записать значение, которое модель должна вернуть RDS в ответ на вызов (по умолчанию в ней записана константа RDS_BFR_DONE, указывающая на успешное выполнение реакции).

В автокомпилируемых моделях реакция на прочие события используется редко – для всех основных событий предусмотрены специализированные функции реакции. Следует учитывать, что эта реакция не будет вызвана, если для события введена специализированная функция: например, если в модель введена реакция на выполнение такта расчета, в ответ на событие RDS_BFM_MODEL будет вызвана именно она, а функция rdsbcppOther с параметром CallMode, равным RDS_BFM_MODEL, вызвана не будет.