YAML/JSON Format for OpenSOVD CDA Diagnostic Descriptions #70
Replies: 3 comments 2 replies
-
|
@bburda42dot I see one more major benefit of adding a YAML/JSON diagnostic configuration option: it would make open-sovd more open 🙂, since it would no longer require commercial ODX tools to prototype or experiment with CDA |
Beta Was this translation helpful? Give feedback.
-
|
@bburda42dot Thanks for the proposal. I haven't read through it yet, but I wanted to point you to https://github.com/rnd-ash/OpenVehicleDiag/blob/main/SCHEMA.md — another attempt at ODX-less diagnostics, though incomplete. This is just for documentation purposes; I'm not suggesting we use it. I would welcome such contribution. |
Beta Was this translation helpful? Give feedback.
-
|
Some potential issues based on CDA behavior/requirements for different endpoints, might've missed things, please correct if so:
I didn't get how the access patterns are applied to the services? Usually you'd want the ability to set them to any service. Same for the different levels in the security access. E.g. how can I say the the programming session requires a specific access pattern, and SID 34 requires security access level 5? The CDA utilizes functional classes to distinguish between coding services (/configuration) and data services, is there a way to set that? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
OpenSOVD CDA currently consumes ECU diagnostic descriptions as
.mddruntime artifacts, typically generated from ODX/PDX.This topic proposes adopting an official, versioned, schema-validated authoring format for diagnostic descriptions (authored as YAML or JSON, validated by a published JSON Schema) and providing a supported converter that compiles the document into a
.mddartifact that CDA already loads.This is an additive workflow:
Motivation
ODX/PDX pipelines are well-suited for standards-aligned production workflows, but can be high-friction when teams need to:
Authoring
.mdddirectly is not practical: it is a compact runtime artifact, not a source format.For an open source community, a low-barrier, text-based source format also improves:
Goals
.mddso CDA runtime remains unchanged.Non-goals
.mdd).Proposal
1) Official, versioned authoring format (YAML/JSON)
Adopt an OpenSOVD CDA Diagnostic Description document format with a fixed schema identifier:
The normative reference is the JSON Schema (draft 2020-12). Documents may be authored as YAML or JSON, but must validate against the schema.
Key design properties (based on the current draft schema):
additionalProperties: false) to catch typos.x-oemfree-form objects.2) Supported YAML/JSON → MDD converter
Provide a supported converter/CLI that:
.mddartifact.Example CLI (name TBD):
CDA runtime behavior remains unchanged: CDA continues to load
.mddfiles as it does today.Scope: v1 “must be useful” set
The initial schema should cover the most common constructs needed in practice:
x-oemextensionsDeveloper Experience
.mddbytes (or at least identical semantic payload) to support reproducible builds.Compatibility and rollout
.mddworkflows continue unchanged.Suggested rollout:
Versioning is anchored on the schema id. v1 is:
opensovd.cda.diagdesc/v1Future breaking changes would be published as v2 with a new schema id.
Alternatives considered
.mddkeeps runtime stable.Example
Example YAML, JSON schema, validation script and README.md describing it, can be found here:
https://github.com/bburda42dot/diagnostic_yaml_proposal
Beta Was this translation helpful? Give feedback.
All reactions