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