mdlSetDefaultPortDataTypes

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

Необходимый

Нет

Языки

C, C++

Синтаксис

#define MDL_SET_DEFAULT_PORT_DATA_TYPES
void mdlSetDefaultPortDataTypes(SimStruct *S)

Аргументы

S

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

Описание

Механизм 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

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