Описание пользователя
Глава 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.