ssSetDWorkRTWIdentifier

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

Синтаксис

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

Аргументы

S

SimStruct, представляющий Блок s-function.

vector

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

id

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

Возвращается

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

Описание

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

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

Языки

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