Документация Engee

Byte Pack

Преобразование входных сигналов в вектор UInt8.

Тип: BytePack

Путь в библиотеке:

/Basic/Additional/Interfaces/Byte Pack

Описание

Блок Byte Pack принимает входные сигналы одного или нескольких типов данных и преобразует их в один вектор UInt8 для вывода. Параметры блока позволяют задать тип данных входных сигналов и выравнивание данных в векторе, который выводит блок.

Порты

Выход

# OUT_1 — преобразованные данные сигнала
вектор

Details

Преобразованные входные данные блока, возвращаемые как вектор данных UInt8.

Типы данных

UInt8, UInt16, UInt32

Поддержка комплексных чисел

Нет

Вход

# IN_1 — сигналы для преобразования
сигнал типа Float64 (по умолчанию) | массив данных сигнала

Details

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

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool

Поддержка комплексных чисел

Нет

Параметры

Параметры

# Output port (packed) data type — тип данных выходного сигнала блока
UInt8 | UInt16 | UInt32

Details

Укажите тип данных Engee для выходного сигнала.

Значения

UInt8 | UInt16 | UInt32

Значение по умолчанию

UInt8

Имя для программного использования

maskPackedDataType

Настраиваемый

Нет

Вычисляемый

Нет

# Input port data types — типы данных входных сигналов блока

Details

Укажите типы данных Engee для входных сигналов, полученных блоком в массиве ячеек. В массиве ячеек укажите типы данных в порядке, в котором входной порт блока получает данные сигналов. Например, если блок получает данные в порядке UInt32, UInt32, UInt16, Float64, UInt8, Float64 и Float32, укажите следующий массив ячеек:

("UInt32","UInt32","UInt16","Float64","UInt8","Float64","Float32")

Затем блок указывает количество входов блока.

Значение по умолчанию

[Float32]

Имя для программного использования

datatypes

Настраиваемый

Нет

Вычисляемый

Да

# Byte alignment — граница байтов для выравнивания типов данных
1 | 2 | 4 | 8

Details

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

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

Можно использовать несколько типов данных разной длины. В таких случаях выравнивание по двум байтам может привести к появлению однобайтовых пробелов между значениями UInt8 или Int8 и другого типа данных. В реализации пакета блок копирует данные в буфер выходных данных по одному байту за раз.

Например, предположим, что вы указали следующий массив ячеек для параметра Input port data types:

("UInt32","UInt32","UInt16","Float64","UInt8","Float64","Float32")

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

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

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

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

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

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

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

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

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

Значения

1 | 2 | 4 | 8

Значение по умолчанию

1

Имя для программного использования

byteAlign

Настраиваемый

Нет

Вычисляемый

Нет