В S-функции может потребоваться задать тип данных различных портов, параметров времени выполнения или DWorks.
Например, предположим, что необходимо задать тип данных выходного порта для S-функции. Для этого
Зарегистрируйте тип данных с помощью одной из функций, перечисленных в таблице Функции регистрации типов данных. Возвращается идентификатор типа данных.
Кроме того, можно использовать один из предварительно определенных идентификаторов типов данных встроенных типов данных 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 );
}