Пакет байта

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

Библиотека

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

Описание

Используя входной порт, блок преобразовывает данные одного или нескольких типов данных в один вектор 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 байт за один раз. Можно задать опции выравнивания данных с типами данных.

Пример

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

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

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

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

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

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

Введенный в R2011a