exponenta event banner

ssSetDWorkRTWIdentifier

Укажите идентификатор, используемый для объявления вектора DWork в коде, созданном из связанной S-функции

Синтаксис

char_T *ssSetDWorkRTWIdentifier(SimStruct *S, int_T vector, char_T *id)

Аргументы

S

SimStruct представляет S-функциональный блок.

vector

Индекс рабочего вектора, где индекс является одним из 0, 1, 2, ... ssGetNumDWork(S)-1.

id

Идентификатор вектора DWork. Это должно указывать на постоянную память.

Прибыль

Указатель (char_T *) на идентификатор Coder™ Simulink ®, введенный вid.

Описание

Определяет id в качестве идентификатора, используемого в коде, сгенерированном продуктом Simulink Coder для объявления вектора DWork, указанного vector. Дополнительные сведения об использовании векторов DWork см. в разделе Как использовать векторы DWork.

Эта функция должна вызываться только из mdlInitializeSizes или mdlSetWorkWidths функции.

Языки

C, C++

Пример

См. S-функцию sfun_rtwdwork.c используется в sfcndemo_sfun_rtwdwork.

Следующая часть mdlInitializeSizes метод инициализирует вектор DWork и все связанные с ним свойства генерации кода.

ssSetNumDWork(S, 1);
ssSetDWorkWidth(S, 0, 1);
ssSetDWorkDataType(S, 0, SS_DOUBLE);

/* Identifier; free any old setting and update */
id = ssGetDWorkRTWIdentifier(S, 0);
if (id != NULL) {
    free(id);
}
id = malloc(80);
mxGetString(ID_PARAM(S), id, 80);
ssSetDWorkRTWIdentifier(S, 0, id);

Следующая часть mdlTerminate освобождает память, выделенную для идентификатора, для предотвращения утечек памяти.

char* id;
char* tq;

/* Identifier; free any old setting and update */
id = ssGetDWorkRTWIdentifier(S, 0);
if (id != NULL) {
    free(id);
}
ssSetDWorkRTWIdentifier(S, 0, NULL);

См. также

mdlInitializeSizes

Представлен в R2007b