次の方法で共有


FMI メッセージ形式

このセクションでは、関数管理インターフェイス (FMI) のメッセージ形式について説明します。 メッセージ形式は、言語に依存しない表記で表示されます。 メッセージ形式表記の詳細と、メッセージ形式の内容に関する主な前提条件は次のとおりです。

  • 予約済みは、フィールドがメッセージの送信者によって 0 (数値フィールドの場合) またはすべての null (名前の場合) に設定されていることを示します。

  • Undefined は、フィールドの値が不確定であることを示します。 フィールドは送信者によって設定されていないため、メッセージの受信者によって検査されるべきではありません。

  • Open(PLU) 要求opresid など、2 バイトを占有するフィールドは、ソフトウェアが実行するプロセッサによって使用される通常の向きに関係なく、最も小さいバイト アドレスで最も算術的に有意なバイトで表されます。 つまり、2 バイトの値0x1234は、最も低いバイト アドレスにバイト 0x12を持ちます。 ただし、次のフィールドは例外です。

    • バッファー ヘッダーの srci フィールドと desti フィールドは、割り当てるアプリケーションのみがこれらの値を解釈する必要があるため、それらを割り当てるアプリケーションのローカル形式で格納されます。

    • 要素の 開始 フィールドと 終了 フィールドは、常に低バイトの高バイト方向 (Intel プロセッサの通常の向き) に格納されます。

  • メッセージは、バッファー ヘッダーと 0 個以上のバッファー要素で構成されるバッファーで構成されます。 バッファー形式の詳細については、「 メッセージ」を参照してください。

  • アプリケーションでは、ノード内のすべてのアクティブな LPI 接続に対して一意のインデックス (I) 値を割り当てる必要があります。 特に、 Open(SSCP) 要求 は、 Open(PLU) に応答して送信するソース インデックスとは異なる必要があります。 また、0 は I 値として使用しないでください。 I 値が 0 の場合は、メッセージの送信者がメッセージの受信者を招待して I 値を割り当てることを意味します。

  • 各要素の 開始 フィールドは、 trpad フィールドの後の要素内のデータの最初のバイトのオフセットを提供します。

    非論理ユニット アプリケーション (LUA) アプリケーションの場合、 startd は 1 ( データは trpad フィールドの後のバイトで始まります)、10 ( trpad フィールドとデータの先頭の間に 9 バイトのパディングが含まれます)、または 13 ( trpad フィールドとデータの先頭の間に 12 バイトのパディングが含まれます) のいずれかになります。

    LUA アプリケーションの場合、 startd は、メッセージの最初の要素の 4 ( trpad フィールドとデータの先頭の間の 3 バイトのパディング) であり、後続の要素では 13 (12 バイトのパディング) です。

    ローカル ノードでは、追加のヘッダー情報に余分なバイトが使用されます。 これにより、この情報を追加するときに新しいバッファーにデータをコピーする必要がなくなります。

  • startd は 0 ではなく 1 から始まる dataru へのインデックスを示すので、有効なデータの最初のバイトは常に dataru[startd-1] になります

  • startdendd より大きい場合、メッセージに有効なデータはありません。

  • dataru 内のすべてのフィールドの型は CHAR です。ただし、注釈が別の場合を除きます。

  • バッファー要素の 先頭 が 1、10、または 13 の場合、これは要素のチェーン内の初期要素にのみ適用され、チェーン内の後続の要素の 開始は 1 であることに注意してください。 メッセージ形式 ( Open(PLU) Request や Open(PLU)OK Response など) の 2 つの個別のリンクされた要素チェーンを持つメッセージは、チェーンの先頭にある要素の 開始 フィールドをメッセージ形式で指定された値 (1、10、または 13) として、他のすべての要素の 開始 フィールドを 1 として持ちます。

このセクションの内容