Set the Output Port Data Type - MATLAB & Simulink (original) (raw)
Main Content
You may want to set the data type of various ports, run-time parameters, or DWorks in your S-function.
For example, suppose you want to set the output port data type of your S-function. To do this,
- Register a data type by using one of the functions listed in the table Data Type Registration Functions. A data type ID is returned.
Alternately, you can use one of the predefined data type IDs of the Simulink® built-in data types. - Use ssSetOutputPortDataType with the data type ID from Step 1 to set the output port to the desired data type.
In the example below from lines 354 - 370 of [sfun_user_fxp_const.c](https://mdsite.deno.dev/matlab:sfunddg%5Fcb%5Fedit%28'sfun%5Fuser%5Ffxp%5Fconst.c'%29;)
,ssRegisterDataTypeFxpBinaryPoint
is used to register the data type. ssSetOutputPortDataType
then sets the output data type either to the given data type ID, or to be dynamically typed:
/* 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 ); }