FMI 訊息格式

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

  • [保留] 表示將數值欄位的欄位設為零 () 或訊息寄件者) 的所有 null (名稱。

  • Undefined 表示欄位的值不確定。 傳送者不會設定此欄位,而且不應該由訊息的接收者檢查。

  • 在 Open (PLU) 要求中佔用兩個位元組的欄位(例如,在Open 要求中的opresid )會以最小的位元組位址中最 arithmetically 的最大位元組來表示,而不論軟體執行所在處理器所使用的是哪一種正常方向。 也就是說,2個位元組的值0x1234 在最小的位元組位址中有位元組0x12。 但是,下欄欄位是例外狀況:

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

    • 專案中的 startdendd 欄位一律會以低位元組、高位元組方向儲存 (Intel 處理器) 的正常方向。

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

  • 應用程式必須為節點內每個使用中的 LPI (指派唯一索引,我) 值。 尤其是, open (SSCP) 要求 必須與它傳送的來源索引不同,以回應 開啟的 (PLU) 。 此外,不應該使用零做為 I 值。 0值表示訊息的寄件者會邀請訊息收件者指派 I 值。

  • 每個專案中的 startd 欄位會在 trpad 欄位之後,提供元素中第一個位元組資料的位移。

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

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

    本機節點使用額外的位元組來取得額外的標頭資訊。 這可避免在加入此資訊時,將資料複製到新的緩衝區。

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

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

  • Dataru中的所有欄位都是CHAR類型,但備註另有說明。

  • 請注意,當緩衝區元素的 startd 為1、10或13時,這只適用于元素鏈中的初始元素,而鏈中的後續元素則具有 startd 1。 訊息格式中具有兩個不同連結元素鏈的訊息 (例如 開啟 (PLU) 要求開啟 (PLU) 確定回應) 在鏈開頭的元素中,將 startd 欄位設定為值 (1、10或 13) 指定的訊息格式,而所有其他元素中的 startd 欄位則為1。

本節內容