// Generator version : v3.1
// Generation time   : 2024.12.07 13:54:48
// DBC filename      : DMK-RP-01_CAN_V0.1_20241207.dbc
#pragma once

#ifdef __cplusplus
extern "C" {
#endif

#include <stdint.h>

// DBC file version
#define VER_CANMATRIX_MAJ (0U)
#define VER_CANMATRIX_MIN (0U)

// include current dbc-driver compilation config
#include "canmatrix-config.h"

#ifdef CANMATRIX_USE_DIAG_MONITORS
// This file must define:
// base monitor struct
#include "canmonitorutil.h"

#endif // CANMATRIX_USE_DIAG_MONITORS


// DLC maximum value which is used as the limit for frame's data buffer size.
// Client can set its own value (not sure why) in driver-config
// or can test it on some limit specified by application
// e.g.: static_assert(TESTDB_MAX_DLC_VALUE <= APPLICATION_FRAME_DATA_SIZE, "Max DLC value in the driver is too big")
#ifndef CANMATRIX_MAX_DLC_VALUE
// The value which was found out by generator (real max value)
#define CANMATRIX_MAX_DLC_VALUE 8U
#endif

// The limit is used for setting frame's data bytes
#define CANMATRIX_VALIDATE_DLC(msgDlc) (((msgDlc) <= (CANMATRIX_MAX_DLC_VALUE)) ? (msgDlc) : (CANMATRIX_MAX_DLC_VALUE))

// Initial byte value to be filles in data bytes of the frame before pack signals
// User can define its own custom value in driver-config file
#ifndef CANMATRIX_INITIAL_BYTE_VALUE
#define CANMATRIX_INITIAL_BYTE_VALUE 0U
#endif


// This is a message for not used signals, created by Vector CANdb++ DBC OLE DB Provider.
// def @Panel_Key CAN Message (513  0x201)
#define Panel_Key_IDE (0U)
#define Panel_Key_DLC (8U)
#define Panel_Key_CANID (0x201U)
#define Panel_Key_CYC (25U)

// Value tables for @KEY_ZY_D signal

#ifndef KEY_ZY_D_Panel_Key_PRESSED
#define KEY_ZY_D_Panel_Key_PRESSED (1)
#endif

#ifndef KEY_ZY_D_Panel_Key_NOT_PRESS
#define KEY_ZY_D_Panel_Key_NOT_PRESS (0)
#endif


// Value tables for @KEY_ZY_U signal

#ifndef KEY_ZY_U_Panel_Key_PRESSED
#define KEY_ZY_U_Panel_Key_PRESSED (1)
#endif

#ifndef KEY_ZY_U_Panel_Key_NOT_PRESS
#define KEY_ZY_U_Panel_Key_NOT_PRESS (0)
#endif


// Value tables for @KEY_TT_R signal

#ifndef KEY_TT_R_Panel_Key_PRESSED
#define KEY_TT_R_Panel_Key_PRESSED (1)
#endif

#ifndef KEY_TT_R_Panel_Key_NOT_PRESS
#define KEY_TT_R_Panel_Key_NOT_PRESS (0)
#endif


// Value tables for @KEY_TT_F signal

#ifndef KEY_TT_F_Panel_Key_PRESSED
#define KEY_TT_F_Panel_Key_PRESSED (1)
#endif

#ifndef KEY_TT_F_Panel_Key_NOT_PRESS
#define KEY_TT_F_Panel_Key_NOT_PRESS (0)
#endif


// Value tables for @KEY_KB_R signal

#ifndef KEY_KB_R_Panel_Key_PRESSED
#define KEY_KB_R_Panel_Key_PRESSED (1)
#endif

#ifndef KEY_KB_R_Panel_Key_NOT_PRESS
#define KEY_KB_R_Panel_Key_NOT_PRESS (0)
#endif


// Value tables for @KEY_KB_F signal

#ifndef KEY_KB_F_Panel_Key_PRESSED
#define KEY_KB_F_Panel_Key_PRESSED (1)
#endif

#ifndef KEY_KB_F_Panel_Key_NOT_PRESS
#define KEY_KB_F_Panel_Key_NOT_PRESS (0)
#endif


// Value tables for @KEY_HG_R signal

#ifndef KEY_HG_R_Panel_Key_PRESSED
#define KEY_HG_R_Panel_Key_PRESSED (1)
#endif

#ifndef KEY_HG_R_Panel_Key_NOT_PRESS
#define KEY_HG_R_Panel_Key_NOT_PRESS (0)
#endif


// Value tables for @KEY_HG_F signal

#ifndef KEY_HG_F_Panel_Key_PRESSED
#define KEY_HG_F_Panel_Key_PRESSED (1)
#endif

#ifndef KEY_HG_F_Panel_Key_NOT_PRESS
#define KEY_HG_F_Panel_Key_NOT_PRESS (0)
#endif


// Value tables for @KEY_YT_D signal

#ifndef KEY_YT_D_Panel_Key_PRESSED
#define KEY_YT_D_Panel_Key_PRESSED (1)
#endif

#ifndef KEY_YT_D_Panel_Key_NOT_PRESS
#define KEY_YT_D_Panel_Key_NOT_PRESS (0)
#endif


// Value tables for @KEY_YT_U signal

#ifndef KEY_YT_U_Panel_Key_PRESSED
#define KEY_YT_U_Panel_Key_PRESSED (1)
#endif

#ifndef KEY_YT_U_Panel_Key_NOT_PRESS
#define KEY_YT_U_Panel_Key_NOT_PRESS (0)
#endif


// Value tables for @KEY_TZ_D signal

#ifndef KEY_TZ_D_Panel_Key_PRESSED
#define KEY_TZ_D_Panel_Key_PRESSED (1)
#endif

#ifndef KEY_TZ_D_Panel_Key_NOT_PRESS
#define KEY_TZ_D_Panel_Key_NOT_PRESS (0)
#endif


// Value tables for @KEY_TZ_U signal

#ifndef KEY_TZ_U_Panel_Key_PRESSED
#define KEY_TZ_U_Panel_Key_PRESSED (1)
#endif

#ifndef KEY_TZ_U_Panel_Key_NOT_PRESS
#define KEY_TZ_U_Panel_Key_NOT_PRESS (0)
#endif


// Value tables for @KEY_ZY_FAN signal

#ifndef KEY_ZY_FAN_Panel_Key_PRESSED
#define KEY_ZY_FAN_Panel_Key_PRESSED (1)
#endif

#ifndef KEY_ZY_FAN_Panel_Key_NOT_PRESS
#define KEY_ZY_FAN_Panel_Key_NOT_PRESS (0)
#endif


// Value tables for @KEY_ZY_HEAT signal

#ifndef KEY_ZY_HEAT_Panel_Key_PRESSED
#define KEY_ZY_HEAT_Panel_Key_PRESSED (1)
#endif

#ifndef KEY_ZY_HEAT_Panel_Key_NOT_PRESS
#define KEY_ZY_HEAT_Panel_Key_NOT_PRESS (0)
#endif


// Value tables for @KEY_ZY_MSSG signal

#ifndef KEY_ZY_MSSG_Panel_Key_PRESSED
#define KEY_ZY_MSSG_Panel_Key_PRESSED (1)
#endif

#ifndef KEY_ZY_MSSG_Panel_Key_NOT_PRESS
#define KEY_ZY_MSSG_Panel_Key_NOT_PRESS (0)
#endif


// Value tables for @KEY_MEMORY_3 signal

#ifndef KEY_MEMORY_3_Panel_Key_PRESSED
#define KEY_MEMORY_3_Panel_Key_PRESSED (1)
#endif

#ifndef KEY_MEMORY_3_Panel_Key_NOT_PRESS
#define KEY_MEMORY_3_Panel_Key_NOT_PRESS (0)
#endif


// Value tables for @KEY_MEMORY_2 signal

#ifndef KEY_MEMORY_2_Panel_Key_PRESSED
#define KEY_MEMORY_2_Panel_Key_PRESSED (1)
#endif

#ifndef KEY_MEMORY_2_Panel_Key_NOT_PRESS
#define KEY_MEMORY_2_Panel_Key_NOT_PRESS (0)
#endif


// Value tables for @KEY_MEMORY_1 signal

#ifndef KEY_MEMORY_1_Panel_Key_PRESSED
#define KEY_MEMORY_1_Panel_Key_PRESSED (1)
#endif

#ifndef KEY_MEMORY_1_Panel_Key_NOT_PRESS
#define KEY_MEMORY_1_Panel_Key_NOT_PRESS (0)
#endif


// Value tables for @KEY_MEMORY_SET signal

#ifndef KEY_MEMORY_SET_Panel_Key_PRESSED
#define KEY_MEMORY_SET_Panel_Key_PRESSED (1)
#endif

#ifndef KEY_MEMORY_SET_Panel_Key_NOT_PRESS
#define KEY_MEMORY_SET_Panel_Key_NOT_PRESS (0)
#endif


// Value tables for @KEY_ZY_FLAT signal

#ifndef KEY_ZY_FLAT_Panel_Key_PRESSED
#define KEY_ZY_FLAT_Panel_Key_PRESSED (1)
#endif

#ifndef KEY_ZY_FLAT_Panel_Key_NOT_PRESS
#define KEY_ZY_FLAT_Panel_Key_NOT_PRESS (0)
#endif


// Value tables for @KEY_RESET signal

#ifndef KEY_RESET_Panel_Key_PRESSED
#define KEY_RESET_Panel_Key_PRESSED (1)
#endif

#ifndef KEY_RESET_Panel_Key_NOT_PRESS
#define KEY_RESET_Panel_Key_NOT_PRESS (0)
#endif


typedef struct
{
#ifdef CANMATRIX_USE_BITS_SIGNAL

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_ZY_D : 1;                      //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_ZY_U : 1;                      //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_TT_R : 1;                      //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_TT_F : 1;                      //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_KB_R : 1;                      //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_KB_F : 1;                      //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_HG_R : 1;                      //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_HG_F : 1;                      //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_YT_D : 1;                      //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_YT_U : 1;                      //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_TZ_D : 1;                      //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_TZ_U : 1;                      //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_ZY_FAN : 1;                    //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_ZY_HEAT : 1;                   //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_ZY_MSSG : 1;                   //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_MEMORY_3 : 1;                  //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_MEMORY_2 : 1;                  //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_MEMORY_1 : 1;                  //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_MEMORY_SET : 1;                //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_ZY_FLAT : 1;                   //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_RESET : 1;                     //      Bits= 1

#else

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_ZY_D;                          //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_ZY_U;                          //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_TT_R;                          //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_TT_F;                          //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_KB_R;                          //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_KB_F;                          //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_HG_R;                          //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_HG_F;                          //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_YT_D;                          //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_YT_U;                          //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_TZ_D;                          //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_TZ_U;                          //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_ZY_FAN;                        //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_ZY_HEAT;                       //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_ZY_MSSG;                       //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_MEMORY_3;                      //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_MEMORY_2;                      //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_MEMORY_1;                      //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_MEMORY_SET;                    //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_ZY_FLAT;                       //      Bits= 1

  //  1 : "PRESSED"
  //  0 : "NOT_PRESS"
  uint8_t KEY_RESET;                         //      Bits= 1

#endif // CANMATRIX_USE_BITS_SIGNAL

#ifdef CANMATRIX_USE_DIAG_MONITORS

  FrameMonitor_t mon1;

#endif // CANMATRIX_USE_DIAG_MONITORS

} Panel_Key_t;

// def @SCM_STATE CAN Message (769  0x301)
#define SCM_STATE_IDE (0U)
#define SCM_STATE_DLC (8U)
#define SCM_STATE_CANID (0x301U)

// Value tables for @MOTOR_HG_STATE signal

#ifndef MOTOR_HG_STATE_SCM_STATE_FAULT
#define MOTOR_HG_STATE_SCM_STATE_FAULT (3)
#endif

#ifndef MOTOR_HG_STATE_SCM_STATE_ACT_CCW
#define MOTOR_HG_STATE_SCM_STATE_ACT_CCW (2)
#endif

#ifndef MOTOR_HG_STATE_SCM_STATE_ACT_CW
#define MOTOR_HG_STATE_SCM_STATE_ACT_CW (1)
#endif

#ifndef MOTOR_HG_STATE_SCM_STATE_NO_ACT
#define MOTOR_HG_STATE_SCM_STATE_NO_ACT (0)
#endif


// Value tables for @MOTOR_KB_STATE signal

#ifndef MOTOR_KB_STATE_SCM_STATE_FAULT
#define MOTOR_KB_STATE_SCM_STATE_FAULT (3)
#endif

#ifndef MOTOR_KB_STATE_SCM_STATE_ACT_CCW
#define MOTOR_KB_STATE_SCM_STATE_ACT_CCW (2)
#endif

#ifndef MOTOR_KB_STATE_SCM_STATE_ACT_CW
#define MOTOR_KB_STATE_SCM_STATE_ACT_CW (1)
#endif

#ifndef MOTOR_KB_STATE_SCM_STATE_NO_ACT
#define MOTOR_KB_STATE_SCM_STATE_NO_ACT (0)
#endif


// Value tables for @MOTOR_TT_STATE signal

#ifndef MOTOR_TT_STATE_SCM_STATE_FAULT
#define MOTOR_TT_STATE_SCM_STATE_FAULT (3)
#endif

#ifndef MOTOR_TT_STATE_SCM_STATE_ACT_CCW
#define MOTOR_TT_STATE_SCM_STATE_ACT_CCW (2)
#endif

#ifndef MOTOR_TT_STATE_SCM_STATE_ACT_CW
#define MOTOR_TT_STATE_SCM_STATE_ACT_CW (1)
#endif

#ifndef MOTOR_TT_STATE_SCM_STATE_NO_ACT
#define MOTOR_TT_STATE_SCM_STATE_NO_ACT (0)
#endif


// Value tables for @MOTOR_TZ_STATE signal

#ifndef MOTOR_TZ_STATE_SCM_STATE_FAULT
#define MOTOR_TZ_STATE_SCM_STATE_FAULT (3)
#endif

#ifndef MOTOR_TZ_STATE_SCM_STATE_ACT_CCW
#define MOTOR_TZ_STATE_SCM_STATE_ACT_CCW (2)
#endif

#ifndef MOTOR_TZ_STATE_SCM_STATE_ACT_CW
#define MOTOR_TZ_STATE_SCM_STATE_ACT_CW (1)
#endif

#ifndef MOTOR_TZ_STATE_SCM_STATE_NO_ACT
#define MOTOR_TZ_STATE_SCM_STATE_NO_ACT (0)
#endif


// Value tables for @MOTOR_YT_STATE signal

#ifndef MOTOR_YT_STATE_SCM_STATE_FAULT
#define MOTOR_YT_STATE_SCM_STATE_FAULT (3)
#endif

#ifndef MOTOR_YT_STATE_SCM_STATE_ACT_CCW
#define MOTOR_YT_STATE_SCM_STATE_ACT_CCW (2)
#endif

#ifndef MOTOR_YT_STATE_SCM_STATE_ACT_CW
#define MOTOR_YT_STATE_SCM_STATE_ACT_CW (1)
#endif

#ifndef MOTOR_YT_STATE_SCM_STATE_NO_ACT
#define MOTOR_YT_STATE_SCM_STATE_NO_ACT (0)
#endif


// Value tables for @MOTOR_ZY_STATE signal

#ifndef MOTOR_ZY_STATE_SCM_STATE_FAULT
#define MOTOR_ZY_STATE_SCM_STATE_FAULT (3)
#endif

#ifndef MOTOR_ZY_STATE_SCM_STATE_ACT_CCW
#define MOTOR_ZY_STATE_SCM_STATE_ACT_CCW (2)
#endif

#ifndef MOTOR_ZY_STATE_SCM_STATE_ACT_CW
#define MOTOR_ZY_STATE_SCM_STATE_ACT_CW (1)
#endif

#ifndef MOTOR_ZY_STATE_SCM_STATE_NO_ACT
#define MOTOR_ZY_STATE_SCM_STATE_NO_ACT (0)
#endif


// Value tables for @ZY_FAN_STATE signal

#ifndef ZY_FAN_STATE_SCM_STATE_LEVEL3
#define ZY_FAN_STATE_SCM_STATE_LEVEL3 (3)
#endif

#ifndef ZY_FAN_STATE_SCM_STATE_LEVEL2
#define ZY_FAN_STATE_SCM_STATE_LEVEL2 (2)
#endif

#ifndef ZY_FAN_STATE_SCM_STATE_LEVEL1
#define ZY_FAN_STATE_SCM_STATE_LEVEL1 (1)
#endif

#ifndef ZY_FAN_STATE_SCM_STATE_OFF
#define ZY_FAN_STATE_SCM_STATE_OFF (0)
#endif


// Value tables for @ZY_HEAT_STATE signal

#ifndef ZY_HEAT_STATE_SCM_STATE_LEVEL3
#define ZY_HEAT_STATE_SCM_STATE_LEVEL3 (3)
#endif

#ifndef ZY_HEAT_STATE_SCM_STATE_LEVEL2
#define ZY_HEAT_STATE_SCM_STATE_LEVEL2 (2)
#endif

#ifndef ZY_HEAT_STATE_SCM_STATE_LEVEL1
#define ZY_HEAT_STATE_SCM_STATE_LEVEL1 (1)
#endif

#ifndef ZY_HEAT_STATE_SCM_STATE_OFF
#define ZY_HEAT_STATE_SCM_STATE_OFF (0)
#endif


// Value tables for @ZY_MSSG_STATE signal

#ifndef ZY_MSSG_STATE_SCM_STATE_LEVEL3
#define ZY_MSSG_STATE_SCM_STATE_LEVEL3 (3)
#endif

#ifndef ZY_MSSG_STATE_SCM_STATE_LEVEL2
#define ZY_MSSG_STATE_SCM_STATE_LEVEL2 (2)
#endif

#ifndef ZY_MSSG_STATE_SCM_STATE_LEVEL1
#define ZY_MSSG_STATE_SCM_STATE_LEVEL1 (1)
#endif

#ifndef ZY_MSSG_STATE_SCM_STATE_OFF
#define ZY_MSSG_STATE_SCM_STATE_OFF (0)
#endif


typedef struct
{
#ifdef CANMATRIX_USE_BITS_SIGNAL

  //  3 : "FAULT"
  //  2 : "ACT_CCW"
  //  1 : "ACT_CW"
  //  0 : "NO_ACT"
  uint8_t MOTOR_HG_STATE : 2;                //      Bits= 2

  //  3 : "FAULT"
  //  2 : "ACT_CCW"
  //  1 : "ACT_CW"
  //  0 : "NO_ACT"
  uint8_t MOTOR_KB_STATE : 2;                //      Bits= 2

  //  3 : "FAULT"
  //  2 : "ACT_CCW"
  //  1 : "ACT_CW"
  //  0 : "NO_ACT"
  uint8_t MOTOR_TT_STATE : 2;                //      Bits= 2

  //  3 : "FAULT"
  //  2 : "ACT_CCW"
  //  1 : "ACT_CW"
  //  0 : "NO_ACT"
  uint8_t MOTOR_TZ_STATE : 2;                //      Bits= 2

  //  3 : "FAULT"
  //  2 : "ACT_CCW"
  //  1 : "ACT_CW"
  //  0 : "NO_ACT"
  uint8_t MOTOR_YT_STATE : 2;                //      Bits= 2

  //  3 : "FAULT"
  //  2 : "ACT_CCW"
  //  1 : "ACT_CW"
  //  0 : "NO_ACT"
  uint8_t MOTOR_ZY_STATE : 2;                //      Bits= 2

  //  3 : "LEVEL3"
  //  2 : "LEVEL2"
  //  1 : "LEVEL1"
  //  0 : "OFF"
  uint8_t ZY_FAN_STATE : 2;                  //      Bits= 2

  //  3 : "LEVEL3"
  //  2 : "LEVEL2"
  //  1 : "LEVEL1"
  //  0 : "OFF"
  uint8_t ZY_HEAT_STATE : 2;                 //      Bits= 2

  //  3 : "LEVEL3"
  //  2 : "LEVEL2"
  //  1 : "LEVEL1"
  //  0 : "OFF"
  uint8_t ZY_MSSG_STATE : 2;                 //      Bits= 2

  uint8_t test1;                             //      Bits= 8

  uint8_t test2;                             //      Bits= 8

  uint8_t test3;                             //      Bits= 8

  uint8_t test4;                             //      Bits= 8

  uint8_t test5;                             //      Bits= 8

#else

  //  3 : "FAULT"
  //  2 : "ACT_CCW"
  //  1 : "ACT_CW"
  //  0 : "NO_ACT"
  uint8_t MOTOR_HG_STATE;                    //      Bits= 2

  //  3 : "FAULT"
  //  2 : "ACT_CCW"
  //  1 : "ACT_CW"
  //  0 : "NO_ACT"
  uint8_t MOTOR_KB_STATE;                    //      Bits= 2

  //  3 : "FAULT"
  //  2 : "ACT_CCW"
  //  1 : "ACT_CW"
  //  0 : "NO_ACT"
  uint8_t MOTOR_TT_STATE;                    //      Bits= 2

  //  3 : "FAULT"
  //  2 : "ACT_CCW"
  //  1 : "ACT_CW"
  //  0 : "NO_ACT"
  uint8_t MOTOR_TZ_STATE;                    //      Bits= 2

  //  3 : "FAULT"
  //  2 : "ACT_CCW"
  //  1 : "ACT_CW"
  //  0 : "NO_ACT"
  uint8_t MOTOR_YT_STATE;                    //      Bits= 2

  //  3 : "FAULT"
  //  2 : "ACT_CCW"
  //  1 : "ACT_CW"
  //  0 : "NO_ACT"
  uint8_t MOTOR_ZY_STATE;                    //      Bits= 2

  //  3 : "LEVEL3"
  //  2 : "LEVEL2"
  //  1 : "LEVEL1"
  //  0 : "OFF"
  uint8_t ZY_FAN_STATE;                      //      Bits= 2

  //  3 : "LEVEL3"
  //  2 : "LEVEL2"
  //  1 : "LEVEL1"
  //  0 : "OFF"
  uint8_t ZY_HEAT_STATE;                     //      Bits= 2

  //  3 : "LEVEL3"
  //  2 : "LEVEL2"
  //  1 : "LEVEL1"
  //  0 : "OFF"
  uint8_t ZY_MSSG_STATE;                     //      Bits= 2

  uint8_t test1;                             //      Bits= 8

  uint8_t test2;                             //      Bits= 8

  uint8_t test3;                             //      Bits= 8

  uint8_t test4;                             //      Bits= 8

  uint8_t test5;                             //      Bits= 8

#endif // CANMATRIX_USE_BITS_SIGNAL

#ifdef CANMATRIX_USE_DIAG_MONITORS

  FrameMonitor_t mon1;

#endif // CANMATRIX_USE_DIAG_MONITORS

} SCM_STATE_t;

// def @SCM_DEBUG1 CAN Message (1025 0x401)
#define SCM_DEBUG1_IDE (0U)
#define SCM_DEBUG1_DLC (8U)
#define SCM_DEBUG1_CANID (0x401U)
#define SCM_DEBUG1_CYC (50U)

typedef struct
{
#ifdef CANMATRIX_USE_BITS_SIGNAL

  uint8_t DEBUG_MOTOR_HG_CURRENT;            //      Bits= 8

  uint8_t DEBUG_MOTOR_HG_STATUS;             //      Bits= 8

  uint16_t DEBUG_MOTOR_HG_LOC;               //      Bits=16

  uint16_t DEBUG_MOTOR_HG_STOP_1;            //      Bits=16

  uint16_t DEBUG_MOTOR_HG_STOP_2;            //      Bits=16

#else

  uint8_t DEBUG_MOTOR_HG_CURRENT;            //      Bits= 8

  uint8_t DEBUG_MOTOR_HG_STATUS;             //      Bits= 8

  uint16_t DEBUG_MOTOR_HG_LOC;               //      Bits=16

  uint16_t DEBUG_MOTOR_HG_STOP_1;            //      Bits=16

  uint16_t DEBUG_MOTOR_HG_STOP_2;            //      Bits=16

#endif // CANMATRIX_USE_BITS_SIGNAL

#ifdef CANMATRIX_USE_DIAG_MONITORS

  FrameMonitor_t mon1;

#endif // CANMATRIX_USE_DIAG_MONITORS

} SCM_DEBUG1_t;

// def @SCM_DEBUG2 CAN Message (1026 0x402)
#define SCM_DEBUG2_IDE (0U)
#define SCM_DEBUG2_DLC (8U)
#define SCM_DEBUG2_CANID (0x402U)
#define SCM_DEBUG2_CYC (50U)

typedef struct
{
#ifdef CANMATRIX_USE_BITS_SIGNAL

  uint8_t DEBUG_MOTOR_KB_CURRENT;            //      Bits= 8

  uint8_t DEBUG_MOTOR_KB_STATUS;             //      Bits= 8

  uint16_t DEBUG_MOTOR_KB_LOC;               //      Bits=16

  uint16_t DEBUG_MOTOR_KB_STOP_1;            //      Bits=16

  uint16_t DEBUG_MOTOR_KB_STOP_2;            //      Bits=16

#else

  uint8_t DEBUG_MOTOR_KB_CURRENT;            //      Bits= 8

  uint8_t DEBUG_MOTOR_KB_STATUS;             //      Bits= 8

  uint16_t DEBUG_MOTOR_KB_LOC;               //      Bits=16

  uint16_t DEBUG_MOTOR_KB_STOP_1;            //      Bits=16

  uint16_t DEBUG_MOTOR_KB_STOP_2;            //      Bits=16

#endif // CANMATRIX_USE_BITS_SIGNAL

#ifdef CANMATRIX_USE_DIAG_MONITORS

  FrameMonitor_t mon1;

#endif // CANMATRIX_USE_DIAG_MONITORS

} SCM_DEBUG2_t;

// def @SCM_DEBUG3 CAN Message (1027 0x403)
#define SCM_DEBUG3_IDE (0U)
#define SCM_DEBUG3_DLC (8U)
#define SCM_DEBUG3_CANID (0x403U)
#define SCM_DEBUG3_CYC (50U)

typedef struct
{
#ifdef CANMATRIX_USE_BITS_SIGNAL

  uint8_t DEBUG_MOTOR_TT_CURRENT;            //      Bits= 8

  uint8_t DEBUG_MOTOR_TT_STATUS;             //      Bits= 8

  uint16_t DEBUG_MOTOR_TT_LOC;               //      Bits=16

  uint16_t DEBUG_MOTOR_TT_STOP_1;            //      Bits=16

  uint16_t DEBUG_MOTOR_TT_STOP_2;            //      Bits=16

#else

  uint8_t DEBUG_MOTOR_TT_CURRENT;            //      Bits= 8

  uint8_t DEBUG_MOTOR_TT_STATUS;             //      Bits= 8

  uint16_t DEBUG_MOTOR_TT_LOC;               //      Bits=16

  uint16_t DEBUG_MOTOR_TT_STOP_1;            //      Bits=16

  uint16_t DEBUG_MOTOR_TT_STOP_2;            //      Bits=16

#endif // CANMATRIX_USE_BITS_SIGNAL

#ifdef CANMATRIX_USE_DIAG_MONITORS

  FrameMonitor_t mon1;

#endif // CANMATRIX_USE_DIAG_MONITORS

} SCM_DEBUG3_t;

// def @SCM_DEBUG4 CAN Message (1028 0x404)
#define SCM_DEBUG4_IDE (0U)
#define SCM_DEBUG4_DLC (8U)
#define SCM_DEBUG4_CANID (0x404U)
#define SCM_DEBUG4_CYC (50U)

typedef struct
{
#ifdef CANMATRIX_USE_BITS_SIGNAL

  uint8_t DEBUG_MOTOR_ZY_CURRENT;            //      Bits= 8

  uint8_t DEBUG_MOTOR_ZY_STATUS;             //      Bits= 8

  uint16_t DEBUG_MOTOR_ZY_LOC;               //      Bits=16

  uint16_t DEBUG_MOTOR_ZY_STOP_1;            //      Bits=16

  uint16_t DEBUG_MOTOR_ZY_STOP_2;            //      Bits=16

#else

  uint8_t DEBUG_MOTOR_ZY_CURRENT;            //      Bits= 8

  uint8_t DEBUG_MOTOR_ZY_STATUS;             //      Bits= 8

  uint16_t DEBUG_MOTOR_ZY_LOC;               //      Bits=16

  uint16_t DEBUG_MOTOR_ZY_STOP_1;            //      Bits=16

  uint16_t DEBUG_MOTOR_ZY_STOP_2;            //      Bits=16

#endif // CANMATRIX_USE_BITS_SIGNAL

#ifdef CANMATRIX_USE_DIAG_MONITORS

  FrameMonitor_t mon1;

#endif // CANMATRIX_USE_DIAG_MONITORS

} SCM_DEBUG4_t;

// def @SCM_DEBUG5 CAN Message (1029 0x405)
#define SCM_DEBUG5_IDE (0U)
#define SCM_DEBUG5_DLC (8U)
#define SCM_DEBUG5_CANID (0x405U)
#define SCM_DEBUG5_CYC (50U)

typedef struct
{
#ifdef CANMATRIX_USE_BITS_SIGNAL

  uint8_t DEBUG_MOTOR_TZ_CURRENT;            //      Bits= 8

  uint8_t DEBUG_MOTOR_TZ_STATUS;             //      Bits= 8

  uint16_t DEBUG_MOTOR_TZ_LOC;               //      Bits=16

  uint16_t DEBUG_MOTOR_TZ_STOP_1;            //      Bits=16

  uint16_t DEBUG_MOTOR_TZ_STOP_2;            //      Bits=16

#else

  uint8_t DEBUG_MOTOR_TZ_CURRENT;            //      Bits= 8

  uint8_t DEBUG_MOTOR_TZ_STATUS;             //      Bits= 8

  uint16_t DEBUG_MOTOR_TZ_LOC;               //      Bits=16

  uint16_t DEBUG_MOTOR_TZ_STOP_1;            //      Bits=16

  uint16_t DEBUG_MOTOR_TZ_STOP_2;            //      Bits=16

#endif // CANMATRIX_USE_BITS_SIGNAL

#ifdef CANMATRIX_USE_DIAG_MONITORS

  FrameMonitor_t mon1;

#endif // CANMATRIX_USE_DIAG_MONITORS

} SCM_DEBUG5_t;

// def @SCM_DEBUG6 CAN Message (1030 0x406)
#define SCM_DEBUG6_IDE (0U)
#define SCM_DEBUG6_DLC (8U)
#define SCM_DEBUG6_CANID (0x406U)
#define SCM_DEBUG6_CYC (50U)

typedef struct
{
#ifdef CANMATRIX_USE_BITS_SIGNAL

  uint8_t DEBUG_MOTOR_YT_CURRENT;            //      Bits= 8

  uint8_t DEBUG_MOTOR_YT_STATUS;             //      Bits= 8

  uint16_t DEBUG_MOTOR_YT_LOC;               //      Bits=16

  uint16_t DEBUG_MOTOR_YT_STOP_1;            //      Bits=16

  uint16_t DEBUG_MOTOR_YT_STOP_2;            //      Bits=16

#else

  uint8_t DEBUG_MOTOR_YT_CURRENT;            //      Bits= 8

  uint8_t DEBUG_MOTOR_YT_STATUS;             //      Bits= 8

  uint16_t DEBUG_MOTOR_YT_LOC;               //      Bits=16

  uint16_t DEBUG_MOTOR_YT_STOP_1;            //      Bits=16

  uint16_t DEBUG_MOTOR_YT_STOP_2;            //      Bits=16

#endif // CANMATRIX_USE_BITS_SIGNAL

#ifdef CANMATRIX_USE_DIAG_MONITORS

  FrameMonitor_t mon1;

#endif // CANMATRIX_USE_DIAG_MONITORS

} SCM_DEBUG6_t;

// Function signatures

uint32_t Unpack_Panel_Key_CANmatrix(Panel_Key_t* _m, const uint8_t* _d, uint8_t dlc_);
#ifdef CANMATRIX_USE_CANSTRUCT
uint32_t Pack_Panel_Key_CANmatrix(Panel_Key_t* _m, __CoderDbcCanFrame_t__* cframe);
#else
uint32_t Pack_Panel_Key_CANmatrix(Panel_Key_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
#endif // CANMATRIX_USE_CANSTRUCT

uint32_t Unpack_SCM_STATE_CANmatrix(SCM_STATE_t* _m, const uint8_t* _d, uint8_t dlc_);
#ifdef CANMATRIX_USE_CANSTRUCT
uint32_t Pack_SCM_STATE_CANmatrix(SCM_STATE_t* _m, __CoderDbcCanFrame_t__* cframe);
#else
uint32_t Pack_SCM_STATE_CANmatrix(SCM_STATE_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
#endif // CANMATRIX_USE_CANSTRUCT

uint32_t Unpack_SCM_DEBUG1_CANmatrix(SCM_DEBUG1_t* _m, const uint8_t* _d, uint8_t dlc_);
#ifdef CANMATRIX_USE_CANSTRUCT
uint32_t Pack_SCM_DEBUG1_CANmatrix(SCM_DEBUG1_t* _m, __CoderDbcCanFrame_t__* cframe);
#else
uint32_t Pack_SCM_DEBUG1_CANmatrix(SCM_DEBUG1_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
#endif // CANMATRIX_USE_CANSTRUCT

uint32_t Unpack_SCM_DEBUG2_CANmatrix(SCM_DEBUG2_t* _m, const uint8_t* _d, uint8_t dlc_);
#ifdef CANMATRIX_USE_CANSTRUCT
uint32_t Pack_SCM_DEBUG2_CANmatrix(SCM_DEBUG2_t* _m, __CoderDbcCanFrame_t__* cframe);
#else
uint32_t Pack_SCM_DEBUG2_CANmatrix(SCM_DEBUG2_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
#endif // CANMATRIX_USE_CANSTRUCT

uint32_t Unpack_SCM_DEBUG3_CANmatrix(SCM_DEBUG3_t* _m, const uint8_t* _d, uint8_t dlc_);
#ifdef CANMATRIX_USE_CANSTRUCT
uint32_t Pack_SCM_DEBUG3_CANmatrix(SCM_DEBUG3_t* _m, __CoderDbcCanFrame_t__* cframe);
#else
uint32_t Pack_SCM_DEBUG3_CANmatrix(SCM_DEBUG3_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
#endif // CANMATRIX_USE_CANSTRUCT

uint32_t Unpack_SCM_DEBUG4_CANmatrix(SCM_DEBUG4_t* _m, const uint8_t* _d, uint8_t dlc_);
#ifdef CANMATRIX_USE_CANSTRUCT
uint32_t Pack_SCM_DEBUG4_CANmatrix(SCM_DEBUG4_t* _m, __CoderDbcCanFrame_t__* cframe);
#else
uint32_t Pack_SCM_DEBUG4_CANmatrix(SCM_DEBUG4_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
#endif // CANMATRIX_USE_CANSTRUCT

uint32_t Unpack_SCM_DEBUG5_CANmatrix(SCM_DEBUG5_t* _m, const uint8_t* _d, uint8_t dlc_);
#ifdef CANMATRIX_USE_CANSTRUCT
uint32_t Pack_SCM_DEBUG5_CANmatrix(SCM_DEBUG5_t* _m, __CoderDbcCanFrame_t__* cframe);
#else
uint32_t Pack_SCM_DEBUG5_CANmatrix(SCM_DEBUG5_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
#endif // CANMATRIX_USE_CANSTRUCT

uint32_t Unpack_SCM_DEBUG6_CANmatrix(SCM_DEBUG6_t* _m, const uint8_t* _d, uint8_t dlc_);
#ifdef CANMATRIX_USE_CANSTRUCT
uint32_t Pack_SCM_DEBUG6_CANmatrix(SCM_DEBUG6_t* _m, __CoderDbcCanFrame_t__* cframe);
#else
uint32_t Pack_SCM_DEBUG6_CANmatrix(SCM_DEBUG6_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
#endif // CANMATRIX_USE_CANSTRUCT

#ifdef __cplusplus
}
#endif
