exponenta event banner

Упаковка байтов

Создание фреймов данных

  • Библиотека:
  • Симулинк в реальном времени/Утилиты

  • Byte Packing block

Описание

Блок упаковки байтов преобразует один или более сигналов выбираемых пользователем типов данных в один вектор различных типов данных. Выход этого блока обычно подключается к входному порту блока Send.

Блок упаковки байтов и блок распаковки байтов поддерживают slrealtime.tlc создание кода и создание кода, который выполняется на целевых машинах Speedgoat. Из-за таких соображений, как бесконечность и размер адресуемых слов, эти блоки могут генерировать неверные результаты для других целевых объектов генерации кода или целевых компьютеров.

Например, предположим, что вы упаковываете три сигнала в вектор uint8. Сигналы имеют следующие атрибуты:

ИзмерениеРазмерНапечатать
Скаляр1single
Вектор3uint8
Вектор3uint8
  1. Установите тип данных упакованного выходного порта в значение uint8.

  2. Задайте тип данных входного порта для массива ячеек, кодирующего типы данных:

    {'single', ['uint8'], ['uint8']}

    Используйте квадратные скобки для представления векторов.

  3. Установите значение выравнивания байтов в значение 1.

  4. Подключите сигналы к блоку упаковки байтов.

Порты

Вход

развернуть все

Блок имеет от 1 на N входных портов. Укажите количество входных портов и их типы, введя их в качестве массива ячеек в параметре Input port (распакованные) типы данных (массив ячеек).

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean

Продукция

развернуть все

Блок отображает один выходной порт, который передает вектор упакованных данных. Тип данных упакованных данных определяется путем установки типа данных Порт вывода (упакованный).

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean

Параметры

развернуть все

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

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

Параметр блока: MaskPackedDataType

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

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

Параметр блока: MaskUnpackedDataTypes

Каждый элемент в списке входных сигналов начинается с кратного значения выравнивания, заданного с начала вектора. Если значение выравнивания больше размера типа данных в байтах, блок заполняет пространство байтами значения 0.

Например, если значение выравнивания равно 4:

  • uint32 не получает заполнение

  • uint16 получает 2 байты заполнения

  • uint8 получает 3 байты заполнения

Если модель часто обращается к элементам данных, рекомендуется выбрать значение трассы, равное наибольшему типу данных, к которому требуется получить доступ. Если модель часто передает элементы данных как группу, следует учитывать значение выравнивания, равное 1, который упаковывает данные в как можно меньшее пространство.

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

Параметр блока: MaskAlignment

Примеры модели

Представлен в R2006a