Zum Inhalt

ID 3 – Container – ISO 11783-6 – B.4

Das Container Objekt mit der ID 3 dient dazu, mehrere Objekte logisch zu gruppieren. Ein Container selbst ist nicht sichtbar, ermöglicht aber das gemeinsame Verschieben, Ein-/Ausblenden oder Teilen einer gesamten Gruppe von Objekten.

Attribute und Record Format (Tabelle B.8)

Die folgende Tabelle beschreibt den Aufbau des Container Objekts im Objektpool.

AID Name Typ Größe (Bytes) Bereich / Wert Record Byte Beschreibung
- Object ID Integer 2 0 – 65534 1 – 2 Eindeutige ID im Objektpool.
[0] Type Integer 1 3 3 Objekttyp = Container.
[1] Width Integer 2 0 – 65535 4 – 5 Maximale Breite des Containers in Pixeln. Clipping erfolgt außerhalb dieses Bereichs.
[2] Height Integer 2 0 – 65535 6 – 7 Maximale Höhe des Containers in Pixeln. Clipping erfolgt außerhalb dieses Bereichs.
[3] Hidden Boolean 1 0 oder 1 8 0 = FALSE (Sichtbar), 1 = TRUE (Versteckt). Gibt an, ob der Container initial ausgeblendet ist.
- Number of objects to follow Integer 1 0 – 255 9 Anzahl der direkt enthaltenen Objekte.
- Number of macros to follow Integer 1 0 – 255 10 Anzahl der folgenden Makro-Referenzen.
- Repeat: Integer 2 0 – 65534 11 + ... Objekt-ID eines enthaltenen Objekts.
- {X Location} Signed Integer 2 -32768 bis +32767 13 + ... X-Position relativ zum Container (Pixel).
- {Y Location} Signed Integer 2 -32768 bis +32767 15 + ... Y-Position relativ zum Container (Pixel).
- Repeat: Integer 1 0 – 255 var. (Nach Objekten) Event ID, die das Makro auslöst.
- {Macro ID} Integer 1 0 – 255 var. Makro ID des auszuführenden Makros.

Relative Positionierung und Clipping

Innerhalb eines Containers beginnt ein eigenes Koordinatensystem: * Relative Koordinaten: Die X- und Y-Positionen der Child-Objekte beziehen sich auf die obere linke Ecke des Containers. * Clipping: Alle Objekte oder Teile von Objekten, die außerhalb der durch Width und Height definierten Fläche liegen, werden vom VT abgeschnitten und nicht angezeigt. * Gruppen-Verschiebung: Wenn der Container verschoben wird (z. B. per Change Child Position), verschieben sich alle darin enthaltenen Objekte automatisch mit.

Ereignisse (Events - Tabelle B.7)

Der Container reagiert auf folgende Ereignisse:

  • On Show: Ausgelöst durch das Kommando Show Object (auch wenn der Container bereits sichtbar ist). Das VT zeichnet die enthaltenen Objekte neu.
  • On Hide: Ausgelöst durch das Kommando Hide Object. Der Container wird mit der Hintergrundfarbe der Eltern-Maske überzeichnet.
  • On Refresh: Ausgelöst bei Änderungen an untergeordneten Objekten, die ein Neuzeichnen erfordern.
  • On Change Child Location / Position: Aktualisierung der Position von Kind-Objekten.
  • On Change Size: Reaktion auf Größenänderung des Containers.

Nutzung in der Praxis

Container sind essenziell für dynamische Benutzeroberflächen: * Ein-/Ausblenden: Mit dem Kommando IsoVtcCmd_ObjHideShow können komplexe Bedienfelder oder Statusanzeigen auf Knopfdruck erscheinen oder verschwinden. * Platzersparnis: Mehrere Container können an der gleichen Stelle liegen; durch geschicktes Umschalten der Sichtbarkeit lassen sich verschiedene "Registerkarten" oder Modi realisieren.

Beispiele aus dem ISO-Designer

Bedeutung für die Implementierung

Da der Container ein logisches Element ist, verbraucht er selbst kaum Rechenleistung, ist aber mächtig in der Steuerung der Z-Order und Gruppierung. Entwickler sollten darauf achten, dass die Width und Height korrekt gesetzt sind, um ungewolltes Clipping zu vermeiden.

Weitere Informationen und Beispiele finden sich im ISOBUS Wiki - Container von Tobias Tenberg.


Hinweis: Für detaillierte Spezifikationen zu Datentypen und Nachrichtenformaten wird auf die offizielle ISO 11783-6:2018 verwiesen.