Можно хотеть задать тип данных различных портов, параметров времени выполнения или 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 );
}