Установите тип данных входного порта
DTypeId ssSetInputPortDataType(SimStruct *S, int_T port, DTypeId id)
SSimStruct, представляющий Блок s-function.
portИндекс входного порта.
idID типа данных принят port.
ID типа данных задан id. Возвращает -1, если id является DYNAMICALLY_TYPED.
Используйте эту функцию в mdlInitializeSizes, чтобы установить тип данных входного порта, заданного port. Если тип данных входного порта наследован от блока, соединенного с портом, установите тип данных на DYNAMICALLY_TYPED. В этом случае S-функция должна обеспечить mdlSetInputPortDataType и методы mdlSetDefaultPortDataTypes, чтобы позволить типу данных быть установленным правильно во время распространения сигнала.
Следующая таблица является списком встроенных типов данных, сопоставленных с индексом DTypeId.
| ID целочисленного типа данных (DTypeId) | Встроенный тип данных |
|---|---|
| 0 | SS_DOUBLE |
| 1 | SS_SINGLE |
| 2 | SS_INT8 |
| 3 | SS_UINT8 |
| 4 | SS_INT16 |
| 5 | SS_UINT16 |
| 6 | SS_INT32 |
| 7 | SS_UINT32 |
| 8 | SS_BOOLEAN |
Целочисленные значения 9 или больше представляют пользовательские типы данных, такие как фиксированные точки, типы шины и перечисленные типы данных. Значение каждого значения зависит от номера и вида пользовательских типов данных, которые вы используете в модели.
Типом данных входного порта является double (real_T) по умолчанию.
C, C++
Предположим, что вы хотите создать S-функцию с двумя входными портами, первый из которых наследовал свой тип данных от ведущего блока и второй из которых принимает входные параметры типа int8_T. Следующие кодовые наборы типы данных.
ssSetInputPortDataType(S, 0, DYNAMICALLY_TYPED) ssSetInputPortDataType(S, 1, SS_INT8)
Смотрите S-функцию sfun_dtype_io.c, используемый в sfcndemo_dtype_io и S-функции sdotproduct.c, используемый в sfcndemo_sdotproduct для полных примеров, которые используют эту функцию.