Add feature for not generating diagnostic files

Change-Id: I39ed77b2c5bb693129eb47214b58bae53f46649c
This commit is contained in:
Henrik Wahlqvist
2025-05-27 14:09:00 +02:00
parent 39a7320cb0
commit e3bd76fcec
4 changed files with 35 additions and 8 deletions

View File

@@ -432,6 +432,11 @@ Default is True.
Include diagnostics elements or not.
Default is True.
It is also possible to set it to "manual", "manual_dids" or "manual_dtcs".
These settings make it so that the files *VcDIDAPI.\** and/or *VcCoreSupplierAbstraction.h* are not generated.
Additionally, all DIDs and/or DTCs, from the yaml interface files,
will be added to the [generated yaml interface file](#generateYamlInterfaceFile).
#### includeNvm
Include non-volatile memory elements or not.

View File

@@ -388,6 +388,10 @@ class ZCCore(ProblemLogger):
def generate_dtc_files(self):
"""Generate required ZC Core header files.
Only use for some projects, which doesn't copy static code."""
includeDiagnostics = self._prj_cfg.get_composition_config("includeDiagnostics")
if includeDiagnostics in ["manual", "manual_dtcs"]:
self.warning(f'includeDiagnostics is set to {includeDiagnostics}, not generating DTC files.')
return
file_contents = {
'.h': self.get_header_content()
}

View File

@@ -782,6 +782,10 @@ class ZCDIDs(ProblemLogger):
"""Generate required DID API files.
Only use for some projects, which doesn't copy static code."""
if self.valid_dids is None:
includeDiagnostics = self._build_cfg.get_composition_config("includeDiagnostics")
if includeDiagnostics in ["manual", "manual_dids"]:
self.warning(f'includeDiagnostics is set to {includeDiagnostics}, not generating DID files.')
return
self.critical('Valid DIDs not set. Cannot generate DID files.')
return

View File

@@ -322,14 +322,29 @@ class CompositionYaml(ProblemLogger):
"""
diag_dict = {}
diagnostics = self.composition_spec.get("diagnostics", {})
dids = diagnostics.get("dids", {})
self.zc_dids.valid_dids = dids
events = self._edit_event_dict(diagnostics.get("events", {}))
if self.build_cfg.get_composition_config("includeDiagnostics") == "manual":
dids = diagnostics.get("dids", {})
events = self._edit_event_dict(diagnostics.get("events", {}))
elif self.build_cfg.get_composition_config("includeDiagnostics") == "manual_dids":
dids = diagnostics.get("dids", {})
events_tmp = self._edit_event_dict(diagnostics.get("events", {}))
events = self.zc_core.get_diagnostic_trouble_codes(events_tmp)
elif self.build_cfg.get_composition_config("includeDiagnostics") == "manual_dtcs":
self.zc_dids.valid_dids = diagnostics.get("dids", {})
dids = self.zc_dids.valid_dids
events = self._edit_event_dict(diagnostics.get("events", {}))
else:
self.zc_dids.valid_dids = diagnostics.get("dids", {})
dids = self.zc_dids.valid_dids
events_tmp = self._edit_event_dict(diagnostics.get("events", {}))
events = self.zc_core.get_diagnostic_trouble_codes(events_tmp)
rids = diagnostics.get("rids", {})
if dids:
diag_dict["dids"] = self.zc_dids.valid_dids
diag_dict["dids"] = dids
if events:
diag_dict["events"] = self.zc_core.get_diagnostic_trouble_codes(events)
diag_dict["events"] = events
if rids:
diag_dict["rids"] = rids
self.warning("Will not generate code for RIDs, add manually.")
@@ -552,9 +567,8 @@ class CompositionYaml(ProblemLogger):
swcs[software_component_name]["ports"] = self._get_ports_info()
if self.composition_spec.get("io") is not None:
swcs[software_component_name]["io"] = self.composition_spec["io"]
diagnostic_info = self._get_diagnostic_info()
if self.build_cfg.get_composition_config("includeDiagnostics"):
swcs[software_component_name]["diagnostics"] = diagnostic_info
if self.build_cfg.get_composition_config("includeDiagnostics") is not False:
swcs[software_component_name]["diagnostics"] = self._get_diagnostic_info()
nvm_info, nvm_data_types_tmp, static_variables = self._get_nvm_info()
if self.build_cfg.get_composition_config("includeNvm"):
swcs[software_component_name]["nv-needs"] = nvm_info