Project

General

Profile

Actions

Support Request #15550

closed

Getting ddl of substream for usage in mapping filter

Added by hidden over 2 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Normal
Customer:
CARIAD
Department:
Requester's Priority:
Normal
Support Level:
2nd Level
Resolution:
Workaround Available

Description

Supportanfrage

In meiner Anwendung muss ich Werte eines dekodierten Substreams auf mehreren vordefinierten C/C++ Structs mappen. Die Substream wird aus einer ARXML-Datei via die SomeIP Filter geholt. Dafür habe ich den DLL-Mapping-Filter in den Graph wie unten im Bild hinzugefügt:

Die DDL-Beschreibungdateien der Structs sowie die DDL-Mapping Datei für den Mapping Filter kann ich theoretisch via Skripts selber erstellen. Das ist leider nicht der Fall für die Beschreibungdatei des Substreams.

Ich habe versuch, die DDL-Beschreibungdateien des Substreams zu extrahieren. Ich habe mit den Quellcode des Bespiels

https://support.digitalwerk.net/adtf/v3/adtf_html/page_demo_substream_dumper_code.html

experimentiert, damit ich eventuell mit einem Decoder Objekt, wie in unterer Funktion, die DDL-Datei zu generieren, aber leider komme ich nicht weiter.

tResult cMtSomeIpDecoderFilter::ProcessInput(
ISampleReader * /*pReader*/, const iobject_ptr<const ISample> &pSample)
{
    auto itCodecFactory = m_oCodecFactories.find(get_sample_substream_id(pSample));
    if (itCodecFactory != m_oCodecFactories.end())
    {
        // and dump it with the matching decoder.
        auto oDecoder = itCodecFactory->second.oCodecFactory.MakeDecoderFor(pSample);
        LOG_INFO("Sample from %s:", itCodecFactory->second.strName.c_str());
        DumpSample(oDecoder);
    }
    RETURN_NOERROR;
}

Könntet mir bitte einen Hinweis geben, wie ich die DDL-Definitionsdatei extrahieren und definieren kann, falls das möglich wäre.

Vielen Dank im Voraus!

Lösung

Substreams sind erst zur Laufzeit bekannt, da der CE ausschließlich mit den plugindescription Dateien arbeitet, kann das (zumindest derzeit) noch nicht automatisch ausgelesen werden zur Konfigurationszeit.
Künftig soll es eine Lösung geben, dass im Hintergrund ein Minimalsystem hochfährt und dir die Daten im DDL Mapping Filter zur Konfiguration vorliegen:
  • [ACORE-10743] - Make content of Substreams available and selectable

Das wird aber erst ein neues und großes Thema im neuen Jahr.

Parallel dazu kreieren wir ein Substream Display, wo du generisch zur Laufzeit passende Displays erzeugen kann:
  • [ACORE-10659] - Common substream display

Hier wollen wir in Q4 noch ein Preview liefern aber hier steckt auch noch viel Arbeit drin.


Das einzige was ich dir aktuell anbieten kann, wäre ein Qt Media Description Display anzuschließen (das kann seit 3.13 mit Substreams umgehen), hier kannst du dann zur Laufzeit die Datenstrukturen als json exportieren und. Sind auch zwei Schritte um an die Daten zu kommen, aber immerhin ohne es mühsam händisch herauszufinden.


Zusätzlich habe ich folgende Feature Requests angelegt:
  • [ACORE-11287] - Option to export DDL as xml / description file
  • [ACORE-11288] - Option to export plain list of structured data / substreams

Files

image.png (35.6 KB) image.png hidden, 2021-10-25 13:15
Outlook-zmmko2gm.png (4.58 KB) Outlook-zmmko2gm.png hidden, 2021-10-25 13:15
Actions #1

Updated by hidden over 2 years ago

  • Project changed from Public Support to 30
  • Status changed from New to In Progress
  • Customer set to CARIAD
  • Topic set to ADTF::Substreams
Actions #2

Updated by hidden over 2 years ago

  • Description updated (diff)
Actions #3

Updated by hidden over 2 years ago

  • Description updated (diff)
  • Status changed from In Progress to Customer Feedback Required
  • Resolution set to Workaround Available
  • Product Issue Numbers set to https://www.cip.audi.de/jira/browse/ACORE-10743; https://www.cip.audi.de/jira/browse/ACORE-10659

Hallo Ernesto,

Substreams sind erst zur Laufzeit bekannt, da der CE ausschließlich mit den plugindescription Dateien arbeitet, kann das (zumindest derzeit) noch nicht automatisch ausgelesen werden zur Konfigurationszeit.
Künftig soll es eine Lösung geben, dass im Hintergrund ein Minimalsystem hochfährt und dir die Daten im DDL Mapping Filter zur Konfiguration vorliegen:
  • [ACORE-10743] - Make content of Substreams available and selectable

Das wird aber erst ein neues und großes Thema im neuen Jahr.

Parallel dazu kreieren wir ein Substream Display, wo du generisch zur Laufzeit passende Displays erzeugen kann:
  • [ACORE-10659] - Common substream display

Hier wollen wir in Q4 noch ein Preview liefern aber hier steckt auch noch viel Arbeit drin.


Das einzige was ich dir aktuell anbieten kann, wäre ein Qt Media Description Display anzuschließen (das kann seit 3.13 mit Substreams umgehen), hier kannst du dann zur Laufzeit die Datenstrukturen als json exportieren und. Sind auch zwei Schritte um an die Daten zu kommen, aber immerhin ohne es mühsam händisch herauszufinden.


Was mich noch viel mehr interessieren würde, warum du dei Strukturen explizit mappen musst ?
Kann nicht die Empfangsseite mit Substreams umgehen und sich das holen, was sie braucht ?
Früher war es so zu Config Codec Zeiten dass man es mappen und dagegen bauen muss, ja.
Aber seit den Substreams kann man alles bereitstellen und nur das requesten was man braucht.
Damit sparst du dir auch unnötige Schnittstellen.
Aber ich weiß natürlich nicht inwieweit du darauf Einfluss hast.

Actions #4

Updated by hidden over 2 years ago

Hallo Florian,

Danke für deine Rückmeldung. Zur Lösung mit den json-Daten bin ich selber gekommen. Als ich den im Fenster angezeigten Stream mit dem Maus kopiert habe, hatte ich aber erwartet, dass XML-Code, also die DDL-Definition, und anstatt JSON-Code in meinen Texteditor hinzugefügt werden könnte. Ein nettes Feature wäre, eine Option "Export DDL..." im Qt Media Description Display zu haben, oder?

Ich habe in den vorherigen Tagen "quick-and-dirty" auf der Basis vom Beispiel page_demo_substream_dumper_code.html, ein Mapping Filter gebastelt. Ich glaube, diese Lösung ähnelt im Wesentlichen, was du mir als letztes vorgeschlagen hast. Da ich mit diesem Code momentan weiterarbeiten werde, können wir meinetwegen das Ticket schließen.

Gruß,
Ernesto.

Actions #5

Updated by hidden over 2 years ago

  • Project changed from 30 to Public Support
  • Subject changed from DDL-Beschreibungdateien eines Substreams und Mapping auf vordefinierten Structs to Getting ddl of substream for usage in mapping filter
  • Description updated (diff)
  • Status changed from Customer Feedback Required to To Be Closed
  • Private changed from Yes to No
  • Product Issue Numbers changed from https://www.cip.audi.de/jira/browse/ACORE-10743; https://www.cip.audi.de/jira/browse/ACORE-10659 to https://www.cip.audi.de/jira/browse/ACORE-10743; https://www.cip.audi.de/jira/browse/ACORE-10659; https://www.cip.audi.de/jira/browse/ACORE-11287; https://www.cip.audi.de/jira/browse/ACORE-11288

Hallo Ernesto,

ich habe zwei Feature Request angelegt:
  • [ACORE-11287] - Option to export DDL as xml / description file
  • [ACORE-11288] - Option to export plain list of structured data / substreams
Actions #6

Updated by hidden over 2 years ago

  • Status changed from To Be Closed to Closed
Actions

Also available in: Atom PDF