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

Описания RDS

Приложения

Приложение А. Функции, константы и структуры RDS

А.2. События блока и связанные с ними описания

А.2.4. События общего назначения

А.2.4.16. RDS_BFM_SAVESTATE – запись состояния блока

# Приложения

## Приложение А. Функции, константы и структуры RDS

### А.2. События блока и связанные с ними описания

#### А.2.4. События общего назначения

##### А.2.4.16. RDS_BFM_SAVESTATE – запись состояния блока

Поток, в котором вызывается функция модели

Главный поток RDS или поток расчета (тот же поток, в котором вызвана сервисная функция записи состояния).

Первый параметр функции модели (int CallMode)

Константа RDS_BFM_SAVESTATE.

Третий параметр функции модели (void *ExtParam)

Не используется (NULL).

Возвращаемое функцией модели значение

Не используется, можно возвращать любое значение.

Примечания

Событие RDS_BFM_SAVESTATE возникает при вызове сервисной функции rdsSaveSystemState для сохранения состояния одного или нескольких блоков. В этой реакции модель должна записать в память все текущие данные блока, которые позже могут быть восстановлены при вызове функции rdsLoadSystemState, то есть при реакции на парное к данному событие RDS_BFM_LOADSTATE.

Сохранение и загрузка состояния одного или нескольких блоков используется в RDS для управления расчетом: вызовом сервисной функции rdsSaveSystemState можно сохранить в памяти текущее состояние одного или нескольких блоков, а затем, вызвав rdsLoadSystemState, вернуть эти блоки в запомненное состояние. Таких сохраненных состояний может быть сколько угодно – при сохранении каждое получает уникальный целый идентификатор, который используется в функции rdsLoadSystemState для указания конкретного восстанавливаемого состояния. При сохранении состояния значения статических переменных блока записываются в память автоматически, а все остальные данные должны быть сохранены моделью при помощи вызова rdsWriteBlockData в реакции на событие RDS_BFM_SAVESTATE. Загрузка сохраненных моделью данных осуществляется вызовом rdsReadBlockData в реакции на событие RDS_BFM_LOADSTATE. Сохранение и загрузка состояний блоков и подсистем подробно описана в §2.14.3 руководства программиста.

Пример

Пример сохранения и загрузки переменных, хранящихся в личной области данных блока, приведен в описании события RDS_BFM_LOADSTATE.

См. также

RDS_BFM_LOADSTATE, rdsLoadSystemState, rdsDeleteSystemState, rdsSaveSystemState, rdsReadBlockData, rdsWriteBlockData.