Main Content

Byte Pack

入力信号を uint8 ベクトルに変換

  • Byte Pack block

ライブラリ:
Embedded Coder / Embedded Targets / Host Communication

説明

Byte Pack ブロックは、1 つ以上のデータ型の入力信号を受信し、そのデータを 1 つの uint8 ベクトルに変換して出力します。ブロック パラメーターを使用して、入力信号のデータ型と、ブロックが出力するベクトル内のデータの配置を指定します。UDP プロトコルではデータが uint8 形式で伝送されるため、このブロックを使用して、このブロックの出力を UDP Send ブロックの入力に接続することで、データの形式を UDP 伝送用に変更できます。

端子

入力

すべて展開する

1 つ以上のデータ型の入力信号の配列。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

出力

すべて展開する

変換後のブロック入力。uint8 データのベクトルとして返されます。

データ型: uint8

パラメーター

すべて展開する

ブロックが受信する入力信号の Simulink データ型を cell 配列で指定します。cell 配列で、ブロック入力端子が信号データを受信する順序でデータ型を指定します。たとえば、ブロックが uint32uint32uint16doubleuint8doublesingle という順序でデータを受信する場合は、次の cell 配列を指定します。

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

これにより、ブロックはブロック入力の数を提供します。

uint8 ベクトル出力を形成するために入力データのデータ型を配置する方法をバイト単位で指定します。1、2、4 または 8 バイトの境界に配置できます。配置の値に基づいて、各信号データ値は配置の値の倍数から始まります。出力ベクトル内の各要素の配置アルゴリズムは、配置の値で指定されたバイト境界から始まります。バイトの配置により、ベクトルの開始点を基準とする境界が設定されます。

データ型のさまざまな組み合わせでデータ型間に穴のない最も詰まったパッキングを得るには、1 を選択します。

さまざまな長さの複数のデータ型を含めることができます。このような場合、2 バイトの配置では、uint8 値または int8 値と別のデータ型の間に 1 バイトの隙間ができます。パック実装では、ブロックによってデータが出力データ バッファーに 1 バイトずつコピーされます。

たとえば、[Input port data types (cell array)] に次の cell 配列を指定するとします。

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

[バイトの配置]2 に設定するとします。新しい各値は、前のデータの境界から 2 バイトの位置で始まります。信号がスカラー値の場合は、次のようになります。

  • ベクトルの最初の信号値は 0 バイトから始まります。

  • 2 番目の信号値は 2 バイトから始まります。

  • 3 番目の信号値は 4 バイトから始まります。

  • 4 番目の信号値は 6 バイトから始まります。

  • 5 番目の信号値は 8 バイトから始まります。

  • 6 番目の信号値は 10 バイトから始まります。

  • 7 番目の信号値は 12 バイトから始まります。

パッキング アルゴリズムにより、uint8 データ値と double 値の間に 1 バイトの隙間が残されます。

バージョン履歴

R2011a で導入