forked from eclipse-opensovd/opensovd
-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
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 Hauptlogikcda-core/src/diag_kernel/mod.rs— Tests und DOP-Verarbeitungcda-database/— MDD Parsing fuer komplexe Typencda-interfaces/src/datatypes/— Datentyp-Definitionencda-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 -
MULTIPLEXEDDaten -> 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_typesmuss 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 |
Reactions are currently unavailable