ssSetDataTypeZero
Set the zero representation of a data type
Syntax
int_T ssSetDataTypeZero(SimStruct *S, DTypeId id, void* zero)
Arguments
S
SimStruct that represents an S-Function block.
id
ID of the data type.
zero
Zero representation of the data type specified by
id
.
Returns
1
(true
) if successful. Otherwise, returns
0
(false
) and reports an error.
Description
Sets the zero representation of the data type specified by id
to zero
if id
is valid, the size of the data
type has been set, and the zero representation has not already been set. The zero
representation of a custom data type is the value that represents zero for that data
type. Otherwise, this macro fails and reports an error. Because this macro reports
any error that occurs, you do not need to use ssSetErrorStatus
to
report the error. See Configure Custom Data Types for more information on
registering custom data types.
Note
This macro makes a copy of the zero representation of the data type for the Simulink® engine to use. Thus, your S-function does not have to maintain the original in memory.
For more information about using custom data types in S-functions, see Configure Custom Data Types.
Languages
C, C++
Examples
The following example registers and sets the size and zero representation of a
custom data type named myDataType
.
typedef struct{ int8_T a; uint16_T b; }myStruct; int_T status; DTypeId id; myStruct tmp; id = ssRegisterDataType(S, "myDataType"); if(id == INVALID_DTYPE_ID) return; status = ssSetDataTypeSize(S, id, sizeof(tmp)); if(status == 0) return; tmp.a = 0; tmp.b = 1; status = ssSetDataTypeZero(S, id, &tmp); if(status == 0) return;
Version History
Introduced before R2006a