Freigeben über


FMI-Meldungsformate

In diesem Abschnitt werden die Nachrichtenformate für die Funktionsverwaltungsschnittstelle (Function Management Interface, FMI) beschrieben. Die Nachrichtenformate werden in einer sprachunabhängigen Notation dargestellt. Details zur Notation des Nachrichtenformats und wichtige Annahmen über den Inhalt der Nachrichtenformate sind wie folgt:

  • Reserved gibt an, dass das Feld vom Absender der Nachricht auf null (für ein numerisches Feld) oder alle NULL -Werte (für Namen) festgelegt wird.

  • Undefined gibt an, dass der Wert des Felds unbestimmt ist. Das Feld wird nicht vom Absender festgelegt und sollte nicht vom Empfänger der Nachricht untersucht werden.

  • Felder, die zwei Bytes belegen, z. B . opresid in der Open(PLU)-Anforderung, werden unabhängig von der normalen Ausrichtung des Prozessors, auf dem die Software ausgeführt wird, mit dem arithmetisch signifikantsten Byte in der niedrigsten Byteadresse dargestellt. Das heißt, der 2-Byte-Wert 0x1234 weist das Byte 0x12 in der niedrigsten Byteadresse auf. Die folgenden Felder sind jedoch Ausnahmen:

    • Die Felder srci und desti in Pufferheadern werden im lokalen Format der Anwendung gespeichert, die sie zuweist, da nur die zuweisende Anwendung diese Werte interpretieren muss.

    • Die gestarteten und enden Felder in Elementen werden immer mit niedriger Byte- und Hochbyteausrichtung (die normale Ausrichtung eines Intel-Prozessors) gespeichert.

  • Nachrichten bestehen aus Puffern, die aus einem Pufferheader und null oder mehr Pufferelementen bestehen. Weitere Informationen zu Pufferformaten finden Sie unter Meldungen.

  • Anwendungen müssen für jede aktive LPI-Verbindung innerhalb des Knotens eindeutige Indexwerte (I) zuweisen. Insbesondere muss sich die Open(SSCP)-Anforderung von dem Quellindex unterscheiden, den sie als Antwort auf Open(PLU) sendet. Darüber hinaus sollte null nicht als I-Wert verwendet werden. Ein I-Wert von 0 bedeutet, dass der Absender der Nachricht den Empfänger der Nachricht dazu auflädt, einen I-Wert zuzuweisen.

  • Das gestartete Feld in jedem Element gibt den Offset des ersten Byte von Daten im Element nach dem Trpad-Feld an.

    Bei Anwendungen mit nicht logischen Einheiten (LUA) ist der Start entweder 1 (Daten beginnen im Byte nach dem trpad-Feld ), 10 (neun Bytes des Auffüllens sind zwischen dem trpad-Feld und dem Start der Daten enthalten), oder 13 (12 Bytes des Auffüllens sind zwischen dem trpad-Feld und dem Start der Daten enthalten).

    Bei LUA-Anwendungen beträgt der Start 4 (drei Byte Auffüllung zwischen dem trpad-Feld und dem Start der Daten) im ersten Element einer Nachricht und 13 (12 Bytes Auffüllung) in den nachfolgenden Elementen.

    Der lokale Knoten verwendet zusätzliche Bytes für zusätzliche Headerinformationen. Dadurch wird vermieden, dass beim Hinzufügen dieser Informationen Daten in einen neuen Puffer kopiert werden müssen.

  • Da startd den Index in dataru ab 1 und nicht 0 angibt, befindet sich das erste Byte gültiger Daten immer bei dataru[startd–1].

  • Wenn startd größer als endd ist, sind keine gültigen Daten in der Nachricht enthalten.

  • Alle Felder in dataru sind vom Typ CHAR, außer wenn die Hinweise etwas anderes angeben.

  • Beachten Sie, dass bei einem Pufferelement, das mit 1, 10 oder 13 beginnt , dies nur für das erste Element in der Kette von Elementen gilt, und nachfolgende Elemente in der Kette den Anfang von 1 haben. Nachrichten mit zwei unterschiedlichen verknüpften Elementketten in den Nachrichtenformaten (z. B . Open(PLU) Request und Open(PLU) OK Response) weisen das gestartete Feld in den Elementen am Anfang der Ketten als den Wert (1, 10 oder 13) im Nachrichtenformat und die gestarteten Felder in allen anderen Elementen als 1 auf.

In diesem Abschnitt