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

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

Каждый тип данных, используемый в вашей 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.

Не доступный