Support Request #10828
closedTiming behaviour in ADTF Message Bus
Description
Supportanfrage
Wir haben den Usecase, dass wir ein dSpace VEOS mit ADTF koppeln müssen. VEOS sendet zu einem bestimmten Zeitpunkt Daten über den MessageBus in mehreren Streams an ADTF. Diese werden dort verarbeitet und wieder zurück geschickt. Die momentane Implementierung ist noch in ADTF 2.14.3, wir werden aber zukünftig auch auf ADTF 3 umsteigen. Den Messagebus werden wir aber erst einmal aufgrund Verfügbarkeit des Blocksets in VEOS behalten müssen.
Da der Messagebus in dem VEOS-Blockset über UDP läuft und dieses Protokoll ja keine Handshakes o.Ä. hat, stellt sich uns nun die Frage des Zeitverhaltens: Rechnet ADTF erst los, wenn die Daten wirklich konsistent sind, sprich wenn alle Streams empfangen wurden? Oder muss man da spezielle Vorkehrungen treffen?
Momentan wird noch in einem kleinen zeitlichen Abstand ein separater Trigger über den Messagebus gesendet, der die Berechnung der relevanten Filter auslöst. Aber wir sind uns nicht sicher, ob selbst dort gewährleistet ist, dass dieser Trigger aufgrund der geringen Größe nicht schon vor den anderen Streams eingelesen wird und die Berechnung zu früh startet.
Wie ist Ihre Einschätzung zu dieser Problematik? Gibt es sowohl in ADTF2 als auch ADTF3 bereits Mechanismen, die sicherstellen, dass immer mit korrekten Daten gerechnet wird, oder müssen wir uns selbst darum kümmern?
Lösung
Was sind bei Euch Streams? Letzendlich verschickt der MessageBus für jeden Datenstrom (der als Pin rausgeführt wird) eigene Nachrichten, dies allerdings sequenziell auf dem einen Channel (wenn ihr nur einen verwendet wovon ich ausgehe). Hierbei kann es nicht passieren, dass eine Nachricht eine andere "überholt". Die Source in ADTF als Empfänger weiß allerdings nichts darüber wie die verschiedenen Daten/Samples der Streams zueinander korrelieren, kann also z.b. nicht warten bis für jeden Stream eine neue Nachricht angekommen ist um sie dann weiterzuleiten (eine Stream könnte ja auch mehr Samples liefern als ein anderer).
Deshalb bleiben Euch zwei Lösungen:- Ihr verschickt so wie beschrieben am Ende eine "Fertig" Nachricht/Sample. Ein Delay ist dabei aber nicht notwendig.
- Ihr erweitert/verändert die ADTF 3 MessageBus Channel Implementierung (als Quellen verfügbar) sodass die wartet bis auf allen "Streams" Nachrichten angekommen sind, wenn in Eurem Use Case auf jedem Stream gleich viele Samples ankommen sollen.
Related issues
Updated by hidden about 4 years ago
- Related to Support Request #10007: Communication between dSpace VEOS and ADTF 3.x added
Updated by hidden about 4 years ago
- Project changed from Public Support to 11
- Status changed from New to In Progress
- Topic set to ADTF::MessageBus
- Customer set to AUDI
- Department set to EF
- Affected Products ADTF 2.14.3 added
Updated by hidden about 4 years ago
Das Thema ist leider aufgrund von Ressourcen untergegangen und muss noch bewertet werden
Updated by hidden almost 4 years ago
Hallo Franz,
tut mir leid, dass wir uns erst so spät melden. Nun zu Eurer Frage.
Was sind bei Euch Streams? Letzendlich verschickt der MessageBus für jeden Datenstrom (der als Pin rausgeführt wird) eigene Nachrichten, dies allerdings sequenziell auf dem einen Channel (wenn ihr nur einen verwendet wovon ich ausgehe). Hierbei kann es nicht passieren, dass eine Nachricht eine andere "überholt". Die Source in ADTF als Empfänger weiß allerdings nichts darüber wie die verschiedenen Daten/Samples der Streams zueinander korrelieren, kann also z.b. nicht warten bis für jeden Stream eine neue Nachricht angekommen ist um sie dann weiterzuleiten (eine Stream könnte ja auch mehr Samples liefern als ein anderer). Deshalb bleiben Euch zwei Lösungen:
- Ihr verschickt so wie beschrieben am Ende eine "Fertig" Nachricht/Sample. Ein Delay ist dabei aber nicht notwendig.
- Ihr erweitert/verändert die ADTF 3 MessageBus Channel Implementierung (als Quellen verfügbar) sodass die wartet bis auf allen "Streams" Nachrichten angekommen sind, wenn in Eurem Use Case auf jedem Stream gleich viele Samples ankommen sollen.
Hoffe das hilft Euch weiter.
Grüße,
Martin
Updated by hidden almost 4 years ago
- Status changed from In Progress to Customer Feedback Required
Updated by hidden almost 4 years ago
- Project changed from 11 to Public Support
- Subject changed from Zeitverhalten ADTF-MessageBus to Timing behaviour in ADTF Message Bus
- Description updated (diff)
- Status changed from Customer Feedback Required to To Be Closed
- Private changed from Yes to No
- Resolution set to No Customer Feedback
Updated by hidden almost 4 years ago
Hallo,
bitte entschuldigt die späte Anwort. Die Mail ist untergegangen...
Genau. Mit Stream meine ich einen Stream im MessageBus, also ein Ausgangspin am Source-Filter bzw. ein Eingang am weiterverarbeitenden Filter.
Wenn ich Lösung 1 richtig verstehe, dann kommen die Nachrichten auf dem gleichen Channel immer in genau der Reihenfolge an, wie sie verschickt werden. Dh wenn ich in VEOS sicher stellen kann, dass der "Trigger" als letztes verschickt wird, kann ich davon ausgehen, dass der in ADTF getriggerte Filter alle Daten an den Eingangspins vorliegen hat, oder? Ich gehe aktuell davon aus, dass alle Streams die gleiche Samplerate haben.
Viele Grüße
Franz Großmann
INTERNAL
Von: support@digitalwerk.net <support@digitalwerk.net>
Gesendet: Donnerstag, 7. Mai 2020 16:25
Betreff: [Support - Support Request #10828] (To Be Closed) Timing behaviour in ADTF Message Bus
Updated by hidden almost 4 years ago
- Platform Windows 10 64bit added
Hallo,
Franz Großmann-Neuhäusler wrote:
Wenn ich Lösung 1 richtig verstehe, dann kommen die Nachrichten auf dem gleichen Channel immer in genau der Reihenfolge an, wie sie verschickt werden. Dh wenn ich in VEOS sicher stellen kann, dass der "Trigger" als letztes verschickt wird, kann ich davon ausgehen, dass der in ADTF getriggerte Filter alle Daten an den Eingangspins vorliegen hat, oder?
Ja genau!
Grüße,
Martin
Updated by hidden almost 4 years ago
Hallo Martin,
vielen Dank. Damit sollte unsere Frage gelöst sein. :)
Viele Grüße
Franz
INTERNAL
Von: support@digitalwerk.net <support@digitalwerk.net>
Gesendet: Montag, 25. Mai 2020 16:52
Betreff: [Support - Support Request #10828] Timing behaviour in ADTF Message Bus
Updated by hidden almost 4 years ago
- Status changed from To Be Closed to Closed