Возвращает категорию контейнера хранения зарегистрированного типа данных
extern fxpStorageContainerCategory ssGetDataTypeStorageContainCat(SimStruct *S, DTypeId dataTypeId)
S
SimStruct, представляющий блок s-function.
dataTypeId
Идентификатор типа данных зарегистрированного типа данных, для которого необходимо знать категорию контейнера.
Эта функция возвращает категорию контейнера хранения данных типа данных, обозначенного dataTypeId
. Категория контейнера, возвращенная этой функцией, используется для хранения входных и выходных сигналов, параметров выполнения и DWorks во время Simulink® симуляции.
Во время симуляции сигналы с фиксированной точкой сохраняются в одном из типов контейнеров, показанных в следующей таблице. Поэтому во многих случаях сигналы представлены в контейнерах с большим количеством бит, чем их фактический размер слова.
Контейнеры хранения с фиксированной точкой
Категория контейнера | Сигнал | Контейнерные Размеры слова | Размер контейнера |
---|---|---|---|
| От 1 до 8 бит | 8 бит | 1 байт |
| От 9 до 16 бит | 16 бит | 2 байта |
| От 17 до 32 бит | 32 бита | 4 байта |
| С 33 по размеру слова | Длина | Длина |
| Больше, чем размер слова | Множители длины | Множители длины |
Когда количество битов в длине сигнального слова меньше, чем размер контейнера, биты размера слова всегда сохраняются в наименее значимых битах контейнера. Оставшиеся биты контейнера должны быть расширены, чтобы соответствовать битам контейнера:
Если тип данных не подписан, то расширенные биты со знаком должны быть очищены до нуля.
Если тип данных подписан, то расширенные биты со знаком должны быть установлены на единицу для строго отрицательных чисел и сброшены на нуль в противном случае.
The ssGetDataTypeStorageContainCat
функция может также вернуть следующие значения.
Другие контейнеры для хранения данных
Категория контейнера | Описание |
---|---|
| Возвращается, если категория контейнера хранения неизвестна |
| Тип контейнера для |
| Тип контейнера для |
| Тип контейнера для типа данных, который был переопределен на |
Эта функция ошибается, когда ssGetDataTypeIsFxpFltApiCompat
возвращает FALSE
.
Чтобы использовать эту функцию, вы должны включить fixedpoint.h
и fixedpoint.c
. Для получения дополнительной информации смотрите Структура S-функции.
C
Поскольку отображение контейнеров хранения в симуляции с контейнерами хранения в генерации кода не является единым целым, функции TLC для контейнеров хранения в TLC отличаются от функций симуляции. Для получения дополнительной информации см. раздел «Функции TLC контейнера хранения»:
FixPt_DataTypeNativeType
FixPt_DataTypeStorageDouble
FixPt_DataTypeStorageSingle
FixPt_DataTypeStorageScaledDouble
FixPt_DataTypeStorageSInt
FixPt_DataTypeStorageUInt
FixPt_DataTypeStorageSLong
FixPt_DataTypeStorageULong
FixPt_DataTypeStorageSShort
FixPt_DataTypeStorageUShort