Можно хотеть задать тип данных различных портов, параметров времени выполнения или DWorks в вашей S-функции.
Например, предположим, что вы хотите задать тип данных выходного порта вашей S-функции. Для этого,
Зарегистрируйте тип данных с помощью одной из функций, перечисленных в таблице Data Type Registration Functions. Возвращается идентификатор типа данных.
Кроме того, можно использовать один из предопределенных идентификаторов типа данных Simulink® встроенные типы данных.
Использовать ssSetOutputPortDataType
с идентификатором типа данных из шага 1, чтобы установить выходу порт на требуемый тип данных.
В приведенном ниже примере из линий 336 - 352 sfun_user_fxp_const.c
, ssRegisterDataTypeFxpBinaryPoint
используется для регистрации типа данных. ssSetOutputPortDataType
затем устанавливает тип выходных данных либо на заданный идентификатор типа данных, либо для динамического ввода:
/* Register data type */ if ( notSizesOnlyCall ) { DTypeId DataTypeId = ssRegisterDataTypeFxpBinaryPoint( S, V_ISSIGNED, V_WORDLENGTH, V_FRACTIONLENGTH, 1 /* true means obey data type override setting for this subsystem */ ); ssSetOutputPortDataType( S, 0, DataTypeId ); } else { ssSetOutputPortDataType( S, 0, DYNAMICALLY_TYPED ); }