Project

General

Profile

Actions

Support Request #10828

closed

Timing behaviour in ADTF Message Bus

Added by hidden about 4 years ago. Updated almost 4 years ago.

Status:
Closed
Priority:
Normal
Customer:
AUDI
Department:
EF
Requester's Priority:
Normal
Support Level:
2nd Level
Resolution:
No Customer Feedback
Product Issue Numbers:
Affected Products:
Platform:
Windows 10 64bit
Topic:
ADTF::MessageBus
FAQ Links:

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:
  1. Ihr verschickt so wie beschrieben am Ende eine "Fertig" Nachricht/Sample. Ein Delay ist dabei aber nicht notwendig.
  2. 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

Related to Public Support - Support Request #10007: Communication between dSpace VEOS and ADTF 3.xClosedActions
Actions #1

Updated by hidden about 4 years ago

Actions #2

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
Actions #3

Updated by hidden about 4 years ago

  • Affected Products ADTF 3.6.3 added
Actions #7

Updated by hidden about 4 years ago

Das Thema ist leider aufgrund von Ressourcen untergegangen und muss noch bewertet werden

Actions #8

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:

  1. Ihr verschickt so wie beschrieben am Ende eine "Fertig" Nachricht/Sample. Ein Delay ist dabei aber nicht notwendig.
  2. 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

Actions #9

Updated by hidden almost 4 years ago

  • Status changed from In Progress to Customer Feedback Required
Actions #10

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
Actions #11

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: <>
Gesendet: Donnerstag, 7. Mai 2020 16:25
Betreff: [Support - Support Request #10828] (To Be Closed) Timing behaviour in ADTF Message Bus

Actions #12

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

Actions #13

Updated by hidden almost 4 years ago

Hallo Martin,

vielen Dank. Damit sollte unsere Frage gelöst sein. :)

Viele Grüße
Franz

INTERNAL
Von: <>
Gesendet: Montag, 25. Mai 2020 16:52
Betreff: [Support - Support Request #10828] Timing behaviour in ADTF Message Bus

Actions #16

Updated by hidden almost 4 years ago

  • Status changed from To Be Closed to Closed
Actions

Also available in: Atom PDF