User manual - MIDIインプリメンテーション
33
たとえば32bitデータは下記のように分割されて転送されます。
16.3.15 img : Parameter Set Image
Bulkでデータを転送する際には転送したいParameter Setのデータを先頭アドレスから順次16ビット単位で読
み出し、その値を以下の様式で3バイトに分解し、羅列して送ります。
変換フォーマットは上記のIndividual Parameterの転送の16bitの場合と同じで、以下のようになります。
メモリイメージ16bit
Parameter Setのパケット分割1パケットで送ることができるParameter Setのイメージのサイズは最大128バ
イトであり、128バイトを越えるデータを転送するときは最後のパケットを除いて必ず128バイト単位に区切ら
れるので、受信したパケット内のデータを
Parameter Set先頭アドレス + Packet Number × 128
に格納すればよいことになります。
lenで表わしたimgの長さに3を乗算した値が img の長さになります。したがって、(dataフィールドの説明にある
通り、)Dataの長さは必ず3の倍数となります。
ただし、1つのパケットで転送できるのは128バイト以下のParameter Setイメージであり、それを越える場合
は複数のパケットに分割して転送されます。
すなわちdataフィールドの最大長は128/2 × 3 = 192バイトとなります。
また、1つのセッションで転送できるのは1つのParameter Setに限られ、複数のParameter Setを送る場合で
も、1つのパケット内に別のParameter Setのデータが混在することはありません。Parameter Setが異なればか
ならずパケットを分割します。
76543210
data0: 0 [bit06] [bit05] [bit04] [bit03] [bit02] [bit01] [bit00]
data1: 0 [bit13] [bit12] [bit11] [bit10] [bit09] [bit08] [bit07]
data2: 0 [bit20] [bit19] [bit18] [bit17] [bit16] [bit15] [bit14]
data3: 0 [bit27] [bit26] [bit25] [bit24] [bit23] [bit22] [bit21]
data4: 0 0 0 0 [bit31] [bit30] [bit29] [bit28]
Format: 0dddddddB 0cccccccB 000000abB
MSB: abccccccB
LSB: cdddddddB
↓
data0: 0dddddddB
data1: 0cccccccB
data2: 000000abB










