Идентификаторы типа данных

Присвоение идентификаторов типа данных

Каждый тип данных, используемый в вашей S-функции, присвоен ID типа данных. Необходимо всегда использовать идентификаторы типа данных, чтобы получить и установить информацию о типах данных в S-функции.

В общем случае программное обеспечение Simulink® присваивает идентификаторы типа данных во время инициализации модели на “первый, прибывают, сначала подаваемый” базис. Например, рассмотрите обобщенную схему блок-схемы ниже.

Программное обеспечение Simulink присваивает ID типа данных для каждого типа выходных данных в схеме в порядке, это требуют. Для простоты примите, что порядок запроса происходит слева направо. Поэтому выход блока A может быть присвоенным типом данных ID 13, и выход блока B может быть присвоенным типом данных ID 14. Тип выходных данных блока C совпадает с типом блока A, таким образом, ID типа данных, присвоенный выходу блока C, равняется также 13. Выход блока D является присвоенным типом данных ID 15.

Теперь, если блоки в модели перестроены,

Программное обеспечение Simulink все еще присваивает идентификаторы типа данных в порядке, в котором они используются. Поэтому каждый тип данных может закончиться с ID другого типа данных. Выход блока A является все еще присвоенным типом данных ID 13. Выход блока D теперь затем в гармонии и является присвоенным типом данных ID 14. Выход блока B является присвоенным типом данных ID 15. Тип выходных данных блока C является все еще тем же самым как тем из блока A, таким образом, это - также присвоенный тип данных ID 13.

Эта таблица суммирует эти два случая, описанные выше.

Блок

ID типа данных в Model_1

ID типа данных в Model_2

A

13

13

B

14

15

C

13

13

D

15

14

Этот пример иллюстрирует, что нет никакого строгого отношения между атрибутами типа данных и значением его ID типа данных. Другими словами, ID типа данных не присвоен на основе характеристик типа данных, который он представляет, а скорее на том, когда тот тип данных сначала необходим.

Примечание

Из-за природы присвоения идентификаторов типа данных необходимо всегда использовать API-функции, чтобы извлечь информацию из ID типа данных о типе данных в S-функции.

Регистрация типов данных

Функции в следующей таблице доступны в API для написанных пользователем S-функций фиксированной точки для регистрации типов данных в симуляции. Каждая из этих функций возвратит ID типа данных. Чтобы видеть пример используемой функции, перейдите к файлу и линии, обозначенной в таблице.

Регистрационные функции типа данных

Функция

Описание

Пример использования

ssRegisterDataTypeFxpBinaryPoint

Укажите тип данных с фиксированной точкой с единственным двоичной точкой масштабированием и возвратите его ID типа данных

sfun_user_fxp_asr.c
Линия 252

ssRegisterDataTypeFxpFSlopeFixExpBias

Укажите тип данных с фиксированной точкой с [Наклонное Смещение] масштабирование заданного в терминах дробного наклона, зафиксированной экспоненты и смещения, и возвратите его ID типа данных

Не доступный

ssRegisterDataTypeFxpScaledDouble

Укажите масштабированный двойной тип данных с [Наклонное Смещение] масштабирование заданного в терминах дробного наклона, зафиксированной экспоненты и смещения, и возвратите его ID типа данных

Не доступный

ssRegisterDataTypeFxpSlopeBias

Укажите тип данных с [Наклонное Смещение] масштабирование и возвратите его ID типа данных

sfun_user_fxp_dtprop.c
Линия 319

Предписанные идентификаторы типа данных

Программное обеспечение Simulink указывает свои встроенные типы данных, и те типы данных всегда имеют предписанные идентификаторы типа данных. Встроенные идентификаторы типа данных даны следующими лексемами:

  • SS_DOUBLE

  • SS_SINGLE

  • SS_INT8

  • SS_UINT8

  • SS_INT16

  • SS_UINT16

  • SS_INT32

  • SS_UINT32

  • SS_BOOLEAN

Вы не должны указывать эти типы данных. При попытке указать встроенный тип данных, регистрационная функция просто возвращает предписанный ID типа данных.

Установка и получение типов данных

Идентификаторы типа данных используются, чтобы задать типы данных портов ввода и вывода, параметров периода выполнения и состояний DWork. Чтобы установить типы данных с фиксированной точкой для количеств в вашей S-функции, процедура следующие:

  1. Укажите тип данных с помощью одной из функций перечисленные в таблице Регистрационные Функции Типа данных. ID типа данных возвращен в вас.

    Альтернативно, можно использовать один из предписанных идентификаторов типа данных Simulink встроенные типы данных.

  2. Используйте ID типа данных, чтобы установить тип данных для порта ввода или вывода, параметра периода выполнения или состояния DWork использование одной из следующих функций:

Чтобы получить ID типа данных порта ввода или вывода, параметр периода выполнения или состояние DWork, использует одну из следующих функций:

Типы данных Получения информации о

Можно использовать идентификаторы типа данных с функциями, чтобы получить информацию о встроенных и зарегистрированных типах данных в S-функции. Функции в следующих таблицах доступны в API для извлечения информации о зарегистрированных типах данных. Чтобы видеть пример используемой функции, перейдите к файлу и линии, обозначенной в таблице. Обратите внимание на то, что идентификаторы типа данных могут также использоваться со всеми стандартными методами доступа типа данных в simstruc.h, такой как ssGetDataTypeSize.

Функции информации о контейнере устройства хранения данных

Функция

Описание

Пример использования

ssGetDataTypeFxpContainWordLen

Возвратите размер слова контейнера устройства хранения данных зарегистрированного типа данных

sfun_user_fxp_
ContainWordLenProbe.c
Линия 181

ssGetDataTypeStorageContainCat

Возвратите категорию контейнера устройства хранения данных зарегистрированного типа данных

sfun_user_fxp_asr.c
Линия 294

ssGetDataTypeStorageContainerSize

Возвратите размер контейнера устройства хранения данных зарегистрированного типа данных

sfun_user_fxp_
StorageContainSizeProbe.c
Линия 171

Функции информации о типе данных сигнала

Функция

Описание

Пример использования

ssGetDataTypeFxpIsSigned

Определите, указала ли фиксированная точка тип данных, подписывается или без знака

sfun_user_fxp_asr.c
Линия 254

ssGetDataTypeFxpWordLength

Возвратитесь размер слова фиксированной точки указал тип данных

sfun_user_fxp_asr.c
Линия 255

ssGetDataTypeIsFixedPoint

Определите, является ли зарегистрированный тип данных типом данных с фиксированной точкой

sfun_user_fxp_const.c
Линия 127

ssGetDataTypeIsFloatingPoint

Определите, является ли зарегистрированный тип данных типом данных с плавающей точкой

sfun_user_fxp_
IsFloatingPointProbe.c
Линия 176

ssGetDataTypeIsFxpFltApiCompat

Определите, поддерживается ли зарегистрированный тип данных API для написанных пользователем S-функций фиксированной точки

sfun_user_fxp_asr.c
Линия 184

ssGetDataTypeIsScalingPow2

Определите, имеет ли зарегистрированный тип данных масштабирование степени двойки

sfun_user_fxp_asr.c
Линия 203

ssGetDataTypeIsScalingTrivial

Определите, является ли масштабирование зарегистрированного типа данных наклоном = 1, смещение = 0

sfun_user_fxp_
IsScalingTrivialProbe.c
Линия 171

Сигнал, масштабирующий информационные функции

Функция

Описание

Пример использования

ssGetDataTypeBias

Возвратите смещение зарегистрированного типа данных

sfun_user_fxp_dtprop.c
Линия 243

ssGetDataTypeFixedExponent

Возвратите экспоненту наклона зарегистрированного типа данных

sfun_user_fxp_dtprop.c
Линия 237

ssGetDataTypeFracSlope

Возвратите дробный наклон зарегистрированного типа данных

sfun_user_fxp_dtprop.c
Линия 234

ssGetDataTypeFractionLength

Возвратите дробную длину зарегистрированного типа данных с масштабированием степени двойки

sfun_user_fxp_asr.c
Линия 256

ssGetDataTypeTotalSlope

Возвратите общий наклон масштабирования зарегистрированного типа данных

sfun_user_fxp_dtprop.c
Линия 240

Типы Преобразования данных

Функции в следующей таблице позволяют вам преобразовывать значения между зарегистрированными типами данных в вашей S-функции фиксированной точки.

Функции преобразования типа данных

Функция

Описание

Пример использования

ssFxpConvert

Преобразуйте значение от одного типа данных до другого типа данных.

Не доступный

ssFxpConvertFromRealWorldValue

Преобразуйте значение типа данных double к другому типу данных.

Не доступный

ssFxpConvertToRealWorldValue

Преобразуйте значение любого типа данных к double.

Не доступный