Byte Pack

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

Библиотека

Embedded Coder / Встроенная Коммуникация Целей/Хоста

  • Byte Pack block

Описание

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

Параметры

Input port data types (cell array)

Задайте типы данных для различных сигналов как часть параметров. Блок поддерживает все типы данных Simulink® кроме символов. Введите типы данных, когда Simulink вводит в массиве ячеек, таком как 'double' или 'int32'. Порядок записей типа данных в массиве ячеек должен совпадать с порядком, в котором данные прибывают во вход блока. Этот блок определяет размеры сигнала автоматически. Блок имеет по крайней мере один входной порт и только один выходной порт.

Byte alignment

Эта опция задает, как выровнять типы данных, чтобы сформировать uint8 выходной вектор. Выберите одно из значений в байтах из списка.

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

Выбор выравнивания 1 for Byte обеспечивает самую трудную упаковку без отверстий между типами данных в различных комбинациях типов данных и сигналов.

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

Пример

Используйте массив ячеек, чтобы ввести типы входных данных в параметр типов данных Input port. Порядок типов данных, которые вы вводите, должен совпадать с порядком типов данных во входе блока.

В массиве ячеек вы обеспечиваете порядок, в котором блок ожидает получать данные — uint32uint32uint16'double'uint8'double', и single. С этой информацией блок автоматически обеспечивает количество входных параметров блока.

Выравнивание байта равняется 2 указывает, что каждое новое значение начинает 2 байта с предыдущего контура данных.

Пример показывает следующие типы данных:

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

Когда сигналы являются скалярными значениями (не матрицы или векторы в этом примере), первое значение сигналов в векторе запускается на уровне 0 байтов. Затем второе значение сигналов запускается на уровне 2 байтов, и третье на уровне 4 байтов. Затем четвертое значение сигналов следует на уровне 6 байтов, пятое на уровне 8 байтов, шестое на уровне 10 байтов и седьмое на уровне 12 байтов. Когда пример показывает, алгоритм упаковки оставляет 1-байтовый разрыв между uint8 значение данных и двойное значение.

Введенный в R2011a