/**
 * @file dtc_defs.h
 *
 * @brief Header file for Diagnostic Trouble Code (DTC) definitions in the ChainLube application.
 *
 * This file contains definitions for Diagnostic Trouble Codes (DTC) in the ChainLube project.
 * It includes enums for DTC active status, severity levels, and specific DTC codes.
 * The file also defines an array of DTC definitions and a timestamp indicating the generation time.
 *
 * @note This file is auto-generated by a script on {{ timestamp }}.
 *
 * @author Marcel Peterkau
 * @date   09.01.2024
 */

#ifndef DTC_DEFS_H
#define DTC_DEFS_H

#include <stdint.h>

typedef uint32_t DTCNum_t;

typedef enum
{
  DTC_INACTIVE,
  DTC_ACTIVE,
  DTC_PREVIOUS
} DTCActive_t;

typedef enum
{
  DTC_NONE,
  DTC_INFO,
  DTC_WARN,
  DTC_CRITICAL
} DTCSeverity_t;

typedef struct {
  DTCNum_t code;
  DTCSeverity_t severity;
} DTC_t;

{% for dtc in dtc_macros -%}
{{ dtc }}
{% endfor %}
const DTC_t dtc_definitions[] = {
{% for struct in dtc_structs -%}
{{ struct }}
{% endfor -%}
};

const uint32_t dtc_generation_timestamp = {{ timestamp_unix }};

#endif // DTC_DEFS_H