Установите тип данных входного порта
DTypeId ssSetInputPortDataType(SimStruct *S, int_T port, DTypeId id)
S
SimStruct, представляющий Блок s-function.
port
Индекс входного порта.
id
ID типа данных принят 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
для полных примеров, которые используют эту функцию.