Byte Pack

Преобразуйте входные сигналы в uint8 вектор

  • Библиотека:
  • Встроенный кодер/встроенные целевые системы/коммуникация с хостом

  • Byte Pack block

Описание

Блок Byte Pack получает входные сигналы одного или нескольких типов данных и преобразует данные в один uint8 вектор для выхода. Используйте параметры блоков, чтобы задать типы данных входных сигналов и выравнивание данных в векторе, который выводит блок. Потому что протокол UDP передает данные в uint8 формат, можно использовать этот блок для переформатирования данных для передачи UDP путем подключения выхода этого блока к входу блока UDP Send.

Порты

Вход

расширить все

Массив входных сигналов еще одного типа данных.

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

Выход

расширить все

Преобразованный блочный вход, возвращенный как вектор uint8 данные.

Типы данных: uint8

Параметры

расширить все

Задайте типы входных сигналов данных Simulink, которые блок получает в массиве ячеек. В массиве ячеек задайте типы данных в том порядке, в котором входной порт блока получает данные сигнала. Для примера, если блок получает данные в порядке uint32, uint32, uint16, double, uint8, double, и single, задайте этот массив ячеек:

 {'uint32','uint32','uint16','double','uint8','double','single'}

Блок затем предоставляет количество входов блоков.

Задайте, как выровнять типы данных входных данных для формирования uint8 вектор выводится в байтах. Выравнивание может происходить на 1, 2, 4 или 8-байтовых контурах. На основе значения выравнивания каждое значение данных сигнала начинается с кратных значений выравнивания. Алгоритмы выравнивания для каждого элемента в векторе выхода начинаются с байта контура заданного значением выравнивания. Выравнивание байтов устанавливает контуры относительно начальной точки вектора.

Чтобы получить самую плотную упаковку без отверстий между типами данных в различных комбинациях типов данных, выберите 1.

Вы можете иметь несколько типов данных различной длины. В таких случаях 2-байтовое выравнивание может привести к 1-байтовым погрешностям между uint8 или int8 значения и другой тип данных. В реализации пакета блок копирует данные в буфер выходных данных 1 байт за раз.

Например, предположим, что вы задаете этот массив ячеек для Input port data types (cell array):

 {'uint32','uint32','uint16','double','uint8','double','single'}

Предположим, что вы Byte alignment на 2. Каждое новое значение начинается с 2 байтов от предыдущего контура данных. Когда сигналы являются скалярными значениями,:

  • Первое значение сигналов в векторе начинается с 0 байт.

  • Второе значение сигналов начинается с 2 байтов.

  • Третье значение сигналов начинается с 4 байтов.

  • Четвертое значение сигналов начинается с 6 байтов.

  • Пятое значение сигналов начинается с 8 байтов.

  • Шестое значение сигналов начинается с 10 байт

  • Седьмое значение сигналов начинается с 12 байтов.

Алгоритм упаковки оставляет 1-байтовую погрешность между uint8 значение данных и двойное значение.

См. также

| |

Введенный в R2011a