ssSetDWorkName

Укажите, что имя типа данных работает вектор

Синтаксис

const char_T *ssSetDWorkName(SimStruct *S, int_T vector, char_T *name)

Аргументы

S

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

vector

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

имя

Имя вектора работы.

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

Имя вектора DWork вводится в name.

Описание

Используйте в mdlInitializeSizes или в mdlSetWorkWidths, чтобы указать, что имя для заданного типа данных работает вектор. Продукт Simulink® Coder™ использует это имя, чтобы маркировать вектор работы в сгенерированном коде. Если вы не задаете имя, продукт Simulink Coder генерирует имя для вектора DWork в коде. Для получения дополнительной информации об использовании векторов DWork смотрите, Как Использовать Векторы DWork.

Примечание

ssSetDWorkName хранит только указатель на вектор символа имени. Поэтому вектор символа имени должен быть в постоянной памяти; это не может быть локальная переменная.

Языки

C, C++

Пример

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

#define MDL_SET_WORK_WIDTHS 
#if defined(MDL_SET_WORK_WIDTHS) 
static void mdlSetWorkWidths(SimStruct *S)
{ 
int_T i;

/* Number of DWork vectors based on input width */
ssSetNumDWork(S, ssGetInputPortWidth(S,0)); 

/* Malloc space to store the names of the DWork vectors */
name=(char_T *)malloc(sizeof(char_T)*ssGetNumDWork(S)*16);

for (i = 0; i < ssGetNumDWork(S); i++) {
   sprintf(&name[i*16], "DWork%d", i+1); 
   ssSetDWorkName(S, i, &name[i*16]); 
   } 
} 
#endif /* MDL_SET_WORK_WIDTHS */ 

Смотрите S-функции в sfcndemo_sfun_rtwdwork для полного примера с помощью векторов DWork.

Смотрите также

ssGetDWorkName, ssSetNumDWork

Представлено до R2006a

Была ли эта тема полезной?