FMI 訊息格式

本節說明函式管理介面 (FMI) 的訊息格式。 訊息格式會以與語言無關的標記法呈現。 訊息格式標記法的詳細資料,以及有關訊息格式內容的重要假設如下:

  • 保留表示此欄位設定為數值欄位) 的零 (,或郵件傳送者) 名稱的所有 null (。

  • 未定義表示欄位的值不確定。 欄位不是由傳送者設定,不應由訊息接收者檢查。

  • 佔用兩個位元組的欄位,例如Open (PLU) Request中的opresid,會以最低位元組位址中最重要的算術顯著位元組來表示,而不論軟體執行所在處理器所使用的一般方向為何。 也就是說,0x1234的 2 位元組值在最低位元組位址中具有位元組0x12。 不過,下欄欄位是例外狀況:

    • 緩衝區標頭中的 srcidesti 欄位會以指派它們的應用程式本機格式儲存,因為只有指派的應用程式需要解譯這些值。

    • 元素中的 開始結束 欄位一律會儲存在低位元組、高位元組方向 (Intel 處理器的一般方向) 。

  • 訊息是由緩衝區標頭和零個或多個緩衝區元素所組成的緩衝區所組成。 如需緩衝區格式的詳細資訊,請參閱 訊息

  • 應用程式必須指派節點內每個作用中 LPI 連線的唯一索引 (I) 值。 特別是, Open (SSCP) Request 必須與它傳送的來源索引不同,以回應 Open (PLU) 。 此外,不應該使用零作為 I 值。 I 值為零表示郵件寄件者正在邀請郵件收件者指派 I 值。

  • 每個元素中的 起始 欄位都會提供 trpad 欄位之後元素中第一個位元組資料的位移。

    針對非邏輯單元應用程式 (LUA) 應用程式, startd 會是 1 個 (資料會在 trpad 欄位) 之後從位元組開始, 在 trpad 欄位與資料) 開始之間包含 10 個 (9 個位元組的填補,或 13 (12 個位元組的填補會包含在 trpad欄位與 資料) 的開頭。

    針對 LUA 應用程式, startd 是 4 (trpad 欄位與訊息第一個元素中) 資料開頭的三個位元組填補,而後續元素中 13 個 (12 個位元組的填補) 。

    本機節點會針對其他標頭資訊使用額外的位元組。 這可避免在新增這項資訊時,將資料複製到新的緩衝區。

  • 由於startd表示從 1 開始,而不是 0 開始的 dataru索引,因此有效資料的第一個位元組一律位於dataru[startd–1]。

  • 如果 startd 大於 endd,則訊息中沒有有效的資料。

  • Dataru內的所有欄位都是CHAR類型,但備註除外。

  • 請注意,其中緩衝區元素的 開頭 為 1、10 或 13,這只適用于元素鏈結中的初始元素,而鏈結中的後續元素 的開頭 為 1。 訊息格式中有兩個不同連結專案鏈結的訊息 (,例如 Open (PLU) RequestOpen (PLU) OK 回應) 在鏈結開頭的元素中具有 startd 欄位,做為訊息格式 (1、10 或 1) 3 的值,而所有其他元素中的 起始 欄位則為 1。

本節內容