Skip to content

[Phase 1.6] Complex Data Type Mapping (ODX -> JSON) #6

@rettde

Description

@rettde

Beschreibung

Die Architektur-Dokumentation (02_sovd-api.rst) enthaelt ein explizites .. todo:: Mapping of complex data types. Verschachtelte und komplexe ODX-Datentypen (Structures, Repeating Structs, Multiplexed Data) werden aktuell nicht vollstaendig nach JSON gemappt. Der Test test_non_supported_types in cda-core/src/diag_kernel/mod.rs bestaetigt: repeating structs are not supported.

Betroffene Dateien

  • cda-core/src/diag_kernel/schema.rs — Schema-Mapping Hauptlogik
  • cda-core/src/diag_kernel/mod.rs — Tests und DOP-Verarbeitung
  • cda-database/ — MDD Parsing fuer komplexe Typen
  • cda-interfaces/src/datatypes/ — Datentyp-Definitionen
  • cda-sovd/src/sovd/components/ecu/data.rs — Data Endpoint

Komplexe Datentypen (ODX)

ODX Typ JSON Mapping Status
A_ASCIISTRING string Implementiert
A_FLOAT32/64 number Implementiert
A_INT32 integer Implementiert
A_BYTEFIELD string (hex) Implementiert
STRUCTURE object (nested) Teilweise
REPEATING_STRUCT array of object Nicht implementiert
MULTIPLEXED conditional object Nicht implementiert
END_OF_PDU dynamic length Nicht implementiert
DYNAMIC_LENGTH variable array Nicht implementiert

Implementierungs-Tasks

  • REPEATING_STRUCT -> JSON Array von Objekten implementieren
  • MULTIPLEXED Daten -> Conditional Schema (oneOf/anyOf) implementieren
  • END_OF_PDU -> Variable-Length Parsing und Schema
  • DYNAMIC_LENGTH -> Array mit dynamischer Laenge
  • Verschachtelte STRUCTURE-in-STRUCTURE korrekt abbilden
  • Bi-direktional: JSON -> UDS Request Encoding fuer komplexe Typen
  • Schema-Generierung fuer alle neuen Typen
  • Fehlerbehandlung bei nicht-mapbaren Typen (Graceful Degradation)

Unit Tests (Pflicht)

  • Test: REPEATING_STRUCT Encoding (JSON -> UDS Bytes)
  • Test: REPEATING_STRUCT Decoding (UDS Bytes -> JSON)
  • Test: REPEATING_STRUCT Schema Generierung
  • Test: MULTIPLEXED Encoding/Decoding
  • Test: END_OF_PDU mit verschiedenen Laengen
  • Test: DYNAMIC_LENGTH Array Encoding/Decoding
  • Test: Verschachtelte Structures (3+ Ebenen)
  • Test: Gemischte Typen (STRUCT mit REPEATING_STRUCT Member)
  • Test: Leere Strukturen -> Fehlerbehandlung
  • Test: Maximale Verschachtelungstiefe -> Stack Overflow Prevention
  • Test: Roundtrip (JSON -> UDS -> JSON) fuer alle Typen

CrossCheck & Constraints

  • Pruefung gegen ISO 22901-1 (ODX) Datentyp-Definitionen
  • Pruefung gegen ISO 17978-3 Data Resource Spezifikation
  • Constraint: Maximale Verschachtelungstiefe = 10 (Stack Safety)
  • Constraint: Maximale Array-Laenge fuer REPEATING_STRUCT = 65535
  • Constraint: Generiertes JSON Schema muss Draft-07 konform sein
  • Regressionstests: Bestehende einfache Typen unveraendert
  • Bestehender test_non_supported_types muss aktualisiert werden

Security Audit

  • Stack Overflow bei tief verschachtelten Strukturen (Recursion Depth Limit)
  • Memory Exhaustion bei grossen REPEATING_STRUCTs (Allocation Limit)
  • Malformed MDD mit zirkulaeren Referenzen -> Deadlock/Infinite Loop Prevention
  • UDS Response Parsing: Buffer Overread bei falschen Laengenangaben
  • Input Validation: JSON Payload Groesse begrenzen

Zeitschaetzung

Aufwand
Konventioneller Entwickler 5 PT
KI-Agent 2 PT

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions