FMI 訊息格式

本節描述功能管理介面(FMI)的訊息格式。 訊息格式以語言無關的符號表示。 訊息格式符號的細節及訊息格式內容的主要假設如下:

  • 保留表示該欄位由訊息發送者設定為零(數字欄位)或所有空值(名稱)。

  • 未定義表示該欄位的值是不確定的。 該欄位不是由發送者設定,接收者不應檢視。

  • 佔據兩個位元組的欄位,如 Open(PLU) 請求中的 opresid,則以最小位元組位址中算術上最顯著的位元組來表示,無論軟體執行時處理器的正常方向為何。 也就是說,2 位元組的值 0x1234 的位元組 0x12 位於最低的位元組位址。 然而,以下欄位為例外:

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

    • 元素中的 起始 欄位與 結束 欄位總是以低位元組、高位元組的排列方式儲存(這是 Intel 處理器的正常方向)。

  • 訊息由緩衝區組成,緩衝區包含一個緩衝區標頭及零個或多個緩衝區元素。 欲了解更多緩衝區格式資訊,請參閱 訊息。

  • 應用程式必須為節點內每個活躍的 LPI 連線分配唯一的索引(I)值。 特別地, Open(SSCP) 請求 必須與它回應 Open(PLU) 時所發送的來源索引不同。 此外,零不應作為 I 值。 I值為零表示訊息發送者邀請訊息接收者賦予I值。

  • 每個元素的 startd 欄位用來表示在trpad 欄位之後該元素中的第一個位元組的偏移量。

    對於非邏輯單元應用(LUA)應用, startd 會是 1(資料從 trpad 欄位後的位元組開始)、10( trpad 欄位與資料起始之間包含九位元組的填充)或 13( trpad 欄位與資料起始之間包含 12 位元組的填充)。

    對於 LUA 應用, startd 在訊息的第一個元素中為 4( trpad 欄位與資料起始之間有三個位元組的填充),後續元素則有 13(12 位元組的填充)。

    本地節點會使用額外的位元組來提供額外的標頭資訊。 這樣可以避免在新增資訊時,必須將資料複製到新的緩衝區。

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

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

  • dataru 內的所有欄位皆為 CHAR 類型,除非備註另有說明。

  • 請注意,當緩衝元素的 startd 為 1、10 或 13 時,這只適用於該鏈中的初始元素,而鏈中後續元素的 startd 為 1。 在訊息格式中,具有兩個不同連結元素鏈的訊息(例如 Open(PLU) Request 與 Open(PLU) OK Response),鏈條起始元素的 起始 欄位為訊息格式中給出的值(1、10或13),其他元素的 起始 欄位為 1。

本節中