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

Описания RDS

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

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

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

§3.7.7. Загрузка и запись мгновенного состояния блока

§3.7.7.2. Запись состояния блока

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

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

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

#### §3.7.7. Загрузка и запись мгновенного состояния блока

##### §3.7.7.2. Запись состояния блока

Событие записи состояния возникает у блока в процессе работы сервисной функции rdsSaveSystemState, вызвав которую модель любого блока может сохранить состояние блоков всей схемы или какой-либо ее отдельной подсистемы, чтобы позже его можно было восстановить вызовом rdsLoadSystemState. В реакции на это событие модель должна записать все данные, которые она позже будет загружать в реакции на событие загрузки состояния. В интерфейсе пользователя RDS не предусмотрено сохранения и восстановления состояния схемы – этим должны заниматься модели блоков. Сохранение и загрузка состояний блоков и подсистем подробно описаны в §2.14.3 руководства программиста. Значения статических переменных блока сохраняются и восстанавливаются автоматически. Модель должна сохранять только значения динамических переменных, за которые она отвечает, и значения своих внутренних параметров, если таковые имеются.

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

      // Saving block parameters for stored state
      void rdsbcppBlockClass::rdsbcppSaveState(void)
      {
         … пользовательский текст реакции …
      }

Внутри этой функции данные должны записываться вызовами функции rdsWriteBlockData, позже они будут загружены вызовами rdsReadBlockData в том же порядке.

При написании моделей блоков без использования модуля автокомпиляции событию записи состояния соответствует константа RDS RDS_BFM_SAVESTATE.