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

Also available in: Atom PDF