exponenta event banner

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

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

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

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

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

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

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

В этой таблице обобщены два описанных выше случая.

Блок

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

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

A

13

13

B

14

15

C

13

13

D

15

14

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

Примечание

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

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

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

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

Функция

Описание

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

ssRegisterDataTypeFxpBinaryPoint

Регистрация типа данных с фиксированной точкой с масштабированием только с двоичной точкой и возврат идентификатора типа данных

sfun_user_fxp_asr.c
Линия 252

ssRegisterDataTypeFxpFSlopeFixExpBias

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

Недоступно

ssRegisterDataTypeFxpScaledDouble

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

Недоступно

ssRegisterDataTypeFxpSlopeBias

Регистрация типа данных с масштабированием [Уклон] и возврат идентификатора типа данных

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

Регистрировать эти типы данных не требуется. При попытке регистрации встроенного типа данных функция регистрации просто возвращает предварительно назначенный идентификатор типа данных.

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

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

  1. Зарегистрируйте тип данных, используя одну из функций, перечисленных в таблице Функции регистрации типов данных. Вам будет возвращен идентификатор типа данных.

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

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

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

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

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

Информационные функции контейнера хранения

Функция

Описание

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

ssGetDataTypeFxpContainWordLen

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

sfun_user_fxp_
ContainWordLenProbe.c
Line 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
Line 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
Line 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.

Недоступно