exponenta event banner

mdlSetDefaultPortDataTypes

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

Необходимый

Нет

Языки

C, C++

Синтаксис

#define MDL_SET_DEFAULT_PORT_DATA_TYPES
void mdlSetDefaultPortDataTypes(SimStruct *S)

Аргументы

S

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

Описание

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

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

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

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