Установите тип данных порта входа
DTypeId ssSetInputPortDataType(SimStruct *S, int_T port, DTypeId id)
S
SimStruct, представляющий блок S-Function.
port
Индекс входного порта.
id
Идентификатор типа данных, принимаемый port
.
Идентификатор типа данных, заданный как id
. Возвращает -1
если id
является DYNAMICALLY_TYPED
.
Используйте эту функцию в mdlInitializeSizes
чтобы задать тип данных входного порта, заданный как port
. Если тип данных входного порта унаследован от блока, подключенного к порту, установите тип данных равным DYNAMICALLY_TYPED
. В этом случае S-функция должна обеспечивать mdlSetInputPortDataType
и mdlSetDefaultPortDataTypes
методы, позволяющие правильно задать тип данных во время распространения сигнала.
Следующая таблица является списком встроенных типов данных, сопоставленных с индексом DTypeId
.
Идентификатор целочисленного типа данных (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
для полных примеров, которые используют эту функцию.