Expand description
Receiver-State (DDSI-RTPS 2.5 §8.3.4 + §8.3.7.4).
Beim Empfang einer RTPS-Message haelt der Receiver einen Zustand mit:
sourceVersion — ProtocolVersion aus RTPS-Header
sourceVendorId — VendorId aus RTPS-Header
sourceGuidPrefix — GuidPrefix des Senders
destGuidPrefix — GuidPrefix des Receivers selbst
unicastReplyLocators
multicastReplyLocators
haveTimestamp — true wenn InfoTimestamp/HE.W gesehen
timestamp — letzte gesehene Sender-Wallclock
messageLength — falls vom HE-L-Flag deklariert
messageChecksum — falls vom HE-C-Feld deklariert
parameters — falls vom HE-P-Feld deklariert
clockSkewDetected — Heuristik: |timestamp - now| ueber SchwelleUpdate-Trigger:
- InfoSource (§8.3.8.9.4): setzt
sourceVersion,sourceVendorId,sourceGuidPrefixauf die in der InfoSource-Submessage gegebenen Werte;haveTimestamp = falseund Reply-Locator-Listen werden aufLOCATOR_INVALIDresettet. - InfoTimestamp (§8.3.8.5.4): setzt
haveTimestamp = truebzw. = false beiI-Flag = 1, plustimestamp = …. - HeaderExtension (§8.3.7.4): kombiniert mehrere Wirkungen — L-
Flag aktualisiert
messageLength; W-Flag setzthaveTimestamp = true+timestamp; C-Flag aktualisiertmessageChecksum; P-Flag aktualisiertparameters.
Der Receiver-State ist pro RTPS-Message kurzlebig: Vor jedem
decode_datagram wird er auf den Defaultwert plus destGuidPrefix
initialisiert.
Structs§
- Receiver
State - Receiver-State entsprechend Spec-Tabelle §8.3.4 und Update-Regeln in §8.3.7.4.