Skip to main content

Module wire_types

Module wire_types 

Source
Expand description

RTPS-Wire-Basistypen (DDSI-RTPS 2.5 §8.3.5, §8.3.5.1).

Diese Typen sind die Atome des RTPS-Wire-Formats: GUID-Komponenten, Sequence-Numbers, Locators. Sie sind alle reine Byte-Strukturen mit festem Layout (kein XCDR-Alignment, kein Endianness-Tagging am Typ — die Endianness eines Submessage-Stream-Slices kommt aus dem Submessage-Header E-Flag).

§Konvention

  • read_from_le / read_from_be: Decoder mit expliziter Endianness.
  • write_to_le / write_to_be: Encoder symmetrisch.
  • WIRE_SIZE: Konstante mit der festen Bytezahl auf der Wire.

Structs§

EntityId
EntityId: 4-byte Endpoint-Identifier innerhalb eines Participants. Layout: 3 Byte entity_key + 1 Byte entity_kind.
FragmentNumber
FragmentNumber: 32-bit unsigned, 1-basiert (Fragment #1 ist das erste Fragment eines Samples). UNKNOWN = 0 wird als Sentinel verwendet, ist aber kein gueltiges Fragment.
Guid
Guid: GuidPrefix + EntityId = 16 Bytes. Eindeutiger Identifier eines Endpunkts global.
GuidPrefix
GuidPrefix: 12-byte-Prefix einer GUID. Identifiziert einen Participant; bleibt fuer alle Endpoints des Participants gleich.
Locator
Locator: 24-byte Adresse (kind + port + 16-byte address).
ProtocolVersion
ProtocolVersion: Major + Minor des RTPS-Protokolls. Aktuell 2.5.
SequenceNumber
SequenceNumber: 64-bit signed, encoded als (high: i32, low: u32). Beide Felder werden mit der aktiven Submessage-Endianness geschrieben.
UExtension4
UExtension4_t — 4-byte vendor-spezifischer Extension-Slot. Spec §8.3.2: opaker 32-bit-Wert, Vendor entscheidet ueber Bedeutung; Receiver propagiert den Wert per extensions-Feld in den Receiver-State.
VendorId
VendorId: 2-byte Vendor-Identifier. ZeroDDS nutzt 0x01F0 als Interim-Wert aus dem OMG-Entwickler-Range, bis ein offizieller VendorId beantragt wird.
WExtension8
WExtension8_t — 8-byte vendor-spezifischer Extension-Slot. Spec §8.3.2: opaker 64-bit-Wert (analog UExtension4_t fuer Felder die 8 Byte brauchen, z.B. fuer 64-bit-Counter).

Enums§

EntityKind
EntityKind: Klassifikation eines Endpunkts. Spec-Tabelle 9.1.
LocatorKind
LocatorKind: Adress-Familie eines Locators.

Constants§

SPDP_DEFAULT_MULTICAST_ADDRESS
SPDP-Default-Multicast-Adresse (Spec §9.6.1.4.1): 239.255.0.1.
SPDP_DISCOVERY_MULTICAST_OFFSET
Multicast-Discovery-Port-Offset (Spec §9.6.1.4.1, d0).
SPDP_DOMAIN_GAIN
Domain-spezifischer Port-Offset (Spec §9.6.1.4.1, DG).
SPDP_PORT_BASE
SPDP-Discovery-Port-Base (Spec §9.6.1.4.1, PB).

Functions§

spdp_multicast_port
Berechnet den SPDP-Multicast-Discovery-Port fuer eine Domain. Formel (Spec §9.6.1.4.1): port = PB + DG * domain_id + d0 = 7400 + 250 * domain + 0