Установите нулевое представление типа данных
int_T ssSetDataTypeZero(SimStruct *S, DTypeId id, void* zero)
SSimStruct, представляющий Блок s-function.
idID типа данных.
zeroНулевое представление типа данных задано id.
1 (true) в случае успеха. В противном случае, возвращает 0 (false) и сообщает об ошибке.
Устанавливает нулевое представление типа данных, заданного id к zero, если id допустим, размер типа данных был установлен, и нулевое представление не было уже установлено. Нулевое представление пользовательского типа данных является значением, которое представляет нуль для того типа данных. В противном случае этот макрос приводит к сбою и сообщает об ошибке. Поскольку этот макрос сообщает о любой ошибке, которая происходит, вы не должны использовать ssSetErrorStatus, чтобы сообщить об ошибке. Смотрите Конфигурируют Пользовательские типы данных для получения дополнительной информации о регистрации пользовательских типов данных.
Этот макрос делает копию нулевого представления типа данных для механизма Simulink®, чтобы использовать. Таким образом ваша S-функция не должна поддерживать оригинал в памяти.
Для получения дополнительной информации об использовании пользовательских типов данных в S-функциях смотрите, Конфигурируют Пользовательские типы данных.
C, C++
Следующий пример указывает и устанавливает размер и нулевое представление пользовательского типа данных под названием 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;