mdlSetDefaultPortDataTypes

Установите типы данных портов, типы данных которых не могут быть определены из блочной связности

Необходимый

Нет

Языки

C, C++

Синтаксис

#define MDL_SET_DEFAULT_PORT_DATA_TYPES
void mdlSetDefaultPortDataTypes(SimStruct *S)

Аргументы

S

SimStruct, представляющий блок S-Function.

Описание

Simulink® engine вызывает этот метод, если блок имеет порты, типы данных которых не могут быть определены из связи блоков. (Обычно это происходит, когда блок не соединен или является частью цикла обратной связи.) Этот метод должен задать типы данных для всех портов, типы данных которых не заданы. Этот метод действителен только для симуляции и должен быть заключен в #if defined(MATLAB_MEX_FILE) оператор.

Если блок не реализует этот метод, и механизм не может определить типы данных любого из его портов, механизм устанавливает типы данных всех портов на double. Если блок не реализует этот метод, и механизм не может определить типы данных некоторых, но не всех, его портов, механизм устанавливает неизвестные порты на тип данных порта, тип данных которого имеет наибольший размер.

Механизм вызывает ошибку, если mdlSetDefaultPortDataType метод пытается изменить тип данных порта, когда тип данных был ранее задан как mdlSetInputPortDataType или mdlSetOutputPortDataType. Если S-функция имеет несколько входных или выходных портов, mdlSetDefaultPortDataType перед попыткой задать этот тип необходимо проверить, является ли тип данных порта все еще динамическим. Для примера, mdlSetDefaultPortDataType использует следующие линии, чтобы проверить, неизвестен ли тип данных второго входного порта.

     if (ssGetInputPortDataType(S, 1) == DYNAMICALLY_TYPED) {
        ssSetInputPortDataType(S, 1, SS_UINT8 );
     }
Представлено до R2006a