Задайте пользовательские данные
void ssSetUserData(SimStruct *S, void *data)
S
SimStruct, представляющий блок S-Function.
data
Пользовательские данные.
Сохраняет указатель на место памяти, содержащее пользовательские данные S-функции. Чтобы избежать утечек памяти, S-функция должна освободить это место памяти во время вызова mdlTerminate
.
S-функция, содержащая пользовательские данные, должна выполнить следующие шаги.
Выделите память для пользовательских данных с помощью настроенной структуры для хранения более сложных данных.
Установите SS_OPTION_CALL_TERMINATE_ON_EXIT
опция в mdlInitializeSizes
, для обеспечения Simulink® двигатель всегда вызывает mdlTerminate
функция.
Сохраните указатель на место памяти в пользовательских данных с помощью вызова ssSetUserData
.
В mdlTerminate
, использовать ssGetUserData
чтобы извлечь указатель на место памяти и освободить память.
Смотрите Создание параметров во время выполнения из нескольких параметров S-функции для примера, который использует пользовательские данные в сочетании с параметрами во время выполнения.
Примечание
Вы не можете получить доступ к пользовательским данным из файла Target Language Compiler (TLC). Используйте векторы DWork вместо пользовательских данных, если вам нужно записать TLC-файл, чтобы встроить S-функцию во время генерации кода с Simulink Coder™. Для примера, использующего векторы DWork, смотрите sfcndemo_sfun_rtwdwork
.
C, C++
Смотрите S-функцию sfun_runtime4.c
используется в sfcndemo_runtime
.