Эх сурвалжийг харах

feat(driver_conti_ARS408):add pack&unpack code which generated by dbc-c-code-generator

孙嘉城 3 жил өмнө
parent
commit
4c79eb7e2f
58 өөрчлөгдсөн 50533 нэмэгдсэн , 0 устгасан
  1. 96 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch0-binutil.c
  2. 53 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch0-binutil.h
  3. 109 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch0-config.h
  4. 115 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch0-fmon.c
  5. 49 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch0-fmon.h
  6. 1841 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch0.c
  7. 4044 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch0.h
  8. 96 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch1-binutil.c
  9. 53 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch1-binutil.h
  10. 109 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch1-config.h
  11. 115 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch1-fmon.c
  12. 49 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch1-fmon.h
  13. 1841 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch1.c
  14. 4044 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch1.h
  15. 96 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch2-binutil.c
  16. 53 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch2-binutil.h
  17. 109 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch2-config.h
  18. 115 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch2-fmon.c
  19. 49 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch2-fmon.h
  20. 1841 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch2.c
  21. 4044 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch2.h
  22. 96 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch3-binutil.c
  23. 53 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch3-binutil.h
  24. 109 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch3-config.h
  25. 115 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch3-fmon.c
  26. 49 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch3-fmon.h
  27. 1841 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch3.c
  28. 4044 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch3.h
  29. 96 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch4-binutil.c
  30. 53 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch4-binutil.h
  31. 109 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch4-config.h
  32. 115 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch4-fmon.c
  33. 49 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch4-fmon.h
  34. 1841 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch4.c
  35. 4044 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch4.h
  36. 96 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch5-binutil.c
  37. 53 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch5-binutil.h
  38. 109 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch5-config.h
  39. 115 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch5-fmon.c
  40. 49 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch5-fmon.h
  41. 1841 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch5.c
  42. 4044 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch5.h
  43. 96 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch6-binutil.c
  44. 53 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch6-binutil.h
  45. 109 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch6-config.h
  46. 115 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch6-fmon.c
  47. 49 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch6-fmon.h
  48. 1841 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch6.c
  49. 4044 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch6.h
  50. 96 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch7-binutil.c
  51. 53 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch7-binutil.h
  52. 109 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch7-config.h
  53. 115 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch7-fmon.c
  54. 49 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch7-fmon.h
  55. 1841 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch7.c
  56. 4044 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch7.h
  57. 63 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/canmonitorutil.h
  58. 14 0
      src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/dbccodeconf.h

+ 96 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch0-binutil.c

@@ -0,0 +1,96 @@
+#include "ars408_can_database_ch0-binutil.h"
+
+#ifdef __DEF_ARS408_CAN_DATABASE_CH0__
+
+ars408_can_database_ch0_rx_t ars408_can_database_ch0_rx;
+
+#endif // __DEF_ARS408_CAN_DATABASE_CH0__
+
+uint32_t ars408_can_database_ch0_Receive(ars408_can_database_ch0_rx_t* _m, const uint8_t* _d, uint32_t _id, uint8_t dlc_)
+{
+ uint32_t recid = 0;
+ if ((_id >= 0x8U) && (_id < 0x402U)) {
+  if ((_id >= 0x8U) && (_id < 0x204U)) {
+   if ((_id >= 0x8U) && (_id < 0x201U)) {
+    if (_id == 0x8U) {
+     recid = Unpack_CollDetRelayCtrl_ARS408_can_database_ch0(&(_m->CollDetRelayCtrl), _d, dlc_);
+    } else if (_id == 0x200U) {
+     recid = Unpack_RadarConfiguration_ARS408_can_database_ch0(&(_m->RadarConfiguration), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x201U) {
+     recid = Unpack_RadarState_ARS408_can_database_ch0(&(_m->RadarState), _d, dlc_);
+    } else {
+     if (_id == 0x202U) {
+      recid = Unpack_FilterCfg_ARS408_can_database_ch0(&(_m->FilterCfg), _d, dlc_);
+     } else if (_id == 0x203U) {
+      recid = Unpack_FilterState_Header_ARS408_can_database_ch0(&(_m->FilterState_Header), _d, dlc_);
+     }
+    }
+   }
+  } else {
+   if ((_id >= 0x204U) && (_id < 0x301U)) {
+    if (_id == 0x204U) {
+     recid = Unpack_FilterState_Cfg_ARS408_can_database_ch0(&(_m->FilterState_Cfg), _d, dlc_);
+    } else if (_id == 0x300U) {
+     recid = Unpack_SpeedInformation_ARS408_can_database_ch0(&(_m->SpeedInformation), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x301U) {
+     recid = Unpack_YawRateInformation_ARS408_can_database_ch0(&(_m->YawRateInformation), _d, dlc_);
+    } else {
+     if (_id == 0x400U) {
+      recid = Unpack_CollDetCfg_ARS408_can_database_ch0(&(_m->CollDetCfg), _d, dlc_);
+     } else if (_id == 0x401U) {
+      recid = Unpack_CollDetRegionCfg_ARS408_can_database_ch0(&(_m->CollDetRegionCfg), _d, dlc_);
+     }
+    }
+   }
+  }
+ } else {
+  if ((_id >= 0x402U) && (_id < 0x60CU)) {
+   if ((_id >= 0x402U) && (_id < 0x600U)) {
+    if (_id == 0x402U) {
+     recid = Unpack_CollDetRegionState_ARS408_can_database_ch0(&(_m->CollDetRegionState), _d, dlc_);
+    } else if (_id == 0x408U) {
+     recid = Unpack_CollDetState_ARS408_can_database_ch0(&(_m->CollDetState), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x600U) {
+     recid = Unpack_Cluster_0_Status_ARS408_can_database_ch0(&(_m->Cluster_0_Status), _d, dlc_);
+    } else {
+     if (_id == 0x60AU) {
+      recid = Unpack_Obj_0_Status_ARS408_can_database_ch0(&(_m->Obj_0_Status), _d, dlc_);
+     } else if (_id == 0x60BU) {
+      recid = Unpack_Obj_1_General_ARS408_can_database_ch0(&(_m->Obj_1_General), _d, dlc_);
+     }
+    }
+   }
+  } else {
+   if ((_id >= 0x60CU) && (_id < 0x700U)) {
+    if (_id == 0x60CU) {
+     recid = Unpack_Obj_2_Quality_ARS408_can_database_ch0(&(_m->Obj_2_Quality), _d, dlc_);
+    } else {
+     if (_id == 0x60DU) {
+      recid = Unpack_Obj_3_Extended_ARS408_can_database_ch0(&(_m->Obj_3_Extended), _d, dlc_);
+     } else if (_id == 0x60EU) {
+      recid = Unpack_Obj_4_Warning_ARS408_can_database_ch0(&(_m->Obj_4_Warning), _d, dlc_);
+     }
+    }
+   } else {
+    if (_id == 0x700U) {
+     recid = Unpack_VersionID_ARS408_can_database_ch0(&(_m->VersionID), _d, dlc_);
+    } else {
+     if (_id == 0x701U) {
+      recid = Unpack_Cluster_1_General_ARS408_can_database_ch0(&(_m->Cluster_1_General), _d, dlc_);
+     } else if (_id == 0x702U) {
+      recid = Unpack_Cluster_2_Quality_ARS408_can_database_ch0(&(_m->Cluster_2_Quality), _d, dlc_);
+     }
+    }
+   }
+  }
+ }
+
+ return recid;
+}
+

+ 53 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch0-binutil.h

@@ -0,0 +1,53 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "dbccodeconf.h"
+
+#include "ars408_can_database_ch0.h"
+
+// This version definition comes from main driver version and
+// can be compared in user code space for strict compatibility test
+#define VER_ARS408_CAN_DATABASE_CH0_MAJ (0U)
+#define VER_ARS408_CAN_DATABASE_CH0_MIN (0U)
+
+typedef struct
+{
+  CollDetRelayCtrl_t CollDetRelayCtrl;
+  RadarConfiguration_t RadarConfiguration;
+  RadarState_t RadarState;
+  FilterCfg_t FilterCfg;
+  FilterState_Header_t FilterState_Header;
+  FilterState_Cfg_t FilterState_Cfg;
+  SpeedInformation_t SpeedInformation;
+  YawRateInformation_t YawRateInformation;
+  CollDetCfg_t CollDetCfg;
+  CollDetRegionCfg_t CollDetRegionCfg;
+  CollDetRegionState_t CollDetRegionState;
+  CollDetState_t CollDetState;
+  Cluster_0_Status_t Cluster_0_Status;
+  Obj_0_Status_t Obj_0_Status;
+  Obj_1_General_t Obj_1_General;
+  Obj_2_Quality_t Obj_2_Quality;
+  Obj_3_Extended_t Obj_3_Extended;
+  Obj_4_Warning_t Obj_4_Warning;
+  VersionID_t VersionID;
+  Cluster_1_General_t Cluster_1_General;
+  Cluster_2_Quality_t Cluster_2_Quality;
+} ars408_can_database_ch0_rx_t;
+
+// There is no any TX mapped massage.
+
+uint32_t ars408_can_database_ch0_Receive(ars408_can_database_ch0_rx_t* m, const uint8_t* d, uint32_t msgid, uint8_t dlc);
+
+#ifdef __DEF_ARS408_CAN_DATABASE_CH0__
+
+extern ars408_can_database_ch0_rx_t ars408_can_database_ch0_rx;
+
+#endif // __DEF_ARS408_CAN_DATABASE_CH0__
+
+#ifdef __cplusplus
+}
+#endif

+ 109 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch0-config.h

@@ -0,0 +1,109 @@
+#pragma once
+
+/* include common dbccode configurations */
+#include "dbccodeconf.h"
+
+
+/* ------------------------------------------------------------------------- *
+  This define enables using CAN message structs with bit-fielded signals
+  layout.
+
+  Note(!): bit-feild was not tested properly. */
+
+/* #define ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL */
+
+
+/* ------------------------------------------------------------------------- *
+  This macro enables using CAN message descriptive struct packing functions
+  (by default signature of pack function intakes a few simple typed params
+  for loading data, len, etc). To compile you need to define the struct
+  __CoderDbcCanFrame_t__ which must have fields:
+
+    u32 MsgId (CAN Frame message ID)
+    u8 DLC (CAN Frame payload length field)
+    u8 Data[8] (CAN Frame payload data)
+    u8 IDE (CAN Frame Extended (1) / Standard (0) ID type)
+
+  This struct definition have to be placed (or be included) in dbccodeconf.h */
+
+/* #define ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT */
+
+
+/* ------------------------------------------------------------------------- *
+  All the signals which have values of factor != 1 or offset != 0
+  will be named in message struct with posfix '_ro'. Pack to payload
+  operations will be made on this signal value as well as unpack from payload.
+
+  USE_SIGFLOAT macro makes some difference:
+
+  1. All the '_ro' fields will have a pair field with '_phys' postfix.
+  If only offset != 0 is true then the type of '_phys' signal is the same
+  as '_ro' signal. In other case the type will be @sigfloat_t which
+  have to be defined in user dbccodeconf.h
+
+  2. In pack function '_ro' signal will be rewritten by '_phys' signal, which
+  requires from user to use ONLY '_phys' signal for packing frame
+
+  3. In unpack function '_phys' signal will be written by '_ro' signal.
+  User have to use '_phys' signal to read physical value. */
+
+/* #define ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT */
+
+
+/* ------------------------------------------------------------------------- *
+  Note(!) that the "canmonitorutil.h" must be accessed in include path:
+
+  This macro adds:
+
+  - monitor field @mon1 to message struct
+
+  - capture system tick in unpack function and save value to mon1 field
+  to provide to user better missing frame detection code. For this case
+  user must provide function declared in canmonitorutil.h - GetSysTick()
+  which may return 1ms uptime.
+
+  - calling function FMon_***  (from 'fmon' driver) inside unpack function
+  which is empty by default and have to be filled by user if
+  tests for DLC, rolling, checksum are necessary */
+
+/* #define ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS */
+
+
+/* ------------------------------------------------------------------------- *
+  When monitor using is enabled (ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS) and define below
+  uncommented, additional signal will be added to message struct. ***_expt:
+  expected rolling counter, to perform monitoring rolling counter sequence
+  automatically (result may be tested in dedicated Fmon_*** function) */
+
+/* #define ARS408_CAN_DATABASE_CH0_AUTO_ROLL */
+
+
+/* ------------------------------------------------------------------------- *
+  When monitor using is enabled (ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS) and define below
+  uncommented, frame checksum signal may be handled automatically.
+
+  The signal which may be marked as checksum signal must have substring
+  with next format:
+    <Checksum:XOR8:3>
+
+  where:
+
+  - "Checksum": constant marker word
+
+  - "XOR8": type of method, this text will be passed to GetFrameHash
+  (canmonitorutil.h) function as is, the best use case is to define 'enum
+  DbcCanCrcMethods' in canmonitorutil.h file with all possible
+  checksum algorithms (e.g. XOR8, XOR4 etc)
+
+  - "3": optional value that will be passed to GetFrameHash as integer value
+
+  Function GetFrameHash have to be implemented by user
+
+  In pack function checksum signal will be calculated automatically
+  and loaded to payload
+
+  In unpack function checksum signal is checked with calculated.
+  (result may be tested in dedicated Fmon_*** function).
+
+/* #define ARS408_CAN_DATABASE_CH0_AUTO_CSM */
+

+ 115 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch0-fmon.c

@@ -0,0 +1,115 @@
+#include "ars408_can_database_ch0-fmon.h"
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+/*
+Put the monitor function content here, keep in mind -
+next generation will completely clear all manually added code (!)
+*/
+
+void FMon_CollDetRelayCtrl_ars408_can_database_ch0(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_RadarConfiguration_ars408_can_database_ch0(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_RadarState_ars408_can_database_ch0(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterCfg_ars408_can_database_ch0(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterState_Header_ars408_can_database_ch0(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterState_Cfg_ars408_can_database_ch0(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_SpeedInformation_ars408_can_database_ch0(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_YawRateInformation_ars408_can_database_ch0(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetCfg_ars408_can_database_ch0(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetRegionCfg_ars408_can_database_ch0(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetRegionState_ars408_can_database_ch0(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetState_ars408_can_database_ch0(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_0_Status_ars408_can_database_ch0(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_0_Status_ars408_can_database_ch0(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_1_General_ars408_can_database_ch0(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_2_Quality_ars408_can_database_ch0(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_3_Extended_ars408_can_database_ch0(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_4_Warning_ars408_can_database_ch0(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_VersionID_ars408_can_database_ch0(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_1_General_ars408_can_database_ch0(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_2_Quality_ars408_can_database_ch0(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS

+ 49 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch0-fmon.h

@@ -0,0 +1,49 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// DBC file version
+#define VER_ARS408_CAN_DATABASE_CH0_MAJ_FMON (0U)
+#define VER_ARS408_CAN_DATABASE_CH0_MIN_FMON (0U)
+
+#include "ars408_can_database_ch0-config.h"
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+#include "canmonitorutil.h"
+/*
+This file contains the prototypes of all the functions that will be called
+from each Unpack_*name* function to detect DBC related errors
+It is the user responsibility to defined these functions in the
+separated .c file. If it won't be done the linkage error will happen
+*/
+
+void FMon_CollDetRelayCtrl_ars408_can_database_ch0(FrameMonitor_t* _mon);
+void FMon_RadarConfiguration_ars408_can_database_ch0(FrameMonitor_t* _mon);
+void FMon_RadarState_ars408_can_database_ch0(FrameMonitor_t* _mon);
+void FMon_FilterCfg_ars408_can_database_ch0(FrameMonitor_t* _mon);
+void FMon_FilterState_Header_ars408_can_database_ch0(FrameMonitor_t* _mon);
+void FMon_FilterState_Cfg_ars408_can_database_ch0(FrameMonitor_t* _mon);
+void FMon_SpeedInformation_ars408_can_database_ch0(FrameMonitor_t* _mon);
+void FMon_YawRateInformation_ars408_can_database_ch0(FrameMonitor_t* _mon);
+void FMon_CollDetCfg_ars408_can_database_ch0(FrameMonitor_t* _mon);
+void FMon_CollDetRegionCfg_ars408_can_database_ch0(FrameMonitor_t* _mon);
+void FMon_CollDetRegionState_ars408_can_database_ch0(FrameMonitor_t* _mon);
+void FMon_CollDetState_ars408_can_database_ch0(FrameMonitor_t* _mon);
+void FMon_Cluster_0_Status_ars408_can_database_ch0(FrameMonitor_t* _mon);
+void FMon_Obj_0_Status_ars408_can_database_ch0(FrameMonitor_t* _mon);
+void FMon_Obj_1_General_ars408_can_database_ch0(FrameMonitor_t* _mon);
+void FMon_Obj_2_Quality_ars408_can_database_ch0(FrameMonitor_t* _mon);
+void FMon_Obj_3_Extended_ars408_can_database_ch0(FrameMonitor_t* _mon);
+void FMon_Obj_4_Warning_ars408_can_database_ch0(FrameMonitor_t* _mon);
+void FMon_VersionID_ars408_can_database_ch0(FrameMonitor_t* _mon);
+void FMon_Cluster_1_General_ars408_can_database_ch0(FrameMonitor_t* _mon);
+void FMon_Cluster_2_Quality_ars408_can_database_ch0(FrameMonitor_t* _mon);
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+#ifdef __cplusplus
+}
+#endif

+ 1841 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch0.c

@@ -0,0 +1,1841 @@
+#include "ars408_can_database_ch0.h"
+
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+// Function prototypes to be called each time CAN frame is unpacked
+// FMon function may detect RC, CRC or DLC violation 
+#include "ars408_can_database_ch0-fmon.h"
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+
+uint32_t Unpack_CollDetRelayCtrl_ARS408_can_database_ch0(CollDetRelayCtrl_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRelayCtrl_Param = (_d[0] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRelayCtrl_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRelayCtrl_ars408_can_database_ch0(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+ return CollDetRelayCtrl_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch0(CollDetRelayCtrl_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRelayCtrl_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->CollDetRelayCtrl_Param & (0xFFU));
+
+  cframe->MsgId = CollDetRelayCtrl_CANID;
+  cframe->DLC = CollDetRelayCtrl_DLC;
+  cframe->IDE = CollDetRelayCtrl_IDE;
+  return CollDetRelayCtrl_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch0(CollDetRelayCtrl_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRelayCtrl_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->CollDetRelayCtrl_Param & (0xFFU));
+
+  *_len = CollDetRelayCtrl_DLC;
+  *_ide = CollDetRelayCtrl_IDE;
+  return CollDetRelayCtrl_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_RadarConfiguration_ARS408_can_database_ch0(RadarConfiguration_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarCfg_MaxDistance_valid = (_d[0] & (0x01U));
+  _m->RadarCfg_SensorID_valid = ((_d[0] >> 1) & (0x01U));
+  _m->RadarCfg_RadarPower_valid = ((_d[0] >> 2) & (0x01U));
+  _m->RadarCfg_OutputType_valid = ((_d[0] >> 3) & (0x01U));
+  _m->RadarCfg_SendQuality_valid = ((_d[0] >> 4) & (0x01U));
+  _m->RadarCfg_SendExtInfo_valid = ((_d[0] >> 5) & (0x01U));
+  _m->RadarCfg_SortIndex_valid = ((_d[0] >> 6) & (0x01U));
+  _m->RadarCfg_StoreInNVM_valid = ((_d[0] >> 7) & (0x01U));
+  _m->RadarCfg_MaxDistance_ro = ((_d[1] & (0xFFU)) << 2) | ((_d[2] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_phys = ARS408_CAN_DATABASE_CH0_RadarCfg_MaxDistance_ro_fromS(_m->RadarCfg_MaxDistance_ro);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->RadarCfg_SensorID = (_d[4] & (0x07U));
+  _m->RadarCfg_OutputType = ((_d[4] >> 3) & (0x03U));
+  _m->RadarCfg_RadarPower = ((_d[4] >> 5) & (0x07U));
+  _m->RadarCfg_CtrlRelay_valid = (_d[5] & (0x01U));
+  _m->RadarCfg_CtrlRelay = ((_d[5] >> 1) & (0x01U));
+  _m->RadarCfg_SendQuality = ((_d[5] >> 2) & (0x01U));
+  _m->RadarCfg_SendExtInfo = ((_d[5] >> 3) & (0x01U));
+  _m->RadarCfg_SortIndex = ((_d[5] >> 4) & (0x07U));
+  _m->RadarCfg_StoreInNVM = ((_d[5] >> 7) & (0x01U));
+  _m->RadarCfg_RCS_Threshold_Valid = (_d[6] & (0x01U));
+  _m->RadarCfg_RCS_Threshold = ((_d[6] >> 1) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < RadarConfiguration_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_RadarConfiguration_ars408_can_database_ch0(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+ return RadarConfiguration_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch0(RadarConfiguration_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < RadarConfiguration_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_ro = ARS408_CAN_DATABASE_CH0_RadarCfg_MaxDistance_ro_toS(_m->RadarCfg_MaxDistance_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->RadarCfg_MaxDistance_valid & (0x01U)) | ((_m->RadarCfg_SensorID_valid & (0x01U)) << 1) | ((_m->RadarCfg_RadarPower_valid & (0x01U)) << 2) | ((_m->RadarCfg_OutputType_valid & (0x01U)) << 3) | ((_m->RadarCfg_SendQuality_valid & (0x01U)) << 4) | ((_m->RadarCfg_SendExtInfo_valid & (0x01U)) << 5) | ((_m->RadarCfg_SortIndex_valid & (0x01U)) << 6) | ((_m->RadarCfg_StoreInNVM_valid & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->RadarCfg_MaxDistance_ro >> 2) & (0xFFU));
+  cframe->Data[2] |= ((_m->RadarCfg_MaxDistance_ro & (0x03U)) << 6);
+  cframe->Data[4] |= (_m->RadarCfg_SensorID & (0x07U)) | ((_m->RadarCfg_OutputType & (0x03U)) << 3) | ((_m->RadarCfg_RadarPower & (0x07U)) << 5);
+  cframe->Data[5] |= (_m->RadarCfg_CtrlRelay_valid & (0x01U)) | ((_m->RadarCfg_CtrlRelay & (0x01U)) << 1) | ((_m->RadarCfg_SendQuality & (0x01U)) << 2) | ((_m->RadarCfg_SendExtInfo & (0x01U)) << 3) | ((_m->RadarCfg_SortIndex & (0x07U)) << 4) | ((_m->RadarCfg_StoreInNVM & (0x01U)) << 7);
+  cframe->Data[6] |= (_m->RadarCfg_RCS_Threshold_Valid & (0x01U)) | ((_m->RadarCfg_RCS_Threshold & (0x07U)) << 1);
+
+  cframe->MsgId = RadarConfiguration_CANID;
+  cframe->DLC = RadarConfiguration_DLC;
+  cframe->IDE = RadarConfiguration_IDE;
+  return RadarConfiguration_CANID;
+}
+
+#else
+
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch0(RadarConfiguration_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < RadarConfiguration_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_ro = ARS408_CAN_DATABASE_CH0_RadarCfg_MaxDistance_ro_toS(_m->RadarCfg_MaxDistance_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _d[0] |= (_m->RadarCfg_MaxDistance_valid & (0x01U)) | ((_m->RadarCfg_SensorID_valid & (0x01U)) << 1) | ((_m->RadarCfg_RadarPower_valid & (0x01U)) << 2) | ((_m->RadarCfg_OutputType_valid & (0x01U)) << 3) | ((_m->RadarCfg_SendQuality_valid & (0x01U)) << 4) | ((_m->RadarCfg_SendExtInfo_valid & (0x01U)) << 5) | ((_m->RadarCfg_SortIndex_valid & (0x01U)) << 6) | ((_m->RadarCfg_StoreInNVM_valid & (0x01U)) << 7);
+  _d[1] |= ((_m->RadarCfg_MaxDistance_ro >> 2) & (0xFFU));
+  _d[2] |= ((_m->RadarCfg_MaxDistance_ro & (0x03U)) << 6);
+  _d[4] |= (_m->RadarCfg_SensorID & (0x07U)) | ((_m->RadarCfg_OutputType & (0x03U)) << 3) | ((_m->RadarCfg_RadarPower & (0x07U)) << 5);
+  _d[5] |= (_m->RadarCfg_CtrlRelay_valid & (0x01U)) | ((_m->RadarCfg_CtrlRelay & (0x01U)) << 1) | ((_m->RadarCfg_SendQuality & (0x01U)) << 2) | ((_m->RadarCfg_SendExtInfo & (0x01U)) << 3) | ((_m->RadarCfg_SortIndex & (0x07U)) << 4) | ((_m->RadarCfg_StoreInNVM & (0x01U)) << 7);
+  _d[6] |= (_m->RadarCfg_RCS_Threshold_Valid & (0x01U)) | ((_m->RadarCfg_RCS_Threshold & (0x07U)) << 1);
+
+  *_len = RadarConfiguration_DLC;
+  *_ide = RadarConfiguration_IDE;
+  return RadarConfiguration_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_RadarState_ARS408_can_database_ch0(RadarState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarState_NVMReadStatus = ((_d[0] >> 6) & (0x01U));
+  _m->RadarState_NVMwriteStatus = ((_d[0] >> 7) & (0x01U));
+  _m->RadarState_MaxDistanceCfg_ro = ((_d[1] & (0xFFU)) << 2) | ((_d[2] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_phys = ARS408_CAN_DATABASE_CH0_RadarState_MaxDistanceCfg_ro_fromS(_m->RadarState_MaxDistanceCfg_ro);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->RadarState_Voltage_Error = ((_d[2] >> 1) & (0x01U));
+  _m->RadarState_Temporary_Error = ((_d[2] >> 2) & (0x01U));
+  _m->RadarState_Temperature_Error = ((_d[2] >> 3) & (0x01U));
+  _m->RadarState_Interference = ((_d[2] >> 4) & (0x01U));
+  _m->RadarState_Persistent_Error = ((_d[2] >> 5) & (0x01U));
+  _m->RadarState_RadarPowerCfg = ((_d[3] & (0x03U)) << 1) | ((_d[4] >> 7) & (0x01U));
+  _m->RadarState_SensorID = (_d[4] & (0x07U));
+  _m->RadarState_SortIndex = ((_d[4] >> 4) & (0x07U));
+  _m->RadarState_CtrlRelayCfg = ((_d[5] >> 1) & (0x01U));
+  _m->RadarState_OutputTypeCfg = ((_d[5] >> 2) & (0x03U));
+  _m->RadarState_SendQualityCfg = ((_d[5] >> 4) & (0x01U));
+  _m->RadarState_SendExtInfoCfg = ((_d[5] >> 5) & (0x01U));
+  _m->RadarState_MotionRxState = ((_d[5] >> 6) & (0x03U));
+  _m->RadarState_RCS_Threshold = ((_d[7] >> 2) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < RadarState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_RadarState_ars408_can_database_ch0(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+ return RadarState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Pack_RadarState_ARS408_can_database_ch0(RadarState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < RadarState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_ro = ARS408_CAN_DATABASE_CH0_RadarState_MaxDistanceCfg_ro_toS(_m->RadarState_MaxDistanceCfg_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarState_NVMReadStatus & (0x01U)) << 6) | ((_m->RadarState_NVMwriteStatus & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->RadarState_MaxDistanceCfg_ro >> 2) & (0xFFU));
+  cframe->Data[2] |= ((_m->RadarState_MaxDistanceCfg_ro & (0x03U)) << 6) | ((_m->RadarState_Voltage_Error & (0x01U)) << 1) | ((_m->RadarState_Temporary_Error & (0x01U)) << 2) | ((_m->RadarState_Temperature_Error & (0x01U)) << 3) | ((_m->RadarState_Interference & (0x01U)) << 4) | ((_m->RadarState_Persistent_Error & (0x01U)) << 5);
+  cframe->Data[3] |= ((_m->RadarState_RadarPowerCfg >> 1) & (0x03U));
+  cframe->Data[4] |= ((_m->RadarState_RadarPowerCfg & (0x01U)) << 7) | (_m->RadarState_SensorID & (0x07U)) | ((_m->RadarState_SortIndex & (0x07U)) << 4);
+  cframe->Data[5] |= ((_m->RadarState_CtrlRelayCfg & (0x01U)) << 1) | ((_m->RadarState_OutputTypeCfg & (0x03U)) << 2) | ((_m->RadarState_SendQualityCfg & (0x01U)) << 4) | ((_m->RadarState_SendExtInfoCfg & (0x01U)) << 5) | ((_m->RadarState_MotionRxState & (0x03U)) << 6);
+  cframe->Data[7] |= ((_m->RadarState_RCS_Threshold & (0x07U)) << 2);
+
+  cframe->MsgId = RadarState_CANID;
+  cframe->DLC = RadarState_DLC;
+  cframe->IDE = RadarState_IDE;
+  return RadarState_CANID;
+}
+
+#else
+
+uint32_t Pack_RadarState_ARS408_can_database_ch0(RadarState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < RadarState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_ro = ARS408_CAN_DATABASE_CH0_RadarState_MaxDistanceCfg_ro_toS(_m->RadarState_MaxDistanceCfg_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarState_NVMReadStatus & (0x01U)) << 6) | ((_m->RadarState_NVMwriteStatus & (0x01U)) << 7);
+  _d[1] |= ((_m->RadarState_MaxDistanceCfg_ro >> 2) & (0xFFU));
+  _d[2] |= ((_m->RadarState_MaxDistanceCfg_ro & (0x03U)) << 6) | ((_m->RadarState_Voltage_Error & (0x01U)) << 1) | ((_m->RadarState_Temporary_Error & (0x01U)) << 2) | ((_m->RadarState_Temperature_Error & (0x01U)) << 3) | ((_m->RadarState_Interference & (0x01U)) << 4) | ((_m->RadarState_Persistent_Error & (0x01U)) << 5);
+  _d[3] |= ((_m->RadarState_RadarPowerCfg >> 1) & (0x03U));
+  _d[4] |= ((_m->RadarState_RadarPowerCfg & (0x01U)) << 7) | (_m->RadarState_SensorID & (0x07U)) | ((_m->RadarState_SortIndex & (0x07U)) << 4);
+  _d[5] |= ((_m->RadarState_CtrlRelayCfg & (0x01U)) << 1) | ((_m->RadarState_OutputTypeCfg & (0x03U)) << 2) | ((_m->RadarState_SendQualityCfg & (0x01U)) << 4) | ((_m->RadarState_SendExtInfoCfg & (0x01U)) << 5) | ((_m->RadarState_MotionRxState & (0x03U)) << 6);
+  _d[7] |= ((_m->RadarState_RCS_Threshold & (0x07U)) << 2);
+
+  *_len = RadarState_DLC;
+  *_ide = RadarState_IDE;
+  return RadarState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_FilterCfg_ARS408_can_database_ch0(FilterCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterCfg_Valid = ((_d[0] >> 1) & (0x01U));
+  _m->FilterCfg_Active = ((_d[0] >> 2) & (0x01U));
+  _m->FilterCfg_Index = ((_d[0] >> 3) & (0x0FU));
+  _m->FilterCfg_Type = ((_d[0] >> 7) & (0x01U));
+  _m->FilterCfg_Min_NofObj = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterCfg_Min_VrelOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VrelOncome_ro_fromS(_m->FilterCfg_Min_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VrelDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VrelDepart_ro_fromS(_m->FilterCfg_Min_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Size_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Min_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Size_ro_fromS(_m->FilterCfg_Min_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_RCS_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Min_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Min_RCS_ro_fromS(_m->FilterCfg_Min_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_ProbExists = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterCfg_Min_Lifetime_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Min_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Lifetime_ro_fromS(_m->FilterCfg_Min_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Azimuth_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Min_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Azimuth_ro_fromS(_m->FilterCfg_Min_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Distance_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Min_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Distance_ro_fromS(_m->FilterCfg_Min_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VXDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Min_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VXDepart_ro_fromS(_m->FilterCfg_Min_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VXOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Min_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VXOncome_ro_fromS(_m->FilterCfg_Min_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VYLeftRight_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Min_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VYLeftRight_ro_fromS(_m->FilterCfg_Min_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VYRightLeft_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Min_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VYRightLeft_ro_fromS(_m->FilterCfg_Min_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Y_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Min_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Y_ro_fromS(_m->FilterCfg_Min_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_X_ro = ((_d[1] & (0x1FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Min_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Min_X_ro_fromS(_m->FilterCfg_Min_X_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_NofObj = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterCfg_Max_Lifetime_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Max_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Lifetime_ro_fromS(_m->FilterCfg_Max_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Distance_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Max_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Distance_ro_fromS(_m->FilterCfg_Max_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Azimuth_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Max_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Azimuth_ro_fromS(_m->FilterCfg_Max_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_ProbExists = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterCfg_Max_RCS_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Max_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Max_RCS_ro_fromS(_m->FilterCfg_Max_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Size_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Max_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Size_ro_fromS(_m->FilterCfg_Max_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VrelDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Max_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VrelDepart_ro_fromS(_m->FilterCfg_Max_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VrelOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Max_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VrelOncome_ro_fromS(_m->FilterCfg_Max_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VXDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Max_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VXDepart_ro_fromS(_m->FilterCfg_Max_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VYLeftRight_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Max_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VYLeftRight_ro_fromS(_m->FilterCfg_Max_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VXOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Max_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VXOncome_ro_fromS(_m->FilterCfg_Max_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VYRightLeft_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Max_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VYRightLeft_ro_fromS(_m->FilterCfg_Max_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Y_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Max_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Y_ro_fromS(_m->FilterCfg_Max_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_X_ro = ((_d[3] & (0x1FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Max_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterCfg_Max_X_ro_fromS(_m->FilterCfg_Max_X_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterCfg_ars408_can_database_ch0(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+ return FilterCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Pack_FilterCfg_ARS408_can_database_ch0(FilterCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VrelOncome_ro_toS(_m->FilterCfg_Min_VrelOncome_phys);
+  _m->FilterCfg_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VrelDepart_ro_toS(_m->FilterCfg_Min_VrelDepart_phys);
+  _m->FilterCfg_Min_Size_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Size_ro_toS(_m->FilterCfg_Min_Size_phys);
+  _m->FilterCfg_Min_RCS_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_RCS_ro_toS(_m->FilterCfg_Min_RCS_phys);
+  _m->FilterCfg_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Lifetime_ro_toS(_m->FilterCfg_Min_Lifetime_phys);
+  _m->FilterCfg_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Azimuth_ro_toS(_m->FilterCfg_Min_Azimuth_phys);
+  _m->FilterCfg_Min_Distance_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Distance_ro_toS(_m->FilterCfg_Min_Distance_phys);
+  _m->FilterCfg_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VXDepart_ro_toS(_m->FilterCfg_Min_VXDepart_phys);
+  _m->FilterCfg_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VXOncome_ro_toS(_m->FilterCfg_Min_VXOncome_phys);
+  _m->FilterCfg_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VYLeftRight_ro_toS(_m->FilterCfg_Min_VYLeftRight_phys);
+  _m->FilterCfg_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VYRightLeft_ro_toS(_m->FilterCfg_Min_VYRightLeft_phys);
+  _m->FilterCfg_Min_Y_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Y_ro_toS(_m->FilterCfg_Min_Y_phys);
+  _m->FilterCfg_Min_X_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_X_ro_toS(_m->FilterCfg_Min_X_phys);
+  _m->FilterCfg_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Lifetime_ro_toS(_m->FilterCfg_Max_Lifetime_phys);
+  _m->FilterCfg_Max_Distance_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Distance_ro_toS(_m->FilterCfg_Max_Distance_phys);
+  _m->FilterCfg_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Azimuth_ro_toS(_m->FilterCfg_Max_Azimuth_phys);
+  _m->FilterCfg_Max_RCS_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_RCS_ro_toS(_m->FilterCfg_Max_RCS_phys);
+  _m->FilterCfg_Max_Size_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Size_ro_toS(_m->FilterCfg_Max_Size_phys);
+  _m->FilterCfg_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VrelDepart_ro_toS(_m->FilterCfg_Max_VrelDepart_phys);
+  _m->FilterCfg_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VrelOncome_ro_toS(_m->FilterCfg_Max_VrelOncome_phys);
+  _m->FilterCfg_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VXDepart_ro_toS(_m->FilterCfg_Max_VXDepart_phys);
+  _m->FilterCfg_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VYLeftRight_ro_toS(_m->FilterCfg_Max_VYLeftRight_phys);
+  _m->FilterCfg_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VXOncome_ro_toS(_m->FilterCfg_Max_VXOncome_phys);
+  _m->FilterCfg_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VYRightLeft_ro_toS(_m->FilterCfg_Max_VYRightLeft_phys);
+  _m->FilterCfg_Max_Y_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Y_ro_toS(_m->FilterCfg_Max_Y_phys);
+  _m->FilterCfg_Max_X_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_X_ro_toS(_m->FilterCfg_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->FilterCfg_Valid & (0x01U)) << 1) | ((_m->FilterCfg_Active & (0x01U)) << 2) | ((_m->FilterCfg_Index & (0x0FU)) << 3) | ((_m->FilterCfg_Type & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->FilterCfg_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_X_ro >> 8) & (0x1FU));
+  cframe->Data[2] |= (_m->FilterCfg_Min_NofObj & (0xFFU)) | (_m->FilterCfg_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_Size_ro & (0xFFU)) | (_m->FilterCfg_Min_RCS_ro & (0xFFU)) | (_m->FilterCfg_Min_ProbExists & (0xFFU)) | (_m->FilterCfg_Min_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Min_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Min_Distance_ro & (0xFFU)) | (_m->FilterCfg_Min_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Min_Y_ro & (0xFFU)) | (_m->FilterCfg_Min_X_ro & (0xFFU));
+  cframe->Data[3] |= ((_m->FilterCfg_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_X_ro >> 8) & (0x1FU));
+  cframe->Data[4] |= (_m->FilterCfg_Max_NofObj & (0xFFU)) | (_m->FilterCfg_Max_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Max_Distance_ro & (0xFFU)) | (_m->FilterCfg_Max_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Max_ProbExists & (0xFFU)) | (_m->FilterCfg_Max_RCS_ro & (0xFFU)) | (_m->FilterCfg_Max_Size_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Max_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Max_Y_ro & (0xFFU)) | (_m->FilterCfg_Max_X_ro & (0xFFU));
+
+  cframe->MsgId = FilterCfg_CANID;
+  cframe->DLC = FilterCfg_DLC;
+  cframe->IDE = FilterCfg_IDE;
+  return FilterCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterCfg_ARS408_can_database_ch0(FilterCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VrelOncome_ro_toS(_m->FilterCfg_Min_VrelOncome_phys);
+  _m->FilterCfg_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VrelDepart_ro_toS(_m->FilterCfg_Min_VrelDepart_phys);
+  _m->FilterCfg_Min_Size_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Size_ro_toS(_m->FilterCfg_Min_Size_phys);
+  _m->FilterCfg_Min_RCS_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_RCS_ro_toS(_m->FilterCfg_Min_RCS_phys);
+  _m->FilterCfg_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Lifetime_ro_toS(_m->FilterCfg_Min_Lifetime_phys);
+  _m->FilterCfg_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Azimuth_ro_toS(_m->FilterCfg_Min_Azimuth_phys);
+  _m->FilterCfg_Min_Distance_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Distance_ro_toS(_m->FilterCfg_Min_Distance_phys);
+  _m->FilterCfg_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VXDepart_ro_toS(_m->FilterCfg_Min_VXDepart_phys);
+  _m->FilterCfg_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VXOncome_ro_toS(_m->FilterCfg_Min_VXOncome_phys);
+  _m->FilterCfg_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VYLeftRight_ro_toS(_m->FilterCfg_Min_VYLeftRight_phys);
+  _m->FilterCfg_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VYRightLeft_ro_toS(_m->FilterCfg_Min_VYRightLeft_phys);
+  _m->FilterCfg_Min_Y_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Y_ro_toS(_m->FilterCfg_Min_Y_phys);
+  _m->FilterCfg_Min_X_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Min_X_ro_toS(_m->FilterCfg_Min_X_phys);
+  _m->FilterCfg_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Lifetime_ro_toS(_m->FilterCfg_Max_Lifetime_phys);
+  _m->FilterCfg_Max_Distance_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Distance_ro_toS(_m->FilterCfg_Max_Distance_phys);
+  _m->FilterCfg_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Azimuth_ro_toS(_m->FilterCfg_Max_Azimuth_phys);
+  _m->FilterCfg_Max_RCS_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_RCS_ro_toS(_m->FilterCfg_Max_RCS_phys);
+  _m->FilterCfg_Max_Size_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Size_ro_toS(_m->FilterCfg_Max_Size_phys);
+  _m->FilterCfg_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VrelDepart_ro_toS(_m->FilterCfg_Max_VrelDepart_phys);
+  _m->FilterCfg_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VrelOncome_ro_toS(_m->FilterCfg_Max_VrelOncome_phys);
+  _m->FilterCfg_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VXDepart_ro_toS(_m->FilterCfg_Max_VXDepart_phys);
+  _m->FilterCfg_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VYLeftRight_ro_toS(_m->FilterCfg_Max_VYLeftRight_phys);
+  _m->FilterCfg_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VXOncome_ro_toS(_m->FilterCfg_Max_VXOncome_phys);
+  _m->FilterCfg_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VYRightLeft_ro_toS(_m->FilterCfg_Max_VYRightLeft_phys);
+  _m->FilterCfg_Max_Y_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Y_ro_toS(_m->FilterCfg_Max_Y_phys);
+  _m->FilterCfg_Max_X_ro = ARS408_CAN_DATABASE_CH0_FilterCfg_Max_X_ro_toS(_m->FilterCfg_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _d[0] |= ((_m->FilterCfg_Valid & (0x01U)) << 1) | ((_m->FilterCfg_Active & (0x01U)) << 2) | ((_m->FilterCfg_Index & (0x0FU)) << 3) | ((_m->FilterCfg_Type & (0x01U)) << 7);
+  _d[1] |= ((_m->FilterCfg_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_X_ro >> 8) & (0x1FU));
+  _d[2] |= (_m->FilterCfg_Min_NofObj & (0xFFU)) | (_m->FilterCfg_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_Size_ro & (0xFFU)) | (_m->FilterCfg_Min_RCS_ro & (0xFFU)) | (_m->FilterCfg_Min_ProbExists & (0xFFU)) | (_m->FilterCfg_Min_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Min_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Min_Distance_ro & (0xFFU)) | (_m->FilterCfg_Min_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Min_Y_ro & (0xFFU)) | (_m->FilterCfg_Min_X_ro & (0xFFU));
+  _d[3] |= ((_m->FilterCfg_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_X_ro >> 8) & (0x1FU));
+  _d[4] |= (_m->FilterCfg_Max_NofObj & (0xFFU)) | (_m->FilterCfg_Max_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Max_Distance_ro & (0xFFU)) | (_m->FilterCfg_Max_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Max_ProbExists & (0xFFU)) | (_m->FilterCfg_Max_RCS_ro & (0xFFU)) | (_m->FilterCfg_Max_Size_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Max_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Max_Y_ro & (0xFFU)) | (_m->FilterCfg_Max_X_ro & (0xFFU));
+
+  *_len = FilterCfg_DLC;
+  *_ide = FilterCfg_IDE;
+  return FilterCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Header_ARS408_can_database_ch0(FilterState_Header_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterState_NofClusterFilterCfg = ((_d[0] >> 3) & (0x1FU));
+  _m->FilterState_NofObjectFilterCfg = ((_d[1] >> 3) & (0x1FU));
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterState_Header_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterState_Header_ars408_can_database_ch0(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+ return FilterState_Header_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch0(FilterState_Header_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Header_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= ((_m->FilterState_NofClusterFilterCfg & (0x1FU)) << 3);
+  cframe->Data[1] |= ((_m->FilterState_NofObjectFilterCfg & (0x1FU)) << 3);
+
+  cframe->MsgId = FilterState_Header_CANID;
+  cframe->DLC = FilterState_Header_DLC;
+  cframe->IDE = FilterState_Header_IDE;
+  return FilterState_Header_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch0(FilterState_Header_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Header_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= ((_m->FilterState_NofClusterFilterCfg & (0x1FU)) << 3);
+  _d[1] |= ((_m->FilterState_NofObjectFilterCfg & (0x1FU)) << 3);
+
+  *_len = FilterState_Header_DLC;
+  *_ide = FilterState_Header_IDE;
+  return FilterState_Header_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Cfg_ARS408_can_database_ch0(FilterState_Cfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterState_Active = ((_d[0] >> 2) & (0x01U));
+  _m->FilterState_Index = ((_d[0] >> 3) & (0x0FU));
+  _m->FilterState_Type = ((_d[0] >> 7) & (0x01U));
+  _m->FilterState_Min_RCS_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Min_RCS_ro_fromS(_m->FilterState_Min_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Min_Azimuth_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Min_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Min_Azimuth_ro_fromS(_m->FilterState_Min_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Min_Distance_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Min_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Min_Distance_ro_fromS(_m->FilterState_Min_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Min_Lifetime_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Min_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Min_Lifetime_ro_fromS(_m->FilterState_Min_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Min_NofObj = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterState_Min_ProbExists = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterState_Min_Y_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Min_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Min_Y_ro_fromS(_m->FilterState_Min_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Min_Size_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Min_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Min_Size_ro_fromS(_m->FilterState_Min_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Min_VrelDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Min_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Min_VrelDepart_ro_fromS(_m->FilterState_Min_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Min_VrelOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Min_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Min_VrelOncome_ro_fromS(_m->FilterState_Min_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Min_VYRightLeft_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Min_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Min_VYRightLeft_ro_fromS(_m->FilterState_Min_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Min_VXDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Min_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Min_VXDepart_ro_fromS(_m->FilterState_Min_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Min_VXOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Min_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Min_VXOncome_ro_fromS(_m->FilterState_Min_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Min_VYLeftRight_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Min_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Min_VYLeftRight_ro_fromS(_m->FilterState_Min_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Min_X_ro = ((_d[1] & (0x1FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Min_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Min_X_ro_fromS(_m->FilterState_Min_X_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Max_VrelDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Max_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Max_VrelDepart_ro_fromS(_m->FilterState_Max_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Max_Azimuth_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Max_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Max_Azimuth_ro_fromS(_m->FilterState_Max_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Max_Distance_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Max_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Max_Distance_ro_fromS(_m->FilterState_Max_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Max_Lifetime_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Max_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Max_Lifetime_ro_fromS(_m->FilterState_Max_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Max_NofObj = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterState_Max_ProbExists = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterState_Max_RCS_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Max_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Max_RCS_ro_fromS(_m->FilterState_Max_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Max_Size_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Max_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Max_Size_ro_fromS(_m->FilterState_Max_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Max_VXDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Max_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Max_VXDepart_ro_fromS(_m->FilterState_Max_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Max_VrelOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Max_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Max_VrelOncome_ro_fromS(_m->FilterState_Max_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Max_Y_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Max_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Max_Y_ro_fromS(_m->FilterState_Max_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Max_VYRightLeft_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Max_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Max_VYRightLeft_ro_fromS(_m->FilterState_Max_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Max_VYLeftRight_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Max_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Max_VYLeftRight_ro_fromS(_m->FilterState_Max_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Max_VXOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Max_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Max_VXOncome_ro_fromS(_m->FilterState_Max_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->FilterState_Max_X_ro = ((_d[3] & (0x1FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Max_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_FilterState_Max_X_ro_fromS(_m->FilterState_Max_X_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterState_Cfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterState_Cfg_ars408_can_database_ch0(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+ return FilterState_Cfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch0(FilterState_Cfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Cfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_RCS_ro_toS(_m->FilterState_Min_RCS_phys);
+  _m->FilterState_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_Azimuth_ro_toS(_m->FilterState_Min_Azimuth_phys);
+  _m->FilterState_Min_Distance_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_Distance_ro_toS(_m->FilterState_Min_Distance_phys);
+  _m->FilterState_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_Lifetime_ro_toS(_m->FilterState_Min_Lifetime_phys);
+  _m->FilterState_Min_Y_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_Y_ro_toS(_m->FilterState_Min_Y_phys);
+  _m->FilterState_Min_Size_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_Size_ro_toS(_m->FilterState_Min_Size_phys);
+  _m->FilterState_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_VrelDepart_ro_toS(_m->FilterState_Min_VrelDepart_phys);
+  _m->FilterState_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_VrelOncome_ro_toS(_m->FilterState_Min_VrelOncome_phys);
+  _m->FilterState_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_VYRightLeft_ro_toS(_m->FilterState_Min_VYRightLeft_phys);
+  _m->FilterState_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_VXDepart_ro_toS(_m->FilterState_Min_VXDepart_phys);
+  _m->FilterState_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_VXOncome_ro_toS(_m->FilterState_Min_VXOncome_phys);
+  _m->FilterState_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_VYLeftRight_ro_toS(_m->FilterState_Min_VYLeftRight_phys);
+  _m->FilterState_Min_X_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_X_ro_toS(_m->FilterState_Min_X_phys);
+  _m->FilterState_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_VrelDepart_ro_toS(_m->FilterState_Max_VrelDepart_phys);
+  _m->FilterState_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_Azimuth_ro_toS(_m->FilterState_Max_Azimuth_phys);
+  _m->FilterState_Max_Distance_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_Distance_ro_toS(_m->FilterState_Max_Distance_phys);
+  _m->FilterState_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_Lifetime_ro_toS(_m->FilterState_Max_Lifetime_phys);
+  _m->FilterState_Max_RCS_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_RCS_ro_toS(_m->FilterState_Max_RCS_phys);
+  _m->FilterState_Max_Size_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_Size_ro_toS(_m->FilterState_Max_Size_phys);
+  _m->FilterState_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_VXDepart_ro_toS(_m->FilterState_Max_VXDepart_phys);
+  _m->FilterState_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_VrelOncome_ro_toS(_m->FilterState_Max_VrelOncome_phys);
+  _m->FilterState_Max_Y_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_Y_ro_toS(_m->FilterState_Max_Y_phys);
+  _m->FilterState_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_VYRightLeft_ro_toS(_m->FilterState_Max_VYRightLeft_phys);
+  _m->FilterState_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_VYLeftRight_ro_toS(_m->FilterState_Max_VYLeftRight_phys);
+  _m->FilterState_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_VXOncome_ro_toS(_m->FilterState_Max_VXOncome_phys);
+  _m->FilterState_Max_X_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_X_ro_toS(_m->FilterState_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->FilterState_Active & (0x01U)) << 2) | ((_m->FilterState_Index & (0x0FU)) << 3) | ((_m->FilterState_Type & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->FilterState_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_X_ro >> 8) & (0x1FU));
+  cframe->Data[2] |= (_m->FilterState_Min_RCS_ro & (0xFFU)) | (_m->FilterState_Min_Azimuth_ro & (0xFFU)) | (_m->FilterState_Min_Distance_ro & (0xFFU)) | (_m->FilterState_Min_Lifetime_ro & (0xFFU)) | (_m->FilterState_Min_NofObj & (0xFFU)) | (_m->FilterState_Min_ProbExists & (0xFFU)) | (_m->FilterState_Min_Y_ro & (0xFFU)) | (_m->FilterState_Min_Size_ro & (0xFFU)) | (_m->FilterState_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Min_VXDepart_ro & (0xFFU)) | (_m->FilterState_Min_VXOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Min_X_ro & (0xFFU));
+  cframe->Data[3] |= ((_m->FilterState_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_X_ro >> 8) & (0x1FU));
+  cframe->Data[4] |= (_m->FilterState_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Max_Azimuth_ro & (0xFFU)) | (_m->FilterState_Max_Distance_ro & (0xFFU)) | (_m->FilterState_Max_Lifetime_ro & (0xFFU)) | (_m->FilterState_Max_NofObj & (0xFFU)) | (_m->FilterState_Max_ProbExists & (0xFFU)) | (_m->FilterState_Max_RCS_ro & (0xFFU)) | (_m->FilterState_Max_Size_ro & (0xFFU)) | (_m->FilterState_Max_VXDepart_ro & (0xFFU)) | (_m->FilterState_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Max_Y_ro & (0xFFU)) | (_m->FilterState_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Max_VXOncome_ro & (0xFFU)) | (_m->FilterState_Max_X_ro & (0xFFU));
+
+  cframe->MsgId = FilterState_Cfg_CANID;
+  cframe->DLC = FilterState_Cfg_DLC;
+  cframe->IDE = FilterState_Cfg_IDE;
+  return FilterState_Cfg_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch0(FilterState_Cfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Cfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_RCS_ro_toS(_m->FilterState_Min_RCS_phys);
+  _m->FilterState_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_Azimuth_ro_toS(_m->FilterState_Min_Azimuth_phys);
+  _m->FilterState_Min_Distance_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_Distance_ro_toS(_m->FilterState_Min_Distance_phys);
+  _m->FilterState_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_Lifetime_ro_toS(_m->FilterState_Min_Lifetime_phys);
+  _m->FilterState_Min_Y_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_Y_ro_toS(_m->FilterState_Min_Y_phys);
+  _m->FilterState_Min_Size_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_Size_ro_toS(_m->FilterState_Min_Size_phys);
+  _m->FilterState_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_VrelDepart_ro_toS(_m->FilterState_Min_VrelDepart_phys);
+  _m->FilterState_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_VrelOncome_ro_toS(_m->FilterState_Min_VrelOncome_phys);
+  _m->FilterState_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_VYRightLeft_ro_toS(_m->FilterState_Min_VYRightLeft_phys);
+  _m->FilterState_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_VXDepart_ro_toS(_m->FilterState_Min_VXDepart_phys);
+  _m->FilterState_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_VXOncome_ro_toS(_m->FilterState_Min_VXOncome_phys);
+  _m->FilterState_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_VYLeftRight_ro_toS(_m->FilterState_Min_VYLeftRight_phys);
+  _m->FilterState_Min_X_ro = ARS408_CAN_DATABASE_CH0_FilterState_Min_X_ro_toS(_m->FilterState_Min_X_phys);
+  _m->FilterState_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_VrelDepart_ro_toS(_m->FilterState_Max_VrelDepart_phys);
+  _m->FilterState_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_Azimuth_ro_toS(_m->FilterState_Max_Azimuth_phys);
+  _m->FilterState_Max_Distance_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_Distance_ro_toS(_m->FilterState_Max_Distance_phys);
+  _m->FilterState_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_Lifetime_ro_toS(_m->FilterState_Max_Lifetime_phys);
+  _m->FilterState_Max_RCS_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_RCS_ro_toS(_m->FilterState_Max_RCS_phys);
+  _m->FilterState_Max_Size_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_Size_ro_toS(_m->FilterState_Max_Size_phys);
+  _m->FilterState_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_VXDepart_ro_toS(_m->FilterState_Max_VXDepart_phys);
+  _m->FilterState_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_VrelOncome_ro_toS(_m->FilterState_Max_VrelOncome_phys);
+  _m->FilterState_Max_Y_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_Y_ro_toS(_m->FilterState_Max_Y_phys);
+  _m->FilterState_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_VYRightLeft_ro_toS(_m->FilterState_Max_VYRightLeft_phys);
+  _m->FilterState_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_VYLeftRight_ro_toS(_m->FilterState_Max_VYLeftRight_phys);
+  _m->FilterState_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_VXOncome_ro_toS(_m->FilterState_Max_VXOncome_phys);
+  _m->FilterState_Max_X_ro = ARS408_CAN_DATABASE_CH0_FilterState_Max_X_ro_toS(_m->FilterState_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _d[0] |= ((_m->FilterState_Active & (0x01U)) << 2) | ((_m->FilterState_Index & (0x0FU)) << 3) | ((_m->FilterState_Type & (0x01U)) << 7);
+  _d[1] |= ((_m->FilterState_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_X_ro >> 8) & (0x1FU));
+  _d[2] |= (_m->FilterState_Min_RCS_ro & (0xFFU)) | (_m->FilterState_Min_Azimuth_ro & (0xFFU)) | (_m->FilterState_Min_Distance_ro & (0xFFU)) | (_m->FilterState_Min_Lifetime_ro & (0xFFU)) | (_m->FilterState_Min_NofObj & (0xFFU)) | (_m->FilterState_Min_ProbExists & (0xFFU)) | (_m->FilterState_Min_Y_ro & (0xFFU)) | (_m->FilterState_Min_Size_ro & (0xFFU)) | (_m->FilterState_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Min_VXDepart_ro & (0xFFU)) | (_m->FilterState_Min_VXOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Min_X_ro & (0xFFU));
+  _d[3] |= ((_m->FilterState_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_X_ro >> 8) & (0x1FU));
+  _d[4] |= (_m->FilterState_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Max_Azimuth_ro & (0xFFU)) | (_m->FilterState_Max_Distance_ro & (0xFFU)) | (_m->FilterState_Max_Lifetime_ro & (0xFFU)) | (_m->FilterState_Max_NofObj & (0xFFU)) | (_m->FilterState_Max_ProbExists & (0xFFU)) | (_m->FilterState_Max_RCS_ro & (0xFFU)) | (_m->FilterState_Max_Size_ro & (0xFFU)) | (_m->FilterState_Max_VXDepart_ro & (0xFFU)) | (_m->FilterState_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Max_Y_ro & (0xFFU)) | (_m->FilterState_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Max_VXOncome_ro & (0xFFU)) | (_m->FilterState_Max_X_ro & (0xFFU));
+
+  *_len = FilterState_Cfg_DLC;
+  *_ide = FilterState_Cfg_IDE;
+  return FilterState_Cfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_SpeedInformation_ARS408_can_database_ch0(SpeedInformation_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarDevice_Speed_ro = ((_d[0] & (0x1FU)) << 8) | (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->RadarDevice_Speed_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_RadarDevice_Speed_ro_fromS(_m->RadarDevice_Speed_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->RadarDevice_SpeedDirection = ((_d[0] >> 6) & (0x03U));
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < SpeedInformation_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_SpeedInformation_ars408_can_database_ch0(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+ return SpeedInformation_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch0(SpeedInformation_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < SpeedInformation_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->RadarDevice_Speed_ro = ARS408_CAN_DATABASE_CH0_RadarDevice_Speed_ro_toS(_m->RadarDevice_Speed_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarDevice_Speed_ro >> 8) & (0x1FU)) | ((_m->RadarDevice_SpeedDirection & (0x03U)) << 6);
+  cframe->Data[1] |= (_m->RadarDevice_Speed_ro & (0xFFU));
+
+  cframe->MsgId = SpeedInformation_CANID;
+  cframe->DLC = SpeedInformation_DLC;
+  cframe->IDE = SpeedInformation_IDE;
+  return SpeedInformation_CANID;
+}
+
+#else
+
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch0(SpeedInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < SpeedInformation_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->RadarDevice_Speed_ro = ARS408_CAN_DATABASE_CH0_RadarDevice_Speed_ro_toS(_m->RadarDevice_Speed_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarDevice_Speed_ro >> 8) & (0x1FU)) | ((_m->RadarDevice_SpeedDirection & (0x03U)) << 6);
+  _d[1] |= (_m->RadarDevice_Speed_ro & (0xFFU));
+
+  *_len = SpeedInformation_DLC;
+  *_ide = SpeedInformation_IDE;
+  return SpeedInformation_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_YawRateInformation_ARS408_can_database_ch0(YawRateInformation_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarDevice_YawRate_ro = ((_d[0] & (0xFFU)) << 8) | (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_RadarDevice_YawRate_ro_fromS(_m->RadarDevice_YawRate_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < YawRateInformation_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_YawRateInformation_ars408_can_database_ch0(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+ return YawRateInformation_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch0(YawRateInformation_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < YawRateInformation_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_ro = ARS408_CAN_DATABASE_CH0_RadarDevice_YawRate_ro_toS(_m->RadarDevice_YawRate_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarDevice_YawRate_ro >> 8) & (0xFFU));
+  cframe->Data[1] |= (_m->RadarDevice_YawRate_ro & (0xFFU));
+
+  cframe->MsgId = YawRateInformation_CANID;
+  cframe->DLC = YawRateInformation_DLC;
+  cframe->IDE = YawRateInformation_IDE;
+  return YawRateInformation_CANID;
+}
+
+#else
+
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch0(YawRateInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < YawRateInformation_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_ro = ARS408_CAN_DATABASE_CH0_RadarDevice_YawRate_ro_toS(_m->RadarDevice_YawRate_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarDevice_YawRate_ro >> 8) & (0xFFU));
+  _d[1] |= (_m->RadarDevice_YawRate_ro & (0xFFU));
+
+  *_len = YawRateInformation_DLC;
+  *_ide = YawRateInformation_IDE;
+  return YawRateInformation_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetCfg_ARS408_can_database_ch0(CollDetCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetCfg_WarningReset = (_d[0] & (0x01U));
+  _m->CollDetCfg_Activate = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetCfg_MinTime_valid = ((_d[0] >> 3) & (0x01U));
+  _m->CollDetCfg_ClearRegions = ((_d[0] >> 7) & (0x01U));
+  _m->CollDetCfg_MinDetectTime_ro = (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_CollDetCfg_MinDetectTime_ro_fromS(_m->CollDetCfg_MinDetectTime_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetCfg_ars408_can_database_ch0(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+ return CollDetCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch0(CollDetCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_ro = ARS408_CAN_DATABASE_CH0_CollDetCfg_MinDetectTime_ro_toS(_m->CollDetCfg_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->CollDetCfg_WarningReset & (0x01U)) | ((_m->CollDetCfg_Activate & (0x01U)) << 1) | ((_m->CollDetCfg_MinTime_valid & (0x01U)) << 3) | ((_m->CollDetCfg_ClearRegions & (0x01U)) << 7);
+  cframe->Data[1] |= (_m->CollDetCfg_MinDetectTime_ro & (0xFFU));
+
+  cframe->MsgId = CollDetCfg_CANID;
+  cframe->DLC = CollDetCfg_DLC;
+  cframe->IDE = CollDetCfg_IDE;
+  return CollDetCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch0(CollDetCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_ro = ARS408_CAN_DATABASE_CH0_CollDetCfg_MinDetectTime_ro_toS(_m->CollDetCfg_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _d[0] |= (_m->CollDetCfg_WarningReset & (0x01U)) | ((_m->CollDetCfg_Activate & (0x01U)) << 1) | ((_m->CollDetCfg_MinTime_valid & (0x01U)) << 3) | ((_m->CollDetCfg_ClearRegions & (0x01U)) << 7);
+  _d[1] |= (_m->CollDetCfg_MinDetectTime_ro & (0xFFU));
+
+  *_len = CollDetCfg_DLC;
+  *_ide = CollDetCfg_IDE;
+  return CollDetCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionCfg_ARS408_can_database_ch0(CollDetRegionCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRegCfg_Activate = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetRegCfg_Coordinates_valid = ((_d[0] >> 2) & (0x01U));
+  _m->CollDetRegCfg_RegionID = (_d[1] & (0x07U));
+  _m->CollDetRegCfg_Point1X_ro = ((_d[2] & (0xFFU)) << 5) | ((_d[3] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point1X_ro_fromS(_m->CollDetRegCfg_Point1X_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point1Y_ro = ((_d[3] & (0x07U)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point1Y_ro_fromS(_m->CollDetRegCfg_Point1Y_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point2X_ro = ((_d[5] & (0xFFU)) << 5) | ((_d[6] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point2X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point2X_ro_fromS(_m->CollDetRegCfg_Point2X_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point2Y_ro = ((_d[6] & (0x07U)) << 8) | (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point2Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point2Y_ro_fromS(_m->CollDetRegCfg_Point2Y_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRegionCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRegionCfg_ars408_can_database_ch0(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+ return CollDetRegionCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch0(CollDetRegionCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_ro = ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point1X_ro_toS(_m->CollDetRegCfg_Point1X_phys);
+  _m->CollDetRegCfg_Point1Y_ro = ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point1Y_ro_toS(_m->CollDetRegCfg_Point1Y_phys);
+  _m->CollDetRegCfg_Point2X_ro = ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point2X_ro_toS(_m->CollDetRegCfg_Point2X_phys);
+  _m->CollDetRegCfg_Point2Y_ro = ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point2Y_ro_toS(_m->CollDetRegCfg_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetRegCfg_Activate & (0x01U)) << 1) | ((_m->CollDetRegCfg_Coordinates_valid & (0x01U)) << 2);
+  cframe->Data[1] |= (_m->CollDetRegCfg_RegionID & (0x07U));
+  cframe->Data[2] |= ((_m->CollDetRegCfg_Point1X_ro >> 5) & (0xFFU));
+  cframe->Data[3] |= ((_m->CollDetRegCfg_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point1Y_ro >> 8) & (0x07U));
+  cframe->Data[4] |= (_m->CollDetRegCfg_Point1Y_ro & (0xFFU));
+  cframe->Data[5] |= ((_m->CollDetRegCfg_Point2X_ro >> 5) & (0xFFU));
+  cframe->Data[6] |= ((_m->CollDetRegCfg_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point2Y_ro >> 8) & (0x07U));
+  cframe->Data[7] |= (_m->CollDetRegCfg_Point2Y_ro & (0xFFU));
+
+  cframe->MsgId = CollDetRegionCfg_CANID;
+  cframe->DLC = CollDetRegionCfg_DLC;
+  cframe->IDE = CollDetRegionCfg_IDE;
+  return CollDetRegionCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch0(CollDetRegionCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_ro = ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point1X_ro_toS(_m->CollDetRegCfg_Point1X_phys);
+  _m->CollDetRegCfg_Point1Y_ro = ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point1Y_ro_toS(_m->CollDetRegCfg_Point1Y_phys);
+  _m->CollDetRegCfg_Point2X_ro = ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point2X_ro_toS(_m->CollDetRegCfg_Point2X_phys);
+  _m->CollDetRegCfg_Point2Y_ro = ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point2Y_ro_toS(_m->CollDetRegCfg_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetRegCfg_Activate & (0x01U)) << 1) | ((_m->CollDetRegCfg_Coordinates_valid & (0x01U)) << 2);
+  _d[1] |= (_m->CollDetRegCfg_RegionID & (0x07U));
+  _d[2] |= ((_m->CollDetRegCfg_Point1X_ro >> 5) & (0xFFU));
+  _d[3] |= ((_m->CollDetRegCfg_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point1Y_ro >> 8) & (0x07U));
+  _d[4] |= (_m->CollDetRegCfg_Point1Y_ro & (0xFFU));
+  _d[5] |= ((_m->CollDetRegCfg_Point2X_ro >> 5) & (0xFFU));
+  _d[6] |= ((_m->CollDetRegCfg_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point2Y_ro >> 8) & (0x07U));
+  _d[7] |= (_m->CollDetRegCfg_Point2Y_ro & (0xFFU));
+
+  *_len = CollDetRegionCfg_DLC;
+  *_ide = CollDetRegionCfg_IDE;
+  return CollDetRegionCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionState_ARS408_can_database_ch0(CollDetRegionState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRegState_WarningLevel = ((_d[0] >> 3) & (0x03U));
+  _m->CollDetRegState_RegionID = ((_d[0] >> 5) & (0x07U));
+  _m->CollDetRegState_Point1X_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_CollDetRegState_Point1X_ro_fromS(_m->CollDetRegState_Point1X_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point1Y_ro = ((_d[2] & (0x07U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->CollDetRegState_Point1Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_CollDetRegState_Point1Y_ro_fromS(_m->CollDetRegState_Point1Y_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point2X_ro = ((_d[4] & (0xFFU)) << 5) | ((_d[5] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->CollDetRegState_Point2X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_CollDetRegState_Point2X_ro_fromS(_m->CollDetRegState_Point2X_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point2Y_ro = ((_d[5] & (0x07U)) << 8) | (_d[6] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->CollDetRegState_Point2Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_CollDetRegState_Point2Y_ro_fromS(_m->CollDetRegState_Point2Y_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->CollDetRegState_NofObjects = (_d[7] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRegionState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRegionState_ars408_can_database_ch0(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+ return CollDetRegionState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch0(CollDetRegionState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_ro = ARS408_CAN_DATABASE_CH0_CollDetRegState_Point1X_ro_toS(_m->CollDetRegState_Point1X_phys);
+  _m->CollDetRegState_Point1Y_ro = ARS408_CAN_DATABASE_CH0_CollDetRegState_Point1Y_ro_toS(_m->CollDetRegState_Point1Y_phys);
+  _m->CollDetRegState_Point2X_ro = ARS408_CAN_DATABASE_CH0_CollDetRegState_Point2X_ro_toS(_m->CollDetRegState_Point2X_phys);
+  _m->CollDetRegState_Point2Y_ro = ARS408_CAN_DATABASE_CH0_CollDetRegState_Point2Y_ro_toS(_m->CollDetRegState_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetRegState_WarningLevel & (0x03U)) << 3) | ((_m->CollDetRegState_RegionID & (0x07U)) << 5);
+  cframe->Data[1] |= ((_m->CollDetRegState_Point1X_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->CollDetRegState_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point1Y_ro >> 8) & (0x07U));
+  cframe->Data[3] |= (_m->CollDetRegState_Point1Y_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->CollDetRegState_Point2X_ro >> 5) & (0xFFU));
+  cframe->Data[5] |= ((_m->CollDetRegState_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point2Y_ro >> 8) & (0x07U));
+  cframe->Data[6] |= (_m->CollDetRegState_Point2Y_ro & (0xFFU));
+  cframe->Data[7] |= (_m->CollDetRegState_NofObjects & (0xFFU));
+
+  cframe->MsgId = CollDetRegionState_CANID;
+  cframe->DLC = CollDetRegionState_DLC;
+  cframe->IDE = CollDetRegionState_IDE;
+  return CollDetRegionState_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch0(CollDetRegionState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_ro = ARS408_CAN_DATABASE_CH0_CollDetRegState_Point1X_ro_toS(_m->CollDetRegState_Point1X_phys);
+  _m->CollDetRegState_Point1Y_ro = ARS408_CAN_DATABASE_CH0_CollDetRegState_Point1Y_ro_toS(_m->CollDetRegState_Point1Y_phys);
+  _m->CollDetRegState_Point2X_ro = ARS408_CAN_DATABASE_CH0_CollDetRegState_Point2X_ro_toS(_m->CollDetRegState_Point2X_phys);
+  _m->CollDetRegState_Point2Y_ro = ARS408_CAN_DATABASE_CH0_CollDetRegState_Point2Y_ro_toS(_m->CollDetRegState_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetRegState_WarningLevel & (0x03U)) << 3) | ((_m->CollDetRegState_RegionID & (0x07U)) << 5);
+  _d[1] |= ((_m->CollDetRegState_Point1X_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->CollDetRegState_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point1Y_ro >> 8) & (0x07U));
+  _d[3] |= (_m->CollDetRegState_Point1Y_ro & (0xFFU));
+  _d[4] |= ((_m->CollDetRegState_Point2X_ro >> 5) & (0xFFU));
+  _d[5] |= ((_m->CollDetRegState_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point2Y_ro >> 8) & (0x07U));
+  _d[6] |= (_m->CollDetRegState_Point2Y_ro & (0xFFU));
+  _d[7] |= (_m->CollDetRegState_NofObjects & (0xFFU));
+
+  *_len = CollDetRegionState_DLC;
+  *_ide = CollDetRegionState_IDE;
+  return CollDetRegionState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetState_ARS408_can_database_ch0(CollDetState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetState_Active = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetState_NofRegions = ((_d[0] >> 4) & (0x0FU));
+  _m->CollDetState_MinDetectTime_ro = (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_CollDetState_MinDetectTime_ro_fromS(_m->CollDetState_MinDetectTime_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->CollDetState_MeasCounter = ((_d[2] & (0xFFU)) << 8) | (_d[3] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetState_ars408_can_database_ch0(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+ return CollDetState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Pack_CollDetState_ARS408_can_database_ch0(CollDetState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_ro = ARS408_CAN_DATABASE_CH0_CollDetState_MinDetectTime_ro_toS(_m->CollDetState_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetState_Active & (0x01U)) << 1) | ((_m->CollDetState_NofRegions & (0x0FU)) << 4);
+  cframe->Data[1] |= (_m->CollDetState_MinDetectTime_ro & (0xFFU));
+  cframe->Data[2] |= ((_m->CollDetState_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[3] |= (_m->CollDetState_MeasCounter & (0xFFU));
+
+  cframe->MsgId = CollDetState_CANID;
+  cframe->DLC = CollDetState_DLC;
+  cframe->IDE = CollDetState_IDE;
+  return CollDetState_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetState_ARS408_can_database_ch0(CollDetState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_ro = ARS408_CAN_DATABASE_CH0_CollDetState_MinDetectTime_ro_toS(_m->CollDetState_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetState_Active & (0x01U)) << 1) | ((_m->CollDetState_NofRegions & (0x0FU)) << 4);
+  _d[1] |= (_m->CollDetState_MinDetectTime_ro & (0xFFU));
+  _d[2] |= ((_m->CollDetState_MeasCounter >> 8) & (0xFFU));
+  _d[3] |= (_m->CollDetState_MeasCounter & (0xFFU));
+
+  *_len = CollDetState_DLC;
+  *_ide = CollDetState_IDE;
+  return CollDetState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_0_Status_ARS408_can_database_ch0(Cluster_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_NofClustersNear = (_d[0] & (0xFFU));
+  _m->Cluster_NofClustersFar = (_d[1] & (0xFFU));
+  _m->Cluster_MeasCounter = ((_d[2] & (0xFFU)) << 8) | (_d[3] & (0xFFU));
+  _m->Cluster_InterfaceVersion = ((_d[4] >> 4) & (0x0FU));
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_0_Status_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_0_Status_ars408_can_database_ch0(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+ return Cluster_0_Status_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch0(Cluster_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_0_Status_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Cluster_NofClustersNear & (0xFFU));
+  cframe->Data[1] |= (_m->Cluster_NofClustersFar & (0xFFU));
+  cframe->Data[2] |= ((_m->Cluster_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[3] |= (_m->Cluster_MeasCounter & (0xFFU));
+  cframe->Data[4] |= ((_m->Cluster_InterfaceVersion & (0x0FU)) << 4);
+
+  cframe->MsgId = Cluster_0_Status_CANID;
+  cframe->DLC = Cluster_0_Status_DLC;
+  cframe->IDE = Cluster_0_Status_IDE;
+  return Cluster_0_Status_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch0(Cluster_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_0_Status_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Cluster_NofClustersNear & (0xFFU));
+  _d[1] |= (_m->Cluster_NofClustersFar & (0xFFU));
+  _d[2] |= ((_m->Cluster_MeasCounter >> 8) & (0xFFU));
+  _d[3] |= (_m->Cluster_MeasCounter & (0xFFU));
+  _d[4] |= ((_m->Cluster_InterfaceVersion & (0x0FU)) << 4);
+
+  *_len = Cluster_0_Status_DLC;
+  *_ide = Cluster_0_Status_IDE;
+  return Cluster_0_Status_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_0_Status_ARS408_can_database_ch0(Obj_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_NofObjects = (_d[0] & (0xFFU));
+  _m->Obj_MeasCounter = ((_d[1] & (0xFFU)) << 8) | (_d[2] & (0xFFU));
+  _m->Obj_InterfaceVersion = ((_d[3] >> 4) & (0x0FU));
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_0_Status_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_0_Status_ars408_can_database_ch0(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+ return Obj_0_Status_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch0(Obj_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_0_Status_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_NofObjects & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[2] |= (_m->Obj_MeasCounter & (0xFFU));
+  cframe->Data[3] |= ((_m->Obj_InterfaceVersion & (0x0FU)) << 4);
+
+  cframe->MsgId = Obj_0_Status_CANID;
+  cframe->DLC = Obj_0_Status_DLC;
+  cframe->IDE = Obj_0_Status_IDE;
+  return Obj_0_Status_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch0(Obj_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_0_Status_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_NofObjects & (0xFFU));
+  _d[1] |= ((_m->Obj_MeasCounter >> 8) & (0xFFU));
+  _d[2] |= (_m->Obj_MeasCounter & (0xFFU));
+  _d[3] |= ((_m->Obj_InterfaceVersion & (0x0FU)) << 4);
+
+  *_len = Obj_0_Status_DLC;
+  *_ide = Obj_0_Status_IDE;
+  return Obj_0_Status_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_1_General_ARS408_can_database_ch0(Obj_1_General_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_DistLong_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->Obj_DistLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_Obj_DistLong_ro_fromS(_m->Obj_DistLong_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->Obj_DistLat_ro = ((_d[2] & (0x07U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->Obj_DistLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_Obj_DistLat_ro_fromS(_m->Obj_DistLat_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->Obj_VrelLong_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->Obj_VrelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_Obj_VrelLong_ro_fromS(_m->Obj_VrelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->Obj_VrelLat_ro = ((_d[5] & (0x3FU)) << 3) | ((_d[6] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->Obj_VrelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_Obj_VrelLat_ro_fromS(_m->Obj_VrelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->Obj_DynProp = (_d[6] & (0x07U));
+  _m->Obj_RCS_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->Obj_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_Obj_RCS_ro_fromS(_m->Obj_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_1_General_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_1_General_ars408_can_database_ch0(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+ return Obj_1_General_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch0(Obj_1_General_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_1_General_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->Obj_DistLong_ro = ARS408_CAN_DATABASE_CH0_Obj_DistLong_ro_toS(_m->Obj_DistLong_phys);
+  _m->Obj_DistLat_ro = ARS408_CAN_DATABASE_CH0_Obj_DistLat_ro_toS(_m->Obj_DistLat_phys);
+  _m->Obj_VrelLong_ro = ARS408_CAN_DATABASE_CH0_Obj_VrelLong_ro_toS(_m->Obj_VrelLong_phys);
+  _m->Obj_VrelLat_ro = ARS408_CAN_DATABASE_CH0_Obj_VrelLat_ro_toS(_m->Obj_VrelLat_phys);
+  _m->Obj_RCS_ro = ARS408_CAN_DATABASE_CH0_Obj_RCS_ro_toS(_m->Obj_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_DistLong_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->Obj_DistLong_ro & (0x1FU)) << 3) | ((_m->Obj_DistLat_ro >> 8) & (0x07U));
+  cframe->Data[3] |= (_m->Obj_DistLat_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->Obj_VrelLong_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Obj_VrelLong_ro & (0x03U)) << 6) | ((_m->Obj_VrelLat_ro >> 3) & (0x3FU));
+  cframe->Data[6] |= ((_m->Obj_VrelLat_ro & (0x07U)) << 5) | (_m->Obj_DynProp & (0x07U));
+  cframe->Data[7] |= (_m->Obj_RCS_ro & (0xFFU));
+
+  cframe->MsgId = Obj_1_General_CANID;
+  cframe->DLC = Obj_1_General_DLC;
+  cframe->IDE = Obj_1_General_IDE;
+  return Obj_1_General_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch0(Obj_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_1_General_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->Obj_DistLong_ro = ARS408_CAN_DATABASE_CH0_Obj_DistLong_ro_toS(_m->Obj_DistLong_phys);
+  _m->Obj_DistLat_ro = ARS408_CAN_DATABASE_CH0_Obj_DistLat_ro_toS(_m->Obj_DistLat_phys);
+  _m->Obj_VrelLong_ro = ARS408_CAN_DATABASE_CH0_Obj_VrelLong_ro_toS(_m->Obj_VrelLong_phys);
+  _m->Obj_VrelLat_ro = ARS408_CAN_DATABASE_CH0_Obj_VrelLat_ro_toS(_m->Obj_VrelLat_phys);
+  _m->Obj_RCS_ro = ARS408_CAN_DATABASE_CH0_Obj_RCS_ro_toS(_m->Obj_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_DistLong_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->Obj_DistLong_ro & (0x1FU)) << 3) | ((_m->Obj_DistLat_ro >> 8) & (0x07U));
+  _d[3] |= (_m->Obj_DistLat_ro & (0xFFU));
+  _d[4] |= ((_m->Obj_VrelLong_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Obj_VrelLong_ro & (0x03U)) << 6) | ((_m->Obj_VrelLat_ro >> 3) & (0x3FU));
+  _d[6] |= ((_m->Obj_VrelLat_ro & (0x07U)) << 5) | (_m->Obj_DynProp & (0x07U));
+  _d[7] |= (_m->Obj_RCS_ro & (0xFFU));
+
+  *_len = Obj_1_General_DLC;
+  *_ide = Obj_1_General_IDE;
+  return Obj_1_General_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_2_Quality_ARS408_can_database_ch0(Obj_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_DistLat_rms = ((_d[1] & (0x07U)) << 2) | ((_d[2] >> 6) & (0x03U));
+  _m->Obj_DistLong_rms = ((_d[1] >> 3) & (0x1FU));
+  _m->Obj_VrelLat_rms = ((_d[2] & (0x01U)) << 4) | ((_d[3] >> 4) & (0x0FU));
+  _m->Obj_VrelLong_rms = ((_d[2] >> 1) & (0x1FU));
+  _m->Obj_ArelLong_rms = ((_d[3] & (0x0FU)) << 1) | ((_d[4] >> 7) & (0x01U));
+  _m->Obj_Orientation_rms = ((_d[4] & (0x03U)) << 3) | ((_d[5] >> 5) & (0x07U));
+  _m->Obj_ArelLat_rms = ((_d[4] >> 2) & (0x1FU));
+  _m->Obj_MeasState = ((_d[6] >> 2) & (0x07U));
+  _m->Obj_ProbOfExist = ((_d[6] >> 5) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_2_Quality_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_2_Quality_ars408_can_database_ch0(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+ return Obj_2_Quality_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch0(Obj_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_2_Quality_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_DistLat_rms >> 2) & (0x07U)) | ((_m->Obj_DistLong_rms & (0x1FU)) << 3);
+  cframe->Data[2] |= ((_m->Obj_DistLat_rms & (0x03U)) << 6) | ((_m->Obj_VrelLat_rms >> 4) & (0x01U)) | ((_m->Obj_VrelLong_rms & (0x1FU)) << 1);
+  cframe->Data[3] |= ((_m->Obj_VrelLat_rms & (0x0FU)) << 4) | ((_m->Obj_ArelLong_rms >> 1) & (0x0FU));
+  cframe->Data[4] |= ((_m->Obj_ArelLong_rms & (0x01U)) << 7) | ((_m->Obj_Orientation_rms >> 3) & (0x03U)) | ((_m->Obj_ArelLat_rms & (0x1FU)) << 2);
+  cframe->Data[5] |= ((_m->Obj_Orientation_rms & (0x07U)) << 5);
+  cframe->Data[6] |= ((_m->Obj_MeasState & (0x07U)) << 2) | ((_m->Obj_ProbOfExist & (0x07U)) << 5);
+
+  cframe->MsgId = Obj_2_Quality_CANID;
+  cframe->DLC = Obj_2_Quality_DLC;
+  cframe->IDE = Obj_2_Quality_IDE;
+  return Obj_2_Quality_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch0(Obj_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_2_Quality_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_DistLat_rms >> 2) & (0x07U)) | ((_m->Obj_DistLong_rms & (0x1FU)) << 3);
+  _d[2] |= ((_m->Obj_DistLat_rms & (0x03U)) << 6) | ((_m->Obj_VrelLat_rms >> 4) & (0x01U)) | ((_m->Obj_VrelLong_rms & (0x1FU)) << 1);
+  _d[3] |= ((_m->Obj_VrelLat_rms & (0x0FU)) << 4) | ((_m->Obj_ArelLong_rms >> 1) & (0x0FU));
+  _d[4] |= ((_m->Obj_ArelLong_rms & (0x01U)) << 7) | ((_m->Obj_Orientation_rms >> 3) & (0x03U)) | ((_m->Obj_ArelLat_rms & (0x1FU)) << 2);
+  _d[5] |= ((_m->Obj_Orientation_rms & (0x07U)) << 5);
+  _d[6] |= ((_m->Obj_MeasState & (0x07U)) << 2) | ((_m->Obj_ProbOfExist & (0x07U)) << 5);
+
+  *_len = Obj_2_Quality_DLC;
+  *_ide = Obj_2_Quality_IDE;
+  return Obj_2_Quality_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_3_Extended_ARS408_can_database_ch0(Obj_3_Extended_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_ArelLong_ro = ((_d[1] & (0xFFU)) << 3) | ((_d[2] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->Obj_ArelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_Obj_ArelLong_ro_fromS(_m->Obj_ArelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->Obj_ArelLat_ro = ((_d[2] & (0x1FU)) << 4) | ((_d[3] >> 4) & (0x0FU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->Obj_ArelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_Obj_ArelLat_ro_fromS(_m->Obj_ArelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->Obj_Class = (_d[3] & (0x07U));
+  _m->Obj_OrientationAngle_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->Obj_OrientationAngle_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_Obj_OrientationAngle_ro_fromS(_m->Obj_OrientationAngle_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->Obj_Length_ro = (_d[6] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->Obj_Length_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_Obj_Length_ro_fromS(_m->Obj_Length_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->Obj_Width_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->Obj_Width_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_Obj_Width_ro_fromS(_m->Obj_Width_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_3_Extended_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_3_Extended_ars408_can_database_ch0(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+ return Obj_3_Extended_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch0(Obj_3_Extended_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_3_Extended_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->Obj_ArelLong_ro = ARS408_CAN_DATABASE_CH0_Obj_ArelLong_ro_toS(_m->Obj_ArelLong_phys);
+  _m->Obj_ArelLat_ro = ARS408_CAN_DATABASE_CH0_Obj_ArelLat_ro_toS(_m->Obj_ArelLat_phys);
+  _m->Obj_OrientationAngle_ro = ARS408_CAN_DATABASE_CH0_Obj_OrientationAngle_ro_toS(_m->Obj_OrientationAngle_phys);
+  _m->Obj_Length_ro = ARS408_CAN_DATABASE_CH0_Obj_Length_ro_toS(_m->Obj_Length_phys);
+  _m->Obj_Width_ro = ARS408_CAN_DATABASE_CH0_Obj_Width_ro_toS(_m->Obj_Width_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_ArelLong_ro >> 3) & (0xFFU));
+  cframe->Data[2] |= ((_m->Obj_ArelLong_ro & (0x07U)) << 5) | ((_m->Obj_ArelLat_ro >> 4) & (0x1FU));
+  cframe->Data[3] |= ((_m->Obj_ArelLat_ro & (0x0FU)) << 4) | (_m->Obj_Class & (0x07U));
+  cframe->Data[4] |= ((_m->Obj_OrientationAngle_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Obj_OrientationAngle_ro & (0x03U)) << 6);
+  cframe->Data[6] |= (_m->Obj_Length_ro & (0xFFU));
+  cframe->Data[7] |= (_m->Obj_Width_ro & (0xFFU));
+
+  cframe->MsgId = Obj_3_Extended_CANID;
+  cframe->DLC = Obj_3_Extended_DLC;
+  cframe->IDE = Obj_3_Extended_IDE;
+  return Obj_3_Extended_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch0(Obj_3_Extended_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_3_Extended_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->Obj_ArelLong_ro = ARS408_CAN_DATABASE_CH0_Obj_ArelLong_ro_toS(_m->Obj_ArelLong_phys);
+  _m->Obj_ArelLat_ro = ARS408_CAN_DATABASE_CH0_Obj_ArelLat_ro_toS(_m->Obj_ArelLat_phys);
+  _m->Obj_OrientationAngle_ro = ARS408_CAN_DATABASE_CH0_Obj_OrientationAngle_ro_toS(_m->Obj_OrientationAngle_phys);
+  _m->Obj_Length_ro = ARS408_CAN_DATABASE_CH0_Obj_Length_ro_toS(_m->Obj_Length_phys);
+  _m->Obj_Width_ro = ARS408_CAN_DATABASE_CH0_Obj_Width_ro_toS(_m->Obj_Width_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_ArelLong_ro >> 3) & (0xFFU));
+  _d[2] |= ((_m->Obj_ArelLong_ro & (0x07U)) << 5) | ((_m->Obj_ArelLat_ro >> 4) & (0x1FU));
+  _d[3] |= ((_m->Obj_ArelLat_ro & (0x0FU)) << 4) | (_m->Obj_Class & (0x07U));
+  _d[4] |= ((_m->Obj_OrientationAngle_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Obj_OrientationAngle_ro & (0x03U)) << 6);
+  _d[6] |= (_m->Obj_Length_ro & (0xFFU));
+  _d[7] |= (_m->Obj_Width_ro & (0xFFU));
+
+  *_len = Obj_3_Extended_DLC;
+  *_ide = Obj_3_Extended_IDE;
+  return Obj_3_Extended_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_4_Warning_ARS408_can_database_ch0(Obj_4_Warning_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_CollDetRegionBitfield = (_d[1] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_4_Warning_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_4_Warning_ars408_can_database_ch0(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+ return Obj_4_Warning_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch0(Obj_4_Warning_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_4_Warning_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= (_m->Obj_CollDetRegionBitfield & (0xFFU));
+
+  cframe->MsgId = Obj_4_Warning_CANID;
+  cframe->DLC = Obj_4_Warning_DLC;
+  cframe->IDE = Obj_4_Warning_IDE;
+  return Obj_4_Warning_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch0(Obj_4_Warning_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_4_Warning_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= (_m->Obj_CollDetRegionBitfield & (0xFFU));
+
+  *_len = Obj_4_Warning_DLC;
+  *_ide = Obj_4_Warning_IDE;
+  return Obj_4_Warning_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_VersionID_ARS408_can_database_ch0(VersionID_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Version_MajorRelease = (_d[0] & (0xFFU));
+  _m->Version_MinorRelease = (_d[1] & (0xFFU));
+  _m->Version_PatchLevel = (_d[2] & (0xFFU));
+  _m->Version_CountryCode = (_d[3] & (0x01U));
+  _m->Version_ExtendedRange = ((_d[3] >> 1) & (0x01U));
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < VersionID_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_VersionID_ars408_can_database_ch0(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+ return VersionID_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Pack_VersionID_ARS408_can_database_ch0(VersionID_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < VersionID_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Version_MajorRelease & (0xFFU));
+  cframe->Data[1] |= (_m->Version_MinorRelease & (0xFFU));
+  cframe->Data[2] |= (_m->Version_PatchLevel & (0xFFU));
+  cframe->Data[3] |= (_m->Version_CountryCode & (0x01U)) | ((_m->Version_ExtendedRange & (0x01U)) << 1);
+
+  cframe->MsgId = VersionID_CANID;
+  cframe->DLC = VersionID_DLC;
+  cframe->IDE = VersionID_IDE;
+  return VersionID_CANID;
+}
+
+#else
+
+uint32_t Pack_VersionID_ARS408_can_database_ch0(VersionID_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < VersionID_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Version_MajorRelease & (0xFFU));
+  _d[1] |= (_m->Version_MinorRelease & (0xFFU));
+  _d[2] |= (_m->Version_PatchLevel & (0xFFU));
+  _d[3] |= (_m->Version_CountryCode & (0x01U)) | ((_m->Version_ExtendedRange & (0x01U)) << 1);
+
+  *_len = VersionID_DLC;
+  *_ide = VersionID_IDE;
+  return VersionID_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_1_General_ARS408_can_database_ch0(Cluster_1_General_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_ID = (_d[0] & (0xFFU));
+  _m->Cluster_DistLong_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->Cluster_DistLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_Cluster_DistLong_ro_fromS(_m->Cluster_DistLong_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->Cluster_DistLat_ro = ((_d[2] & (0x03U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->Cluster_DistLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_Cluster_DistLat_ro_fromS(_m->Cluster_DistLat_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->Cluster_VrelLong_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->Cluster_VrelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_Cluster_VrelLong_ro_fromS(_m->Cluster_VrelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->Cluster_VrelLat_ro = ((_d[5] & (0x3FU)) << 3) | ((_d[6] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->Cluster_VrelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_Cluster_VrelLat_ro_fromS(_m->Cluster_VrelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _m->Cluster_DynProp = (_d[6] & (0x07U));
+  _m->Cluster_RCS_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->Cluster_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH0_Cluster_RCS_ro_fromS(_m->Cluster_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_1_General_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_1_General_ars408_can_database_ch0(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+ return Cluster_1_General_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch0(Cluster_1_General_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_1_General_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->Cluster_DistLong_ro = ARS408_CAN_DATABASE_CH0_Cluster_DistLong_ro_toS(_m->Cluster_DistLong_phys);
+  _m->Cluster_DistLat_ro = ARS408_CAN_DATABASE_CH0_Cluster_DistLat_ro_toS(_m->Cluster_DistLat_phys);
+  _m->Cluster_VrelLong_ro = ARS408_CAN_DATABASE_CH0_Cluster_VrelLong_ro_toS(_m->Cluster_VrelLong_phys);
+  _m->Cluster_VrelLat_ro = ARS408_CAN_DATABASE_CH0_Cluster_VrelLat_ro_toS(_m->Cluster_VrelLat_phys);
+  _m->Cluster_RCS_ro = ARS408_CAN_DATABASE_CH0_Cluster_RCS_ro_toS(_m->Cluster_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Cluster_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Cluster_DistLong_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->Cluster_DistLong_ro & (0x1FU)) << 3) | ((_m->Cluster_DistLat_ro >> 8) & (0x03U));
+  cframe->Data[3] |= (_m->Cluster_DistLat_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->Cluster_VrelLong_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Cluster_VrelLong_ro & (0x03U)) << 6) | ((_m->Cluster_VrelLat_ro >> 3) & (0x3FU));
+  cframe->Data[6] |= ((_m->Cluster_VrelLat_ro & (0x07U)) << 5) | (_m->Cluster_DynProp & (0x07U));
+  cframe->Data[7] |= (_m->Cluster_RCS_ro & (0xFFU));
+
+  cframe->MsgId = Cluster_1_General_CANID;
+  cframe->DLC = Cluster_1_General_DLC;
+  cframe->IDE = Cluster_1_General_IDE;
+  return Cluster_1_General_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch0(Cluster_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_1_General_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  _m->Cluster_DistLong_ro = ARS408_CAN_DATABASE_CH0_Cluster_DistLong_ro_toS(_m->Cluster_DistLong_phys);
+  _m->Cluster_DistLat_ro = ARS408_CAN_DATABASE_CH0_Cluster_DistLat_ro_toS(_m->Cluster_DistLat_phys);
+  _m->Cluster_VrelLong_ro = ARS408_CAN_DATABASE_CH0_Cluster_VrelLong_ro_toS(_m->Cluster_VrelLong_phys);
+  _m->Cluster_VrelLat_ro = ARS408_CAN_DATABASE_CH0_Cluster_VrelLat_ro_toS(_m->Cluster_VrelLat_phys);
+  _m->Cluster_RCS_ro = ARS408_CAN_DATABASE_CH0_Cluster_RCS_ro_toS(_m->Cluster_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  _d[0] |= (_m->Cluster_ID & (0xFFU));
+  _d[1] |= ((_m->Cluster_DistLong_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->Cluster_DistLong_ro & (0x1FU)) << 3) | ((_m->Cluster_DistLat_ro >> 8) & (0x03U));
+  _d[3] |= (_m->Cluster_DistLat_ro & (0xFFU));
+  _d[4] |= ((_m->Cluster_VrelLong_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Cluster_VrelLong_ro & (0x03U)) << 6) | ((_m->Cluster_VrelLat_ro >> 3) & (0x3FU));
+  _d[6] |= ((_m->Cluster_VrelLat_ro & (0x07U)) << 5) | (_m->Cluster_DynProp & (0x07U));
+  _d[7] |= (_m->Cluster_RCS_ro & (0xFFU));
+
+  *_len = Cluster_1_General_DLC;
+  *_ide = Cluster_1_General_IDE;
+  return Cluster_1_General_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_2_Quality_ARS408_can_database_ch0(Cluster_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_ID = (_d[0] & (0xFFU));
+  _m->Cluster_DistLat_rms = ((_d[1] & (0x07U)) << 2) | ((_d[2] >> 6) & (0x03U));
+  _m->Cluster_DistLong_rms = ((_d[1] >> 3) & (0x1FU));
+  _m->Cluster_VrelLat_rms = ((_d[2] & (0x01U)) << 4) | ((_d[3] >> 4) & (0x0FU));
+  _m->Cluster_VrelLong_rms = ((_d[2] >> 1) & (0x1FU));
+  _m->Cluster_PdH0 = (_d[3] & (0x07U));
+  _m->Cluster_AmbigState = (_d[4] & (0x07U));
+  _m->Cluster_InvalidState = ((_d[4] >> 3) & (0x1FU));
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_2_Quality_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_2_Quality_ars408_can_database_ch0(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+ return Cluster_2_Quality_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch0(Cluster_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_2_Quality_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Cluster_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Cluster_DistLat_rms >> 2) & (0x07U)) | ((_m->Cluster_DistLong_rms & (0x1FU)) << 3);
+  cframe->Data[2] |= ((_m->Cluster_DistLat_rms & (0x03U)) << 6) | ((_m->Cluster_VrelLat_rms >> 4) & (0x01U)) | ((_m->Cluster_VrelLong_rms & (0x1FU)) << 1);
+  cframe->Data[3] |= ((_m->Cluster_VrelLat_rms & (0x0FU)) << 4) | (_m->Cluster_PdH0 & (0x07U));
+  cframe->Data[4] |= (_m->Cluster_AmbigState & (0x07U)) | ((_m->Cluster_InvalidState & (0x1FU)) << 3);
+
+  cframe->MsgId = Cluster_2_Quality_CANID;
+  cframe->DLC = Cluster_2_Quality_DLC;
+  cframe->IDE = Cluster_2_Quality_IDE;
+  return Cluster_2_Quality_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch0(Cluster_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_2_Quality_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Cluster_ID & (0xFFU));
+  _d[1] |= ((_m->Cluster_DistLat_rms >> 2) & (0x07U)) | ((_m->Cluster_DistLong_rms & (0x1FU)) << 3);
+  _d[2] |= ((_m->Cluster_DistLat_rms & (0x03U)) << 6) | ((_m->Cluster_VrelLat_rms >> 4) & (0x01U)) | ((_m->Cluster_VrelLong_rms & (0x1FU)) << 1);
+  _d[3] |= ((_m->Cluster_VrelLat_rms & (0x0FU)) << 4) | (_m->Cluster_PdH0 & (0x07U));
+  _d[4] |= (_m->Cluster_AmbigState & (0x07U)) | ((_m->Cluster_InvalidState & (0x1FU)) << 3);
+
+  *_len = Cluster_2_Quality_DLC;
+  *_ide = Cluster_2_Quality_IDE;
+  return Cluster_2_Quality_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+

+ 4044 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch0.h

@@ -0,0 +1,4044 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+// DBC file version
+#define VER_ARS408_CAN_DATABASE_CH0_MAJ (0U)
+#define VER_ARS408_CAN_DATABASE_CH0_MIN (0U)
+
+// include current dbc-driver compilation config
+#include "ars408_can_database_ch0-config.h"
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+// This file must define:
+// base monitor struct
+// function signature for HASH calculation: (@GetFrameHash)
+// function signature for getting system tick value: (@GetSystemTick)
+#include "canmonitorutil.h"
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+
+// Control message for relay to display collision detection
+// def @CollDetRelayCtrl CAN Message (8    0x8)
+#define CollDetRelayCtrl_IDE (0U)
+#define CollDetRelayCtrl_DLC (1U)
+#define CollDetRelayCtrl_CANID (0x8)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+  // Region bit field for control relay
+  uint8_t CollDetRelayCtrl_Param;            //      Bits= 8
+
+#else
+
+  // Region bit field for control relay
+  uint8_t CollDetRelayCtrl_Param;            //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+} CollDetRelayCtrl_t;
+
+// Radar configuration
+// def @RadarConfiguration CAN Message (512  0x200)
+#define RadarConfiguration_IDE (0U)
+#define RadarConfiguration_DLC (8U)
+#define RadarConfiguration_CANID (0x200)
+// signal: @RadarCfg_MaxDistance_ro
+#define ARS408_CAN_DATABASE_CH0_RadarCfg_MaxDistance_ro_CovFactor (2)
+#define ARS408_CAN_DATABASE_CH0_RadarCfg_MaxDistance_ro_toS(x) ( (uint16_t) ((x) / (2)) )
+#define ARS408_CAN_DATABASE_CH0_RadarCfg_MaxDistance_ro_fromS(x) ( ((x) * (2)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+  // Allows changing the MaxDistance parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_MaxDistance_valid : 1;     //      Bits= 1
+
+  // Allows changing the SensorId parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SensorID_valid : 1;        //      Bits= 1
+
+  // Allows changing the RadarPower parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RadarPower_valid : 1;      //      Bits= 1
+
+  // Allows changing the OutputType parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_OutputType_valid : 1;      //      Bits= 1
+
+  // Allows changing the SendQuality parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendQuality_valid : 1;     //      Bits= 1
+
+  // Allows changing the SendExtInfo parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendExtInfo_valid : 1;     //      Bits= 1
+
+  // Allows changing the SortIndex parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SortIndex_valid : 1;       //      Bits= 1
+
+  // Allows changing the StoreInNvm parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_StoreInNVM_valid : 1;      //      Bits= 1
+
+  uint16_t RadarCfg_MaxDistance_ro;           //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  uint16_t RadarCfg_MaxDistance_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // Sensor ID (0 to 7)
+  uint8_t RadarCfg_SensorID : 3;              //      Bits= 3
+
+  // Data output type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarCfg_OutputType : 2;            //      Bits= 2
+
+  // Radar Tx output power reduction (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RadarPower : 3;            //      Bits= 3
+
+  // Allows changing the CtrlRelay parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_CtrlRelay_valid : 1;       //      Bits= 1
+
+  // Enables output of CtrlRelay message if CollDet is active
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_CtrlRelay : 1;             //      Bits= 1
+
+  // Enables output of quality message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendQuality : 1;           //      Bits= 1
+
+  // Enables output of extended message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendExtInfo : 1;           //      Bits= 1
+
+  // Object sort index
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarCfg_SortIndex : 3;             //      Bits= 3
+
+  // Store configuration in Nvm
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_StoreInNVM : 1;            //      Bits= 1
+
+  // Allows changing the RCS_Threshold parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RCS_Threshold_Valid : 1;   //      Bits= 1
+
+  // Standard or high sensitivity for cluster list output
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RCS_Threshold : 3;         //      Bits= 3
+
+#else
+
+  // Allows changing the MaxDistance parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_MaxDistance_valid;         //      Bits= 1
+
+  // Allows changing the SensorId parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SensorID_valid;            //      Bits= 1
+
+  // Allows changing the RadarPower parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RadarPower_valid;          //      Bits= 1
+
+  // Allows changing the OutputType parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_OutputType_valid;          //      Bits= 1
+
+  // Allows changing the SendQuality parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendQuality_valid;         //      Bits= 1
+
+  // Allows changing the SendExtInfo parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendExtInfo_valid;         //      Bits= 1
+
+  // Allows changing the SortIndex parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SortIndex_valid;           //      Bits= 1
+
+  // Allows changing the StoreInNvm parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_StoreInNVM_valid;          //      Bits= 1
+
+  uint16_t RadarCfg_MaxDistance_ro;           //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  uint16_t RadarCfg_MaxDistance_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // Sensor ID (0 to 7)
+  uint8_t RadarCfg_SensorID;                  //      Bits= 3
+
+  // Data output type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarCfg_OutputType;                //      Bits= 2
+
+  // Radar Tx output power reduction (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RadarPower;                //      Bits= 3
+
+  // Allows changing the CtrlRelay parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_CtrlRelay_valid;           //      Bits= 1
+
+  // Enables output of CtrlRelay message if CollDet is active
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_CtrlRelay;                 //      Bits= 1
+
+  // Enables output of quality message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendQuality;               //      Bits= 1
+
+  // Enables output of extended message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendExtInfo;               //      Bits= 1
+
+  // Object sort index
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarCfg_SortIndex;                 //      Bits= 3
+
+  // Store configuration in Nvm
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_StoreInNVM;                //      Bits= 1
+
+  // Allows changing the RCS_Threshold parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RCS_Threshold_Valid;       //      Bits= 1
+
+  // Standard or high sensitivity for cluster list output
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RCS_Threshold;             //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+} RadarConfiguration_t;
+
+// Radar configuration status
+// def @RadarState CAN Message (513  0x201)
+#define RadarState_IDE (0U)
+#define RadarState_DLC (8U)
+#define RadarState_CANID (0x201)
+#define RadarState_CYC (50U)
+// signal: @RadarState_MaxDistanceCfg_ro
+#define ARS408_CAN_DATABASE_CH0_RadarState_MaxDistanceCfg_ro_CovFactor (2)
+#define ARS408_CAN_DATABASE_CH0_RadarState_MaxDistanceCfg_ro_toS(x) ( (uint16_t) ((x) / (2)) )
+#define ARS408_CAN_DATABASE_CH0_RadarState_MaxDistanceCfg_ro_fromS(x) ( ((x) * (2)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+  // Gives the status of reading the radar configuration from EEPROM
+  //  1 : "successful"
+  //  0 : "pending"
+  // 
+  uint8_t RadarState_NVMReadStatus : 1;       //      Bits= 1
+
+  // Gives the status of writing the radar configuration from EEPROM
+  // 
+  uint8_t RadarState_NVMwriteStatus : 1;      //      Bits= 1
+
+  uint16_t RadarState_MaxDistanceCfg_ro;      //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  uint16_t RadarState_MaxDistanceCfg_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // 
+  // 
+  //  1 : "Voltage error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Voltage_Error : 1;       //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temporary error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temporary_Error : 1;     //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temperature error  active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temperature_Error : 1;   //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Interference detected"
+  //  0 : "No interference"
+  // 
+  uint8_t RadarState_Interference : 1;        //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Persistent error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Persistent_Error : 1;    //      Bits= 1
+
+  // Radar Tx output level (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RadarPowerCfg : 3;       //      Bits= 3
+
+  // Sensor ID (0 to 7)
+  //  7 : "ID 7"
+  //  6 : "ID 6"
+  //  5 : "ID 5"
+  //  4 : "ID 4"
+  //  3 : "ID 3"
+  //  2 : "ID 2"
+  //  1 : "ID 1"
+  //  0 : "ID 0"
+  // 
+  uint8_t RadarState_SensorID : 3;            //      Bits= 3
+
+  // Current sorting of object list
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarState_SortIndex : 3;           //      Bits= 3
+
+  // Status of control relay message output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_CtrlRelayCfg : 1;        //      Bits= 1
+
+  // Current output list type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarState_OutputTypeCfg : 2;       //      Bits= 2
+
+  // Status of quality information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendQualityCfg : 1;      //      Bits= 1
+
+  // Status of extended information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendExtInfoCfg : 1;      //      Bits= 1
+
+  // Status of motion input signals
+  //  3 : "Speed and yaw rate missing"
+  //  2 : "Yaw rate missing"
+  //  1 : "Speed missing"
+  //  0 : "Input ok"
+  // 
+  uint8_t RadarState_MotionRxState : 2;       //      Bits= 2
+
+  // Current sensitivity mode
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RCS_Threshold : 3;       //      Bits= 3
+
+#else
+
+  // Gives the status of reading the radar configuration from EEPROM
+  //  1 : "successful"
+  //  0 : "pending"
+  // 
+  uint8_t RadarState_NVMReadStatus;           //      Bits= 1
+
+  // Gives the status of writing the radar configuration from EEPROM
+  // 
+  uint8_t RadarState_NVMwriteStatus;          //      Bits= 1
+
+  uint16_t RadarState_MaxDistanceCfg_ro;      //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  uint16_t RadarState_MaxDistanceCfg_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // 
+  // 
+  //  1 : "Voltage error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Voltage_Error;           //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temporary error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temporary_Error;         //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temperature error  active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temperature_Error;       //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Interference detected"
+  //  0 : "No interference"
+  // 
+  uint8_t RadarState_Interference;            //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Persistent error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Persistent_Error;        //      Bits= 1
+
+  // Radar Tx output level (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RadarPowerCfg;           //      Bits= 3
+
+  // Sensor ID (0 to 7)
+  //  7 : "ID 7"
+  //  6 : "ID 6"
+  //  5 : "ID 5"
+  //  4 : "ID 4"
+  //  3 : "ID 3"
+  //  2 : "ID 2"
+  //  1 : "ID 1"
+  //  0 : "ID 0"
+  // 
+  uint8_t RadarState_SensorID;                //      Bits= 3
+
+  // Current sorting of object list
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarState_SortIndex;               //      Bits= 3
+
+  // Status of control relay message output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_CtrlRelayCfg;            //      Bits= 1
+
+  // Current output list type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarState_OutputTypeCfg;           //      Bits= 2
+
+  // Status of quality information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendQualityCfg;          //      Bits= 1
+
+  // Status of extended information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendExtInfoCfg;          //      Bits= 1
+
+  // Status of motion input signals
+  //  3 : "Speed and yaw rate missing"
+  //  2 : "Yaw rate missing"
+  //  1 : "Speed missing"
+  //  0 : "Input ok"
+  // 
+  uint8_t RadarState_MotionRxState;           //      Bits= 2
+
+  // Current sensitivity mode
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RCS_Threshold;           //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+} RadarState_t;
+
+// Filter configuration
+// def @FilterCfg CAN Message (514  0x202)
+#define FilterCfg_IDE (0U)
+#define FilterCfg_DLC (5U)
+#define FilterCfg_CANID (0x202)
+// signal: @FilterCfg_Min_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_Size_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterCfg_Min_RCS_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Min_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Min_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Min_Distance_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Min_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_Y_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterCfg_Min_X_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Min_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @FilterCfg_Max_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Max_Distance_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Max_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Max_RCS_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Max_Size_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterCfg_Max_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_Y_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterCfg_Max_X_ro
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterCfg_Max_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+  //  1 : "valid"
+  //  0 : "invalid"
+  // 
+  uint8_t FilterCfg_Valid : 1;                //      Bits= 1
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterCfg_Active : 1;               //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterCfg_Index : 4;                //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterCfg_Type : 1;                 //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#else
+
+  //  1 : "valid"
+  //  0 : "invalid"
+  // 
+  uint8_t FilterCfg_Valid;                    //      Bits= 1
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterCfg_Active;                   //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterCfg_Index;                    //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterCfg_Type;                     //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+} FilterCfg_t;
+
+// Header of filter configuration state
+// def @FilterState_Header CAN Message (515  0x203)
+#define FilterState_Header_IDE (0U)
+#define FilterState_Header_DLC (2U)
+#define FilterState_Header_CANID (0x203)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+  uint8_t FilterState_NofClusterFilterCfg : 5;   //      Bits= 5
+
+  uint8_t FilterState_NofObjectFilterCfg : 5;    //      Bits= 5
+
+#else
+
+  uint8_t FilterState_NofClusterFilterCfg;       //      Bits= 5
+
+  uint8_t FilterState_NofObjectFilterCfg;        //      Bits= 5
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+} FilterState_Header_t;
+
+// Filter configuration status
+// def @FilterState_Cfg CAN Message (516  0x204)
+#define FilterState_Cfg_IDE (0U)
+#define FilterState_Cfg_DLC (5U)
+#define FilterState_Cfg_CANID (0x204)
+// signal: @FilterState_Min_RCS_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Min_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Min_Distance_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Min_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Min_Y_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterState_Min_Size_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterState_Min_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_X_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Min_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @FilterState_Max_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Max_Distance_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Max_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Max_RCS_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Max_Size_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterState_Max_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_Y_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterState_Max_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_X_ro
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_FilterState_Max_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterState_Active : 1;               //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterState_Index : 4;                //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterState_Type : 1;                 //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterState_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_NofObj;              //      Bits=12
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_NofObj;              //      Bits=12
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#else
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterState_Active;                   //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterState_Index;                    //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterState_Type;                     //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterState_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_NofObj;              //      Bits=12
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_NofObj;              //      Bits=12
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+} FilterState_Cfg_t;
+
+// Device movement speed
+// def @SpeedInformation CAN Message (768  0x300)
+#define SpeedInformation_IDE (0U)
+#define SpeedInformation_DLC (2U)
+#define SpeedInformation_CANID (0x300)
+// signal: @RadarDevice_Speed_ro
+#define ARS408_CAN_DATABASE_CH0_RadarDevice_Speed_ro_CovFactor (0.020000)
+#define ARS408_CAN_DATABASE_CH0_RadarDevice_Speed_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.020000)) )
+#define ARS408_CAN_DATABASE_CH0_RadarDevice_Speed_ro_fromS(x) ( (((x) * (0.020000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+  uint16_t RadarDevice_Speed_ro;             //      Bits=13 Factor= 0.020000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t RadarDevice_Speed_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // Speed direction of the radar unit
+  //  3 : "reserved"
+  //  2 : "reverse"
+  //  1 : "forward"
+  //  0 : "standstill"
+  // 
+  uint8_t RadarDevice_SpeedDirection : 2;    //      Bits= 2
+
+#else
+
+  uint16_t RadarDevice_Speed_ro;             //      Bits=13 Factor= 0.020000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t RadarDevice_Speed_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // Speed direction of the radar unit
+  //  3 : "reserved"
+  //  2 : "reverse"
+  //  1 : "forward"
+  //  0 : "standstill"
+  // 
+  uint8_t RadarDevice_SpeedDirection;        //      Bits= 2
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+} SpeedInformation_t;
+
+// Device movement yaw rate
+// def @YawRateInformation CAN Message (769  0x301)
+#define YawRateInformation_IDE (0U)
+#define YawRateInformation_DLC (2U)
+#define YawRateInformation_CANID (0x301)
+// signal: @RadarDevice_YawRate_ro
+#define ARS408_CAN_DATABASE_CH0_RadarDevice_YawRate_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH0_RadarDevice_YawRate_ro_toS(x) ( (uint16_t) (((x) - (-327.680000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH0_RadarDevice_YawRate_ro_fromS(x) ( (((x) * (0.010000)) + (-327.680000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+  uint16_t RadarDevice_YawRate_ro;           //      Bits=16 Offset= -327.680000        Factor= 0.010000        Unit:'deg/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t RadarDevice_YawRate_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#else
+
+  uint16_t RadarDevice_YawRate_ro;           //      Bits=16 Offset= -327.680000        Factor= 0.010000        Unit:'deg/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t RadarDevice_YawRate_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+} YawRateInformation_t;
+
+// Collision detection configuration
+// def @CollDetCfg CAN Message (1024 0x400)
+#define CollDetCfg_IDE (0U)
+#define CollDetCfg_DLC (2U)
+#define CollDetCfg_CANID (0x400)
+// signal: @CollDetCfg_MinDetectTime_ro
+#define ARS408_CAN_DATABASE_CH0_CollDetCfg_MinDetectTime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH0_CollDetCfg_MinDetectTime_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH0_CollDetCfg_MinDetectTime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+  //  1 : "Warn reset"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_WarningReset : 1;       //      Bits= 1
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetCfg_Activate : 1;           //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetCfg_MinTime_valid : 1;      //      Bits= 1
+
+  //  1 : "Clear all defined regions"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_ClearRegions : 1;       //      Bits= 1
+
+  uint8_t CollDetCfg_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t CollDetCfg_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#else
+
+  //  1 : "Warn reset"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_WarningReset;           //      Bits= 1
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetCfg_Activate;               //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetCfg_MinTime_valid;          //      Bits= 1
+
+  //  1 : "Clear all defined regions"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_ClearRegions;           //      Bits= 1
+
+  uint8_t CollDetCfg_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t CollDetCfg_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+} CollDetCfg_t;
+
+// Collision detection region configuration
+// def @CollDetRegionCfg CAN Message (1025 0x401)
+#define CollDetRegionCfg_IDE (0U)
+#define CollDetRegionCfg_DLC (8U)
+#define CollDetRegionCfg_CANID (0x401)
+// signal: @CollDetRegCfg_Point1X_ro
+#define ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point1X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point1X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point1X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegCfg_Point1Y_ro
+#define ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point1Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point1Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point1Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @CollDetRegCfg_Point2X_ro
+#define ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point2X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point2X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point2X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegCfg_Point2Y_ro
+#define ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point2Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point2Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_CollDetRegCfg_Point2Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetRegCfg_Activate : 1;            //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetRegCfg_Coordinates_valid : 1;   //      Bits= 1
+
+  uint8_t CollDetRegCfg_RegionID : 3;            //      Bits= 3
+
+  uint16_t CollDetRegCfg_Point1X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point1Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#else
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetRegCfg_Activate;                //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetRegCfg_Coordinates_valid;       //      Bits= 1
+
+  uint8_t CollDetRegCfg_RegionID;                //      Bits= 3
+
+  uint16_t CollDetRegCfg_Point1X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point1Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+} CollDetRegionCfg_t;
+
+// Collision detection region configuration and warning status
+// def @CollDetRegionState CAN Message (1026 0x402)
+#define CollDetRegionState_IDE (0U)
+#define CollDetRegionState_DLC (8U)
+#define CollDetRegionState_CANID (0x402)
+// signal: @CollDetRegState_Point1X_ro
+#define ARS408_CAN_DATABASE_CH0_CollDetRegState_Point1X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_CollDetRegState_Point1X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_CollDetRegState_Point1X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegState_Point1Y_ro
+#define ARS408_CAN_DATABASE_CH0_CollDetRegState_Point1Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_CollDetRegState_Point1Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_CollDetRegState_Point1Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @CollDetRegState_Point2X_ro
+#define ARS408_CAN_DATABASE_CH0_CollDetRegState_Point2X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_CollDetRegState_Point2X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_CollDetRegState_Point2X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegState_Point2Y_ro
+#define ARS408_CAN_DATABASE_CH0_CollDetRegState_Point2Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_CollDetRegState_Point2Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_CollDetRegState_Point2Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+  //  3 : "Warning deactivated"
+  //  2 : "Preliminary warning"
+  //  1 : "Object warning"
+  //  0 : "No warning"
+  // 
+  uint8_t CollDetRegState_WarningLevel : 2;   //      Bits= 2
+
+  uint8_t CollDetRegState_RegionID : 3;       //      Bits= 3
+
+  uint16_t CollDetRegState_Point1X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point1Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint8_t CollDetRegState_NofObjects;         //      Bits= 8
+
+#else
+
+  //  3 : "Warning deactivated"
+  //  2 : "Preliminary warning"
+  //  1 : "Object warning"
+  //  0 : "No warning"
+  // 
+  uint8_t CollDetRegState_WarningLevel;       //      Bits= 2
+
+  uint8_t CollDetRegState_RegionID;           //      Bits= 3
+
+  uint16_t CollDetRegState_Point1X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point1Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint8_t CollDetRegState_NofObjects;         //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+} CollDetRegionState_t;
+
+// Collision detection configuration status
+// def @CollDetState CAN Message (1032 0x408)
+#define CollDetState_IDE (0U)
+#define CollDetState_DLC (4U)
+#define CollDetState_CANID (0x408)
+// signal: @CollDetState_MinDetectTime_ro
+#define ARS408_CAN_DATABASE_CH0_CollDetState_MinDetectTime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH0_CollDetState_MinDetectTime_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH0_CollDetState_MinDetectTime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetState_Active : 1;             //      Bits= 1
+
+  uint8_t CollDetState_NofRegions : 4;         //      Bits= 4
+
+  uint8_t CollDetState_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t CollDetState_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t CollDetState_MeasCounter;           //      Bits=16
+
+#else
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetState_Active;                 //      Bits= 1
+
+  uint8_t CollDetState_NofRegions;             //      Bits= 4
+
+  uint8_t CollDetState_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t CollDetState_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t CollDetState_MeasCounter;           //      Bits=16
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+} CollDetState_t;
+
+// Status information about Clusters
+// def @Cluster_0_Status CAN Message (1536 0x600)
+#define Cluster_0_Status_IDE (0U)
+#define Cluster_0_Status_DLC (5U)
+#define Cluster_0_Status_CANID (0x600)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+  // Number of valid Clusters in near range scan
+  uint8_t Cluster_NofClustersNear;           //      Bits= 8
+
+  // Number of valid Clusters in far range scan
+  uint8_t Cluster_NofClustersFar;            //      Bits= 8
+
+  // Measurement counter
+  uint16_t Cluster_MeasCounter;              //      Bits=16
+
+  // Cluster CAN Interface Version Number
+  uint8_t Cluster_InterfaceVersion : 4;      //      Bits= 4
+
+#else
+
+  // Number of valid Clusters in near range scan
+  uint8_t Cluster_NofClustersNear;           //      Bits= 8
+
+  // Number of valid Clusters in far range scan
+  uint8_t Cluster_NofClustersFar;            //      Bits= 8
+
+  // Measurement counter
+  uint16_t Cluster_MeasCounter;              //      Bits=16
+
+  // Cluster CAN Interface Version Number
+  uint8_t Cluster_InterfaceVersion;          //      Bits= 4
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+} Cluster_0_Status_t;
+
+// Status information about object
+// def @Obj_0_Status CAN Message (1546 0x60a)
+#define Obj_0_Status_IDE (0U)
+#define Obj_0_Status_DLC (4U)
+#define Obj_0_Status_CANID (0x60a)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+  // Number of Objects sent
+  uint8_t Obj_NofObjects;                    //      Bits= 8
+
+  // Measurement Counter
+  uint16_t Obj_MeasCounter;                  //      Bits=16
+
+  // Object CAN Interface Version Number
+  uint8_t Obj_InterfaceVersion : 4;          //      Bits= 4
+
+#else
+
+  // Number of Objects sent
+  uint8_t Obj_NofObjects;                    //      Bits= 8
+
+  // Measurement Counter
+  uint16_t Obj_MeasCounter;                  //      Bits=16
+
+  // Object CAN Interface Version Number
+  uint8_t Obj_InterfaceVersion;              //      Bits= 4
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+} Obj_0_Status_t;
+
+// General object information
+// def @Obj_1_General CAN Message (1547 0x60b)
+#define Obj_1_General_IDE (0U)
+#define Obj_1_General_DLC (8U)
+#define Obj_1_General_CANID (0x60b)
+// signal: @Obj_DistLong_ro
+#define ARS408_CAN_DATABASE_CH0_Obj_DistLong_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_Obj_DistLong_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_Obj_DistLong_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @Obj_DistLat_ro
+#define ARS408_CAN_DATABASE_CH0_Obj_DistLat_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_Obj_DistLat_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_Obj_DistLat_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @Obj_VrelLong_ro
+#define ARS408_CAN_DATABASE_CH0_Obj_VrelLong_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH0_Obj_VrelLong_ro_toS(x) ( (uint16_t) (((x) - (-128.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH0_Obj_VrelLong_ro_fromS(x) ( (((x) * (0.250000)) + (-128.000000)) )
+// signal: @Obj_VrelLat_ro
+#define ARS408_CAN_DATABASE_CH0_Obj_VrelLat_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH0_Obj_VrelLat_ro_toS(x) ( (uint16_t) (((x) - (-64.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH0_Obj_VrelLat_ro_fromS(x) ( (((x) * (0.250000)) + (-64.000000)) )
+// signal: @Obj_RCS_ro
+#define ARS408_CAN_DATABASE_CH0_Obj_RCS_ro_CovFactor (0.500000)
+#define ARS408_CAN_DATABASE_CH0_Obj_RCS_ro_toS(x) ( (uint8_t) (((x) - (-64.000000)) / (0.500000)) )
+#define ARS408_CAN_DATABASE_CH0_Obj_RCS_ro_fromS(x) ( (((x) * (0.500000)) + (-64.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_DistLong_ro;                  //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Obj_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t Obj_DistLat_ro;                   //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Obj_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLong_ro;                  //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLat_ro;                   //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // Object dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Obj_DynProp : 3;                   //      Bits= 3
+
+  uint8_t Obj_RCS_ro;                        //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Obj_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_DistLong_ro;                  //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Obj_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t Obj_DistLat_ro;                   //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Obj_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLong_ro;                  //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLat_ro;                   //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // Object dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Obj_DynProp;                       //      Bits= 3
+
+  uint8_t Obj_RCS_ro;                        //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Obj_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+} Obj_1_General_t;
+
+// Quality object information
+// def @Obj_2_Quality CAN Message (1548 0x60c)
+#define Obj_2_Quality_IDE (0U)
+#define Obj_2_Quality_DLC (7U)
+#define Obj_2_Quality_CANID (0x60c)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Object lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLat_rms : 5;               //      Bits= 5
+
+  // Object longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLong_rms : 5;              //      Bits= 5
+
+  // Object relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLat_rms : 5;               //      Bits= 5
+
+  // Object relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLong_rms : 5;              //      Bits= 5
+
+  // Object relative longitudinal acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLong_rms : 5;              //      Bits= 5
+
+  // Object orientation angle
+  //  31 : "Invalid"
+  //  30 : "<180.000 deg"
+  //  29 : "<126.881 deg"
+  //  28 : "<89.437 deg"
+  //  27 : "<63.044 deg"
+  //  26 : "<44.439 deg"
+  //  25 : "<31.325 deg"
+  //  24 : "<22.081 deg"
+  //  23 : "<15.565 deg"
+  //  22 : "<10.971 deg"
+  //  21 : "<7.734 deg"
+  //  20 : "<5.451 deg"
+  //  19 : "<3.843 deg"
+  //  18 : "<2.709 deg"
+  //  17 : "<1.909 deg"
+  //  16 : "<1.346 deg"
+  //  15 : "<0.949 deg"
+  //  14 : "<0.669 deg"
+  //  13 : "<0.471 deg"
+  //  12 : "<0.332 deg"
+  //  11 : "<0.234 deg"
+  //  10 : "<0.165 deg"
+  //  9 : "<0.116 deg"
+  //  8 : "<0.082 deg"
+  //  7 : "<0.058 deg"
+  //  6 : "<0.041 deg"
+  //  5 : "<0.029 deg"
+  //  4 : "<0.020 deg"
+  //  3 : "<0.014 deg"
+  //  2 : "<0.010 deg"
+  //  1 : "<0.007 deg"
+  //  0 : "<0.005 deg"
+  // 
+  uint8_t Obj_Orientation_rms : 5;           //      Bits= 5
+
+  // Object relative lateral acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLat_rms : 5;               //      Bits= 5
+
+  // Object measurement status
+  //  5 : "New from merge"
+  //  4 : "Deleted for merge"
+  //  3 : "Predicted"
+  //  2 : "Measured"
+  //  1 : "New"
+  //  0 : "Deleted"
+  // 
+  uint8_t Obj_MeasState : 3;                 //      Bits= 3
+
+  // Object probability of existence
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Obj_ProbOfExist : 3;               //      Bits= 3
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Object lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLat_rms;                   //      Bits= 5
+
+  // Object longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLong_rms;                  //      Bits= 5
+
+  // Object relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLat_rms;                   //      Bits= 5
+
+  // Object relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLong_rms;                  //      Bits= 5
+
+  // Object relative longitudinal acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLong_rms;                  //      Bits= 5
+
+  // Object orientation angle
+  //  31 : "Invalid"
+  //  30 : "<180.000 deg"
+  //  29 : "<126.881 deg"
+  //  28 : "<89.437 deg"
+  //  27 : "<63.044 deg"
+  //  26 : "<44.439 deg"
+  //  25 : "<31.325 deg"
+  //  24 : "<22.081 deg"
+  //  23 : "<15.565 deg"
+  //  22 : "<10.971 deg"
+  //  21 : "<7.734 deg"
+  //  20 : "<5.451 deg"
+  //  19 : "<3.843 deg"
+  //  18 : "<2.709 deg"
+  //  17 : "<1.909 deg"
+  //  16 : "<1.346 deg"
+  //  15 : "<0.949 deg"
+  //  14 : "<0.669 deg"
+  //  13 : "<0.471 deg"
+  //  12 : "<0.332 deg"
+  //  11 : "<0.234 deg"
+  //  10 : "<0.165 deg"
+  //  9 : "<0.116 deg"
+  //  8 : "<0.082 deg"
+  //  7 : "<0.058 deg"
+  //  6 : "<0.041 deg"
+  //  5 : "<0.029 deg"
+  //  4 : "<0.020 deg"
+  //  3 : "<0.014 deg"
+  //  2 : "<0.010 deg"
+  //  1 : "<0.007 deg"
+  //  0 : "<0.005 deg"
+  // 
+  uint8_t Obj_Orientation_rms;               //      Bits= 5
+
+  // Object relative lateral acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLat_rms;                   //      Bits= 5
+
+  // Object measurement status
+  //  5 : "New from merge"
+  //  4 : "Deleted for merge"
+  //  3 : "Predicted"
+  //  2 : "Measured"
+  //  1 : "New"
+  //  0 : "Deleted"
+  // 
+  uint8_t Obj_MeasState;                     //      Bits= 3
+
+  // Object probability of existence
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Obj_ProbOfExist;                   //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+} Obj_2_Quality_t;
+
+// Extended object information
+// def @Obj_3_Extended CAN Message (1549 0x60d)
+#define Obj_3_Extended_IDE (0U)
+#define Obj_3_Extended_DLC (8U)
+#define Obj_3_Extended_CANID (0x60d)
+// signal: @Obj_ArelLong_ro
+#define ARS408_CAN_DATABASE_CH0_Obj_ArelLong_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH0_Obj_ArelLong_ro_toS(x) ( (uint16_t) (((x) - (-10.000000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH0_Obj_ArelLong_ro_fromS(x) ( (((x) * (0.010000)) + (-10.000000)) )
+// signal: @Obj_ArelLat_ro
+#define ARS408_CAN_DATABASE_CH0_Obj_ArelLat_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH0_Obj_ArelLat_ro_toS(x) ( (uint16_t) (((x) - (-2.500000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH0_Obj_ArelLat_ro_fromS(x) ( (((x) * (0.010000)) + (-2.500000)) )
+// signal: @Obj_OrientationAngle_ro
+#define ARS408_CAN_DATABASE_CH0_Obj_OrientationAngle_ro_CovFactor (0.400000)
+#define ARS408_CAN_DATABASE_CH0_Obj_OrientationAngle_ro_toS(x) ( (uint16_t) (((x) - (-180.000000)) / (0.400000)) )
+#define ARS408_CAN_DATABASE_CH0_Obj_OrientationAngle_ro_fromS(x) ( (((x) * (0.400000)) + (-180.000000)) )
+// signal: @Obj_Length_ro
+#define ARS408_CAN_DATABASE_CH0_Obj_Length_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_Obj_Length_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_Obj_Length_ro_fromS(x) ( (((x) * (0.200000)) + (0.000000)) )
+// signal: @Obj_Width_ro
+#define ARS408_CAN_DATABASE_CH0_Obj_Width_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_Obj_Width_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_Obj_Width_ro_fromS(x) ( (((x) * (0.200000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_ArelLong_ro;                  //      Bits=11 Offset= -10.000000         Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t Obj_ArelLat_ro;                   //      Bits= 9 Offset= -2.500000          Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // Object classification
+  //  7 : "Description for the value '0x7'"
+  //  6 : "Wide"
+  //  5 : "Bicycle"
+  //  4 : "Motorcycle"
+  //  3 : "Pedestrian"
+  //  2 : "Truck"
+  //  1 : "Car"
+  //  0 : "Point"
+  // 
+  uint8_t Obj_Class : 3;                     //      Bits= 3
+
+  uint16_t Obj_OrientationAngle_ro;          //      Bits=10 Offset= -180.000000        Factor= 0.400000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Obj_OrientationAngle_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint8_t Obj_Length_ro;                     //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Obj_Length_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint8_t Obj_Width_ro;                      //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Obj_Width_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_ArelLong_ro;                  //      Bits=11 Offset= -10.000000         Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t Obj_ArelLat_ro;                   //      Bits= 9 Offset= -2.500000          Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // Object classification
+  //  7 : "Description for the value '0x7'"
+  //  6 : "Wide"
+  //  5 : "Bicycle"
+  //  4 : "Motorcycle"
+  //  3 : "Pedestrian"
+  //  2 : "Truck"
+  //  1 : "Car"
+  //  0 : "Point"
+  // 
+  uint8_t Obj_Class;                         //      Bits= 3
+
+  uint16_t Obj_OrientationAngle_ro;          //      Bits=10 Offset= -180.000000        Factor= 0.400000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Obj_OrientationAngle_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint8_t Obj_Length_ro;                     //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Obj_Length_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint8_t Obj_Width_ro;                      //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Obj_Width_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+} Obj_3_Extended_t;
+
+// Collision detection warning object information
+// def @Obj_4_Warning CAN Message (1550 0x60e)
+#define Obj_4_Warning_IDE (0U)
+#define Obj_4_Warning_DLC (4U)
+#define Obj_4_Warning_CANID (0x60e)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Region bit field with collision detection
+  uint8_t Obj_CollDetRegionBitfield;         //      Bits= 8
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Region bit field with collision detection
+  uint8_t Obj_CollDetRegionBitfield;         //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+} Obj_4_Warning_t;
+
+// Firmware version
+// def @VersionID CAN Message (1792 0x700)
+#define VersionID_IDE (0U)
+#define VersionID_DLC (4U)
+#define VersionID_CANID (0x700)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+  // Major Release Number
+  uint8_t Version_MajorRelease;              //      Bits= 8
+
+  // Minor Release Number
+  uint8_t Version_MinorRelease;              //      Bits= 8
+
+  // Patch Level
+  uint8_t Version_PatchLevel;                //      Bits= 8
+
+  // 
+  // 
+  //  1 : "Power Reduction is demanded"
+  //  0 : "International Version"
+  // 
+  uint8_t Version_CountryCode : 1;           //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Description for the value '0x1'"
+  //  0 : "Standard Range 196m-260m"
+  // 
+  uint8_t Version_ExtendedRange : 1;         //      Bits= 1
+
+#else
+
+  // Major Release Number
+  uint8_t Version_MajorRelease;              //      Bits= 8
+
+  // Minor Release Number
+  uint8_t Version_MinorRelease;              //      Bits= 8
+
+  // Patch Level
+  uint8_t Version_PatchLevel;                //      Bits= 8
+
+  // 
+  // 
+  //  1 : "Power Reduction is demanded"
+  //  0 : "International Version"
+  // 
+  uint8_t Version_CountryCode;               //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Description for the value '0x1'"
+  //  0 : "Standard Range 196m-260m"
+  // 
+  uint8_t Version_ExtendedRange;             //      Bits= 1
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+} VersionID_t;
+
+// General Cluster information
+// def @Cluster_1_General CAN Message (1793 0x701)
+#define Cluster_1_General_IDE (0U)
+#define Cluster_1_General_DLC (8U)
+#define Cluster_1_General_CANID (0x701)
+// signal: @Cluster_DistLong_ro
+#define ARS408_CAN_DATABASE_CH0_Cluster_DistLong_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_Cluster_DistLong_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_Cluster_DistLong_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @Cluster_DistLat_ro
+#define ARS408_CAN_DATABASE_CH0_Cluster_DistLat_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH0_Cluster_DistLat_ro_toS(x) ( (uint16_t) (((x) - (-102.300000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH0_Cluster_DistLat_ro_fromS(x) ( (((x) * (0.200000)) + (-102.300000)) )
+// signal: @Cluster_VrelLong_ro
+#define ARS408_CAN_DATABASE_CH0_Cluster_VrelLong_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH0_Cluster_VrelLong_ro_toS(x) ( (uint16_t) (((x) - (-128.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH0_Cluster_VrelLong_ro_fromS(x) ( (((x) * (0.250000)) + (-128.000000)) )
+// signal: @Cluster_VrelLat_ro
+#define ARS408_CAN_DATABASE_CH0_Cluster_VrelLat_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH0_Cluster_VrelLat_ro_toS(x) ( (uint16_t) (((x) - (-64.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH0_Cluster_VrelLat_ro_fromS(x) ( (((x) * (0.250000)) + (-64.000000)) )
+// signal: @Cluster_RCS_ro
+#define ARS408_CAN_DATABASE_CH0_Cluster_RCS_ro_CovFactor (0.500000)
+#define ARS408_CAN_DATABASE_CH0_Cluster_RCS_ro_toS(x) ( (uint8_t) (((x) - (-64.000000)) / (0.500000)) )
+#define ARS408_CAN_DATABASE_CH0_Cluster_RCS_ro_fromS(x) ( (((x) * (0.500000)) + (-64.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  uint16_t Cluster_DistLong_ro;              //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t Cluster_DistLat_ro;               //      Bits=10 Offset= -102.300000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLong_ro;              //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLat_ro;               //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // Cluster dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Cluster_DynProp : 3;               //      Bits= 3
+
+  uint8_t Cluster_RCS_ro;                    //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Cluster_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#else
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  uint16_t Cluster_DistLong_ro;              //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t Cluster_DistLat_ro;               //      Bits=10 Offset= -102.300000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLong_ro;              //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLat_ro;               //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+  // Cluster dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Cluster_DynProp;                   //      Bits= 3
+
+  uint8_t Cluster_RCS_ro;                    //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+  sigfloat_t Cluster_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH0_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+} Cluster_1_General_t;
+
+// Quality Cluster information
+// def @Cluster_2_Quality CAN Message (1794 0x702)
+#define Cluster_2_Quality_IDE (0U)
+#define Cluster_2_Quality_DLC (5U)
+#define Cluster_2_Quality_CANID (0x702)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  // Cluster lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLat_rms : 5;           //      Bits= 5 Unit:'m'
+
+  // Cluster longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLong_rms : 5;          //      Bits= 5 Unit:'m'
+
+  // Cluster relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLat_rms : 5;           //      Bits= 5 Unit:'m/s'
+
+  // Cluster relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLong_rms : 5;          //      Bits= 5 Unit:'m/s'
+
+  // Cluster false alarm probability
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Cluster_PdH0 : 3;                  //      Bits= 3
+
+  // Cluster Doppler ambiguity status
+  //  4 : "Stationary candidate"
+  //  3 : "Unambiguous"
+  //  2 : "Staggered ramp"
+  //  1 : "Ambiguous"
+  //  0 : "Invalid"
+  // 
+  uint8_t Cluster_AmbigState : 3;            //      Bits= 3
+
+  // Cluster invalid state
+  //  17 : "Valid suspicious angle"
+  //  16 : "Valid multi-target"
+  //  15 : "Valid near above 95 m"
+  //  14 : "Invalid harmonics "
+  //  13 : "reserved"
+  //  12 : "Valid artefact "
+  //  11 : "Valid but no local maximum"
+  //  10 : "Valid 50 deg artefact"
+  //  9 : "Valid child"
+  //  8 : "Valid with elevation"
+  //  7 : "Invalid outside field of view"
+  //  6 : "Invalid mirror"
+  //  5 : "reserved"
+  //  4 : "Valid with low RCS"
+  //  3 : "Invalid far not confirmed"
+  //  2 : "Invalid nearfield"
+  //  1 : "Invalid with too low RCS"
+  //  0 : "Valid"
+  // 
+  uint8_t Cluster_InvalidState : 5;          //      Bits= 5
+
+#else
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  // Cluster lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLat_rms;               //      Bits= 5 Unit:'m'
+
+  // Cluster longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLong_rms;              //      Bits= 5 Unit:'m'
+
+  // Cluster relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLat_rms;               //      Bits= 5 Unit:'m/s'
+
+  // Cluster relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLong_rms;              //      Bits= 5 Unit:'m/s'
+
+  // Cluster false alarm probability
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Cluster_PdH0;                      //      Bits= 3
+
+  // Cluster Doppler ambiguity status
+  //  4 : "Stationary candidate"
+  //  3 : "Unambiguous"
+  //  2 : "Staggered ramp"
+  //  1 : "Ambiguous"
+  //  0 : "Invalid"
+  // 
+  uint8_t Cluster_AmbigState;                //      Bits= 3
+
+  // Cluster invalid state
+  //  17 : "Valid suspicious angle"
+  //  16 : "Valid multi-target"
+  //  15 : "Valid near above 95 m"
+  //  14 : "Invalid harmonics "
+  //  13 : "reserved"
+  //  12 : "Valid artefact "
+  //  11 : "Valid but no local maximum"
+  //  10 : "Valid 50 deg artefact"
+  //  9 : "Valid child"
+  //  8 : "Valid with elevation"
+  //  7 : "Invalid outside field of view"
+  //  6 : "Invalid mirror"
+  //  5 : "reserved"
+  //  4 : "Valid with low RCS"
+  //  3 : "Invalid far not confirmed"
+  //  2 : "Invalid nearfield"
+  //  1 : "Invalid with too low RCS"
+  //  0 : "Valid"
+  // 
+  uint8_t Cluster_InvalidState;              //      Bits= 5
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH0_USE_DIAG_MONITORS
+
+} Cluster_2_Quality_t;
+
+// Function signatures
+
+uint32_t Unpack_CollDetRelayCtrl_ARS408_can_database_ch0(CollDetRelayCtrl_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch0(CollDetRelayCtrl_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch0(CollDetRelayCtrl_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_RadarConfiguration_ARS408_can_database_ch0(RadarConfiguration_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch0(RadarConfiguration_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch0(RadarConfiguration_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_RadarState_ARS408_can_database_ch0(RadarState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+uint32_t Pack_RadarState_ARS408_can_database_ch0(RadarState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_RadarState_ARS408_can_database_ch0(RadarState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_FilterCfg_ARS408_can_database_ch0(FilterCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+uint32_t Pack_FilterCfg_ARS408_can_database_ch0(FilterCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterCfg_ARS408_can_database_ch0(FilterCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Header_ARS408_can_database_ch0(FilterState_Header_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch0(FilterState_Header_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch0(FilterState_Header_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Cfg_ARS408_can_database_ch0(FilterState_Cfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch0(FilterState_Cfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch0(FilterState_Cfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_SpeedInformation_ARS408_can_database_ch0(SpeedInformation_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch0(SpeedInformation_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch0(SpeedInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_YawRateInformation_ARS408_can_database_ch0(YawRateInformation_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch0(YawRateInformation_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch0(YawRateInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetCfg_ARS408_can_database_ch0(CollDetCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch0(CollDetCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch0(CollDetCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionCfg_ARS408_can_database_ch0(CollDetRegionCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch0(CollDetRegionCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch0(CollDetRegionCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionState_ARS408_can_database_ch0(CollDetRegionState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch0(CollDetRegionState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch0(CollDetRegionState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetState_ARS408_can_database_ch0(CollDetState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+uint32_t Pack_CollDetState_ARS408_can_database_ch0(CollDetState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetState_ARS408_can_database_ch0(CollDetState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_0_Status_ARS408_can_database_ch0(Cluster_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch0(Cluster_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch0(Cluster_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_0_Status_ARS408_can_database_ch0(Obj_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch0(Obj_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch0(Obj_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_1_General_ARS408_can_database_ch0(Obj_1_General_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch0(Obj_1_General_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch0(Obj_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_2_Quality_ARS408_can_database_ch0(Obj_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch0(Obj_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch0(Obj_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_3_Extended_ARS408_can_database_ch0(Obj_3_Extended_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch0(Obj_3_Extended_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch0(Obj_3_Extended_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_4_Warning_ARS408_can_database_ch0(Obj_4_Warning_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch0(Obj_4_Warning_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch0(Obj_4_Warning_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_VersionID_ARS408_can_database_ch0(VersionID_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+uint32_t Pack_VersionID_ARS408_can_database_ch0(VersionID_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_VersionID_ARS408_can_database_ch0(VersionID_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_1_General_ARS408_can_database_ch0(Cluster_1_General_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch0(Cluster_1_General_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch0(Cluster_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_2_Quality_ARS408_can_database_ch0(Cluster_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch0(Cluster_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch0(Cluster_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH0_USE_CANSTRUCT
+
+#ifdef __cplusplus
+}
+#endif

+ 96 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch1-binutil.c

@@ -0,0 +1,96 @@
+#include "ars408_can_database_ch1-binutil.h"
+
+#ifdef __DEF_ARS408_CAN_DATABASE_CH1__
+
+ars408_can_database_ch1_rx_t ars408_can_database_ch1_rx;
+
+#endif // __DEF_ARS408_CAN_DATABASE_CH1__
+
+uint32_t ars408_can_database_ch1_Receive(ars408_can_database_ch1_rx_t* _m, const uint8_t* _d, uint32_t _id, uint8_t dlc_)
+{
+ uint32_t recid = 0;
+ if ((_id >= 0x8U) && (_id < 0x411U)) {
+  if ((_id >= 0x8U) && (_id < 0x214U)) {
+   if ((_id >= 0x8U) && (_id < 0x211U)) {
+    if (_id == 0x8U) {
+     recid = Unpack_CollDetRelayCtrl_ARS408_can_database_ch1(&(_m->CollDetRelayCtrl), _d, dlc_);
+    } else if (_id == 0x210U) {
+     recid = Unpack_RadarConfiguration_ARS408_can_database_ch1(&(_m->RadarConfiguration), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x211U) {
+     recid = Unpack_RadarState_ARS408_can_database_ch1(&(_m->RadarState), _d, dlc_);
+    } else {
+     if (_id == 0x212U) {
+      recid = Unpack_FilterCfg_ARS408_can_database_ch1(&(_m->FilterCfg), _d, dlc_);
+     } else if (_id == 0x213U) {
+      recid = Unpack_FilterState_Header_ARS408_can_database_ch1(&(_m->FilterState_Header), _d, dlc_);
+     }
+    }
+   }
+  } else {
+   if ((_id >= 0x214U) && (_id < 0x311U)) {
+    if (_id == 0x214U) {
+     recid = Unpack_FilterState_Cfg_ARS408_can_database_ch1(&(_m->FilterState_Cfg), _d, dlc_);
+    } else if (_id == 0x310U) {
+     recid = Unpack_SpeedInformation_ARS408_can_database_ch1(&(_m->SpeedInformation), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x311U) {
+     recid = Unpack_YawRateInformation_ARS408_can_database_ch1(&(_m->YawRateInformation), _d, dlc_);
+    } else {
+     if (_id == 0x408U) {
+      recid = Unpack_CollDetState_ARS408_can_database_ch1(&(_m->CollDetState), _d, dlc_);
+     } else if (_id == 0x410U) {
+      recid = Unpack_CollDetCfg_ARS408_can_database_ch1(&(_m->CollDetCfg), _d, dlc_);
+     }
+    }
+   }
+  }
+ } else {
+  if ((_id >= 0x411U) && (_id < 0x61CU)) {
+   if ((_id >= 0x411U) && (_id < 0x610U)) {
+    if (_id == 0x411U) {
+     recid = Unpack_CollDetRegionCfg_ARS408_can_database_ch1(&(_m->CollDetRegionCfg), _d, dlc_);
+    } else if (_id == 0x412U) {
+     recid = Unpack_CollDetRegionState_ARS408_can_database_ch1(&(_m->CollDetRegionState), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x610U) {
+     recid = Unpack_Cluster_0_Status_ARS408_can_database_ch1(&(_m->Cluster_0_Status), _d, dlc_);
+    } else {
+     if (_id == 0x61AU) {
+      recid = Unpack_Obj_0_Status_ARS408_can_database_ch1(&(_m->Obj_0_Status), _d, dlc_);
+     } else if (_id == 0x61BU) {
+      recid = Unpack_Obj_1_General_ARS408_can_database_ch1(&(_m->Obj_1_General), _d, dlc_);
+     }
+    }
+   }
+  } else {
+   if ((_id >= 0x61CU) && (_id < 0x710U)) {
+    if (_id == 0x61CU) {
+     recid = Unpack_Obj_2_Quality_ARS408_can_database_ch1(&(_m->Obj_2_Quality), _d, dlc_);
+    } else {
+     if (_id == 0x61DU) {
+      recid = Unpack_Obj_3_Extended_ARS408_can_database_ch1(&(_m->Obj_3_Extended), _d, dlc_);
+     } else if (_id == 0x61EU) {
+      recid = Unpack_Obj_4_Warning_ARS408_can_database_ch1(&(_m->Obj_4_Warning), _d, dlc_);
+     }
+    }
+   } else {
+    if (_id == 0x710U) {
+     recid = Unpack_VersionID_ARS408_can_database_ch1(&(_m->VersionID), _d, dlc_);
+    } else {
+     if (_id == 0x711U) {
+      recid = Unpack_Cluster_1_General_ARS408_can_database_ch1(&(_m->Cluster_1_General), _d, dlc_);
+     } else if (_id == 0x712U) {
+      recid = Unpack_Cluster_2_Quality_ARS408_can_database_ch1(&(_m->Cluster_2_Quality), _d, dlc_);
+     }
+    }
+   }
+  }
+ }
+
+ return recid;
+}
+

+ 53 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch1-binutil.h

@@ -0,0 +1,53 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "dbccodeconf.h"
+
+#include "ars408_can_database_ch1.h"
+
+// This version definition comes from main driver version and
+// can be compared in user code space for strict compatibility test
+#define VER_ARS408_CAN_DATABASE_CH1_MAJ (0U)
+#define VER_ARS408_CAN_DATABASE_CH1_MIN (0U)
+
+typedef struct
+{
+  CollDetRelayCtrl_t CollDetRelayCtrl;
+  RadarConfiguration_t RadarConfiguration;
+  RadarState_t RadarState;
+  FilterCfg_t FilterCfg;
+  FilterState_Header_t FilterState_Header;
+  FilterState_Cfg_t FilterState_Cfg;
+  SpeedInformation_t SpeedInformation;
+  YawRateInformation_t YawRateInformation;
+  CollDetState_t CollDetState;
+  CollDetCfg_t CollDetCfg;
+  CollDetRegionCfg_t CollDetRegionCfg;
+  CollDetRegionState_t CollDetRegionState;
+  Cluster_0_Status_t Cluster_0_Status;
+  Obj_0_Status_t Obj_0_Status;
+  Obj_1_General_t Obj_1_General;
+  Obj_2_Quality_t Obj_2_Quality;
+  Obj_3_Extended_t Obj_3_Extended;
+  Obj_4_Warning_t Obj_4_Warning;
+  VersionID_t VersionID;
+  Cluster_1_General_t Cluster_1_General;
+  Cluster_2_Quality_t Cluster_2_Quality;
+} ars408_can_database_ch1_rx_t;
+
+// There is no any TX mapped massage.
+
+uint32_t ars408_can_database_ch1_Receive(ars408_can_database_ch1_rx_t* m, const uint8_t* d, uint32_t msgid, uint8_t dlc);
+
+#ifdef __DEF_ARS408_CAN_DATABASE_CH1__
+
+extern ars408_can_database_ch1_rx_t ars408_can_database_ch1_rx;
+
+#endif // __DEF_ARS408_CAN_DATABASE_CH1__
+
+#ifdef __cplusplus
+}
+#endif

+ 109 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch1-config.h

@@ -0,0 +1,109 @@
+#pragma once
+
+/* include common dbccode configurations */
+#include "dbccodeconf.h"
+
+
+/* ------------------------------------------------------------------------- *
+  This define enables using CAN message structs with bit-fielded signals
+  layout.
+
+  Note(!): bit-feild was not tested properly. */
+
+/* #define ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL */
+
+
+/* ------------------------------------------------------------------------- *
+  This macro enables using CAN message descriptive struct packing functions
+  (by default signature of pack function intakes a few simple typed params
+  for loading data, len, etc). To compile you need to define the struct
+  __CoderDbcCanFrame_t__ which must have fields:
+
+    u32 MsgId (CAN Frame message ID)
+    u8 DLC (CAN Frame payload length field)
+    u8 Data[8] (CAN Frame payload data)
+    u8 IDE (CAN Frame Extended (1) / Standard (0) ID type)
+
+  This struct definition have to be placed (or be included) in dbccodeconf.h */
+
+/* #define ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT */
+
+
+/* ------------------------------------------------------------------------- *
+  All the signals which have values of factor != 1 or offset != 0
+  will be named in message struct with posfix '_ro'. Pack to payload
+  operations will be made on this signal value as well as unpack from payload.
+
+  USE_SIGFLOAT macro makes some difference:
+
+  1. All the '_ro' fields will have a pair field with '_phys' postfix.
+  If only offset != 0 is true then the type of '_phys' signal is the same
+  as '_ro' signal. In other case the type will be @sigfloat_t which
+  have to be defined in user dbccodeconf.h
+
+  2. In pack function '_ro' signal will be rewritten by '_phys' signal, which
+  requires from user to use ONLY '_phys' signal for packing frame
+
+  3. In unpack function '_phys' signal will be written by '_ro' signal.
+  User have to use '_phys' signal to read physical value. */
+
+/* #define ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT */
+
+
+/* ------------------------------------------------------------------------- *
+  Note(!) that the "canmonitorutil.h" must be accessed in include path:
+
+  This macro adds:
+
+  - monitor field @mon1 to message struct
+
+  - capture system tick in unpack function and save value to mon1 field
+  to provide to user better missing frame detection code. For this case
+  user must provide function declared in canmonitorutil.h - GetSysTick()
+  which may return 1ms uptime.
+
+  - calling function FMon_***  (from 'fmon' driver) inside unpack function
+  which is empty by default and have to be filled by user if
+  tests for DLC, rolling, checksum are necessary */
+
+/* #define ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS */
+
+
+/* ------------------------------------------------------------------------- *
+  When monitor using is enabled (ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS) and define below
+  uncommented, additional signal will be added to message struct. ***_expt:
+  expected rolling counter, to perform monitoring rolling counter sequence
+  automatically (result may be tested in dedicated Fmon_*** function) */
+
+/* #define ARS408_CAN_DATABASE_CH1_AUTO_ROLL */
+
+
+/* ------------------------------------------------------------------------- *
+  When monitor using is enabled (ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS) and define below
+  uncommented, frame checksum signal may be handled automatically.
+
+  The signal which may be marked as checksum signal must have substring
+  with next format:
+    <Checksum:XOR8:3>
+
+  where:
+
+  - "Checksum": constant marker word
+
+  - "XOR8": type of method, this text will be passed to GetFrameHash
+  (canmonitorutil.h) function as is, the best use case is to define 'enum
+  DbcCanCrcMethods' in canmonitorutil.h file with all possible
+  checksum algorithms (e.g. XOR8, XOR4 etc)
+
+  - "3": optional value that will be passed to GetFrameHash as integer value
+
+  Function GetFrameHash have to be implemented by user
+
+  In pack function checksum signal will be calculated automatically
+  and loaded to payload
+
+  In unpack function checksum signal is checked with calculated.
+  (result may be tested in dedicated Fmon_*** function).
+
+/* #define ARS408_CAN_DATABASE_CH1_AUTO_CSM */
+

+ 115 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch1-fmon.c

@@ -0,0 +1,115 @@
+#include "ars408_can_database_ch1-fmon.h"
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+/*
+Put the monitor function content here, keep in mind -
+next generation will completely clear all manually added code (!)
+*/
+
+void FMon_CollDetRelayCtrl_ars408_can_database_ch1(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_RadarConfiguration_ars408_can_database_ch1(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_RadarState_ars408_can_database_ch1(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterCfg_ars408_can_database_ch1(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterState_Header_ars408_can_database_ch1(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterState_Cfg_ars408_can_database_ch1(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_SpeedInformation_ars408_can_database_ch1(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_YawRateInformation_ars408_can_database_ch1(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetState_ars408_can_database_ch1(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetCfg_ars408_can_database_ch1(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetRegionCfg_ars408_can_database_ch1(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetRegionState_ars408_can_database_ch1(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_0_Status_ars408_can_database_ch1(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_0_Status_ars408_can_database_ch1(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_1_General_ars408_can_database_ch1(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_2_Quality_ars408_can_database_ch1(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_3_Extended_ars408_can_database_ch1(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_4_Warning_ars408_can_database_ch1(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_VersionID_ars408_can_database_ch1(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_1_General_ars408_can_database_ch1(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_2_Quality_ars408_can_database_ch1(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS

+ 49 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch1-fmon.h

@@ -0,0 +1,49 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// DBC file version
+#define VER_ARS408_CAN_DATABASE_CH1_MAJ_FMON (0U)
+#define VER_ARS408_CAN_DATABASE_CH1_MIN_FMON (0U)
+
+#include "ars408_can_database_ch1-config.h"
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+#include "canmonitorutil.h"
+/*
+This file contains the prototypes of all the functions that will be called
+from each Unpack_*name* function to detect DBC related errors
+It is the user responsibility to defined these functions in the
+separated .c file. If it won't be done the linkage error will happen
+*/
+
+void FMon_CollDetRelayCtrl_ars408_can_database_ch1(FrameMonitor_t* _mon);
+void FMon_RadarConfiguration_ars408_can_database_ch1(FrameMonitor_t* _mon);
+void FMon_RadarState_ars408_can_database_ch1(FrameMonitor_t* _mon);
+void FMon_FilterCfg_ars408_can_database_ch1(FrameMonitor_t* _mon);
+void FMon_FilterState_Header_ars408_can_database_ch1(FrameMonitor_t* _mon);
+void FMon_FilterState_Cfg_ars408_can_database_ch1(FrameMonitor_t* _mon);
+void FMon_SpeedInformation_ars408_can_database_ch1(FrameMonitor_t* _mon);
+void FMon_YawRateInformation_ars408_can_database_ch1(FrameMonitor_t* _mon);
+void FMon_CollDetState_ars408_can_database_ch1(FrameMonitor_t* _mon);
+void FMon_CollDetCfg_ars408_can_database_ch1(FrameMonitor_t* _mon);
+void FMon_CollDetRegionCfg_ars408_can_database_ch1(FrameMonitor_t* _mon);
+void FMon_CollDetRegionState_ars408_can_database_ch1(FrameMonitor_t* _mon);
+void FMon_Cluster_0_Status_ars408_can_database_ch1(FrameMonitor_t* _mon);
+void FMon_Obj_0_Status_ars408_can_database_ch1(FrameMonitor_t* _mon);
+void FMon_Obj_1_General_ars408_can_database_ch1(FrameMonitor_t* _mon);
+void FMon_Obj_2_Quality_ars408_can_database_ch1(FrameMonitor_t* _mon);
+void FMon_Obj_3_Extended_ars408_can_database_ch1(FrameMonitor_t* _mon);
+void FMon_Obj_4_Warning_ars408_can_database_ch1(FrameMonitor_t* _mon);
+void FMon_VersionID_ars408_can_database_ch1(FrameMonitor_t* _mon);
+void FMon_Cluster_1_General_ars408_can_database_ch1(FrameMonitor_t* _mon);
+void FMon_Cluster_2_Quality_ars408_can_database_ch1(FrameMonitor_t* _mon);
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+#ifdef __cplusplus
+}
+#endif

+ 1841 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch1.c

@@ -0,0 +1,1841 @@
+#include "ars408_can_database_ch1.h"
+
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+// Function prototypes to be called each time CAN frame is unpacked
+// FMon function may detect RC, CRC or DLC violation 
+#include "ars408_can_database_ch1-fmon.h"
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+
+uint32_t Unpack_CollDetRelayCtrl_ARS408_can_database_ch1(CollDetRelayCtrl_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRelayCtrl_Param = (_d[0] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRelayCtrl_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRelayCtrl_ars408_can_database_ch1(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+ return CollDetRelayCtrl_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch1(CollDetRelayCtrl_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRelayCtrl_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->CollDetRelayCtrl_Param & (0xFFU));
+
+  cframe->MsgId = CollDetRelayCtrl_CANID;
+  cframe->DLC = CollDetRelayCtrl_DLC;
+  cframe->IDE = CollDetRelayCtrl_IDE;
+  return CollDetRelayCtrl_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch1(CollDetRelayCtrl_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRelayCtrl_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->CollDetRelayCtrl_Param & (0xFFU));
+
+  *_len = CollDetRelayCtrl_DLC;
+  *_ide = CollDetRelayCtrl_IDE;
+  return CollDetRelayCtrl_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_RadarConfiguration_ARS408_can_database_ch1(RadarConfiguration_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarCfg_MaxDistance_valid = (_d[0] & (0x01U));
+  _m->RadarCfg_SensorID_valid = ((_d[0] >> 1) & (0x01U));
+  _m->RadarCfg_RadarPower_valid = ((_d[0] >> 2) & (0x01U));
+  _m->RadarCfg_OutputType_valid = ((_d[0] >> 3) & (0x01U));
+  _m->RadarCfg_SendQuality_valid = ((_d[0] >> 4) & (0x01U));
+  _m->RadarCfg_SendExtInfo_valid = ((_d[0] >> 5) & (0x01U));
+  _m->RadarCfg_SortIndex_valid = ((_d[0] >> 6) & (0x01U));
+  _m->RadarCfg_StoreInNVM_valid = ((_d[0] >> 7) & (0x01U));
+  _m->RadarCfg_MaxDistance_ro = ((_d[1] & (0xFFU)) << 2) | ((_d[2] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_phys = ARS408_CAN_DATABASE_CH1_RadarCfg_MaxDistance_ro_fromS(_m->RadarCfg_MaxDistance_ro);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->RadarCfg_SensorID = (_d[4] & (0x07U));
+  _m->RadarCfg_OutputType = ((_d[4] >> 3) & (0x03U));
+  _m->RadarCfg_RadarPower = ((_d[4] >> 5) & (0x07U));
+  _m->RadarCfg_CtrlRelay_valid = (_d[5] & (0x01U));
+  _m->RadarCfg_CtrlRelay = ((_d[5] >> 1) & (0x01U));
+  _m->RadarCfg_SendQuality = ((_d[5] >> 2) & (0x01U));
+  _m->RadarCfg_SendExtInfo = ((_d[5] >> 3) & (0x01U));
+  _m->RadarCfg_SortIndex = ((_d[5] >> 4) & (0x07U));
+  _m->RadarCfg_StoreInNVM = ((_d[5] >> 7) & (0x01U));
+  _m->RadarCfg_RCS_Threshold_Valid = (_d[6] & (0x01U));
+  _m->RadarCfg_RCS_Threshold = ((_d[6] >> 1) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < RadarConfiguration_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_RadarConfiguration_ars408_can_database_ch1(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+ return RadarConfiguration_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch1(RadarConfiguration_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < RadarConfiguration_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_ro = ARS408_CAN_DATABASE_CH1_RadarCfg_MaxDistance_ro_toS(_m->RadarCfg_MaxDistance_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->RadarCfg_MaxDistance_valid & (0x01U)) | ((_m->RadarCfg_SensorID_valid & (0x01U)) << 1) | ((_m->RadarCfg_RadarPower_valid & (0x01U)) << 2) | ((_m->RadarCfg_OutputType_valid & (0x01U)) << 3) | ((_m->RadarCfg_SendQuality_valid & (0x01U)) << 4) | ((_m->RadarCfg_SendExtInfo_valid & (0x01U)) << 5) | ((_m->RadarCfg_SortIndex_valid & (0x01U)) << 6) | ((_m->RadarCfg_StoreInNVM_valid & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->RadarCfg_MaxDistance_ro >> 2) & (0xFFU));
+  cframe->Data[2] |= ((_m->RadarCfg_MaxDistance_ro & (0x03U)) << 6);
+  cframe->Data[4] |= (_m->RadarCfg_SensorID & (0x07U)) | ((_m->RadarCfg_OutputType & (0x03U)) << 3) | ((_m->RadarCfg_RadarPower & (0x07U)) << 5);
+  cframe->Data[5] |= (_m->RadarCfg_CtrlRelay_valid & (0x01U)) | ((_m->RadarCfg_CtrlRelay & (0x01U)) << 1) | ((_m->RadarCfg_SendQuality & (0x01U)) << 2) | ((_m->RadarCfg_SendExtInfo & (0x01U)) << 3) | ((_m->RadarCfg_SortIndex & (0x07U)) << 4) | ((_m->RadarCfg_StoreInNVM & (0x01U)) << 7);
+  cframe->Data[6] |= (_m->RadarCfg_RCS_Threshold_Valid & (0x01U)) | ((_m->RadarCfg_RCS_Threshold & (0x07U)) << 1);
+
+  cframe->MsgId = RadarConfiguration_CANID;
+  cframe->DLC = RadarConfiguration_DLC;
+  cframe->IDE = RadarConfiguration_IDE;
+  return RadarConfiguration_CANID;
+}
+
+#else
+
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch1(RadarConfiguration_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < RadarConfiguration_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_ro = ARS408_CAN_DATABASE_CH1_RadarCfg_MaxDistance_ro_toS(_m->RadarCfg_MaxDistance_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _d[0] |= (_m->RadarCfg_MaxDistance_valid & (0x01U)) | ((_m->RadarCfg_SensorID_valid & (0x01U)) << 1) | ((_m->RadarCfg_RadarPower_valid & (0x01U)) << 2) | ((_m->RadarCfg_OutputType_valid & (0x01U)) << 3) | ((_m->RadarCfg_SendQuality_valid & (0x01U)) << 4) | ((_m->RadarCfg_SendExtInfo_valid & (0x01U)) << 5) | ((_m->RadarCfg_SortIndex_valid & (0x01U)) << 6) | ((_m->RadarCfg_StoreInNVM_valid & (0x01U)) << 7);
+  _d[1] |= ((_m->RadarCfg_MaxDistance_ro >> 2) & (0xFFU));
+  _d[2] |= ((_m->RadarCfg_MaxDistance_ro & (0x03U)) << 6);
+  _d[4] |= (_m->RadarCfg_SensorID & (0x07U)) | ((_m->RadarCfg_OutputType & (0x03U)) << 3) | ((_m->RadarCfg_RadarPower & (0x07U)) << 5);
+  _d[5] |= (_m->RadarCfg_CtrlRelay_valid & (0x01U)) | ((_m->RadarCfg_CtrlRelay & (0x01U)) << 1) | ((_m->RadarCfg_SendQuality & (0x01U)) << 2) | ((_m->RadarCfg_SendExtInfo & (0x01U)) << 3) | ((_m->RadarCfg_SortIndex & (0x07U)) << 4) | ((_m->RadarCfg_StoreInNVM & (0x01U)) << 7);
+  _d[6] |= (_m->RadarCfg_RCS_Threshold_Valid & (0x01U)) | ((_m->RadarCfg_RCS_Threshold & (0x07U)) << 1);
+
+  *_len = RadarConfiguration_DLC;
+  *_ide = RadarConfiguration_IDE;
+  return RadarConfiguration_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_RadarState_ARS408_can_database_ch1(RadarState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarState_NVMReadStatus = ((_d[0] >> 6) & (0x01U));
+  _m->RadarState_NVMwriteStatus = ((_d[0] >> 7) & (0x01U));
+  _m->RadarState_MaxDistanceCfg_ro = ((_d[1] & (0xFFU)) << 2) | ((_d[2] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_phys = ARS408_CAN_DATABASE_CH1_RadarState_MaxDistanceCfg_ro_fromS(_m->RadarState_MaxDistanceCfg_ro);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->RadarState_Voltage_Error = ((_d[2] >> 1) & (0x01U));
+  _m->RadarState_Temporary_Error = ((_d[2] >> 2) & (0x01U));
+  _m->RadarState_Temperature_Error = ((_d[2] >> 3) & (0x01U));
+  _m->RadarState_Interference = ((_d[2] >> 4) & (0x01U));
+  _m->RadarState_Persistent_Error = ((_d[2] >> 5) & (0x01U));
+  _m->RadarState_RadarPowerCfg = ((_d[3] & (0x03U)) << 1) | ((_d[4] >> 7) & (0x01U));
+  _m->RadarState_SensorID = (_d[4] & (0x07U));
+  _m->RadarState_SortIndex = ((_d[4] >> 4) & (0x07U));
+  _m->RadarState_CtrlRelayCfg = ((_d[5] >> 1) & (0x01U));
+  _m->RadarState_OutputTypeCfg = ((_d[5] >> 2) & (0x03U));
+  _m->RadarState_SendQualityCfg = ((_d[5] >> 4) & (0x01U));
+  _m->RadarState_SendExtInfoCfg = ((_d[5] >> 5) & (0x01U));
+  _m->RadarState_MotionRxState = ((_d[5] >> 6) & (0x03U));
+  _m->RadarState_RCS_Threshold = ((_d[7] >> 2) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < RadarState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_RadarState_ars408_can_database_ch1(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+ return RadarState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Pack_RadarState_ARS408_can_database_ch1(RadarState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < RadarState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_ro = ARS408_CAN_DATABASE_CH1_RadarState_MaxDistanceCfg_ro_toS(_m->RadarState_MaxDistanceCfg_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarState_NVMReadStatus & (0x01U)) << 6) | ((_m->RadarState_NVMwriteStatus & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->RadarState_MaxDistanceCfg_ro >> 2) & (0xFFU));
+  cframe->Data[2] |= ((_m->RadarState_MaxDistanceCfg_ro & (0x03U)) << 6) | ((_m->RadarState_Voltage_Error & (0x01U)) << 1) | ((_m->RadarState_Temporary_Error & (0x01U)) << 2) | ((_m->RadarState_Temperature_Error & (0x01U)) << 3) | ((_m->RadarState_Interference & (0x01U)) << 4) | ((_m->RadarState_Persistent_Error & (0x01U)) << 5);
+  cframe->Data[3] |= ((_m->RadarState_RadarPowerCfg >> 1) & (0x03U));
+  cframe->Data[4] |= ((_m->RadarState_RadarPowerCfg & (0x01U)) << 7) | (_m->RadarState_SensorID & (0x07U)) | ((_m->RadarState_SortIndex & (0x07U)) << 4);
+  cframe->Data[5] |= ((_m->RadarState_CtrlRelayCfg & (0x01U)) << 1) | ((_m->RadarState_OutputTypeCfg & (0x03U)) << 2) | ((_m->RadarState_SendQualityCfg & (0x01U)) << 4) | ((_m->RadarState_SendExtInfoCfg & (0x01U)) << 5) | ((_m->RadarState_MotionRxState & (0x03U)) << 6);
+  cframe->Data[7] |= ((_m->RadarState_RCS_Threshold & (0x07U)) << 2);
+
+  cframe->MsgId = RadarState_CANID;
+  cframe->DLC = RadarState_DLC;
+  cframe->IDE = RadarState_IDE;
+  return RadarState_CANID;
+}
+
+#else
+
+uint32_t Pack_RadarState_ARS408_can_database_ch1(RadarState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < RadarState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_ro = ARS408_CAN_DATABASE_CH1_RadarState_MaxDistanceCfg_ro_toS(_m->RadarState_MaxDistanceCfg_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarState_NVMReadStatus & (0x01U)) << 6) | ((_m->RadarState_NVMwriteStatus & (0x01U)) << 7);
+  _d[1] |= ((_m->RadarState_MaxDistanceCfg_ro >> 2) & (0xFFU));
+  _d[2] |= ((_m->RadarState_MaxDistanceCfg_ro & (0x03U)) << 6) | ((_m->RadarState_Voltage_Error & (0x01U)) << 1) | ((_m->RadarState_Temporary_Error & (0x01U)) << 2) | ((_m->RadarState_Temperature_Error & (0x01U)) << 3) | ((_m->RadarState_Interference & (0x01U)) << 4) | ((_m->RadarState_Persistent_Error & (0x01U)) << 5);
+  _d[3] |= ((_m->RadarState_RadarPowerCfg >> 1) & (0x03U));
+  _d[4] |= ((_m->RadarState_RadarPowerCfg & (0x01U)) << 7) | (_m->RadarState_SensorID & (0x07U)) | ((_m->RadarState_SortIndex & (0x07U)) << 4);
+  _d[5] |= ((_m->RadarState_CtrlRelayCfg & (0x01U)) << 1) | ((_m->RadarState_OutputTypeCfg & (0x03U)) << 2) | ((_m->RadarState_SendQualityCfg & (0x01U)) << 4) | ((_m->RadarState_SendExtInfoCfg & (0x01U)) << 5) | ((_m->RadarState_MotionRxState & (0x03U)) << 6);
+  _d[7] |= ((_m->RadarState_RCS_Threshold & (0x07U)) << 2);
+
+  *_len = RadarState_DLC;
+  *_ide = RadarState_IDE;
+  return RadarState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_FilterCfg_ARS408_can_database_ch1(FilterCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterCfg_Valid = ((_d[0] >> 1) & (0x01U));
+  _m->FilterCfg_Active = ((_d[0] >> 2) & (0x01U));
+  _m->FilterCfg_Index = ((_d[0] >> 3) & (0x0FU));
+  _m->FilterCfg_Type = ((_d[0] >> 7) & (0x01U));
+  _m->FilterCfg_Min_NofObj = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterCfg_Min_VrelOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VrelOncome_ro_fromS(_m->FilterCfg_Min_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VrelDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VrelDepart_ro_fromS(_m->FilterCfg_Min_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Size_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Min_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Size_ro_fromS(_m->FilterCfg_Min_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_RCS_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Min_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Min_RCS_ro_fromS(_m->FilterCfg_Min_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_ProbExists = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterCfg_Min_Lifetime_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Min_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Lifetime_ro_fromS(_m->FilterCfg_Min_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Azimuth_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Min_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Azimuth_ro_fromS(_m->FilterCfg_Min_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Distance_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Min_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Distance_ro_fromS(_m->FilterCfg_Min_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VXDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Min_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VXDepart_ro_fromS(_m->FilterCfg_Min_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VXOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Min_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VXOncome_ro_fromS(_m->FilterCfg_Min_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VYLeftRight_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Min_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VYLeftRight_ro_fromS(_m->FilterCfg_Min_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VYRightLeft_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Min_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VYRightLeft_ro_fromS(_m->FilterCfg_Min_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Y_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Min_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Y_ro_fromS(_m->FilterCfg_Min_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_X_ro = ((_d[1] & (0x1FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Min_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Min_X_ro_fromS(_m->FilterCfg_Min_X_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_NofObj = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterCfg_Max_Lifetime_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Max_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Lifetime_ro_fromS(_m->FilterCfg_Max_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Distance_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Max_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Distance_ro_fromS(_m->FilterCfg_Max_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Azimuth_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Max_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Azimuth_ro_fromS(_m->FilterCfg_Max_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_ProbExists = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterCfg_Max_RCS_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Max_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Max_RCS_ro_fromS(_m->FilterCfg_Max_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Size_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Max_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Size_ro_fromS(_m->FilterCfg_Max_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VrelDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Max_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VrelDepart_ro_fromS(_m->FilterCfg_Max_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VrelOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Max_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VrelOncome_ro_fromS(_m->FilterCfg_Max_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VXDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Max_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VXDepart_ro_fromS(_m->FilterCfg_Max_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VYLeftRight_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Max_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VYLeftRight_ro_fromS(_m->FilterCfg_Max_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VXOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Max_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VXOncome_ro_fromS(_m->FilterCfg_Max_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VYRightLeft_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Max_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VYRightLeft_ro_fromS(_m->FilterCfg_Max_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Y_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Max_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Y_ro_fromS(_m->FilterCfg_Max_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_X_ro = ((_d[3] & (0x1FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Max_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterCfg_Max_X_ro_fromS(_m->FilterCfg_Max_X_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterCfg_ars408_can_database_ch1(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+ return FilterCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Pack_FilterCfg_ARS408_can_database_ch1(FilterCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VrelOncome_ro_toS(_m->FilterCfg_Min_VrelOncome_phys);
+  _m->FilterCfg_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VrelDepart_ro_toS(_m->FilterCfg_Min_VrelDepart_phys);
+  _m->FilterCfg_Min_Size_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Size_ro_toS(_m->FilterCfg_Min_Size_phys);
+  _m->FilterCfg_Min_RCS_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_RCS_ro_toS(_m->FilterCfg_Min_RCS_phys);
+  _m->FilterCfg_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Lifetime_ro_toS(_m->FilterCfg_Min_Lifetime_phys);
+  _m->FilterCfg_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Azimuth_ro_toS(_m->FilterCfg_Min_Azimuth_phys);
+  _m->FilterCfg_Min_Distance_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Distance_ro_toS(_m->FilterCfg_Min_Distance_phys);
+  _m->FilterCfg_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VXDepart_ro_toS(_m->FilterCfg_Min_VXDepart_phys);
+  _m->FilterCfg_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VXOncome_ro_toS(_m->FilterCfg_Min_VXOncome_phys);
+  _m->FilterCfg_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VYLeftRight_ro_toS(_m->FilterCfg_Min_VYLeftRight_phys);
+  _m->FilterCfg_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VYRightLeft_ro_toS(_m->FilterCfg_Min_VYRightLeft_phys);
+  _m->FilterCfg_Min_Y_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Y_ro_toS(_m->FilterCfg_Min_Y_phys);
+  _m->FilterCfg_Min_X_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_X_ro_toS(_m->FilterCfg_Min_X_phys);
+  _m->FilterCfg_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Lifetime_ro_toS(_m->FilterCfg_Max_Lifetime_phys);
+  _m->FilterCfg_Max_Distance_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Distance_ro_toS(_m->FilterCfg_Max_Distance_phys);
+  _m->FilterCfg_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Azimuth_ro_toS(_m->FilterCfg_Max_Azimuth_phys);
+  _m->FilterCfg_Max_RCS_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_RCS_ro_toS(_m->FilterCfg_Max_RCS_phys);
+  _m->FilterCfg_Max_Size_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Size_ro_toS(_m->FilterCfg_Max_Size_phys);
+  _m->FilterCfg_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VrelDepart_ro_toS(_m->FilterCfg_Max_VrelDepart_phys);
+  _m->FilterCfg_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VrelOncome_ro_toS(_m->FilterCfg_Max_VrelOncome_phys);
+  _m->FilterCfg_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VXDepart_ro_toS(_m->FilterCfg_Max_VXDepart_phys);
+  _m->FilterCfg_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VYLeftRight_ro_toS(_m->FilterCfg_Max_VYLeftRight_phys);
+  _m->FilterCfg_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VXOncome_ro_toS(_m->FilterCfg_Max_VXOncome_phys);
+  _m->FilterCfg_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VYRightLeft_ro_toS(_m->FilterCfg_Max_VYRightLeft_phys);
+  _m->FilterCfg_Max_Y_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Y_ro_toS(_m->FilterCfg_Max_Y_phys);
+  _m->FilterCfg_Max_X_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_X_ro_toS(_m->FilterCfg_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->FilterCfg_Valid & (0x01U)) << 1) | ((_m->FilterCfg_Active & (0x01U)) << 2) | ((_m->FilterCfg_Index & (0x0FU)) << 3) | ((_m->FilterCfg_Type & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->FilterCfg_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_X_ro >> 8) & (0x1FU));
+  cframe->Data[2] |= (_m->FilterCfg_Min_NofObj & (0xFFU)) | (_m->FilterCfg_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_Size_ro & (0xFFU)) | (_m->FilterCfg_Min_RCS_ro & (0xFFU)) | (_m->FilterCfg_Min_ProbExists & (0xFFU)) | (_m->FilterCfg_Min_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Min_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Min_Distance_ro & (0xFFU)) | (_m->FilterCfg_Min_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Min_Y_ro & (0xFFU)) | (_m->FilterCfg_Min_X_ro & (0xFFU));
+  cframe->Data[3] |= ((_m->FilterCfg_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_X_ro >> 8) & (0x1FU));
+  cframe->Data[4] |= (_m->FilterCfg_Max_NofObj & (0xFFU)) | (_m->FilterCfg_Max_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Max_Distance_ro & (0xFFU)) | (_m->FilterCfg_Max_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Max_ProbExists & (0xFFU)) | (_m->FilterCfg_Max_RCS_ro & (0xFFU)) | (_m->FilterCfg_Max_Size_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Max_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Max_Y_ro & (0xFFU)) | (_m->FilterCfg_Max_X_ro & (0xFFU));
+
+  cframe->MsgId = FilterCfg_CANID;
+  cframe->DLC = FilterCfg_DLC;
+  cframe->IDE = FilterCfg_IDE;
+  return FilterCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterCfg_ARS408_can_database_ch1(FilterCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VrelOncome_ro_toS(_m->FilterCfg_Min_VrelOncome_phys);
+  _m->FilterCfg_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VrelDepart_ro_toS(_m->FilterCfg_Min_VrelDepart_phys);
+  _m->FilterCfg_Min_Size_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Size_ro_toS(_m->FilterCfg_Min_Size_phys);
+  _m->FilterCfg_Min_RCS_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_RCS_ro_toS(_m->FilterCfg_Min_RCS_phys);
+  _m->FilterCfg_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Lifetime_ro_toS(_m->FilterCfg_Min_Lifetime_phys);
+  _m->FilterCfg_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Azimuth_ro_toS(_m->FilterCfg_Min_Azimuth_phys);
+  _m->FilterCfg_Min_Distance_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Distance_ro_toS(_m->FilterCfg_Min_Distance_phys);
+  _m->FilterCfg_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VXDepart_ro_toS(_m->FilterCfg_Min_VXDepart_phys);
+  _m->FilterCfg_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VXOncome_ro_toS(_m->FilterCfg_Min_VXOncome_phys);
+  _m->FilterCfg_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VYLeftRight_ro_toS(_m->FilterCfg_Min_VYLeftRight_phys);
+  _m->FilterCfg_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VYRightLeft_ro_toS(_m->FilterCfg_Min_VYRightLeft_phys);
+  _m->FilterCfg_Min_Y_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Y_ro_toS(_m->FilterCfg_Min_Y_phys);
+  _m->FilterCfg_Min_X_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Min_X_ro_toS(_m->FilterCfg_Min_X_phys);
+  _m->FilterCfg_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Lifetime_ro_toS(_m->FilterCfg_Max_Lifetime_phys);
+  _m->FilterCfg_Max_Distance_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Distance_ro_toS(_m->FilterCfg_Max_Distance_phys);
+  _m->FilterCfg_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Azimuth_ro_toS(_m->FilterCfg_Max_Azimuth_phys);
+  _m->FilterCfg_Max_RCS_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_RCS_ro_toS(_m->FilterCfg_Max_RCS_phys);
+  _m->FilterCfg_Max_Size_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Size_ro_toS(_m->FilterCfg_Max_Size_phys);
+  _m->FilterCfg_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VrelDepart_ro_toS(_m->FilterCfg_Max_VrelDepart_phys);
+  _m->FilterCfg_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VrelOncome_ro_toS(_m->FilterCfg_Max_VrelOncome_phys);
+  _m->FilterCfg_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VXDepart_ro_toS(_m->FilterCfg_Max_VXDepart_phys);
+  _m->FilterCfg_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VYLeftRight_ro_toS(_m->FilterCfg_Max_VYLeftRight_phys);
+  _m->FilterCfg_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VXOncome_ro_toS(_m->FilterCfg_Max_VXOncome_phys);
+  _m->FilterCfg_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VYRightLeft_ro_toS(_m->FilterCfg_Max_VYRightLeft_phys);
+  _m->FilterCfg_Max_Y_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Y_ro_toS(_m->FilterCfg_Max_Y_phys);
+  _m->FilterCfg_Max_X_ro = ARS408_CAN_DATABASE_CH1_FilterCfg_Max_X_ro_toS(_m->FilterCfg_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _d[0] |= ((_m->FilterCfg_Valid & (0x01U)) << 1) | ((_m->FilterCfg_Active & (0x01U)) << 2) | ((_m->FilterCfg_Index & (0x0FU)) << 3) | ((_m->FilterCfg_Type & (0x01U)) << 7);
+  _d[1] |= ((_m->FilterCfg_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_X_ro >> 8) & (0x1FU));
+  _d[2] |= (_m->FilterCfg_Min_NofObj & (0xFFU)) | (_m->FilterCfg_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_Size_ro & (0xFFU)) | (_m->FilterCfg_Min_RCS_ro & (0xFFU)) | (_m->FilterCfg_Min_ProbExists & (0xFFU)) | (_m->FilterCfg_Min_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Min_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Min_Distance_ro & (0xFFU)) | (_m->FilterCfg_Min_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Min_Y_ro & (0xFFU)) | (_m->FilterCfg_Min_X_ro & (0xFFU));
+  _d[3] |= ((_m->FilterCfg_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_X_ro >> 8) & (0x1FU));
+  _d[4] |= (_m->FilterCfg_Max_NofObj & (0xFFU)) | (_m->FilterCfg_Max_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Max_Distance_ro & (0xFFU)) | (_m->FilterCfg_Max_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Max_ProbExists & (0xFFU)) | (_m->FilterCfg_Max_RCS_ro & (0xFFU)) | (_m->FilterCfg_Max_Size_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Max_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Max_Y_ro & (0xFFU)) | (_m->FilterCfg_Max_X_ro & (0xFFU));
+
+  *_len = FilterCfg_DLC;
+  *_ide = FilterCfg_IDE;
+  return FilterCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Header_ARS408_can_database_ch1(FilterState_Header_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterState_NofClusterFilterCfg = ((_d[0] >> 3) & (0x1FU));
+  _m->FilterState_NofObjectFilterCfg = ((_d[1] >> 3) & (0x1FU));
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterState_Header_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterState_Header_ars408_can_database_ch1(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+ return FilterState_Header_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch1(FilterState_Header_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Header_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= ((_m->FilterState_NofClusterFilterCfg & (0x1FU)) << 3);
+  cframe->Data[1] |= ((_m->FilterState_NofObjectFilterCfg & (0x1FU)) << 3);
+
+  cframe->MsgId = FilterState_Header_CANID;
+  cframe->DLC = FilterState_Header_DLC;
+  cframe->IDE = FilterState_Header_IDE;
+  return FilterState_Header_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch1(FilterState_Header_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Header_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= ((_m->FilterState_NofClusterFilterCfg & (0x1FU)) << 3);
+  _d[1] |= ((_m->FilterState_NofObjectFilterCfg & (0x1FU)) << 3);
+
+  *_len = FilterState_Header_DLC;
+  *_ide = FilterState_Header_IDE;
+  return FilterState_Header_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Cfg_ARS408_can_database_ch1(FilterState_Cfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterState_Active = ((_d[0] >> 2) & (0x01U));
+  _m->FilterState_Index = ((_d[0] >> 3) & (0x0FU));
+  _m->FilterState_Type = ((_d[0] >> 7) & (0x01U));
+  _m->FilterState_Min_RCS_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Min_RCS_ro_fromS(_m->FilterState_Min_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Min_Azimuth_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Min_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Min_Azimuth_ro_fromS(_m->FilterState_Min_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Min_Distance_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Min_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Min_Distance_ro_fromS(_m->FilterState_Min_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Min_Lifetime_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Min_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Min_Lifetime_ro_fromS(_m->FilterState_Min_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Min_NofObj = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterState_Min_ProbExists = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterState_Min_Y_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Min_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Min_Y_ro_fromS(_m->FilterState_Min_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Min_Size_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Min_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Min_Size_ro_fromS(_m->FilterState_Min_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Min_VrelDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Min_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Min_VrelDepart_ro_fromS(_m->FilterState_Min_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Min_VrelOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Min_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Min_VrelOncome_ro_fromS(_m->FilterState_Min_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Min_VYRightLeft_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Min_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Min_VYRightLeft_ro_fromS(_m->FilterState_Min_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Min_VXDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Min_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Min_VXDepart_ro_fromS(_m->FilterState_Min_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Min_VXOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Min_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Min_VXOncome_ro_fromS(_m->FilterState_Min_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Min_VYLeftRight_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Min_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Min_VYLeftRight_ro_fromS(_m->FilterState_Min_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Min_X_ro = ((_d[1] & (0x1FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Min_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Min_X_ro_fromS(_m->FilterState_Min_X_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Max_VrelDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Max_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Max_VrelDepart_ro_fromS(_m->FilterState_Max_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Max_Azimuth_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Max_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Max_Azimuth_ro_fromS(_m->FilterState_Max_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Max_Distance_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Max_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Max_Distance_ro_fromS(_m->FilterState_Max_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Max_Lifetime_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Max_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Max_Lifetime_ro_fromS(_m->FilterState_Max_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Max_NofObj = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterState_Max_ProbExists = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterState_Max_RCS_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Max_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Max_RCS_ro_fromS(_m->FilterState_Max_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Max_Size_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Max_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Max_Size_ro_fromS(_m->FilterState_Max_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Max_VXDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Max_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Max_VXDepart_ro_fromS(_m->FilterState_Max_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Max_VrelOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Max_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Max_VrelOncome_ro_fromS(_m->FilterState_Max_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Max_Y_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Max_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Max_Y_ro_fromS(_m->FilterState_Max_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Max_VYRightLeft_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Max_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Max_VYRightLeft_ro_fromS(_m->FilterState_Max_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Max_VYLeftRight_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Max_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Max_VYLeftRight_ro_fromS(_m->FilterState_Max_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Max_VXOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Max_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Max_VXOncome_ro_fromS(_m->FilterState_Max_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->FilterState_Max_X_ro = ((_d[3] & (0x1FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Max_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_FilterState_Max_X_ro_fromS(_m->FilterState_Max_X_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterState_Cfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterState_Cfg_ars408_can_database_ch1(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+ return FilterState_Cfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch1(FilterState_Cfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Cfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_RCS_ro_toS(_m->FilterState_Min_RCS_phys);
+  _m->FilterState_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_Azimuth_ro_toS(_m->FilterState_Min_Azimuth_phys);
+  _m->FilterState_Min_Distance_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_Distance_ro_toS(_m->FilterState_Min_Distance_phys);
+  _m->FilterState_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_Lifetime_ro_toS(_m->FilterState_Min_Lifetime_phys);
+  _m->FilterState_Min_Y_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_Y_ro_toS(_m->FilterState_Min_Y_phys);
+  _m->FilterState_Min_Size_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_Size_ro_toS(_m->FilterState_Min_Size_phys);
+  _m->FilterState_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_VrelDepart_ro_toS(_m->FilterState_Min_VrelDepart_phys);
+  _m->FilterState_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_VrelOncome_ro_toS(_m->FilterState_Min_VrelOncome_phys);
+  _m->FilterState_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_VYRightLeft_ro_toS(_m->FilterState_Min_VYRightLeft_phys);
+  _m->FilterState_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_VXDepart_ro_toS(_m->FilterState_Min_VXDepart_phys);
+  _m->FilterState_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_VXOncome_ro_toS(_m->FilterState_Min_VXOncome_phys);
+  _m->FilterState_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_VYLeftRight_ro_toS(_m->FilterState_Min_VYLeftRight_phys);
+  _m->FilterState_Min_X_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_X_ro_toS(_m->FilterState_Min_X_phys);
+  _m->FilterState_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_VrelDepart_ro_toS(_m->FilterState_Max_VrelDepart_phys);
+  _m->FilterState_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_Azimuth_ro_toS(_m->FilterState_Max_Azimuth_phys);
+  _m->FilterState_Max_Distance_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_Distance_ro_toS(_m->FilterState_Max_Distance_phys);
+  _m->FilterState_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_Lifetime_ro_toS(_m->FilterState_Max_Lifetime_phys);
+  _m->FilterState_Max_RCS_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_RCS_ro_toS(_m->FilterState_Max_RCS_phys);
+  _m->FilterState_Max_Size_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_Size_ro_toS(_m->FilterState_Max_Size_phys);
+  _m->FilterState_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_VXDepart_ro_toS(_m->FilterState_Max_VXDepart_phys);
+  _m->FilterState_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_VrelOncome_ro_toS(_m->FilterState_Max_VrelOncome_phys);
+  _m->FilterState_Max_Y_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_Y_ro_toS(_m->FilterState_Max_Y_phys);
+  _m->FilterState_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_VYRightLeft_ro_toS(_m->FilterState_Max_VYRightLeft_phys);
+  _m->FilterState_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_VYLeftRight_ro_toS(_m->FilterState_Max_VYLeftRight_phys);
+  _m->FilterState_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_VXOncome_ro_toS(_m->FilterState_Max_VXOncome_phys);
+  _m->FilterState_Max_X_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_X_ro_toS(_m->FilterState_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->FilterState_Active & (0x01U)) << 2) | ((_m->FilterState_Index & (0x0FU)) << 3) | ((_m->FilterState_Type & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->FilterState_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_X_ro >> 8) & (0x1FU));
+  cframe->Data[2] |= (_m->FilterState_Min_RCS_ro & (0xFFU)) | (_m->FilterState_Min_Azimuth_ro & (0xFFU)) | (_m->FilterState_Min_Distance_ro & (0xFFU)) | (_m->FilterState_Min_Lifetime_ro & (0xFFU)) | (_m->FilterState_Min_NofObj & (0xFFU)) | (_m->FilterState_Min_ProbExists & (0xFFU)) | (_m->FilterState_Min_Y_ro & (0xFFU)) | (_m->FilterState_Min_Size_ro & (0xFFU)) | (_m->FilterState_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Min_VXDepart_ro & (0xFFU)) | (_m->FilterState_Min_VXOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Min_X_ro & (0xFFU));
+  cframe->Data[3] |= ((_m->FilterState_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_X_ro >> 8) & (0x1FU));
+  cframe->Data[4] |= (_m->FilterState_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Max_Azimuth_ro & (0xFFU)) | (_m->FilterState_Max_Distance_ro & (0xFFU)) | (_m->FilterState_Max_Lifetime_ro & (0xFFU)) | (_m->FilterState_Max_NofObj & (0xFFU)) | (_m->FilterState_Max_ProbExists & (0xFFU)) | (_m->FilterState_Max_RCS_ro & (0xFFU)) | (_m->FilterState_Max_Size_ro & (0xFFU)) | (_m->FilterState_Max_VXDepart_ro & (0xFFU)) | (_m->FilterState_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Max_Y_ro & (0xFFU)) | (_m->FilterState_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Max_VXOncome_ro & (0xFFU)) | (_m->FilterState_Max_X_ro & (0xFFU));
+
+  cframe->MsgId = FilterState_Cfg_CANID;
+  cframe->DLC = FilterState_Cfg_DLC;
+  cframe->IDE = FilterState_Cfg_IDE;
+  return FilterState_Cfg_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch1(FilterState_Cfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Cfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_RCS_ro_toS(_m->FilterState_Min_RCS_phys);
+  _m->FilterState_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_Azimuth_ro_toS(_m->FilterState_Min_Azimuth_phys);
+  _m->FilterState_Min_Distance_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_Distance_ro_toS(_m->FilterState_Min_Distance_phys);
+  _m->FilterState_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_Lifetime_ro_toS(_m->FilterState_Min_Lifetime_phys);
+  _m->FilterState_Min_Y_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_Y_ro_toS(_m->FilterState_Min_Y_phys);
+  _m->FilterState_Min_Size_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_Size_ro_toS(_m->FilterState_Min_Size_phys);
+  _m->FilterState_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_VrelDepart_ro_toS(_m->FilterState_Min_VrelDepart_phys);
+  _m->FilterState_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_VrelOncome_ro_toS(_m->FilterState_Min_VrelOncome_phys);
+  _m->FilterState_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_VYRightLeft_ro_toS(_m->FilterState_Min_VYRightLeft_phys);
+  _m->FilterState_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_VXDepart_ro_toS(_m->FilterState_Min_VXDepart_phys);
+  _m->FilterState_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_VXOncome_ro_toS(_m->FilterState_Min_VXOncome_phys);
+  _m->FilterState_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_VYLeftRight_ro_toS(_m->FilterState_Min_VYLeftRight_phys);
+  _m->FilterState_Min_X_ro = ARS408_CAN_DATABASE_CH1_FilterState_Min_X_ro_toS(_m->FilterState_Min_X_phys);
+  _m->FilterState_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_VrelDepart_ro_toS(_m->FilterState_Max_VrelDepart_phys);
+  _m->FilterState_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_Azimuth_ro_toS(_m->FilterState_Max_Azimuth_phys);
+  _m->FilterState_Max_Distance_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_Distance_ro_toS(_m->FilterState_Max_Distance_phys);
+  _m->FilterState_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_Lifetime_ro_toS(_m->FilterState_Max_Lifetime_phys);
+  _m->FilterState_Max_RCS_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_RCS_ro_toS(_m->FilterState_Max_RCS_phys);
+  _m->FilterState_Max_Size_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_Size_ro_toS(_m->FilterState_Max_Size_phys);
+  _m->FilterState_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_VXDepart_ro_toS(_m->FilterState_Max_VXDepart_phys);
+  _m->FilterState_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_VrelOncome_ro_toS(_m->FilterState_Max_VrelOncome_phys);
+  _m->FilterState_Max_Y_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_Y_ro_toS(_m->FilterState_Max_Y_phys);
+  _m->FilterState_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_VYRightLeft_ro_toS(_m->FilterState_Max_VYRightLeft_phys);
+  _m->FilterState_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_VYLeftRight_ro_toS(_m->FilterState_Max_VYLeftRight_phys);
+  _m->FilterState_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_VXOncome_ro_toS(_m->FilterState_Max_VXOncome_phys);
+  _m->FilterState_Max_X_ro = ARS408_CAN_DATABASE_CH1_FilterState_Max_X_ro_toS(_m->FilterState_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _d[0] |= ((_m->FilterState_Active & (0x01U)) << 2) | ((_m->FilterState_Index & (0x0FU)) << 3) | ((_m->FilterState_Type & (0x01U)) << 7);
+  _d[1] |= ((_m->FilterState_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_X_ro >> 8) & (0x1FU));
+  _d[2] |= (_m->FilterState_Min_RCS_ro & (0xFFU)) | (_m->FilterState_Min_Azimuth_ro & (0xFFU)) | (_m->FilterState_Min_Distance_ro & (0xFFU)) | (_m->FilterState_Min_Lifetime_ro & (0xFFU)) | (_m->FilterState_Min_NofObj & (0xFFU)) | (_m->FilterState_Min_ProbExists & (0xFFU)) | (_m->FilterState_Min_Y_ro & (0xFFU)) | (_m->FilterState_Min_Size_ro & (0xFFU)) | (_m->FilterState_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Min_VXDepart_ro & (0xFFU)) | (_m->FilterState_Min_VXOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Min_X_ro & (0xFFU));
+  _d[3] |= ((_m->FilterState_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_X_ro >> 8) & (0x1FU));
+  _d[4] |= (_m->FilterState_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Max_Azimuth_ro & (0xFFU)) | (_m->FilterState_Max_Distance_ro & (0xFFU)) | (_m->FilterState_Max_Lifetime_ro & (0xFFU)) | (_m->FilterState_Max_NofObj & (0xFFU)) | (_m->FilterState_Max_ProbExists & (0xFFU)) | (_m->FilterState_Max_RCS_ro & (0xFFU)) | (_m->FilterState_Max_Size_ro & (0xFFU)) | (_m->FilterState_Max_VXDepart_ro & (0xFFU)) | (_m->FilterState_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Max_Y_ro & (0xFFU)) | (_m->FilterState_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Max_VXOncome_ro & (0xFFU)) | (_m->FilterState_Max_X_ro & (0xFFU));
+
+  *_len = FilterState_Cfg_DLC;
+  *_ide = FilterState_Cfg_IDE;
+  return FilterState_Cfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_SpeedInformation_ARS408_can_database_ch1(SpeedInformation_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarDevice_Speed_ro = ((_d[0] & (0x1FU)) << 8) | (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->RadarDevice_Speed_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_RadarDevice_Speed_ro_fromS(_m->RadarDevice_Speed_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->RadarDevice_SpeedDirection = ((_d[0] >> 6) & (0x03U));
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < SpeedInformation_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_SpeedInformation_ars408_can_database_ch1(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+ return SpeedInformation_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch1(SpeedInformation_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < SpeedInformation_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->RadarDevice_Speed_ro = ARS408_CAN_DATABASE_CH1_RadarDevice_Speed_ro_toS(_m->RadarDevice_Speed_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarDevice_Speed_ro >> 8) & (0x1FU)) | ((_m->RadarDevice_SpeedDirection & (0x03U)) << 6);
+  cframe->Data[1] |= (_m->RadarDevice_Speed_ro & (0xFFU));
+
+  cframe->MsgId = SpeedInformation_CANID;
+  cframe->DLC = SpeedInformation_DLC;
+  cframe->IDE = SpeedInformation_IDE;
+  return SpeedInformation_CANID;
+}
+
+#else
+
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch1(SpeedInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < SpeedInformation_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->RadarDevice_Speed_ro = ARS408_CAN_DATABASE_CH1_RadarDevice_Speed_ro_toS(_m->RadarDevice_Speed_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarDevice_Speed_ro >> 8) & (0x1FU)) | ((_m->RadarDevice_SpeedDirection & (0x03U)) << 6);
+  _d[1] |= (_m->RadarDevice_Speed_ro & (0xFFU));
+
+  *_len = SpeedInformation_DLC;
+  *_ide = SpeedInformation_IDE;
+  return SpeedInformation_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_YawRateInformation_ARS408_can_database_ch1(YawRateInformation_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarDevice_YawRate_ro = ((_d[0] & (0xFFU)) << 8) | (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_RadarDevice_YawRate_ro_fromS(_m->RadarDevice_YawRate_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < YawRateInformation_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_YawRateInformation_ars408_can_database_ch1(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+ return YawRateInformation_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch1(YawRateInformation_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < YawRateInformation_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_ro = ARS408_CAN_DATABASE_CH1_RadarDevice_YawRate_ro_toS(_m->RadarDevice_YawRate_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarDevice_YawRate_ro >> 8) & (0xFFU));
+  cframe->Data[1] |= (_m->RadarDevice_YawRate_ro & (0xFFU));
+
+  cframe->MsgId = YawRateInformation_CANID;
+  cframe->DLC = YawRateInformation_DLC;
+  cframe->IDE = YawRateInformation_IDE;
+  return YawRateInformation_CANID;
+}
+
+#else
+
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch1(YawRateInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < YawRateInformation_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_ro = ARS408_CAN_DATABASE_CH1_RadarDevice_YawRate_ro_toS(_m->RadarDevice_YawRate_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarDevice_YawRate_ro >> 8) & (0xFFU));
+  _d[1] |= (_m->RadarDevice_YawRate_ro & (0xFFU));
+
+  *_len = YawRateInformation_DLC;
+  *_ide = YawRateInformation_IDE;
+  return YawRateInformation_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetState_ARS408_can_database_ch1(CollDetState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetState_Active = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetState_NofRegions = ((_d[0] >> 4) & (0x0FU));
+  _m->CollDetState_MinDetectTime_ro = (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_CollDetState_MinDetectTime_ro_fromS(_m->CollDetState_MinDetectTime_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->CollDetState_MeasCounter = ((_d[2] & (0xFFU)) << 8) | (_d[3] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetState_ars408_can_database_ch1(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+ return CollDetState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Pack_CollDetState_ARS408_can_database_ch1(CollDetState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_ro = ARS408_CAN_DATABASE_CH1_CollDetState_MinDetectTime_ro_toS(_m->CollDetState_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetState_Active & (0x01U)) << 1) | ((_m->CollDetState_NofRegions & (0x0FU)) << 4);
+  cframe->Data[1] |= (_m->CollDetState_MinDetectTime_ro & (0xFFU));
+  cframe->Data[2] |= ((_m->CollDetState_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[3] |= (_m->CollDetState_MeasCounter & (0xFFU));
+
+  cframe->MsgId = CollDetState_CANID;
+  cframe->DLC = CollDetState_DLC;
+  cframe->IDE = CollDetState_IDE;
+  return CollDetState_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetState_ARS408_can_database_ch1(CollDetState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_ro = ARS408_CAN_DATABASE_CH1_CollDetState_MinDetectTime_ro_toS(_m->CollDetState_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetState_Active & (0x01U)) << 1) | ((_m->CollDetState_NofRegions & (0x0FU)) << 4);
+  _d[1] |= (_m->CollDetState_MinDetectTime_ro & (0xFFU));
+  _d[2] |= ((_m->CollDetState_MeasCounter >> 8) & (0xFFU));
+  _d[3] |= (_m->CollDetState_MeasCounter & (0xFFU));
+
+  *_len = CollDetState_DLC;
+  *_ide = CollDetState_IDE;
+  return CollDetState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetCfg_ARS408_can_database_ch1(CollDetCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetCfg_WarningReset = (_d[0] & (0x01U));
+  _m->CollDetCfg_Activate = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetCfg_MinTime_valid = ((_d[0] >> 3) & (0x01U));
+  _m->CollDetCfg_ClearRegions = ((_d[0] >> 7) & (0x01U));
+  _m->CollDetCfg_MinDetectTime_ro = (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_CollDetCfg_MinDetectTime_ro_fromS(_m->CollDetCfg_MinDetectTime_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetCfg_ars408_can_database_ch1(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+ return CollDetCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch1(CollDetCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_ro = ARS408_CAN_DATABASE_CH1_CollDetCfg_MinDetectTime_ro_toS(_m->CollDetCfg_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->CollDetCfg_WarningReset & (0x01U)) | ((_m->CollDetCfg_Activate & (0x01U)) << 1) | ((_m->CollDetCfg_MinTime_valid & (0x01U)) << 3) | ((_m->CollDetCfg_ClearRegions & (0x01U)) << 7);
+  cframe->Data[1] |= (_m->CollDetCfg_MinDetectTime_ro & (0xFFU));
+
+  cframe->MsgId = CollDetCfg_CANID;
+  cframe->DLC = CollDetCfg_DLC;
+  cframe->IDE = CollDetCfg_IDE;
+  return CollDetCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch1(CollDetCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_ro = ARS408_CAN_DATABASE_CH1_CollDetCfg_MinDetectTime_ro_toS(_m->CollDetCfg_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _d[0] |= (_m->CollDetCfg_WarningReset & (0x01U)) | ((_m->CollDetCfg_Activate & (0x01U)) << 1) | ((_m->CollDetCfg_MinTime_valid & (0x01U)) << 3) | ((_m->CollDetCfg_ClearRegions & (0x01U)) << 7);
+  _d[1] |= (_m->CollDetCfg_MinDetectTime_ro & (0xFFU));
+
+  *_len = CollDetCfg_DLC;
+  *_ide = CollDetCfg_IDE;
+  return CollDetCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionCfg_ARS408_can_database_ch1(CollDetRegionCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRegCfg_Activate = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetRegCfg_Coordinates_valid = ((_d[0] >> 2) & (0x01U));
+  _m->CollDetRegCfg_RegionID = (_d[1] & (0x07U));
+  _m->CollDetRegCfg_Point1X_ro = ((_d[2] & (0xFFU)) << 5) | ((_d[3] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point1X_ro_fromS(_m->CollDetRegCfg_Point1X_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point1Y_ro = ((_d[3] & (0x07U)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point1Y_ro_fromS(_m->CollDetRegCfg_Point1Y_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point2X_ro = ((_d[5] & (0xFFU)) << 5) | ((_d[6] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point2X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point2X_ro_fromS(_m->CollDetRegCfg_Point2X_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point2Y_ro = ((_d[6] & (0x07U)) << 8) | (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point2Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point2Y_ro_fromS(_m->CollDetRegCfg_Point2Y_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRegionCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRegionCfg_ars408_can_database_ch1(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+ return CollDetRegionCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch1(CollDetRegionCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_ro = ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point1X_ro_toS(_m->CollDetRegCfg_Point1X_phys);
+  _m->CollDetRegCfg_Point1Y_ro = ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point1Y_ro_toS(_m->CollDetRegCfg_Point1Y_phys);
+  _m->CollDetRegCfg_Point2X_ro = ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point2X_ro_toS(_m->CollDetRegCfg_Point2X_phys);
+  _m->CollDetRegCfg_Point2Y_ro = ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point2Y_ro_toS(_m->CollDetRegCfg_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetRegCfg_Activate & (0x01U)) << 1) | ((_m->CollDetRegCfg_Coordinates_valid & (0x01U)) << 2);
+  cframe->Data[1] |= (_m->CollDetRegCfg_RegionID & (0x07U));
+  cframe->Data[2] |= ((_m->CollDetRegCfg_Point1X_ro >> 5) & (0xFFU));
+  cframe->Data[3] |= ((_m->CollDetRegCfg_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point1Y_ro >> 8) & (0x07U));
+  cframe->Data[4] |= (_m->CollDetRegCfg_Point1Y_ro & (0xFFU));
+  cframe->Data[5] |= ((_m->CollDetRegCfg_Point2X_ro >> 5) & (0xFFU));
+  cframe->Data[6] |= ((_m->CollDetRegCfg_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point2Y_ro >> 8) & (0x07U));
+  cframe->Data[7] |= (_m->CollDetRegCfg_Point2Y_ro & (0xFFU));
+
+  cframe->MsgId = CollDetRegionCfg_CANID;
+  cframe->DLC = CollDetRegionCfg_DLC;
+  cframe->IDE = CollDetRegionCfg_IDE;
+  return CollDetRegionCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch1(CollDetRegionCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_ro = ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point1X_ro_toS(_m->CollDetRegCfg_Point1X_phys);
+  _m->CollDetRegCfg_Point1Y_ro = ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point1Y_ro_toS(_m->CollDetRegCfg_Point1Y_phys);
+  _m->CollDetRegCfg_Point2X_ro = ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point2X_ro_toS(_m->CollDetRegCfg_Point2X_phys);
+  _m->CollDetRegCfg_Point2Y_ro = ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point2Y_ro_toS(_m->CollDetRegCfg_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetRegCfg_Activate & (0x01U)) << 1) | ((_m->CollDetRegCfg_Coordinates_valid & (0x01U)) << 2);
+  _d[1] |= (_m->CollDetRegCfg_RegionID & (0x07U));
+  _d[2] |= ((_m->CollDetRegCfg_Point1X_ro >> 5) & (0xFFU));
+  _d[3] |= ((_m->CollDetRegCfg_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point1Y_ro >> 8) & (0x07U));
+  _d[4] |= (_m->CollDetRegCfg_Point1Y_ro & (0xFFU));
+  _d[5] |= ((_m->CollDetRegCfg_Point2X_ro >> 5) & (0xFFU));
+  _d[6] |= ((_m->CollDetRegCfg_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point2Y_ro >> 8) & (0x07U));
+  _d[7] |= (_m->CollDetRegCfg_Point2Y_ro & (0xFFU));
+
+  *_len = CollDetRegionCfg_DLC;
+  *_ide = CollDetRegionCfg_IDE;
+  return CollDetRegionCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionState_ARS408_can_database_ch1(CollDetRegionState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRegState_WarningLevel = ((_d[0] >> 3) & (0x03U));
+  _m->CollDetRegState_RegionID = ((_d[0] >> 5) & (0x07U));
+  _m->CollDetRegState_Point1X_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_CollDetRegState_Point1X_ro_fromS(_m->CollDetRegState_Point1X_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point1Y_ro = ((_d[2] & (0x07U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->CollDetRegState_Point1Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_CollDetRegState_Point1Y_ro_fromS(_m->CollDetRegState_Point1Y_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point2X_ro = ((_d[4] & (0xFFU)) << 5) | ((_d[5] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->CollDetRegState_Point2X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_CollDetRegState_Point2X_ro_fromS(_m->CollDetRegState_Point2X_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point2Y_ro = ((_d[5] & (0x07U)) << 8) | (_d[6] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->CollDetRegState_Point2Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_CollDetRegState_Point2Y_ro_fromS(_m->CollDetRegState_Point2Y_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->CollDetRegState_NofObjects = (_d[7] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRegionState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRegionState_ars408_can_database_ch1(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+ return CollDetRegionState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch1(CollDetRegionState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_ro = ARS408_CAN_DATABASE_CH1_CollDetRegState_Point1X_ro_toS(_m->CollDetRegState_Point1X_phys);
+  _m->CollDetRegState_Point1Y_ro = ARS408_CAN_DATABASE_CH1_CollDetRegState_Point1Y_ro_toS(_m->CollDetRegState_Point1Y_phys);
+  _m->CollDetRegState_Point2X_ro = ARS408_CAN_DATABASE_CH1_CollDetRegState_Point2X_ro_toS(_m->CollDetRegState_Point2X_phys);
+  _m->CollDetRegState_Point2Y_ro = ARS408_CAN_DATABASE_CH1_CollDetRegState_Point2Y_ro_toS(_m->CollDetRegState_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetRegState_WarningLevel & (0x03U)) << 3) | ((_m->CollDetRegState_RegionID & (0x07U)) << 5);
+  cframe->Data[1] |= ((_m->CollDetRegState_Point1X_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->CollDetRegState_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point1Y_ro >> 8) & (0x07U));
+  cframe->Data[3] |= (_m->CollDetRegState_Point1Y_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->CollDetRegState_Point2X_ro >> 5) & (0xFFU));
+  cframe->Data[5] |= ((_m->CollDetRegState_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point2Y_ro >> 8) & (0x07U));
+  cframe->Data[6] |= (_m->CollDetRegState_Point2Y_ro & (0xFFU));
+  cframe->Data[7] |= (_m->CollDetRegState_NofObjects & (0xFFU));
+
+  cframe->MsgId = CollDetRegionState_CANID;
+  cframe->DLC = CollDetRegionState_DLC;
+  cframe->IDE = CollDetRegionState_IDE;
+  return CollDetRegionState_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch1(CollDetRegionState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_ro = ARS408_CAN_DATABASE_CH1_CollDetRegState_Point1X_ro_toS(_m->CollDetRegState_Point1X_phys);
+  _m->CollDetRegState_Point1Y_ro = ARS408_CAN_DATABASE_CH1_CollDetRegState_Point1Y_ro_toS(_m->CollDetRegState_Point1Y_phys);
+  _m->CollDetRegState_Point2X_ro = ARS408_CAN_DATABASE_CH1_CollDetRegState_Point2X_ro_toS(_m->CollDetRegState_Point2X_phys);
+  _m->CollDetRegState_Point2Y_ro = ARS408_CAN_DATABASE_CH1_CollDetRegState_Point2Y_ro_toS(_m->CollDetRegState_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetRegState_WarningLevel & (0x03U)) << 3) | ((_m->CollDetRegState_RegionID & (0x07U)) << 5);
+  _d[1] |= ((_m->CollDetRegState_Point1X_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->CollDetRegState_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point1Y_ro >> 8) & (0x07U));
+  _d[3] |= (_m->CollDetRegState_Point1Y_ro & (0xFFU));
+  _d[4] |= ((_m->CollDetRegState_Point2X_ro >> 5) & (0xFFU));
+  _d[5] |= ((_m->CollDetRegState_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point2Y_ro >> 8) & (0x07U));
+  _d[6] |= (_m->CollDetRegState_Point2Y_ro & (0xFFU));
+  _d[7] |= (_m->CollDetRegState_NofObjects & (0xFFU));
+
+  *_len = CollDetRegionState_DLC;
+  *_ide = CollDetRegionState_IDE;
+  return CollDetRegionState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_0_Status_ARS408_can_database_ch1(Cluster_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_NofClustersNear = (_d[0] & (0xFFU));
+  _m->Cluster_NofClustersFar = (_d[1] & (0xFFU));
+  _m->Cluster_MeasCounter = ((_d[2] & (0xFFU)) << 8) | (_d[3] & (0xFFU));
+  _m->Cluster_InterfaceVersion = ((_d[4] >> 4) & (0x0FU));
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_0_Status_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_0_Status_ars408_can_database_ch1(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+ return Cluster_0_Status_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch1(Cluster_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_0_Status_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Cluster_NofClustersNear & (0xFFU));
+  cframe->Data[1] |= (_m->Cluster_NofClustersFar & (0xFFU));
+  cframe->Data[2] |= ((_m->Cluster_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[3] |= (_m->Cluster_MeasCounter & (0xFFU));
+  cframe->Data[4] |= ((_m->Cluster_InterfaceVersion & (0x0FU)) << 4);
+
+  cframe->MsgId = Cluster_0_Status_CANID;
+  cframe->DLC = Cluster_0_Status_DLC;
+  cframe->IDE = Cluster_0_Status_IDE;
+  return Cluster_0_Status_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch1(Cluster_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_0_Status_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Cluster_NofClustersNear & (0xFFU));
+  _d[1] |= (_m->Cluster_NofClustersFar & (0xFFU));
+  _d[2] |= ((_m->Cluster_MeasCounter >> 8) & (0xFFU));
+  _d[3] |= (_m->Cluster_MeasCounter & (0xFFU));
+  _d[4] |= ((_m->Cluster_InterfaceVersion & (0x0FU)) << 4);
+
+  *_len = Cluster_0_Status_DLC;
+  *_ide = Cluster_0_Status_IDE;
+  return Cluster_0_Status_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_0_Status_ARS408_can_database_ch1(Obj_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_NofObjects = (_d[0] & (0xFFU));
+  _m->Obj_MeasCounter = ((_d[1] & (0xFFU)) << 8) | (_d[2] & (0xFFU));
+  _m->Obj_InterfaceVersion = ((_d[3] >> 4) & (0x0FU));
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_0_Status_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_0_Status_ars408_can_database_ch1(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+ return Obj_0_Status_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch1(Obj_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_0_Status_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_NofObjects & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[2] |= (_m->Obj_MeasCounter & (0xFFU));
+  cframe->Data[3] |= ((_m->Obj_InterfaceVersion & (0x0FU)) << 4);
+
+  cframe->MsgId = Obj_0_Status_CANID;
+  cframe->DLC = Obj_0_Status_DLC;
+  cframe->IDE = Obj_0_Status_IDE;
+  return Obj_0_Status_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch1(Obj_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_0_Status_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_NofObjects & (0xFFU));
+  _d[1] |= ((_m->Obj_MeasCounter >> 8) & (0xFFU));
+  _d[2] |= (_m->Obj_MeasCounter & (0xFFU));
+  _d[3] |= ((_m->Obj_InterfaceVersion & (0x0FU)) << 4);
+
+  *_len = Obj_0_Status_DLC;
+  *_ide = Obj_0_Status_IDE;
+  return Obj_0_Status_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_1_General_ARS408_can_database_ch1(Obj_1_General_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_DistLong_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->Obj_DistLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_Obj_DistLong_ro_fromS(_m->Obj_DistLong_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->Obj_DistLat_ro = ((_d[2] & (0x07U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->Obj_DistLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_Obj_DistLat_ro_fromS(_m->Obj_DistLat_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->Obj_VrelLong_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->Obj_VrelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_Obj_VrelLong_ro_fromS(_m->Obj_VrelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->Obj_VrelLat_ro = ((_d[5] & (0x3FU)) << 3) | ((_d[6] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->Obj_VrelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_Obj_VrelLat_ro_fromS(_m->Obj_VrelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->Obj_DynProp = (_d[6] & (0x07U));
+  _m->Obj_RCS_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->Obj_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_Obj_RCS_ro_fromS(_m->Obj_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_1_General_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_1_General_ars408_can_database_ch1(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+ return Obj_1_General_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch1(Obj_1_General_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_1_General_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->Obj_DistLong_ro = ARS408_CAN_DATABASE_CH1_Obj_DistLong_ro_toS(_m->Obj_DistLong_phys);
+  _m->Obj_DistLat_ro = ARS408_CAN_DATABASE_CH1_Obj_DistLat_ro_toS(_m->Obj_DistLat_phys);
+  _m->Obj_VrelLong_ro = ARS408_CAN_DATABASE_CH1_Obj_VrelLong_ro_toS(_m->Obj_VrelLong_phys);
+  _m->Obj_VrelLat_ro = ARS408_CAN_DATABASE_CH1_Obj_VrelLat_ro_toS(_m->Obj_VrelLat_phys);
+  _m->Obj_RCS_ro = ARS408_CAN_DATABASE_CH1_Obj_RCS_ro_toS(_m->Obj_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_DistLong_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->Obj_DistLong_ro & (0x1FU)) << 3) | ((_m->Obj_DistLat_ro >> 8) & (0x07U));
+  cframe->Data[3] |= (_m->Obj_DistLat_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->Obj_VrelLong_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Obj_VrelLong_ro & (0x03U)) << 6) | ((_m->Obj_VrelLat_ro >> 3) & (0x3FU));
+  cframe->Data[6] |= ((_m->Obj_VrelLat_ro & (0x07U)) << 5) | (_m->Obj_DynProp & (0x07U));
+  cframe->Data[7] |= (_m->Obj_RCS_ro & (0xFFU));
+
+  cframe->MsgId = Obj_1_General_CANID;
+  cframe->DLC = Obj_1_General_DLC;
+  cframe->IDE = Obj_1_General_IDE;
+  return Obj_1_General_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch1(Obj_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_1_General_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->Obj_DistLong_ro = ARS408_CAN_DATABASE_CH1_Obj_DistLong_ro_toS(_m->Obj_DistLong_phys);
+  _m->Obj_DistLat_ro = ARS408_CAN_DATABASE_CH1_Obj_DistLat_ro_toS(_m->Obj_DistLat_phys);
+  _m->Obj_VrelLong_ro = ARS408_CAN_DATABASE_CH1_Obj_VrelLong_ro_toS(_m->Obj_VrelLong_phys);
+  _m->Obj_VrelLat_ro = ARS408_CAN_DATABASE_CH1_Obj_VrelLat_ro_toS(_m->Obj_VrelLat_phys);
+  _m->Obj_RCS_ro = ARS408_CAN_DATABASE_CH1_Obj_RCS_ro_toS(_m->Obj_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_DistLong_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->Obj_DistLong_ro & (0x1FU)) << 3) | ((_m->Obj_DistLat_ro >> 8) & (0x07U));
+  _d[3] |= (_m->Obj_DistLat_ro & (0xFFU));
+  _d[4] |= ((_m->Obj_VrelLong_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Obj_VrelLong_ro & (0x03U)) << 6) | ((_m->Obj_VrelLat_ro >> 3) & (0x3FU));
+  _d[6] |= ((_m->Obj_VrelLat_ro & (0x07U)) << 5) | (_m->Obj_DynProp & (0x07U));
+  _d[7] |= (_m->Obj_RCS_ro & (0xFFU));
+
+  *_len = Obj_1_General_DLC;
+  *_ide = Obj_1_General_IDE;
+  return Obj_1_General_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_2_Quality_ARS408_can_database_ch1(Obj_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_DistLat_rms = ((_d[1] & (0x07U)) << 2) | ((_d[2] >> 6) & (0x03U));
+  _m->Obj_DistLong_rms = ((_d[1] >> 3) & (0x1FU));
+  _m->Obj_VrelLat_rms = ((_d[2] & (0x01U)) << 4) | ((_d[3] >> 4) & (0x0FU));
+  _m->Obj_VrelLong_rms = ((_d[2] >> 1) & (0x1FU));
+  _m->Obj_ArelLong_rms = ((_d[3] & (0x0FU)) << 1) | ((_d[4] >> 7) & (0x01U));
+  _m->Obj_Orientation_rms = ((_d[4] & (0x03U)) << 3) | ((_d[5] >> 5) & (0x07U));
+  _m->Obj_ArelLat_rms = ((_d[4] >> 2) & (0x1FU));
+  _m->Obj_MeasState = ((_d[6] >> 2) & (0x07U));
+  _m->Obj_ProbOfExist = ((_d[6] >> 5) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_2_Quality_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_2_Quality_ars408_can_database_ch1(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+ return Obj_2_Quality_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch1(Obj_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_2_Quality_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_DistLat_rms >> 2) & (0x07U)) | ((_m->Obj_DistLong_rms & (0x1FU)) << 3);
+  cframe->Data[2] |= ((_m->Obj_DistLat_rms & (0x03U)) << 6) | ((_m->Obj_VrelLat_rms >> 4) & (0x01U)) | ((_m->Obj_VrelLong_rms & (0x1FU)) << 1);
+  cframe->Data[3] |= ((_m->Obj_VrelLat_rms & (0x0FU)) << 4) | ((_m->Obj_ArelLong_rms >> 1) & (0x0FU));
+  cframe->Data[4] |= ((_m->Obj_ArelLong_rms & (0x01U)) << 7) | ((_m->Obj_Orientation_rms >> 3) & (0x03U)) | ((_m->Obj_ArelLat_rms & (0x1FU)) << 2);
+  cframe->Data[5] |= ((_m->Obj_Orientation_rms & (0x07U)) << 5);
+  cframe->Data[6] |= ((_m->Obj_MeasState & (0x07U)) << 2) | ((_m->Obj_ProbOfExist & (0x07U)) << 5);
+
+  cframe->MsgId = Obj_2_Quality_CANID;
+  cframe->DLC = Obj_2_Quality_DLC;
+  cframe->IDE = Obj_2_Quality_IDE;
+  return Obj_2_Quality_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch1(Obj_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_2_Quality_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_DistLat_rms >> 2) & (0x07U)) | ((_m->Obj_DistLong_rms & (0x1FU)) << 3);
+  _d[2] |= ((_m->Obj_DistLat_rms & (0x03U)) << 6) | ((_m->Obj_VrelLat_rms >> 4) & (0x01U)) | ((_m->Obj_VrelLong_rms & (0x1FU)) << 1);
+  _d[3] |= ((_m->Obj_VrelLat_rms & (0x0FU)) << 4) | ((_m->Obj_ArelLong_rms >> 1) & (0x0FU));
+  _d[4] |= ((_m->Obj_ArelLong_rms & (0x01U)) << 7) | ((_m->Obj_Orientation_rms >> 3) & (0x03U)) | ((_m->Obj_ArelLat_rms & (0x1FU)) << 2);
+  _d[5] |= ((_m->Obj_Orientation_rms & (0x07U)) << 5);
+  _d[6] |= ((_m->Obj_MeasState & (0x07U)) << 2) | ((_m->Obj_ProbOfExist & (0x07U)) << 5);
+
+  *_len = Obj_2_Quality_DLC;
+  *_ide = Obj_2_Quality_IDE;
+  return Obj_2_Quality_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_3_Extended_ARS408_can_database_ch1(Obj_3_Extended_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_ArelLong_ro = ((_d[1] & (0xFFU)) << 3) | ((_d[2] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->Obj_ArelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_Obj_ArelLong_ro_fromS(_m->Obj_ArelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->Obj_ArelLat_ro = ((_d[2] & (0x1FU)) << 4) | ((_d[3] >> 4) & (0x0FU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->Obj_ArelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_Obj_ArelLat_ro_fromS(_m->Obj_ArelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->Obj_Class = (_d[3] & (0x07U));
+  _m->Obj_OrientationAngle_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->Obj_OrientationAngle_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_Obj_OrientationAngle_ro_fromS(_m->Obj_OrientationAngle_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->Obj_Length_ro = (_d[6] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->Obj_Length_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_Obj_Length_ro_fromS(_m->Obj_Length_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->Obj_Width_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->Obj_Width_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_Obj_Width_ro_fromS(_m->Obj_Width_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_3_Extended_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_3_Extended_ars408_can_database_ch1(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+ return Obj_3_Extended_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch1(Obj_3_Extended_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_3_Extended_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->Obj_ArelLong_ro = ARS408_CAN_DATABASE_CH1_Obj_ArelLong_ro_toS(_m->Obj_ArelLong_phys);
+  _m->Obj_ArelLat_ro = ARS408_CAN_DATABASE_CH1_Obj_ArelLat_ro_toS(_m->Obj_ArelLat_phys);
+  _m->Obj_OrientationAngle_ro = ARS408_CAN_DATABASE_CH1_Obj_OrientationAngle_ro_toS(_m->Obj_OrientationAngle_phys);
+  _m->Obj_Length_ro = ARS408_CAN_DATABASE_CH1_Obj_Length_ro_toS(_m->Obj_Length_phys);
+  _m->Obj_Width_ro = ARS408_CAN_DATABASE_CH1_Obj_Width_ro_toS(_m->Obj_Width_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_ArelLong_ro >> 3) & (0xFFU));
+  cframe->Data[2] |= ((_m->Obj_ArelLong_ro & (0x07U)) << 5) | ((_m->Obj_ArelLat_ro >> 4) & (0x1FU));
+  cframe->Data[3] |= ((_m->Obj_ArelLat_ro & (0x0FU)) << 4) | (_m->Obj_Class & (0x07U));
+  cframe->Data[4] |= ((_m->Obj_OrientationAngle_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Obj_OrientationAngle_ro & (0x03U)) << 6);
+  cframe->Data[6] |= (_m->Obj_Length_ro & (0xFFU));
+  cframe->Data[7] |= (_m->Obj_Width_ro & (0xFFU));
+
+  cframe->MsgId = Obj_3_Extended_CANID;
+  cframe->DLC = Obj_3_Extended_DLC;
+  cframe->IDE = Obj_3_Extended_IDE;
+  return Obj_3_Extended_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch1(Obj_3_Extended_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_3_Extended_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->Obj_ArelLong_ro = ARS408_CAN_DATABASE_CH1_Obj_ArelLong_ro_toS(_m->Obj_ArelLong_phys);
+  _m->Obj_ArelLat_ro = ARS408_CAN_DATABASE_CH1_Obj_ArelLat_ro_toS(_m->Obj_ArelLat_phys);
+  _m->Obj_OrientationAngle_ro = ARS408_CAN_DATABASE_CH1_Obj_OrientationAngle_ro_toS(_m->Obj_OrientationAngle_phys);
+  _m->Obj_Length_ro = ARS408_CAN_DATABASE_CH1_Obj_Length_ro_toS(_m->Obj_Length_phys);
+  _m->Obj_Width_ro = ARS408_CAN_DATABASE_CH1_Obj_Width_ro_toS(_m->Obj_Width_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_ArelLong_ro >> 3) & (0xFFU));
+  _d[2] |= ((_m->Obj_ArelLong_ro & (0x07U)) << 5) | ((_m->Obj_ArelLat_ro >> 4) & (0x1FU));
+  _d[3] |= ((_m->Obj_ArelLat_ro & (0x0FU)) << 4) | (_m->Obj_Class & (0x07U));
+  _d[4] |= ((_m->Obj_OrientationAngle_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Obj_OrientationAngle_ro & (0x03U)) << 6);
+  _d[6] |= (_m->Obj_Length_ro & (0xFFU));
+  _d[7] |= (_m->Obj_Width_ro & (0xFFU));
+
+  *_len = Obj_3_Extended_DLC;
+  *_ide = Obj_3_Extended_IDE;
+  return Obj_3_Extended_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_4_Warning_ARS408_can_database_ch1(Obj_4_Warning_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_CollDetRegionBitfield = (_d[1] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_4_Warning_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_4_Warning_ars408_can_database_ch1(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+ return Obj_4_Warning_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch1(Obj_4_Warning_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_4_Warning_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= (_m->Obj_CollDetRegionBitfield & (0xFFU));
+
+  cframe->MsgId = Obj_4_Warning_CANID;
+  cframe->DLC = Obj_4_Warning_DLC;
+  cframe->IDE = Obj_4_Warning_IDE;
+  return Obj_4_Warning_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch1(Obj_4_Warning_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_4_Warning_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= (_m->Obj_CollDetRegionBitfield & (0xFFU));
+
+  *_len = Obj_4_Warning_DLC;
+  *_ide = Obj_4_Warning_IDE;
+  return Obj_4_Warning_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_VersionID_ARS408_can_database_ch1(VersionID_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Version_MajorRelease = (_d[0] & (0xFFU));
+  _m->Version_MinorRelease = (_d[1] & (0xFFU));
+  _m->Version_PatchLevel = (_d[2] & (0xFFU));
+  _m->Version_CountryCode = (_d[3] & (0x01U));
+  _m->Version_ExtendedRange = ((_d[3] >> 1) & (0x01U));
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < VersionID_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_VersionID_ars408_can_database_ch1(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+ return VersionID_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Pack_VersionID_ARS408_can_database_ch1(VersionID_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < VersionID_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Version_MajorRelease & (0xFFU));
+  cframe->Data[1] |= (_m->Version_MinorRelease & (0xFFU));
+  cframe->Data[2] |= (_m->Version_PatchLevel & (0xFFU));
+  cframe->Data[3] |= (_m->Version_CountryCode & (0x01U)) | ((_m->Version_ExtendedRange & (0x01U)) << 1);
+
+  cframe->MsgId = VersionID_CANID;
+  cframe->DLC = VersionID_DLC;
+  cframe->IDE = VersionID_IDE;
+  return VersionID_CANID;
+}
+
+#else
+
+uint32_t Pack_VersionID_ARS408_can_database_ch1(VersionID_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < VersionID_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Version_MajorRelease & (0xFFU));
+  _d[1] |= (_m->Version_MinorRelease & (0xFFU));
+  _d[2] |= (_m->Version_PatchLevel & (0xFFU));
+  _d[3] |= (_m->Version_CountryCode & (0x01U)) | ((_m->Version_ExtendedRange & (0x01U)) << 1);
+
+  *_len = VersionID_DLC;
+  *_ide = VersionID_IDE;
+  return VersionID_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_1_General_ARS408_can_database_ch1(Cluster_1_General_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_ID = (_d[0] & (0xFFU));
+  _m->Cluster_DistLong_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->Cluster_DistLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_Cluster_DistLong_ro_fromS(_m->Cluster_DistLong_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->Cluster_DistLat_ro = ((_d[2] & (0x03U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->Cluster_DistLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_Cluster_DistLat_ro_fromS(_m->Cluster_DistLat_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->Cluster_VrelLong_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->Cluster_VrelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_Cluster_VrelLong_ro_fromS(_m->Cluster_VrelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->Cluster_VrelLat_ro = ((_d[5] & (0x3FU)) << 3) | ((_d[6] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->Cluster_VrelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_Cluster_VrelLat_ro_fromS(_m->Cluster_VrelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _m->Cluster_DynProp = (_d[6] & (0x07U));
+  _m->Cluster_RCS_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->Cluster_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH1_Cluster_RCS_ro_fromS(_m->Cluster_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_1_General_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_1_General_ars408_can_database_ch1(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+ return Cluster_1_General_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch1(Cluster_1_General_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_1_General_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->Cluster_DistLong_ro = ARS408_CAN_DATABASE_CH1_Cluster_DistLong_ro_toS(_m->Cluster_DistLong_phys);
+  _m->Cluster_DistLat_ro = ARS408_CAN_DATABASE_CH1_Cluster_DistLat_ro_toS(_m->Cluster_DistLat_phys);
+  _m->Cluster_VrelLong_ro = ARS408_CAN_DATABASE_CH1_Cluster_VrelLong_ro_toS(_m->Cluster_VrelLong_phys);
+  _m->Cluster_VrelLat_ro = ARS408_CAN_DATABASE_CH1_Cluster_VrelLat_ro_toS(_m->Cluster_VrelLat_phys);
+  _m->Cluster_RCS_ro = ARS408_CAN_DATABASE_CH1_Cluster_RCS_ro_toS(_m->Cluster_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Cluster_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Cluster_DistLong_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->Cluster_DistLong_ro & (0x1FU)) << 3) | ((_m->Cluster_DistLat_ro >> 8) & (0x03U));
+  cframe->Data[3] |= (_m->Cluster_DistLat_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->Cluster_VrelLong_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Cluster_VrelLong_ro & (0x03U)) << 6) | ((_m->Cluster_VrelLat_ro >> 3) & (0x3FU));
+  cframe->Data[6] |= ((_m->Cluster_VrelLat_ro & (0x07U)) << 5) | (_m->Cluster_DynProp & (0x07U));
+  cframe->Data[7] |= (_m->Cluster_RCS_ro & (0xFFU));
+
+  cframe->MsgId = Cluster_1_General_CANID;
+  cframe->DLC = Cluster_1_General_DLC;
+  cframe->IDE = Cluster_1_General_IDE;
+  return Cluster_1_General_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch1(Cluster_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_1_General_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  _m->Cluster_DistLong_ro = ARS408_CAN_DATABASE_CH1_Cluster_DistLong_ro_toS(_m->Cluster_DistLong_phys);
+  _m->Cluster_DistLat_ro = ARS408_CAN_DATABASE_CH1_Cluster_DistLat_ro_toS(_m->Cluster_DistLat_phys);
+  _m->Cluster_VrelLong_ro = ARS408_CAN_DATABASE_CH1_Cluster_VrelLong_ro_toS(_m->Cluster_VrelLong_phys);
+  _m->Cluster_VrelLat_ro = ARS408_CAN_DATABASE_CH1_Cluster_VrelLat_ro_toS(_m->Cluster_VrelLat_phys);
+  _m->Cluster_RCS_ro = ARS408_CAN_DATABASE_CH1_Cluster_RCS_ro_toS(_m->Cluster_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  _d[0] |= (_m->Cluster_ID & (0xFFU));
+  _d[1] |= ((_m->Cluster_DistLong_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->Cluster_DistLong_ro & (0x1FU)) << 3) | ((_m->Cluster_DistLat_ro >> 8) & (0x03U));
+  _d[3] |= (_m->Cluster_DistLat_ro & (0xFFU));
+  _d[4] |= ((_m->Cluster_VrelLong_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Cluster_VrelLong_ro & (0x03U)) << 6) | ((_m->Cluster_VrelLat_ro >> 3) & (0x3FU));
+  _d[6] |= ((_m->Cluster_VrelLat_ro & (0x07U)) << 5) | (_m->Cluster_DynProp & (0x07U));
+  _d[7] |= (_m->Cluster_RCS_ro & (0xFFU));
+
+  *_len = Cluster_1_General_DLC;
+  *_ide = Cluster_1_General_IDE;
+  return Cluster_1_General_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_2_Quality_ARS408_can_database_ch1(Cluster_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_ID = (_d[0] & (0xFFU));
+  _m->Cluster_DistLat_rms = ((_d[1] & (0x07U)) << 2) | ((_d[2] >> 6) & (0x03U));
+  _m->Cluster_DistLong_rms = ((_d[1] >> 3) & (0x1FU));
+  _m->Cluster_VrelLat_rms = ((_d[2] & (0x01U)) << 4) | ((_d[3] >> 4) & (0x0FU));
+  _m->Cluster_VrelLong_rms = ((_d[2] >> 1) & (0x1FU));
+  _m->Cluster_PdH0 = (_d[3] & (0x07U));
+  _m->Cluster_AmbigState = (_d[4] & (0x07U));
+  _m->Cluster_InvalidState = ((_d[4] >> 3) & (0x1FU));
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_2_Quality_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_2_Quality_ars408_can_database_ch1(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+ return Cluster_2_Quality_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch1(Cluster_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_2_Quality_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Cluster_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Cluster_DistLat_rms >> 2) & (0x07U)) | ((_m->Cluster_DistLong_rms & (0x1FU)) << 3);
+  cframe->Data[2] |= ((_m->Cluster_DistLat_rms & (0x03U)) << 6) | ((_m->Cluster_VrelLat_rms >> 4) & (0x01U)) | ((_m->Cluster_VrelLong_rms & (0x1FU)) << 1);
+  cframe->Data[3] |= ((_m->Cluster_VrelLat_rms & (0x0FU)) << 4) | (_m->Cluster_PdH0 & (0x07U));
+  cframe->Data[4] |= (_m->Cluster_AmbigState & (0x07U)) | ((_m->Cluster_InvalidState & (0x1FU)) << 3);
+
+  cframe->MsgId = Cluster_2_Quality_CANID;
+  cframe->DLC = Cluster_2_Quality_DLC;
+  cframe->IDE = Cluster_2_Quality_IDE;
+  return Cluster_2_Quality_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch1(Cluster_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_2_Quality_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Cluster_ID & (0xFFU));
+  _d[1] |= ((_m->Cluster_DistLat_rms >> 2) & (0x07U)) | ((_m->Cluster_DistLong_rms & (0x1FU)) << 3);
+  _d[2] |= ((_m->Cluster_DistLat_rms & (0x03U)) << 6) | ((_m->Cluster_VrelLat_rms >> 4) & (0x01U)) | ((_m->Cluster_VrelLong_rms & (0x1FU)) << 1);
+  _d[3] |= ((_m->Cluster_VrelLat_rms & (0x0FU)) << 4) | (_m->Cluster_PdH0 & (0x07U));
+  _d[4] |= (_m->Cluster_AmbigState & (0x07U)) | ((_m->Cluster_InvalidState & (0x1FU)) << 3);
+
+  *_len = Cluster_2_Quality_DLC;
+  *_ide = Cluster_2_Quality_IDE;
+  return Cluster_2_Quality_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+

+ 4044 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch1.h

@@ -0,0 +1,4044 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+// DBC file version
+#define VER_ARS408_CAN_DATABASE_CH1_MAJ (0U)
+#define VER_ARS408_CAN_DATABASE_CH1_MIN (0U)
+
+// include current dbc-driver compilation config
+#include "ars408_can_database_ch1-config.h"
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+// This file must define:
+// base monitor struct
+// function signature for HASH calculation: (@GetFrameHash)
+// function signature for getting system tick value: (@GetSystemTick)
+#include "canmonitorutil.h"
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+
+// Control message for relay to display collision detection
+// def @CollDetRelayCtrl CAN Message (8    0x8)
+#define CollDetRelayCtrl_IDE (0U)
+#define CollDetRelayCtrl_DLC (1U)
+#define CollDetRelayCtrl_CANID (0x8)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+  // Region bit field for control relay
+  uint8_t CollDetRelayCtrl_Param;            //      Bits= 8
+
+#else
+
+  // Region bit field for control relay
+  uint8_t CollDetRelayCtrl_Param;            //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+} CollDetRelayCtrl_t;
+
+// Radar configuration
+// def @RadarConfiguration CAN Message (528  0x210)
+#define RadarConfiguration_IDE (0U)
+#define RadarConfiguration_DLC (8U)
+#define RadarConfiguration_CANID (0x210)
+// signal: @RadarCfg_MaxDistance_ro
+#define ARS408_CAN_DATABASE_CH1_RadarCfg_MaxDistance_ro_CovFactor (2)
+#define ARS408_CAN_DATABASE_CH1_RadarCfg_MaxDistance_ro_toS(x) ( (uint16_t) ((x) / (2)) )
+#define ARS408_CAN_DATABASE_CH1_RadarCfg_MaxDistance_ro_fromS(x) ( ((x) * (2)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+  // Allows changing the MaxDistance parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_MaxDistance_valid : 1;     //      Bits= 1
+
+  // Allows changing the SensorId parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SensorID_valid : 1;        //      Bits= 1
+
+  // Allows changing the RadarPower parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RadarPower_valid : 1;      //      Bits= 1
+
+  // Allows changing the OutputType parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_OutputType_valid : 1;      //      Bits= 1
+
+  // Allows changing the SendQuality parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendQuality_valid : 1;     //      Bits= 1
+
+  // Allows changing the SendExtInfo parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendExtInfo_valid : 1;     //      Bits= 1
+
+  // Allows changing the SortIndex parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SortIndex_valid : 1;       //      Bits= 1
+
+  // Allows changing the StoreInNvm parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_StoreInNVM_valid : 1;      //      Bits= 1
+
+  uint16_t RadarCfg_MaxDistance_ro;           //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  uint16_t RadarCfg_MaxDistance_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // Sensor ID (0 to 7)
+  uint8_t RadarCfg_SensorID : 3;              //      Bits= 3
+
+  // Data output type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarCfg_OutputType : 2;            //      Bits= 2
+
+  // Radar Tx output power reduction (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RadarPower : 3;            //      Bits= 3
+
+  // Allows changing the CtrlRelay parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_CtrlRelay_valid : 1;       //      Bits= 1
+
+  // Enables output of CtrlRelay message if CollDet is active
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_CtrlRelay : 1;             //      Bits= 1
+
+  // Enables output of quality message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendQuality : 1;           //      Bits= 1
+
+  // Enables output of extended message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendExtInfo : 1;           //      Bits= 1
+
+  // Object sort index
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarCfg_SortIndex : 3;             //      Bits= 3
+
+  // Store configuration in Nvm
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_StoreInNVM : 1;            //      Bits= 1
+
+  // Allows changing the RCS_Threshold parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RCS_Threshold_Valid : 1;   //      Bits= 1
+
+  // Standard or high sensitivity for cluster list output
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RCS_Threshold : 3;         //      Bits= 3
+
+#else
+
+  // Allows changing the MaxDistance parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_MaxDistance_valid;         //      Bits= 1
+
+  // Allows changing the SensorId parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SensorID_valid;            //      Bits= 1
+
+  // Allows changing the RadarPower parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RadarPower_valid;          //      Bits= 1
+
+  // Allows changing the OutputType parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_OutputType_valid;          //      Bits= 1
+
+  // Allows changing the SendQuality parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendQuality_valid;         //      Bits= 1
+
+  // Allows changing the SendExtInfo parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendExtInfo_valid;         //      Bits= 1
+
+  // Allows changing the SortIndex parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SortIndex_valid;           //      Bits= 1
+
+  // Allows changing the StoreInNvm parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_StoreInNVM_valid;          //      Bits= 1
+
+  uint16_t RadarCfg_MaxDistance_ro;           //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  uint16_t RadarCfg_MaxDistance_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // Sensor ID (0 to 7)
+  uint8_t RadarCfg_SensorID;                  //      Bits= 3
+
+  // Data output type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarCfg_OutputType;                //      Bits= 2
+
+  // Radar Tx output power reduction (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RadarPower;                //      Bits= 3
+
+  // Allows changing the CtrlRelay parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_CtrlRelay_valid;           //      Bits= 1
+
+  // Enables output of CtrlRelay message if CollDet is active
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_CtrlRelay;                 //      Bits= 1
+
+  // Enables output of quality message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendQuality;               //      Bits= 1
+
+  // Enables output of extended message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendExtInfo;               //      Bits= 1
+
+  // Object sort index
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarCfg_SortIndex;                 //      Bits= 3
+
+  // Store configuration in Nvm
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_StoreInNVM;                //      Bits= 1
+
+  // Allows changing the RCS_Threshold parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RCS_Threshold_Valid;       //      Bits= 1
+
+  // Standard or high sensitivity for cluster list output
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RCS_Threshold;             //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+} RadarConfiguration_t;
+
+// Radar configuration status
+// def @RadarState CAN Message (529  0x211)
+#define RadarState_IDE (0U)
+#define RadarState_DLC (8U)
+#define RadarState_CANID (0x211)
+#define RadarState_CYC (50U)
+// signal: @RadarState_MaxDistanceCfg_ro
+#define ARS408_CAN_DATABASE_CH1_RadarState_MaxDistanceCfg_ro_CovFactor (2)
+#define ARS408_CAN_DATABASE_CH1_RadarState_MaxDistanceCfg_ro_toS(x) ( (uint16_t) ((x) / (2)) )
+#define ARS408_CAN_DATABASE_CH1_RadarState_MaxDistanceCfg_ro_fromS(x) ( ((x) * (2)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+  // Gives the status of reading the radar configuration from EEPROM
+  //  1 : "successful"
+  //  0 : "pending"
+  // 
+  uint8_t RadarState_NVMReadStatus : 1;       //      Bits= 1
+
+  // Gives the status of writing the radar configuration from EEPROM
+  // 
+  uint8_t RadarState_NVMwriteStatus : 1;      //      Bits= 1
+
+  uint16_t RadarState_MaxDistanceCfg_ro;      //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  uint16_t RadarState_MaxDistanceCfg_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // 
+  // 
+  //  1 : "Voltage error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Voltage_Error : 1;       //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temporary error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temporary_Error : 1;     //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temperature error  active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temperature_Error : 1;   //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Interference detected"
+  //  0 : "No interference"
+  // 
+  uint8_t RadarState_Interference : 1;        //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Persistent error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Persistent_Error : 1;    //      Bits= 1
+
+  // Radar Tx output level (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RadarPowerCfg : 3;       //      Bits= 3
+
+  // Sensor ID (0 to 7)
+  //  7 : "ID 7"
+  //  6 : "ID 6"
+  //  5 : "ID 5"
+  //  4 : "ID 4"
+  //  3 : "ID 3"
+  //  2 : "ID 2"
+  //  1 : "ID 1"
+  //  0 : "ID 0"
+  // 
+  uint8_t RadarState_SensorID : 3;            //      Bits= 3
+
+  // Current sorting of object list
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarState_SortIndex : 3;           //      Bits= 3
+
+  // Status of control relay message output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_CtrlRelayCfg : 1;        //      Bits= 1
+
+  // Current output list type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarState_OutputTypeCfg : 2;       //      Bits= 2
+
+  // Status of quality information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendQualityCfg : 1;      //      Bits= 1
+
+  // Status of extended information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendExtInfoCfg : 1;      //      Bits= 1
+
+  // Status of motion input signals
+  //  3 : "Speed and yaw rate missing"
+  //  2 : "Yaw rate missing"
+  //  1 : "Speed missing"
+  //  0 : "Input ok"
+  // 
+  uint8_t RadarState_MotionRxState : 2;       //      Bits= 2
+
+  // Current sensitivity mode
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RCS_Threshold : 3;       //      Bits= 3
+
+#else
+
+  // Gives the status of reading the radar configuration from EEPROM
+  //  1 : "successful"
+  //  0 : "pending"
+  // 
+  uint8_t RadarState_NVMReadStatus;           //      Bits= 1
+
+  // Gives the status of writing the radar configuration from EEPROM
+  // 
+  uint8_t RadarState_NVMwriteStatus;          //      Bits= 1
+
+  uint16_t RadarState_MaxDistanceCfg_ro;      //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  uint16_t RadarState_MaxDistanceCfg_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // 
+  // 
+  //  1 : "Voltage error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Voltage_Error;           //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temporary error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temporary_Error;         //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temperature error  active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temperature_Error;       //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Interference detected"
+  //  0 : "No interference"
+  // 
+  uint8_t RadarState_Interference;            //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Persistent error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Persistent_Error;        //      Bits= 1
+
+  // Radar Tx output level (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RadarPowerCfg;           //      Bits= 3
+
+  // Sensor ID (0 to 7)
+  //  7 : "ID 7"
+  //  6 : "ID 6"
+  //  5 : "ID 5"
+  //  4 : "ID 4"
+  //  3 : "ID 3"
+  //  2 : "ID 2"
+  //  1 : "ID 1"
+  //  0 : "ID 0"
+  // 
+  uint8_t RadarState_SensorID;                //      Bits= 3
+
+  // Current sorting of object list
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarState_SortIndex;               //      Bits= 3
+
+  // Status of control relay message output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_CtrlRelayCfg;            //      Bits= 1
+
+  // Current output list type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarState_OutputTypeCfg;           //      Bits= 2
+
+  // Status of quality information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendQualityCfg;          //      Bits= 1
+
+  // Status of extended information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendExtInfoCfg;          //      Bits= 1
+
+  // Status of motion input signals
+  //  3 : "Speed and yaw rate missing"
+  //  2 : "Yaw rate missing"
+  //  1 : "Speed missing"
+  //  0 : "Input ok"
+  // 
+  uint8_t RadarState_MotionRxState;           //      Bits= 2
+
+  // Current sensitivity mode
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RCS_Threshold;           //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+} RadarState_t;
+
+// Filter configuration
+// def @FilterCfg CAN Message (530  0x212)
+#define FilterCfg_IDE (0U)
+#define FilterCfg_DLC (5U)
+#define FilterCfg_CANID (0x212)
+// signal: @FilterCfg_Min_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_Size_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterCfg_Min_RCS_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Min_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Min_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Min_Distance_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Min_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_Y_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterCfg_Min_X_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Min_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @FilterCfg_Max_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Max_Distance_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Max_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Max_RCS_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Max_Size_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterCfg_Max_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_Y_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterCfg_Max_X_ro
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterCfg_Max_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+  //  1 : "valid"
+  //  0 : "invalid"
+  // 
+  uint8_t FilterCfg_Valid : 1;                //      Bits= 1
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterCfg_Active : 1;               //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterCfg_Index : 4;                //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterCfg_Type : 1;                 //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#else
+
+  //  1 : "valid"
+  //  0 : "invalid"
+  // 
+  uint8_t FilterCfg_Valid;                    //      Bits= 1
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterCfg_Active;                   //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterCfg_Index;                    //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterCfg_Type;                     //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+} FilterCfg_t;
+
+// Header of filter configuration state
+// def @FilterState_Header CAN Message (531  0x213)
+#define FilterState_Header_IDE (0U)
+#define FilterState_Header_DLC (2U)
+#define FilterState_Header_CANID (0x213)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+  uint8_t FilterState_NofClusterFilterCfg : 5;   //      Bits= 5
+
+  uint8_t FilterState_NofObjectFilterCfg : 5;    //      Bits= 5
+
+#else
+
+  uint8_t FilterState_NofClusterFilterCfg;       //      Bits= 5
+
+  uint8_t FilterState_NofObjectFilterCfg;        //      Bits= 5
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+} FilterState_Header_t;
+
+// Filter configuration status
+// def @FilterState_Cfg CAN Message (532  0x214)
+#define FilterState_Cfg_IDE (0U)
+#define FilterState_Cfg_DLC (5U)
+#define FilterState_Cfg_CANID (0x214)
+// signal: @FilterState_Min_RCS_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Min_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Min_Distance_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Min_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Min_Y_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterState_Min_Size_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterState_Min_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_X_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Min_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @FilterState_Max_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Max_Distance_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Max_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Max_RCS_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Max_Size_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterState_Max_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_Y_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterState_Max_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_X_ro
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_FilterState_Max_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterState_Active : 1;               //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterState_Index : 4;                //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterState_Type : 1;                 //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterState_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_NofObj;              //      Bits=12
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_NofObj;              //      Bits=12
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#else
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterState_Active;                   //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterState_Index;                    //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterState_Type;                     //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterState_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_NofObj;              //      Bits=12
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_NofObj;              //      Bits=12
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+} FilterState_Cfg_t;
+
+// Device movement speed
+// def @SpeedInformation CAN Message (784  0x310)
+#define SpeedInformation_IDE (0U)
+#define SpeedInformation_DLC (2U)
+#define SpeedInformation_CANID (0x310)
+// signal: @RadarDevice_Speed_ro
+#define ARS408_CAN_DATABASE_CH1_RadarDevice_Speed_ro_CovFactor (0.020000)
+#define ARS408_CAN_DATABASE_CH1_RadarDevice_Speed_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.020000)) )
+#define ARS408_CAN_DATABASE_CH1_RadarDevice_Speed_ro_fromS(x) ( (((x) * (0.020000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+  uint16_t RadarDevice_Speed_ro;             //      Bits=13 Factor= 0.020000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t RadarDevice_Speed_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // Speed direction of the radar unit
+  //  3 : "reserved"
+  //  2 : "reverse"
+  //  1 : "forward"
+  //  0 : "standstill"
+  // 
+  uint8_t RadarDevice_SpeedDirection : 2;    //      Bits= 2
+
+#else
+
+  uint16_t RadarDevice_Speed_ro;             //      Bits=13 Factor= 0.020000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t RadarDevice_Speed_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // Speed direction of the radar unit
+  //  3 : "reserved"
+  //  2 : "reverse"
+  //  1 : "forward"
+  //  0 : "standstill"
+  // 
+  uint8_t RadarDevice_SpeedDirection;        //      Bits= 2
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+} SpeedInformation_t;
+
+// Device movement yaw rate
+// def @YawRateInformation CAN Message (785  0x311)
+#define YawRateInformation_IDE (0U)
+#define YawRateInformation_DLC (2U)
+#define YawRateInformation_CANID (0x311)
+// signal: @RadarDevice_YawRate_ro
+#define ARS408_CAN_DATABASE_CH1_RadarDevice_YawRate_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH1_RadarDevice_YawRate_ro_toS(x) ( (uint16_t) (((x) - (-327.680000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH1_RadarDevice_YawRate_ro_fromS(x) ( (((x) * (0.010000)) + (-327.680000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+  uint16_t RadarDevice_YawRate_ro;           //      Bits=16 Offset= -327.680000        Factor= 0.010000        Unit:'deg/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t RadarDevice_YawRate_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#else
+
+  uint16_t RadarDevice_YawRate_ro;           //      Bits=16 Offset= -327.680000        Factor= 0.010000        Unit:'deg/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t RadarDevice_YawRate_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+} YawRateInformation_t;
+
+// Collision detection configuration status
+// def @CollDetState CAN Message (1032 0x408)
+#define CollDetState_IDE (0U)
+#define CollDetState_DLC (4U)
+#define CollDetState_CANID (0x408)
+// signal: @CollDetState_MinDetectTime_ro
+#define ARS408_CAN_DATABASE_CH1_CollDetState_MinDetectTime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH1_CollDetState_MinDetectTime_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH1_CollDetState_MinDetectTime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetState_Active : 1;             //      Bits= 1
+
+  uint8_t CollDetState_NofRegions : 4;         //      Bits= 4
+
+  uint8_t CollDetState_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t CollDetState_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t CollDetState_MeasCounter;           //      Bits=16
+
+#else
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetState_Active;                 //      Bits= 1
+
+  uint8_t CollDetState_NofRegions;             //      Bits= 4
+
+  uint8_t CollDetState_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t CollDetState_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t CollDetState_MeasCounter;           //      Bits=16
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+} CollDetState_t;
+
+// Collision detection configuration
+// def @CollDetCfg CAN Message (1040 0x410)
+#define CollDetCfg_IDE (0U)
+#define CollDetCfg_DLC (2U)
+#define CollDetCfg_CANID (0x410)
+// signal: @CollDetCfg_MinDetectTime_ro
+#define ARS408_CAN_DATABASE_CH1_CollDetCfg_MinDetectTime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH1_CollDetCfg_MinDetectTime_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH1_CollDetCfg_MinDetectTime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+  //  1 : "Warn reset"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_WarningReset : 1;       //      Bits= 1
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetCfg_Activate : 1;           //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetCfg_MinTime_valid : 1;      //      Bits= 1
+
+  //  1 : "Clear all defined regions"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_ClearRegions : 1;       //      Bits= 1
+
+  uint8_t CollDetCfg_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t CollDetCfg_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#else
+
+  //  1 : "Warn reset"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_WarningReset;           //      Bits= 1
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetCfg_Activate;               //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetCfg_MinTime_valid;          //      Bits= 1
+
+  //  1 : "Clear all defined regions"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_ClearRegions;           //      Bits= 1
+
+  uint8_t CollDetCfg_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t CollDetCfg_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+} CollDetCfg_t;
+
+// Collision detection region configuration
+// def @CollDetRegionCfg CAN Message (1041 0x411)
+#define CollDetRegionCfg_IDE (0U)
+#define CollDetRegionCfg_DLC (8U)
+#define CollDetRegionCfg_CANID (0x411)
+// signal: @CollDetRegCfg_Point1X_ro
+#define ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point1X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point1X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point1X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegCfg_Point1Y_ro
+#define ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point1Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point1Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point1Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @CollDetRegCfg_Point2X_ro
+#define ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point2X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point2X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point2X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegCfg_Point2Y_ro
+#define ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point2Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point2Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_CollDetRegCfg_Point2Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetRegCfg_Activate : 1;            //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetRegCfg_Coordinates_valid : 1;   //      Bits= 1
+
+  uint8_t CollDetRegCfg_RegionID : 3;            //      Bits= 3
+
+  uint16_t CollDetRegCfg_Point1X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point1Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#else
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetRegCfg_Activate;                //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetRegCfg_Coordinates_valid;       //      Bits= 1
+
+  uint8_t CollDetRegCfg_RegionID;                //      Bits= 3
+
+  uint16_t CollDetRegCfg_Point1X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point1Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+} CollDetRegionCfg_t;
+
+// Collision detection region configuration and warning status
+// def @CollDetRegionState CAN Message (1042 0x412)
+#define CollDetRegionState_IDE (0U)
+#define CollDetRegionState_DLC (8U)
+#define CollDetRegionState_CANID (0x412)
+// signal: @CollDetRegState_Point1X_ro
+#define ARS408_CAN_DATABASE_CH1_CollDetRegState_Point1X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_CollDetRegState_Point1X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_CollDetRegState_Point1X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegState_Point1Y_ro
+#define ARS408_CAN_DATABASE_CH1_CollDetRegState_Point1Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_CollDetRegState_Point1Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_CollDetRegState_Point1Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @CollDetRegState_Point2X_ro
+#define ARS408_CAN_DATABASE_CH1_CollDetRegState_Point2X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_CollDetRegState_Point2X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_CollDetRegState_Point2X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegState_Point2Y_ro
+#define ARS408_CAN_DATABASE_CH1_CollDetRegState_Point2Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_CollDetRegState_Point2Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_CollDetRegState_Point2Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+  //  3 : "Warning deactivated"
+  //  2 : "Preliminary warning"
+  //  1 : "Object warning"
+  //  0 : "No warning"
+  // 
+  uint8_t CollDetRegState_WarningLevel : 2;   //      Bits= 2
+
+  uint8_t CollDetRegState_RegionID : 3;       //      Bits= 3
+
+  uint16_t CollDetRegState_Point1X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point1Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint8_t CollDetRegState_NofObjects;         //      Bits= 8
+
+#else
+
+  //  3 : "Warning deactivated"
+  //  2 : "Preliminary warning"
+  //  1 : "Object warning"
+  //  0 : "No warning"
+  // 
+  uint8_t CollDetRegState_WarningLevel;       //      Bits= 2
+
+  uint8_t CollDetRegState_RegionID;           //      Bits= 3
+
+  uint16_t CollDetRegState_Point1X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point1Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint8_t CollDetRegState_NofObjects;         //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+} CollDetRegionState_t;
+
+// Status information about Clusters
+// def @Cluster_0_Status CAN Message (1552 0x610)
+#define Cluster_0_Status_IDE (0U)
+#define Cluster_0_Status_DLC (5U)
+#define Cluster_0_Status_CANID (0x610)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+  // Number of valid Clusters in near range scan
+  uint8_t Cluster_NofClustersNear;           //      Bits= 8
+
+  // Number of valid Clusters in far range scan
+  uint8_t Cluster_NofClustersFar;            //      Bits= 8
+
+  // Measurement counter
+  uint16_t Cluster_MeasCounter;              //      Bits=16
+
+  // Cluster CAN Interface Version Number
+  uint8_t Cluster_InterfaceVersion : 4;      //      Bits= 4
+
+#else
+
+  // Number of valid Clusters in near range scan
+  uint8_t Cluster_NofClustersNear;           //      Bits= 8
+
+  // Number of valid Clusters in far range scan
+  uint8_t Cluster_NofClustersFar;            //      Bits= 8
+
+  // Measurement counter
+  uint16_t Cluster_MeasCounter;              //      Bits=16
+
+  // Cluster CAN Interface Version Number
+  uint8_t Cluster_InterfaceVersion;          //      Bits= 4
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+} Cluster_0_Status_t;
+
+// Status information about object
+// def @Obj_0_Status CAN Message (1562 0x61a)
+#define Obj_0_Status_IDE (0U)
+#define Obj_0_Status_DLC (4U)
+#define Obj_0_Status_CANID (0x61a)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+  // Number of Objects sent
+  uint8_t Obj_NofObjects;                    //      Bits= 8
+
+  // Measurement Counter
+  uint16_t Obj_MeasCounter;                  //      Bits=16
+
+  // Object CAN Interface Version Number
+  uint8_t Obj_InterfaceVersion : 4;          //      Bits= 4
+
+#else
+
+  // Number of Objects sent
+  uint8_t Obj_NofObjects;                    //      Bits= 8
+
+  // Measurement Counter
+  uint16_t Obj_MeasCounter;                  //      Bits=16
+
+  // Object CAN Interface Version Number
+  uint8_t Obj_InterfaceVersion;              //      Bits= 4
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+} Obj_0_Status_t;
+
+// General object information
+// def @Obj_1_General CAN Message (1563 0x61b)
+#define Obj_1_General_IDE (0U)
+#define Obj_1_General_DLC (8U)
+#define Obj_1_General_CANID (0x61b)
+// signal: @Obj_DistLong_ro
+#define ARS408_CAN_DATABASE_CH1_Obj_DistLong_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_Obj_DistLong_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_Obj_DistLong_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @Obj_DistLat_ro
+#define ARS408_CAN_DATABASE_CH1_Obj_DistLat_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_Obj_DistLat_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_Obj_DistLat_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @Obj_VrelLong_ro
+#define ARS408_CAN_DATABASE_CH1_Obj_VrelLong_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH1_Obj_VrelLong_ro_toS(x) ( (uint16_t) (((x) - (-128.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH1_Obj_VrelLong_ro_fromS(x) ( (((x) * (0.250000)) + (-128.000000)) )
+// signal: @Obj_VrelLat_ro
+#define ARS408_CAN_DATABASE_CH1_Obj_VrelLat_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH1_Obj_VrelLat_ro_toS(x) ( (uint16_t) (((x) - (-64.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH1_Obj_VrelLat_ro_fromS(x) ( (((x) * (0.250000)) + (-64.000000)) )
+// signal: @Obj_RCS_ro
+#define ARS408_CAN_DATABASE_CH1_Obj_RCS_ro_CovFactor (0.500000)
+#define ARS408_CAN_DATABASE_CH1_Obj_RCS_ro_toS(x) ( (uint8_t) (((x) - (-64.000000)) / (0.500000)) )
+#define ARS408_CAN_DATABASE_CH1_Obj_RCS_ro_fromS(x) ( (((x) * (0.500000)) + (-64.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_DistLong_ro;                  //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Obj_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t Obj_DistLat_ro;                   //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Obj_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLong_ro;                  //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLat_ro;                   //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // Object dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Obj_DynProp : 3;                   //      Bits= 3
+
+  uint8_t Obj_RCS_ro;                        //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Obj_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_DistLong_ro;                  //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Obj_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t Obj_DistLat_ro;                   //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Obj_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLong_ro;                  //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLat_ro;                   //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // Object dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Obj_DynProp;                       //      Bits= 3
+
+  uint8_t Obj_RCS_ro;                        //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Obj_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+} Obj_1_General_t;
+
+// Quality object information
+// def @Obj_2_Quality CAN Message (1564 0x61c)
+#define Obj_2_Quality_IDE (0U)
+#define Obj_2_Quality_DLC (7U)
+#define Obj_2_Quality_CANID (0x61c)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Object lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLat_rms : 5;               //      Bits= 5
+
+  // Object longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLong_rms : 5;              //      Bits= 5
+
+  // Object relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLat_rms : 5;               //      Bits= 5
+
+  // Object relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLong_rms : 5;              //      Bits= 5
+
+  // Object relative longitudinal acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLong_rms : 5;              //      Bits= 5
+
+  // Object orientation angle
+  //  31 : "Invalid"
+  //  30 : "<180.000 deg"
+  //  29 : "<126.881 deg"
+  //  28 : "<89.437 deg"
+  //  27 : "<63.044 deg"
+  //  26 : "<44.439 deg"
+  //  25 : "<31.325 deg"
+  //  24 : "<22.081 deg"
+  //  23 : "<15.565 deg"
+  //  22 : "<10.971 deg"
+  //  21 : "<7.734 deg"
+  //  20 : "<5.451 deg"
+  //  19 : "<3.843 deg"
+  //  18 : "<2.709 deg"
+  //  17 : "<1.909 deg"
+  //  16 : "<1.346 deg"
+  //  15 : "<0.949 deg"
+  //  14 : "<0.669 deg"
+  //  13 : "<0.471 deg"
+  //  12 : "<0.332 deg"
+  //  11 : "<0.234 deg"
+  //  10 : "<0.165 deg"
+  //  9 : "<0.116 deg"
+  //  8 : "<0.082 deg"
+  //  7 : "<0.058 deg"
+  //  6 : "<0.041 deg"
+  //  5 : "<0.029 deg"
+  //  4 : "<0.020 deg"
+  //  3 : "<0.014 deg"
+  //  2 : "<0.010 deg"
+  //  1 : "<0.007 deg"
+  //  0 : "<0.005 deg"
+  // 
+  uint8_t Obj_Orientation_rms : 5;           //      Bits= 5
+
+  // Object relative lateral acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLat_rms : 5;               //      Bits= 5
+
+  // Object measurement status
+  //  5 : "New from merge"
+  //  4 : "Deleted for merge"
+  //  3 : "Predicted"
+  //  2 : "Measured"
+  //  1 : "New"
+  //  0 : "Deleted"
+  // 
+  uint8_t Obj_MeasState : 3;                 //      Bits= 3
+
+  // Object probability of existence
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Obj_ProbOfExist : 3;               //      Bits= 3
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Object lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLat_rms;                   //      Bits= 5
+
+  // Object longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLong_rms;                  //      Bits= 5
+
+  // Object relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLat_rms;                   //      Bits= 5
+
+  // Object relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLong_rms;                  //      Bits= 5
+
+  // Object relative longitudinal acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLong_rms;                  //      Bits= 5
+
+  // Object orientation angle
+  //  31 : "Invalid"
+  //  30 : "<180.000 deg"
+  //  29 : "<126.881 deg"
+  //  28 : "<89.437 deg"
+  //  27 : "<63.044 deg"
+  //  26 : "<44.439 deg"
+  //  25 : "<31.325 deg"
+  //  24 : "<22.081 deg"
+  //  23 : "<15.565 deg"
+  //  22 : "<10.971 deg"
+  //  21 : "<7.734 deg"
+  //  20 : "<5.451 deg"
+  //  19 : "<3.843 deg"
+  //  18 : "<2.709 deg"
+  //  17 : "<1.909 deg"
+  //  16 : "<1.346 deg"
+  //  15 : "<0.949 deg"
+  //  14 : "<0.669 deg"
+  //  13 : "<0.471 deg"
+  //  12 : "<0.332 deg"
+  //  11 : "<0.234 deg"
+  //  10 : "<0.165 deg"
+  //  9 : "<0.116 deg"
+  //  8 : "<0.082 deg"
+  //  7 : "<0.058 deg"
+  //  6 : "<0.041 deg"
+  //  5 : "<0.029 deg"
+  //  4 : "<0.020 deg"
+  //  3 : "<0.014 deg"
+  //  2 : "<0.010 deg"
+  //  1 : "<0.007 deg"
+  //  0 : "<0.005 deg"
+  // 
+  uint8_t Obj_Orientation_rms;               //      Bits= 5
+
+  // Object relative lateral acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLat_rms;                   //      Bits= 5
+
+  // Object measurement status
+  //  5 : "New from merge"
+  //  4 : "Deleted for merge"
+  //  3 : "Predicted"
+  //  2 : "Measured"
+  //  1 : "New"
+  //  0 : "Deleted"
+  // 
+  uint8_t Obj_MeasState;                     //      Bits= 3
+
+  // Object probability of existence
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Obj_ProbOfExist;                   //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+} Obj_2_Quality_t;
+
+// Extended object information
+// def @Obj_3_Extended CAN Message (1565 0x61d)
+#define Obj_3_Extended_IDE (0U)
+#define Obj_3_Extended_DLC (8U)
+#define Obj_3_Extended_CANID (0x61d)
+// signal: @Obj_ArelLong_ro
+#define ARS408_CAN_DATABASE_CH1_Obj_ArelLong_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH1_Obj_ArelLong_ro_toS(x) ( (uint16_t) (((x) - (-10.000000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH1_Obj_ArelLong_ro_fromS(x) ( (((x) * (0.010000)) + (-10.000000)) )
+// signal: @Obj_ArelLat_ro
+#define ARS408_CAN_DATABASE_CH1_Obj_ArelLat_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH1_Obj_ArelLat_ro_toS(x) ( (uint16_t) (((x) - (-2.500000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH1_Obj_ArelLat_ro_fromS(x) ( (((x) * (0.010000)) + (-2.500000)) )
+// signal: @Obj_OrientationAngle_ro
+#define ARS408_CAN_DATABASE_CH1_Obj_OrientationAngle_ro_CovFactor (0.400000)
+#define ARS408_CAN_DATABASE_CH1_Obj_OrientationAngle_ro_toS(x) ( (uint16_t) (((x) - (-180.000000)) / (0.400000)) )
+#define ARS408_CAN_DATABASE_CH1_Obj_OrientationAngle_ro_fromS(x) ( (((x) * (0.400000)) + (-180.000000)) )
+// signal: @Obj_Length_ro
+#define ARS408_CAN_DATABASE_CH1_Obj_Length_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_Obj_Length_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_Obj_Length_ro_fromS(x) ( (((x) * (0.200000)) + (0.000000)) )
+// signal: @Obj_Width_ro
+#define ARS408_CAN_DATABASE_CH1_Obj_Width_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_Obj_Width_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_Obj_Width_ro_fromS(x) ( (((x) * (0.200000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_ArelLong_ro;                  //      Bits=11 Offset= -10.000000         Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t Obj_ArelLat_ro;                   //      Bits= 9 Offset= -2.500000          Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // Object classification
+  //  7 : "Description for the value '0x7'"
+  //  6 : "Wide"
+  //  5 : "Bicycle"
+  //  4 : "Motorcycle"
+  //  3 : "Pedestrian"
+  //  2 : "Truck"
+  //  1 : "Car"
+  //  0 : "Point"
+  // 
+  uint8_t Obj_Class : 3;                     //      Bits= 3
+
+  uint16_t Obj_OrientationAngle_ro;          //      Bits=10 Offset= -180.000000        Factor= 0.400000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Obj_OrientationAngle_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint8_t Obj_Length_ro;                     //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Obj_Length_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint8_t Obj_Width_ro;                      //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Obj_Width_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_ArelLong_ro;                  //      Bits=11 Offset= -10.000000         Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t Obj_ArelLat_ro;                   //      Bits= 9 Offset= -2.500000          Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // Object classification
+  //  7 : "Description for the value '0x7'"
+  //  6 : "Wide"
+  //  5 : "Bicycle"
+  //  4 : "Motorcycle"
+  //  3 : "Pedestrian"
+  //  2 : "Truck"
+  //  1 : "Car"
+  //  0 : "Point"
+  // 
+  uint8_t Obj_Class;                         //      Bits= 3
+
+  uint16_t Obj_OrientationAngle_ro;          //      Bits=10 Offset= -180.000000        Factor= 0.400000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Obj_OrientationAngle_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint8_t Obj_Length_ro;                     //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Obj_Length_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint8_t Obj_Width_ro;                      //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Obj_Width_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+} Obj_3_Extended_t;
+
+// Collision detection warning object information
+// def @Obj_4_Warning CAN Message (1566 0x61e)
+#define Obj_4_Warning_IDE (0U)
+#define Obj_4_Warning_DLC (4U)
+#define Obj_4_Warning_CANID (0x61e)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Region bit field with collision detection
+  uint8_t Obj_CollDetRegionBitfield;         //      Bits= 8
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Region bit field with collision detection
+  uint8_t Obj_CollDetRegionBitfield;         //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+} Obj_4_Warning_t;
+
+// Firmware version
+// def @VersionID CAN Message (1808 0x710)
+#define VersionID_IDE (0U)
+#define VersionID_DLC (4U)
+#define VersionID_CANID (0x710)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+  // Major Release Number
+  uint8_t Version_MajorRelease;              //      Bits= 8
+
+  // Minor Release Number
+  uint8_t Version_MinorRelease;              //      Bits= 8
+
+  // Patch Level
+  uint8_t Version_PatchLevel;                //      Bits= 8
+
+  // 
+  // 
+  //  1 : "Power Reduction is demanded"
+  //  0 : "International Version"
+  // 
+  uint8_t Version_CountryCode : 1;           //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Description for the value '0x1'"
+  //  0 : "Standard Range 196m-260m"
+  // 
+  uint8_t Version_ExtendedRange : 1;         //      Bits= 1
+
+#else
+
+  // Major Release Number
+  uint8_t Version_MajorRelease;              //      Bits= 8
+
+  // Minor Release Number
+  uint8_t Version_MinorRelease;              //      Bits= 8
+
+  // Patch Level
+  uint8_t Version_PatchLevel;                //      Bits= 8
+
+  // 
+  // 
+  //  1 : "Power Reduction is demanded"
+  //  0 : "International Version"
+  // 
+  uint8_t Version_CountryCode;               //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Description for the value '0x1'"
+  //  0 : "Standard Range 196m-260m"
+  // 
+  uint8_t Version_ExtendedRange;             //      Bits= 1
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+} VersionID_t;
+
+// General Cluster information
+// def @Cluster_1_General CAN Message (1809 0x711)
+#define Cluster_1_General_IDE (0U)
+#define Cluster_1_General_DLC (8U)
+#define Cluster_1_General_CANID (0x711)
+// signal: @Cluster_DistLong_ro
+#define ARS408_CAN_DATABASE_CH1_Cluster_DistLong_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_Cluster_DistLong_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_Cluster_DistLong_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @Cluster_DistLat_ro
+#define ARS408_CAN_DATABASE_CH1_Cluster_DistLat_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH1_Cluster_DistLat_ro_toS(x) ( (uint16_t) (((x) - (-102.300000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH1_Cluster_DistLat_ro_fromS(x) ( (((x) * (0.200000)) + (-102.300000)) )
+// signal: @Cluster_VrelLong_ro
+#define ARS408_CAN_DATABASE_CH1_Cluster_VrelLong_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH1_Cluster_VrelLong_ro_toS(x) ( (uint16_t) (((x) - (-128.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH1_Cluster_VrelLong_ro_fromS(x) ( (((x) * (0.250000)) + (-128.000000)) )
+// signal: @Cluster_VrelLat_ro
+#define ARS408_CAN_DATABASE_CH1_Cluster_VrelLat_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH1_Cluster_VrelLat_ro_toS(x) ( (uint16_t) (((x) - (-64.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH1_Cluster_VrelLat_ro_fromS(x) ( (((x) * (0.250000)) + (-64.000000)) )
+// signal: @Cluster_RCS_ro
+#define ARS408_CAN_DATABASE_CH1_Cluster_RCS_ro_CovFactor (0.500000)
+#define ARS408_CAN_DATABASE_CH1_Cluster_RCS_ro_toS(x) ( (uint8_t) (((x) - (-64.000000)) / (0.500000)) )
+#define ARS408_CAN_DATABASE_CH1_Cluster_RCS_ro_fromS(x) ( (((x) * (0.500000)) + (-64.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  uint16_t Cluster_DistLong_ro;              //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t Cluster_DistLat_ro;               //      Bits=10 Offset= -102.300000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLong_ro;              //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLat_ro;               //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // Cluster dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Cluster_DynProp : 3;               //      Bits= 3
+
+  uint8_t Cluster_RCS_ro;                    //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Cluster_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#else
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  uint16_t Cluster_DistLong_ro;              //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t Cluster_DistLat_ro;               //      Bits=10 Offset= -102.300000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLong_ro;              //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLat_ro;               //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+  // Cluster dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Cluster_DynProp;                   //      Bits= 3
+
+  uint8_t Cluster_RCS_ro;                    //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+  sigfloat_t Cluster_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH1_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+} Cluster_1_General_t;
+
+// Quality Cluster information
+// def @Cluster_2_Quality CAN Message (1810 0x712)
+#define Cluster_2_Quality_IDE (0U)
+#define Cluster_2_Quality_DLC (5U)
+#define Cluster_2_Quality_CANID (0x712)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  // Cluster lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLat_rms : 5;           //      Bits= 5 Unit:'m'
+
+  // Cluster longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLong_rms : 5;          //      Bits= 5 Unit:'m'
+
+  // Cluster relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLat_rms : 5;           //      Bits= 5 Unit:'m/s'
+
+  // Cluster relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLong_rms : 5;          //      Bits= 5 Unit:'m/s'
+
+  // Cluster false alarm probability
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Cluster_PdH0 : 3;                  //      Bits= 3
+
+  // Cluster Doppler ambiguity status
+  //  4 : "Stationary candidate"
+  //  3 : "Unambiguous"
+  //  2 : "Staggered ramp"
+  //  1 : "Ambiguous"
+  //  0 : "Invalid"
+  // 
+  uint8_t Cluster_AmbigState : 3;            //      Bits= 3
+
+  // Cluster invalid state
+  //  17 : "Valid suspicious angle"
+  //  16 : "Valid multi-target"
+  //  15 : "Valid near above 95 m"
+  //  14 : "Invalid harmonics "
+  //  13 : "reserved"
+  //  12 : "Valid artefact "
+  //  11 : "Valid but no local maximum"
+  //  10 : "Valid 50 deg artefact"
+  //  9 : "Valid child"
+  //  8 : "Valid with elevation"
+  //  7 : "Invalid outside field of view"
+  //  6 : "Invalid mirror"
+  //  5 : "reserved"
+  //  4 : "Valid with low RCS"
+  //  3 : "Invalid far not confirmed"
+  //  2 : "Invalid nearfield"
+  //  1 : "Invalid with too low RCS"
+  //  0 : "Valid"
+  // 
+  uint8_t Cluster_InvalidState : 5;          //      Bits= 5
+
+#else
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  // Cluster lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLat_rms;               //      Bits= 5 Unit:'m'
+
+  // Cluster longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLong_rms;              //      Bits= 5 Unit:'m'
+
+  // Cluster relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLat_rms;               //      Bits= 5 Unit:'m/s'
+
+  // Cluster relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLong_rms;              //      Bits= 5 Unit:'m/s'
+
+  // Cluster false alarm probability
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Cluster_PdH0;                      //      Bits= 3
+
+  // Cluster Doppler ambiguity status
+  //  4 : "Stationary candidate"
+  //  3 : "Unambiguous"
+  //  2 : "Staggered ramp"
+  //  1 : "Ambiguous"
+  //  0 : "Invalid"
+  // 
+  uint8_t Cluster_AmbigState;                //      Bits= 3
+
+  // Cluster invalid state
+  //  17 : "Valid suspicious angle"
+  //  16 : "Valid multi-target"
+  //  15 : "Valid near above 95 m"
+  //  14 : "Invalid harmonics "
+  //  13 : "reserved"
+  //  12 : "Valid artefact "
+  //  11 : "Valid but no local maximum"
+  //  10 : "Valid 50 deg artefact"
+  //  9 : "Valid child"
+  //  8 : "Valid with elevation"
+  //  7 : "Invalid outside field of view"
+  //  6 : "Invalid mirror"
+  //  5 : "reserved"
+  //  4 : "Valid with low RCS"
+  //  3 : "Invalid far not confirmed"
+  //  2 : "Invalid nearfield"
+  //  1 : "Invalid with too low RCS"
+  //  0 : "Valid"
+  // 
+  uint8_t Cluster_InvalidState;              //      Bits= 5
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH1_USE_DIAG_MONITORS
+
+} Cluster_2_Quality_t;
+
+// Function signatures
+
+uint32_t Unpack_CollDetRelayCtrl_ARS408_can_database_ch1(CollDetRelayCtrl_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch1(CollDetRelayCtrl_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch1(CollDetRelayCtrl_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_RadarConfiguration_ARS408_can_database_ch1(RadarConfiguration_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch1(RadarConfiguration_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch1(RadarConfiguration_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_RadarState_ARS408_can_database_ch1(RadarState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+uint32_t Pack_RadarState_ARS408_can_database_ch1(RadarState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_RadarState_ARS408_can_database_ch1(RadarState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_FilterCfg_ARS408_can_database_ch1(FilterCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+uint32_t Pack_FilterCfg_ARS408_can_database_ch1(FilterCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterCfg_ARS408_can_database_ch1(FilterCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Header_ARS408_can_database_ch1(FilterState_Header_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch1(FilterState_Header_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch1(FilterState_Header_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Cfg_ARS408_can_database_ch1(FilterState_Cfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch1(FilterState_Cfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch1(FilterState_Cfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_SpeedInformation_ARS408_can_database_ch1(SpeedInformation_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch1(SpeedInformation_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch1(SpeedInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_YawRateInformation_ARS408_can_database_ch1(YawRateInformation_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch1(YawRateInformation_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch1(YawRateInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetState_ARS408_can_database_ch1(CollDetState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+uint32_t Pack_CollDetState_ARS408_can_database_ch1(CollDetState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetState_ARS408_can_database_ch1(CollDetState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetCfg_ARS408_can_database_ch1(CollDetCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch1(CollDetCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch1(CollDetCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionCfg_ARS408_can_database_ch1(CollDetRegionCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch1(CollDetRegionCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch1(CollDetRegionCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionState_ARS408_can_database_ch1(CollDetRegionState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch1(CollDetRegionState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch1(CollDetRegionState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_0_Status_ARS408_can_database_ch1(Cluster_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch1(Cluster_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch1(Cluster_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_0_Status_ARS408_can_database_ch1(Obj_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch1(Obj_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch1(Obj_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_1_General_ARS408_can_database_ch1(Obj_1_General_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch1(Obj_1_General_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch1(Obj_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_2_Quality_ARS408_can_database_ch1(Obj_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch1(Obj_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch1(Obj_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_3_Extended_ARS408_can_database_ch1(Obj_3_Extended_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch1(Obj_3_Extended_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch1(Obj_3_Extended_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_4_Warning_ARS408_can_database_ch1(Obj_4_Warning_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch1(Obj_4_Warning_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch1(Obj_4_Warning_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_VersionID_ARS408_can_database_ch1(VersionID_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+uint32_t Pack_VersionID_ARS408_can_database_ch1(VersionID_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_VersionID_ARS408_can_database_ch1(VersionID_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_1_General_ARS408_can_database_ch1(Cluster_1_General_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch1(Cluster_1_General_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch1(Cluster_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_2_Quality_ARS408_can_database_ch1(Cluster_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch1(Cluster_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch1(Cluster_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH1_USE_CANSTRUCT
+
+#ifdef __cplusplus
+}
+#endif

+ 96 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch2-binutil.c

@@ -0,0 +1,96 @@
+#include "ars408_can_database_ch2-binutil.h"
+
+#ifdef __DEF_ARS408_CAN_DATABASE_CH2__
+
+ars408_can_database_ch2_rx_t ars408_can_database_ch2_rx;
+
+#endif // __DEF_ARS408_CAN_DATABASE_CH2__
+
+uint32_t ars408_can_database_ch2_Receive(ars408_can_database_ch2_rx_t* _m, const uint8_t* _d, uint32_t _id, uint8_t dlc_)
+{
+ uint32_t recid = 0;
+ if ((_id >= 0x8U) && (_id < 0x421U)) {
+  if ((_id >= 0x8U) && (_id < 0x224U)) {
+   if ((_id >= 0x8U) && (_id < 0x221U)) {
+    if (_id == 0x8U) {
+     recid = Unpack_CollDetRelayCtrl_ARS408_can_database_ch2(&(_m->CollDetRelayCtrl), _d, dlc_);
+    } else if (_id == 0x220U) {
+     recid = Unpack_RadarConfiguration_ARS408_can_database_ch2(&(_m->RadarConfiguration), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x221U) {
+     recid = Unpack_RadarState_ARS408_can_database_ch2(&(_m->RadarState), _d, dlc_);
+    } else {
+     if (_id == 0x222U) {
+      recid = Unpack_FilterCfg_ARS408_can_database_ch2(&(_m->FilterCfg), _d, dlc_);
+     } else if (_id == 0x223U) {
+      recid = Unpack_FilterState_Header_ARS408_can_database_ch2(&(_m->FilterState_Header), _d, dlc_);
+     }
+    }
+   }
+  } else {
+   if ((_id >= 0x224U) && (_id < 0x321U)) {
+    if (_id == 0x224U) {
+     recid = Unpack_FilterState_Cfg_ARS408_can_database_ch2(&(_m->FilterState_Cfg), _d, dlc_);
+    } else if (_id == 0x320U) {
+     recid = Unpack_SpeedInformation_ARS408_can_database_ch2(&(_m->SpeedInformation), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x321U) {
+     recid = Unpack_YawRateInformation_ARS408_can_database_ch2(&(_m->YawRateInformation), _d, dlc_);
+    } else {
+     if (_id == 0x408U) {
+      recid = Unpack_CollDetState_ARS408_can_database_ch2(&(_m->CollDetState), _d, dlc_);
+     } else if (_id == 0x420U) {
+      recid = Unpack_CollDetCfg_ARS408_can_database_ch2(&(_m->CollDetCfg), _d, dlc_);
+     }
+    }
+   }
+  }
+ } else {
+  if ((_id >= 0x421U) && (_id < 0x62CU)) {
+   if ((_id >= 0x421U) && (_id < 0x620U)) {
+    if (_id == 0x421U) {
+     recid = Unpack_CollDetRegionCfg_ARS408_can_database_ch2(&(_m->CollDetRegionCfg), _d, dlc_);
+    } else if (_id == 0x422U) {
+     recid = Unpack_CollDetRegionState_ARS408_can_database_ch2(&(_m->CollDetRegionState), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x620U) {
+     recid = Unpack_Cluster_0_Status_ARS408_can_database_ch2(&(_m->Cluster_0_Status), _d, dlc_);
+    } else {
+     if (_id == 0x62AU) {
+      recid = Unpack_Obj_0_Status_ARS408_can_database_ch2(&(_m->Obj_0_Status), _d, dlc_);
+     } else if (_id == 0x62BU) {
+      recid = Unpack_Obj_1_General_ARS408_can_database_ch2(&(_m->Obj_1_General), _d, dlc_);
+     }
+    }
+   }
+  } else {
+   if ((_id >= 0x62CU) && (_id < 0x720U)) {
+    if (_id == 0x62CU) {
+     recid = Unpack_Obj_2_Quality_ARS408_can_database_ch2(&(_m->Obj_2_Quality), _d, dlc_);
+    } else {
+     if (_id == 0x62DU) {
+      recid = Unpack_Obj_3_Extended_ARS408_can_database_ch2(&(_m->Obj_3_Extended), _d, dlc_);
+     } else if (_id == 0x62EU) {
+      recid = Unpack_Obj_4_Warning_ARS408_can_database_ch2(&(_m->Obj_4_Warning), _d, dlc_);
+     }
+    }
+   } else {
+    if (_id == 0x720U) {
+     recid = Unpack_VersionID_ARS408_can_database_ch2(&(_m->VersionID), _d, dlc_);
+    } else {
+     if (_id == 0x721U) {
+      recid = Unpack_Cluster_1_General_ARS408_can_database_ch2(&(_m->Cluster_1_General), _d, dlc_);
+     } else if (_id == 0x722U) {
+      recid = Unpack_Cluster_2_Quality_ARS408_can_database_ch2(&(_m->Cluster_2_Quality), _d, dlc_);
+     }
+    }
+   }
+  }
+ }
+
+ return recid;
+}
+

+ 53 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch2-binutil.h

@@ -0,0 +1,53 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "dbccodeconf.h"
+
+#include "ars408_can_database_ch2.h"
+
+// This version definition comes from main driver version and
+// can be compared in user code space for strict compatibility test
+#define VER_ARS408_CAN_DATABASE_CH2_MAJ (0U)
+#define VER_ARS408_CAN_DATABASE_CH2_MIN (0U)
+
+typedef struct
+{
+  CollDetRelayCtrl_t CollDetRelayCtrl;
+  RadarConfiguration_t RadarConfiguration;
+  RadarState_t RadarState;
+  FilterCfg_t FilterCfg;
+  FilterState_Header_t FilterState_Header;
+  FilterState_Cfg_t FilterState_Cfg;
+  SpeedInformation_t SpeedInformation;
+  YawRateInformation_t YawRateInformation;
+  CollDetState_t CollDetState;
+  CollDetCfg_t CollDetCfg;
+  CollDetRegionCfg_t CollDetRegionCfg;
+  CollDetRegionState_t CollDetRegionState;
+  Cluster_0_Status_t Cluster_0_Status;
+  Obj_0_Status_t Obj_0_Status;
+  Obj_1_General_t Obj_1_General;
+  Obj_2_Quality_t Obj_2_Quality;
+  Obj_3_Extended_t Obj_3_Extended;
+  Obj_4_Warning_t Obj_4_Warning;
+  VersionID_t VersionID;
+  Cluster_1_General_t Cluster_1_General;
+  Cluster_2_Quality_t Cluster_2_Quality;
+} ars408_can_database_ch2_rx_t;
+
+// There is no any TX mapped massage.
+
+uint32_t ars408_can_database_ch2_Receive(ars408_can_database_ch2_rx_t* m, const uint8_t* d, uint32_t msgid, uint8_t dlc);
+
+#ifdef __DEF_ARS408_CAN_DATABASE_CH2__
+
+extern ars408_can_database_ch2_rx_t ars408_can_database_ch2_rx;
+
+#endif // __DEF_ARS408_CAN_DATABASE_CH2__
+
+#ifdef __cplusplus
+}
+#endif

+ 109 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch2-config.h

@@ -0,0 +1,109 @@
+#pragma once
+
+/* include common dbccode configurations */
+#include "dbccodeconf.h"
+
+
+/* ------------------------------------------------------------------------- *
+  This define enables using CAN message structs with bit-fielded signals
+  layout.
+
+  Note(!): bit-feild was not tested properly. */
+
+/* #define ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL */
+
+
+/* ------------------------------------------------------------------------- *
+  This macro enables using CAN message descriptive struct packing functions
+  (by default signature of pack function intakes a few simple typed params
+  for loading data, len, etc). To compile you need to define the struct
+  __CoderDbcCanFrame_t__ which must have fields:
+
+    u32 MsgId (CAN Frame message ID)
+    u8 DLC (CAN Frame payload length field)
+    u8 Data[8] (CAN Frame payload data)
+    u8 IDE (CAN Frame Extended (1) / Standard (0) ID type)
+
+  This struct definition have to be placed (or be included) in dbccodeconf.h */
+
+/* #define ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT */
+
+
+/* ------------------------------------------------------------------------- *
+  All the signals which have values of factor != 1 or offset != 0
+  will be named in message struct with posfix '_ro'. Pack to payload
+  operations will be made on this signal value as well as unpack from payload.
+
+  USE_SIGFLOAT macro makes some difference:
+
+  1. All the '_ro' fields will have a pair field with '_phys' postfix.
+  If only offset != 0 is true then the type of '_phys' signal is the same
+  as '_ro' signal. In other case the type will be @sigfloat_t which
+  have to be defined in user dbccodeconf.h
+
+  2. In pack function '_ro' signal will be rewritten by '_phys' signal, which
+  requires from user to use ONLY '_phys' signal for packing frame
+
+  3. In unpack function '_phys' signal will be written by '_ro' signal.
+  User have to use '_phys' signal to read physical value. */
+
+/* #define ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT */
+
+
+/* ------------------------------------------------------------------------- *
+  Note(!) that the "canmonitorutil.h" must be accessed in include path:
+
+  This macro adds:
+
+  - monitor field @mon1 to message struct
+
+  - capture system tick in unpack function and save value to mon1 field
+  to provide to user better missing frame detection code. For this case
+  user must provide function declared in canmonitorutil.h - GetSysTick()
+  which may return 1ms uptime.
+
+  - calling function FMon_***  (from 'fmon' driver) inside unpack function
+  which is empty by default and have to be filled by user if
+  tests for DLC, rolling, checksum are necessary */
+
+/* #define ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS */
+
+
+/* ------------------------------------------------------------------------- *
+  When monitor using is enabled (ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS) and define below
+  uncommented, additional signal will be added to message struct. ***_expt:
+  expected rolling counter, to perform monitoring rolling counter sequence
+  automatically (result may be tested in dedicated Fmon_*** function) */
+
+/* #define ARS408_CAN_DATABASE_CH2_AUTO_ROLL */
+
+
+/* ------------------------------------------------------------------------- *
+  When monitor using is enabled (ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS) and define below
+  uncommented, frame checksum signal may be handled automatically.
+
+  The signal which may be marked as checksum signal must have substring
+  with next format:
+    <Checksum:XOR8:3>
+
+  where:
+
+  - "Checksum": constant marker word
+
+  - "XOR8": type of method, this text will be passed to GetFrameHash
+  (canmonitorutil.h) function as is, the best use case is to define 'enum
+  DbcCanCrcMethods' in canmonitorutil.h file with all possible
+  checksum algorithms (e.g. XOR8, XOR4 etc)
+
+  - "3": optional value that will be passed to GetFrameHash as integer value
+
+  Function GetFrameHash have to be implemented by user
+
+  In pack function checksum signal will be calculated automatically
+  and loaded to payload
+
+  In unpack function checksum signal is checked with calculated.
+  (result may be tested in dedicated Fmon_*** function).
+
+/* #define ARS408_CAN_DATABASE_CH2_AUTO_CSM */
+

+ 115 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch2-fmon.c

@@ -0,0 +1,115 @@
+#include "ars408_can_database_ch2-fmon.h"
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+/*
+Put the monitor function content here, keep in mind -
+next generation will completely clear all manually added code (!)
+*/
+
+void FMon_CollDetRelayCtrl_ars408_can_database_ch2(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_RadarConfiguration_ars408_can_database_ch2(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_RadarState_ars408_can_database_ch2(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterCfg_ars408_can_database_ch2(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterState_Header_ars408_can_database_ch2(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterState_Cfg_ars408_can_database_ch2(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_SpeedInformation_ars408_can_database_ch2(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_YawRateInformation_ars408_can_database_ch2(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetState_ars408_can_database_ch2(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetCfg_ars408_can_database_ch2(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetRegionCfg_ars408_can_database_ch2(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetRegionState_ars408_can_database_ch2(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_0_Status_ars408_can_database_ch2(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_0_Status_ars408_can_database_ch2(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_1_General_ars408_can_database_ch2(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_2_Quality_ars408_can_database_ch2(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_3_Extended_ars408_can_database_ch2(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_4_Warning_ars408_can_database_ch2(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_VersionID_ars408_can_database_ch2(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_1_General_ars408_can_database_ch2(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_2_Quality_ars408_can_database_ch2(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS

+ 49 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch2-fmon.h

@@ -0,0 +1,49 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// DBC file version
+#define VER_ARS408_CAN_DATABASE_CH2_MAJ_FMON (0U)
+#define VER_ARS408_CAN_DATABASE_CH2_MIN_FMON (0U)
+
+#include "ars408_can_database_ch2-config.h"
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+#include "canmonitorutil.h"
+/*
+This file contains the prototypes of all the functions that will be called
+from each Unpack_*name* function to detect DBC related errors
+It is the user responsibility to defined these functions in the
+separated .c file. If it won't be done the linkage error will happen
+*/
+
+void FMon_CollDetRelayCtrl_ars408_can_database_ch2(FrameMonitor_t* _mon);
+void FMon_RadarConfiguration_ars408_can_database_ch2(FrameMonitor_t* _mon);
+void FMon_RadarState_ars408_can_database_ch2(FrameMonitor_t* _mon);
+void FMon_FilterCfg_ars408_can_database_ch2(FrameMonitor_t* _mon);
+void FMon_FilterState_Header_ars408_can_database_ch2(FrameMonitor_t* _mon);
+void FMon_FilterState_Cfg_ars408_can_database_ch2(FrameMonitor_t* _mon);
+void FMon_SpeedInformation_ars408_can_database_ch2(FrameMonitor_t* _mon);
+void FMon_YawRateInformation_ars408_can_database_ch2(FrameMonitor_t* _mon);
+void FMon_CollDetState_ars408_can_database_ch2(FrameMonitor_t* _mon);
+void FMon_CollDetCfg_ars408_can_database_ch2(FrameMonitor_t* _mon);
+void FMon_CollDetRegionCfg_ars408_can_database_ch2(FrameMonitor_t* _mon);
+void FMon_CollDetRegionState_ars408_can_database_ch2(FrameMonitor_t* _mon);
+void FMon_Cluster_0_Status_ars408_can_database_ch2(FrameMonitor_t* _mon);
+void FMon_Obj_0_Status_ars408_can_database_ch2(FrameMonitor_t* _mon);
+void FMon_Obj_1_General_ars408_can_database_ch2(FrameMonitor_t* _mon);
+void FMon_Obj_2_Quality_ars408_can_database_ch2(FrameMonitor_t* _mon);
+void FMon_Obj_3_Extended_ars408_can_database_ch2(FrameMonitor_t* _mon);
+void FMon_Obj_4_Warning_ars408_can_database_ch2(FrameMonitor_t* _mon);
+void FMon_VersionID_ars408_can_database_ch2(FrameMonitor_t* _mon);
+void FMon_Cluster_1_General_ars408_can_database_ch2(FrameMonitor_t* _mon);
+void FMon_Cluster_2_Quality_ars408_can_database_ch2(FrameMonitor_t* _mon);
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+#ifdef __cplusplus
+}
+#endif

+ 1841 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch2.c

@@ -0,0 +1,1841 @@
+#include "ars408_can_database_ch2.h"
+
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+// Function prototypes to be called each time CAN frame is unpacked
+// FMon function may detect RC, CRC or DLC violation 
+#include "ars408_can_database_ch2-fmon.h"
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+
+uint32_t Unpack_CollDetRelayCtrl_ARS408_can_database_ch2(CollDetRelayCtrl_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRelayCtrl_Param = (_d[0] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRelayCtrl_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRelayCtrl_ars408_can_database_ch2(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+ return CollDetRelayCtrl_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch2(CollDetRelayCtrl_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRelayCtrl_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->CollDetRelayCtrl_Param & (0xFFU));
+
+  cframe->MsgId = CollDetRelayCtrl_CANID;
+  cframe->DLC = CollDetRelayCtrl_DLC;
+  cframe->IDE = CollDetRelayCtrl_IDE;
+  return CollDetRelayCtrl_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch2(CollDetRelayCtrl_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRelayCtrl_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->CollDetRelayCtrl_Param & (0xFFU));
+
+  *_len = CollDetRelayCtrl_DLC;
+  *_ide = CollDetRelayCtrl_IDE;
+  return CollDetRelayCtrl_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_RadarConfiguration_ARS408_can_database_ch2(RadarConfiguration_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarCfg_MaxDistance_valid = (_d[0] & (0x01U));
+  _m->RadarCfg_SensorID_valid = ((_d[0] >> 1) & (0x01U));
+  _m->RadarCfg_RadarPower_valid = ((_d[0] >> 2) & (0x01U));
+  _m->RadarCfg_OutputType_valid = ((_d[0] >> 3) & (0x01U));
+  _m->RadarCfg_SendQuality_valid = ((_d[0] >> 4) & (0x01U));
+  _m->RadarCfg_SendExtInfo_valid = ((_d[0] >> 5) & (0x01U));
+  _m->RadarCfg_SortIndex_valid = ((_d[0] >> 6) & (0x01U));
+  _m->RadarCfg_StoreInNVM_valid = ((_d[0] >> 7) & (0x01U));
+  _m->RadarCfg_MaxDistance_ro = ((_d[1] & (0xFFU)) << 2) | ((_d[2] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_phys = ARS408_CAN_DATABASE_CH2_RadarCfg_MaxDistance_ro_fromS(_m->RadarCfg_MaxDistance_ro);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->RadarCfg_SensorID = (_d[4] & (0x07U));
+  _m->RadarCfg_OutputType = ((_d[4] >> 3) & (0x03U));
+  _m->RadarCfg_RadarPower = ((_d[4] >> 5) & (0x07U));
+  _m->RadarCfg_CtrlRelay_valid = (_d[5] & (0x01U));
+  _m->RadarCfg_CtrlRelay = ((_d[5] >> 1) & (0x01U));
+  _m->RadarCfg_SendQuality = ((_d[5] >> 2) & (0x01U));
+  _m->RadarCfg_SendExtInfo = ((_d[5] >> 3) & (0x01U));
+  _m->RadarCfg_SortIndex = ((_d[5] >> 4) & (0x07U));
+  _m->RadarCfg_StoreInNVM = ((_d[5] >> 7) & (0x01U));
+  _m->RadarCfg_RCS_Threshold_Valid = (_d[6] & (0x01U));
+  _m->RadarCfg_RCS_Threshold = ((_d[6] >> 1) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < RadarConfiguration_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_RadarConfiguration_ars408_can_database_ch2(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+ return RadarConfiguration_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch2(RadarConfiguration_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < RadarConfiguration_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_ro = ARS408_CAN_DATABASE_CH2_RadarCfg_MaxDistance_ro_toS(_m->RadarCfg_MaxDistance_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->RadarCfg_MaxDistance_valid & (0x01U)) | ((_m->RadarCfg_SensorID_valid & (0x01U)) << 1) | ((_m->RadarCfg_RadarPower_valid & (0x01U)) << 2) | ((_m->RadarCfg_OutputType_valid & (0x01U)) << 3) | ((_m->RadarCfg_SendQuality_valid & (0x01U)) << 4) | ((_m->RadarCfg_SendExtInfo_valid & (0x01U)) << 5) | ((_m->RadarCfg_SortIndex_valid & (0x01U)) << 6) | ((_m->RadarCfg_StoreInNVM_valid & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->RadarCfg_MaxDistance_ro >> 2) & (0xFFU));
+  cframe->Data[2] |= ((_m->RadarCfg_MaxDistance_ro & (0x03U)) << 6);
+  cframe->Data[4] |= (_m->RadarCfg_SensorID & (0x07U)) | ((_m->RadarCfg_OutputType & (0x03U)) << 3) | ((_m->RadarCfg_RadarPower & (0x07U)) << 5);
+  cframe->Data[5] |= (_m->RadarCfg_CtrlRelay_valid & (0x01U)) | ((_m->RadarCfg_CtrlRelay & (0x01U)) << 1) | ((_m->RadarCfg_SendQuality & (0x01U)) << 2) | ((_m->RadarCfg_SendExtInfo & (0x01U)) << 3) | ((_m->RadarCfg_SortIndex & (0x07U)) << 4) | ((_m->RadarCfg_StoreInNVM & (0x01U)) << 7);
+  cframe->Data[6] |= (_m->RadarCfg_RCS_Threshold_Valid & (0x01U)) | ((_m->RadarCfg_RCS_Threshold & (0x07U)) << 1);
+
+  cframe->MsgId = RadarConfiguration_CANID;
+  cframe->DLC = RadarConfiguration_DLC;
+  cframe->IDE = RadarConfiguration_IDE;
+  return RadarConfiguration_CANID;
+}
+
+#else
+
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch2(RadarConfiguration_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < RadarConfiguration_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_ro = ARS408_CAN_DATABASE_CH2_RadarCfg_MaxDistance_ro_toS(_m->RadarCfg_MaxDistance_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _d[0] |= (_m->RadarCfg_MaxDistance_valid & (0x01U)) | ((_m->RadarCfg_SensorID_valid & (0x01U)) << 1) | ((_m->RadarCfg_RadarPower_valid & (0x01U)) << 2) | ((_m->RadarCfg_OutputType_valid & (0x01U)) << 3) | ((_m->RadarCfg_SendQuality_valid & (0x01U)) << 4) | ((_m->RadarCfg_SendExtInfo_valid & (0x01U)) << 5) | ((_m->RadarCfg_SortIndex_valid & (0x01U)) << 6) | ((_m->RadarCfg_StoreInNVM_valid & (0x01U)) << 7);
+  _d[1] |= ((_m->RadarCfg_MaxDistance_ro >> 2) & (0xFFU));
+  _d[2] |= ((_m->RadarCfg_MaxDistance_ro & (0x03U)) << 6);
+  _d[4] |= (_m->RadarCfg_SensorID & (0x07U)) | ((_m->RadarCfg_OutputType & (0x03U)) << 3) | ((_m->RadarCfg_RadarPower & (0x07U)) << 5);
+  _d[5] |= (_m->RadarCfg_CtrlRelay_valid & (0x01U)) | ((_m->RadarCfg_CtrlRelay & (0x01U)) << 1) | ((_m->RadarCfg_SendQuality & (0x01U)) << 2) | ((_m->RadarCfg_SendExtInfo & (0x01U)) << 3) | ((_m->RadarCfg_SortIndex & (0x07U)) << 4) | ((_m->RadarCfg_StoreInNVM & (0x01U)) << 7);
+  _d[6] |= (_m->RadarCfg_RCS_Threshold_Valid & (0x01U)) | ((_m->RadarCfg_RCS_Threshold & (0x07U)) << 1);
+
+  *_len = RadarConfiguration_DLC;
+  *_ide = RadarConfiguration_IDE;
+  return RadarConfiguration_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_RadarState_ARS408_can_database_ch2(RadarState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarState_NVMReadStatus = ((_d[0] >> 6) & (0x01U));
+  _m->RadarState_NVMwriteStatus = ((_d[0] >> 7) & (0x01U));
+  _m->RadarState_MaxDistanceCfg_ro = ((_d[1] & (0xFFU)) << 2) | ((_d[2] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_phys = ARS408_CAN_DATABASE_CH2_RadarState_MaxDistanceCfg_ro_fromS(_m->RadarState_MaxDistanceCfg_ro);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->RadarState_Voltage_Error = ((_d[2] >> 1) & (0x01U));
+  _m->RadarState_Temporary_Error = ((_d[2] >> 2) & (0x01U));
+  _m->RadarState_Temperature_Error = ((_d[2] >> 3) & (0x01U));
+  _m->RadarState_Interference = ((_d[2] >> 4) & (0x01U));
+  _m->RadarState_Persistent_Error = ((_d[2] >> 5) & (0x01U));
+  _m->RadarState_RadarPowerCfg = ((_d[3] & (0x03U)) << 1) | ((_d[4] >> 7) & (0x01U));
+  _m->RadarState_SensorID = (_d[4] & (0x07U));
+  _m->RadarState_SortIndex = ((_d[4] >> 4) & (0x07U));
+  _m->RadarState_CtrlRelayCfg = ((_d[5] >> 1) & (0x01U));
+  _m->RadarState_OutputTypeCfg = ((_d[5] >> 2) & (0x03U));
+  _m->RadarState_SendQualityCfg = ((_d[5] >> 4) & (0x01U));
+  _m->RadarState_SendExtInfoCfg = ((_d[5] >> 5) & (0x01U));
+  _m->RadarState_MotionRxState = ((_d[5] >> 6) & (0x03U));
+  _m->RadarState_RCS_Threshold = ((_d[7] >> 2) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < RadarState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_RadarState_ars408_can_database_ch2(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+ return RadarState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Pack_RadarState_ARS408_can_database_ch2(RadarState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < RadarState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_ro = ARS408_CAN_DATABASE_CH2_RadarState_MaxDistanceCfg_ro_toS(_m->RadarState_MaxDistanceCfg_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarState_NVMReadStatus & (0x01U)) << 6) | ((_m->RadarState_NVMwriteStatus & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->RadarState_MaxDistanceCfg_ro >> 2) & (0xFFU));
+  cframe->Data[2] |= ((_m->RadarState_MaxDistanceCfg_ro & (0x03U)) << 6) | ((_m->RadarState_Voltage_Error & (0x01U)) << 1) | ((_m->RadarState_Temporary_Error & (0x01U)) << 2) | ((_m->RadarState_Temperature_Error & (0x01U)) << 3) | ((_m->RadarState_Interference & (0x01U)) << 4) | ((_m->RadarState_Persistent_Error & (0x01U)) << 5);
+  cframe->Data[3] |= ((_m->RadarState_RadarPowerCfg >> 1) & (0x03U));
+  cframe->Data[4] |= ((_m->RadarState_RadarPowerCfg & (0x01U)) << 7) | (_m->RadarState_SensorID & (0x07U)) | ((_m->RadarState_SortIndex & (0x07U)) << 4);
+  cframe->Data[5] |= ((_m->RadarState_CtrlRelayCfg & (0x01U)) << 1) | ((_m->RadarState_OutputTypeCfg & (0x03U)) << 2) | ((_m->RadarState_SendQualityCfg & (0x01U)) << 4) | ((_m->RadarState_SendExtInfoCfg & (0x01U)) << 5) | ((_m->RadarState_MotionRxState & (0x03U)) << 6);
+  cframe->Data[7] |= ((_m->RadarState_RCS_Threshold & (0x07U)) << 2);
+
+  cframe->MsgId = RadarState_CANID;
+  cframe->DLC = RadarState_DLC;
+  cframe->IDE = RadarState_IDE;
+  return RadarState_CANID;
+}
+
+#else
+
+uint32_t Pack_RadarState_ARS408_can_database_ch2(RadarState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < RadarState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_ro = ARS408_CAN_DATABASE_CH2_RadarState_MaxDistanceCfg_ro_toS(_m->RadarState_MaxDistanceCfg_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarState_NVMReadStatus & (0x01U)) << 6) | ((_m->RadarState_NVMwriteStatus & (0x01U)) << 7);
+  _d[1] |= ((_m->RadarState_MaxDistanceCfg_ro >> 2) & (0xFFU));
+  _d[2] |= ((_m->RadarState_MaxDistanceCfg_ro & (0x03U)) << 6) | ((_m->RadarState_Voltage_Error & (0x01U)) << 1) | ((_m->RadarState_Temporary_Error & (0x01U)) << 2) | ((_m->RadarState_Temperature_Error & (0x01U)) << 3) | ((_m->RadarState_Interference & (0x01U)) << 4) | ((_m->RadarState_Persistent_Error & (0x01U)) << 5);
+  _d[3] |= ((_m->RadarState_RadarPowerCfg >> 1) & (0x03U));
+  _d[4] |= ((_m->RadarState_RadarPowerCfg & (0x01U)) << 7) | (_m->RadarState_SensorID & (0x07U)) | ((_m->RadarState_SortIndex & (0x07U)) << 4);
+  _d[5] |= ((_m->RadarState_CtrlRelayCfg & (0x01U)) << 1) | ((_m->RadarState_OutputTypeCfg & (0x03U)) << 2) | ((_m->RadarState_SendQualityCfg & (0x01U)) << 4) | ((_m->RadarState_SendExtInfoCfg & (0x01U)) << 5) | ((_m->RadarState_MotionRxState & (0x03U)) << 6);
+  _d[7] |= ((_m->RadarState_RCS_Threshold & (0x07U)) << 2);
+
+  *_len = RadarState_DLC;
+  *_ide = RadarState_IDE;
+  return RadarState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_FilterCfg_ARS408_can_database_ch2(FilterCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterCfg_Valid = ((_d[0] >> 1) & (0x01U));
+  _m->FilterCfg_Active = ((_d[0] >> 2) & (0x01U));
+  _m->FilterCfg_Index = ((_d[0] >> 3) & (0x0FU));
+  _m->FilterCfg_Type = ((_d[0] >> 7) & (0x01U));
+  _m->FilterCfg_Min_NofObj = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterCfg_Min_VrelOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VrelOncome_ro_fromS(_m->FilterCfg_Min_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VrelDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VrelDepart_ro_fromS(_m->FilterCfg_Min_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Size_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Min_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Size_ro_fromS(_m->FilterCfg_Min_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_RCS_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Min_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Min_RCS_ro_fromS(_m->FilterCfg_Min_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_ProbExists = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterCfg_Min_Lifetime_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Min_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Lifetime_ro_fromS(_m->FilterCfg_Min_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Azimuth_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Min_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Azimuth_ro_fromS(_m->FilterCfg_Min_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Distance_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Min_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Distance_ro_fromS(_m->FilterCfg_Min_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VXDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Min_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VXDepart_ro_fromS(_m->FilterCfg_Min_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VXOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Min_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VXOncome_ro_fromS(_m->FilterCfg_Min_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VYLeftRight_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Min_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VYLeftRight_ro_fromS(_m->FilterCfg_Min_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VYRightLeft_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Min_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VYRightLeft_ro_fromS(_m->FilterCfg_Min_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Y_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Min_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Y_ro_fromS(_m->FilterCfg_Min_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_X_ro = ((_d[1] & (0x1FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Min_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Min_X_ro_fromS(_m->FilterCfg_Min_X_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_NofObj = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterCfg_Max_Lifetime_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Max_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Lifetime_ro_fromS(_m->FilterCfg_Max_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Distance_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Max_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Distance_ro_fromS(_m->FilterCfg_Max_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Azimuth_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Max_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Azimuth_ro_fromS(_m->FilterCfg_Max_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_ProbExists = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterCfg_Max_RCS_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Max_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Max_RCS_ro_fromS(_m->FilterCfg_Max_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Size_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Max_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Size_ro_fromS(_m->FilterCfg_Max_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VrelDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Max_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VrelDepart_ro_fromS(_m->FilterCfg_Max_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VrelOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Max_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VrelOncome_ro_fromS(_m->FilterCfg_Max_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VXDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Max_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VXDepart_ro_fromS(_m->FilterCfg_Max_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VYLeftRight_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Max_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VYLeftRight_ro_fromS(_m->FilterCfg_Max_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VXOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Max_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VXOncome_ro_fromS(_m->FilterCfg_Max_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VYRightLeft_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Max_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VYRightLeft_ro_fromS(_m->FilterCfg_Max_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Y_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Max_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Y_ro_fromS(_m->FilterCfg_Max_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_X_ro = ((_d[3] & (0x1FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Max_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterCfg_Max_X_ro_fromS(_m->FilterCfg_Max_X_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterCfg_ars408_can_database_ch2(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+ return FilterCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Pack_FilterCfg_ARS408_can_database_ch2(FilterCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VrelOncome_ro_toS(_m->FilterCfg_Min_VrelOncome_phys);
+  _m->FilterCfg_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VrelDepart_ro_toS(_m->FilterCfg_Min_VrelDepart_phys);
+  _m->FilterCfg_Min_Size_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Size_ro_toS(_m->FilterCfg_Min_Size_phys);
+  _m->FilterCfg_Min_RCS_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_RCS_ro_toS(_m->FilterCfg_Min_RCS_phys);
+  _m->FilterCfg_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Lifetime_ro_toS(_m->FilterCfg_Min_Lifetime_phys);
+  _m->FilterCfg_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Azimuth_ro_toS(_m->FilterCfg_Min_Azimuth_phys);
+  _m->FilterCfg_Min_Distance_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Distance_ro_toS(_m->FilterCfg_Min_Distance_phys);
+  _m->FilterCfg_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VXDepart_ro_toS(_m->FilterCfg_Min_VXDepart_phys);
+  _m->FilterCfg_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VXOncome_ro_toS(_m->FilterCfg_Min_VXOncome_phys);
+  _m->FilterCfg_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VYLeftRight_ro_toS(_m->FilterCfg_Min_VYLeftRight_phys);
+  _m->FilterCfg_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VYRightLeft_ro_toS(_m->FilterCfg_Min_VYRightLeft_phys);
+  _m->FilterCfg_Min_Y_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Y_ro_toS(_m->FilterCfg_Min_Y_phys);
+  _m->FilterCfg_Min_X_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_X_ro_toS(_m->FilterCfg_Min_X_phys);
+  _m->FilterCfg_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Lifetime_ro_toS(_m->FilterCfg_Max_Lifetime_phys);
+  _m->FilterCfg_Max_Distance_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Distance_ro_toS(_m->FilterCfg_Max_Distance_phys);
+  _m->FilterCfg_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Azimuth_ro_toS(_m->FilterCfg_Max_Azimuth_phys);
+  _m->FilterCfg_Max_RCS_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_RCS_ro_toS(_m->FilterCfg_Max_RCS_phys);
+  _m->FilterCfg_Max_Size_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Size_ro_toS(_m->FilterCfg_Max_Size_phys);
+  _m->FilterCfg_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VrelDepart_ro_toS(_m->FilterCfg_Max_VrelDepart_phys);
+  _m->FilterCfg_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VrelOncome_ro_toS(_m->FilterCfg_Max_VrelOncome_phys);
+  _m->FilterCfg_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VXDepart_ro_toS(_m->FilterCfg_Max_VXDepart_phys);
+  _m->FilterCfg_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VYLeftRight_ro_toS(_m->FilterCfg_Max_VYLeftRight_phys);
+  _m->FilterCfg_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VXOncome_ro_toS(_m->FilterCfg_Max_VXOncome_phys);
+  _m->FilterCfg_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VYRightLeft_ro_toS(_m->FilterCfg_Max_VYRightLeft_phys);
+  _m->FilterCfg_Max_Y_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Y_ro_toS(_m->FilterCfg_Max_Y_phys);
+  _m->FilterCfg_Max_X_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_X_ro_toS(_m->FilterCfg_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->FilterCfg_Valid & (0x01U)) << 1) | ((_m->FilterCfg_Active & (0x01U)) << 2) | ((_m->FilterCfg_Index & (0x0FU)) << 3) | ((_m->FilterCfg_Type & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->FilterCfg_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_X_ro >> 8) & (0x1FU));
+  cframe->Data[2] |= (_m->FilterCfg_Min_NofObj & (0xFFU)) | (_m->FilterCfg_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_Size_ro & (0xFFU)) | (_m->FilterCfg_Min_RCS_ro & (0xFFU)) | (_m->FilterCfg_Min_ProbExists & (0xFFU)) | (_m->FilterCfg_Min_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Min_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Min_Distance_ro & (0xFFU)) | (_m->FilterCfg_Min_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Min_Y_ro & (0xFFU)) | (_m->FilterCfg_Min_X_ro & (0xFFU));
+  cframe->Data[3] |= ((_m->FilterCfg_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_X_ro >> 8) & (0x1FU));
+  cframe->Data[4] |= (_m->FilterCfg_Max_NofObj & (0xFFU)) | (_m->FilterCfg_Max_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Max_Distance_ro & (0xFFU)) | (_m->FilterCfg_Max_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Max_ProbExists & (0xFFU)) | (_m->FilterCfg_Max_RCS_ro & (0xFFU)) | (_m->FilterCfg_Max_Size_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Max_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Max_Y_ro & (0xFFU)) | (_m->FilterCfg_Max_X_ro & (0xFFU));
+
+  cframe->MsgId = FilterCfg_CANID;
+  cframe->DLC = FilterCfg_DLC;
+  cframe->IDE = FilterCfg_IDE;
+  return FilterCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterCfg_ARS408_can_database_ch2(FilterCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VrelOncome_ro_toS(_m->FilterCfg_Min_VrelOncome_phys);
+  _m->FilterCfg_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VrelDepart_ro_toS(_m->FilterCfg_Min_VrelDepart_phys);
+  _m->FilterCfg_Min_Size_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Size_ro_toS(_m->FilterCfg_Min_Size_phys);
+  _m->FilterCfg_Min_RCS_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_RCS_ro_toS(_m->FilterCfg_Min_RCS_phys);
+  _m->FilterCfg_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Lifetime_ro_toS(_m->FilterCfg_Min_Lifetime_phys);
+  _m->FilterCfg_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Azimuth_ro_toS(_m->FilterCfg_Min_Azimuth_phys);
+  _m->FilterCfg_Min_Distance_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Distance_ro_toS(_m->FilterCfg_Min_Distance_phys);
+  _m->FilterCfg_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VXDepart_ro_toS(_m->FilterCfg_Min_VXDepart_phys);
+  _m->FilterCfg_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VXOncome_ro_toS(_m->FilterCfg_Min_VXOncome_phys);
+  _m->FilterCfg_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VYLeftRight_ro_toS(_m->FilterCfg_Min_VYLeftRight_phys);
+  _m->FilterCfg_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VYRightLeft_ro_toS(_m->FilterCfg_Min_VYRightLeft_phys);
+  _m->FilterCfg_Min_Y_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Y_ro_toS(_m->FilterCfg_Min_Y_phys);
+  _m->FilterCfg_Min_X_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Min_X_ro_toS(_m->FilterCfg_Min_X_phys);
+  _m->FilterCfg_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Lifetime_ro_toS(_m->FilterCfg_Max_Lifetime_phys);
+  _m->FilterCfg_Max_Distance_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Distance_ro_toS(_m->FilterCfg_Max_Distance_phys);
+  _m->FilterCfg_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Azimuth_ro_toS(_m->FilterCfg_Max_Azimuth_phys);
+  _m->FilterCfg_Max_RCS_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_RCS_ro_toS(_m->FilterCfg_Max_RCS_phys);
+  _m->FilterCfg_Max_Size_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Size_ro_toS(_m->FilterCfg_Max_Size_phys);
+  _m->FilterCfg_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VrelDepart_ro_toS(_m->FilterCfg_Max_VrelDepart_phys);
+  _m->FilterCfg_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VrelOncome_ro_toS(_m->FilterCfg_Max_VrelOncome_phys);
+  _m->FilterCfg_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VXDepart_ro_toS(_m->FilterCfg_Max_VXDepart_phys);
+  _m->FilterCfg_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VYLeftRight_ro_toS(_m->FilterCfg_Max_VYLeftRight_phys);
+  _m->FilterCfg_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VXOncome_ro_toS(_m->FilterCfg_Max_VXOncome_phys);
+  _m->FilterCfg_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VYRightLeft_ro_toS(_m->FilterCfg_Max_VYRightLeft_phys);
+  _m->FilterCfg_Max_Y_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Y_ro_toS(_m->FilterCfg_Max_Y_phys);
+  _m->FilterCfg_Max_X_ro = ARS408_CAN_DATABASE_CH2_FilterCfg_Max_X_ro_toS(_m->FilterCfg_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _d[0] |= ((_m->FilterCfg_Valid & (0x01U)) << 1) | ((_m->FilterCfg_Active & (0x01U)) << 2) | ((_m->FilterCfg_Index & (0x0FU)) << 3) | ((_m->FilterCfg_Type & (0x01U)) << 7);
+  _d[1] |= ((_m->FilterCfg_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_X_ro >> 8) & (0x1FU));
+  _d[2] |= (_m->FilterCfg_Min_NofObj & (0xFFU)) | (_m->FilterCfg_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_Size_ro & (0xFFU)) | (_m->FilterCfg_Min_RCS_ro & (0xFFU)) | (_m->FilterCfg_Min_ProbExists & (0xFFU)) | (_m->FilterCfg_Min_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Min_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Min_Distance_ro & (0xFFU)) | (_m->FilterCfg_Min_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Min_Y_ro & (0xFFU)) | (_m->FilterCfg_Min_X_ro & (0xFFU));
+  _d[3] |= ((_m->FilterCfg_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_X_ro >> 8) & (0x1FU));
+  _d[4] |= (_m->FilterCfg_Max_NofObj & (0xFFU)) | (_m->FilterCfg_Max_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Max_Distance_ro & (0xFFU)) | (_m->FilterCfg_Max_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Max_ProbExists & (0xFFU)) | (_m->FilterCfg_Max_RCS_ro & (0xFFU)) | (_m->FilterCfg_Max_Size_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Max_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Max_Y_ro & (0xFFU)) | (_m->FilterCfg_Max_X_ro & (0xFFU));
+
+  *_len = FilterCfg_DLC;
+  *_ide = FilterCfg_IDE;
+  return FilterCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Header_ARS408_can_database_ch2(FilterState_Header_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterState_NofClusterFilterCfg = ((_d[0] >> 3) & (0x1FU));
+  _m->FilterState_NofObjectFilterCfg = ((_d[1] >> 3) & (0x1FU));
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterState_Header_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterState_Header_ars408_can_database_ch2(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+ return FilterState_Header_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch2(FilterState_Header_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Header_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= ((_m->FilterState_NofClusterFilterCfg & (0x1FU)) << 3);
+  cframe->Data[1] |= ((_m->FilterState_NofObjectFilterCfg & (0x1FU)) << 3);
+
+  cframe->MsgId = FilterState_Header_CANID;
+  cframe->DLC = FilterState_Header_DLC;
+  cframe->IDE = FilterState_Header_IDE;
+  return FilterState_Header_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch2(FilterState_Header_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Header_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= ((_m->FilterState_NofClusterFilterCfg & (0x1FU)) << 3);
+  _d[1] |= ((_m->FilterState_NofObjectFilterCfg & (0x1FU)) << 3);
+
+  *_len = FilterState_Header_DLC;
+  *_ide = FilterState_Header_IDE;
+  return FilterState_Header_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Cfg_ARS408_can_database_ch2(FilterState_Cfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterState_Active = ((_d[0] >> 2) & (0x01U));
+  _m->FilterState_Index = ((_d[0] >> 3) & (0x0FU));
+  _m->FilterState_Type = ((_d[0] >> 7) & (0x01U));
+  _m->FilterState_Min_RCS_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Min_RCS_ro_fromS(_m->FilterState_Min_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Min_Azimuth_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Min_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Min_Azimuth_ro_fromS(_m->FilterState_Min_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Min_Distance_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Min_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Min_Distance_ro_fromS(_m->FilterState_Min_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Min_Lifetime_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Min_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Min_Lifetime_ro_fromS(_m->FilterState_Min_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Min_NofObj = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterState_Min_ProbExists = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterState_Min_Y_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Min_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Min_Y_ro_fromS(_m->FilterState_Min_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Min_Size_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Min_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Min_Size_ro_fromS(_m->FilterState_Min_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Min_VrelDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Min_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Min_VrelDepart_ro_fromS(_m->FilterState_Min_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Min_VrelOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Min_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Min_VrelOncome_ro_fromS(_m->FilterState_Min_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Min_VYRightLeft_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Min_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Min_VYRightLeft_ro_fromS(_m->FilterState_Min_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Min_VXDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Min_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Min_VXDepart_ro_fromS(_m->FilterState_Min_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Min_VXOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Min_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Min_VXOncome_ro_fromS(_m->FilterState_Min_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Min_VYLeftRight_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Min_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Min_VYLeftRight_ro_fromS(_m->FilterState_Min_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Min_X_ro = ((_d[1] & (0x1FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Min_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Min_X_ro_fromS(_m->FilterState_Min_X_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Max_VrelDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Max_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Max_VrelDepart_ro_fromS(_m->FilterState_Max_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Max_Azimuth_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Max_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Max_Azimuth_ro_fromS(_m->FilterState_Max_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Max_Distance_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Max_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Max_Distance_ro_fromS(_m->FilterState_Max_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Max_Lifetime_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Max_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Max_Lifetime_ro_fromS(_m->FilterState_Max_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Max_NofObj = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterState_Max_ProbExists = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterState_Max_RCS_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Max_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Max_RCS_ro_fromS(_m->FilterState_Max_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Max_Size_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Max_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Max_Size_ro_fromS(_m->FilterState_Max_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Max_VXDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Max_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Max_VXDepart_ro_fromS(_m->FilterState_Max_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Max_VrelOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Max_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Max_VrelOncome_ro_fromS(_m->FilterState_Max_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Max_Y_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Max_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Max_Y_ro_fromS(_m->FilterState_Max_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Max_VYRightLeft_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Max_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Max_VYRightLeft_ro_fromS(_m->FilterState_Max_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Max_VYLeftRight_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Max_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Max_VYLeftRight_ro_fromS(_m->FilterState_Max_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Max_VXOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Max_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Max_VXOncome_ro_fromS(_m->FilterState_Max_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->FilterState_Max_X_ro = ((_d[3] & (0x1FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Max_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_FilterState_Max_X_ro_fromS(_m->FilterState_Max_X_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterState_Cfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterState_Cfg_ars408_can_database_ch2(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+ return FilterState_Cfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch2(FilterState_Cfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Cfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_RCS_ro_toS(_m->FilterState_Min_RCS_phys);
+  _m->FilterState_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_Azimuth_ro_toS(_m->FilterState_Min_Azimuth_phys);
+  _m->FilterState_Min_Distance_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_Distance_ro_toS(_m->FilterState_Min_Distance_phys);
+  _m->FilterState_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_Lifetime_ro_toS(_m->FilterState_Min_Lifetime_phys);
+  _m->FilterState_Min_Y_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_Y_ro_toS(_m->FilterState_Min_Y_phys);
+  _m->FilterState_Min_Size_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_Size_ro_toS(_m->FilterState_Min_Size_phys);
+  _m->FilterState_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_VrelDepart_ro_toS(_m->FilterState_Min_VrelDepart_phys);
+  _m->FilterState_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_VrelOncome_ro_toS(_m->FilterState_Min_VrelOncome_phys);
+  _m->FilterState_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_VYRightLeft_ro_toS(_m->FilterState_Min_VYRightLeft_phys);
+  _m->FilterState_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_VXDepart_ro_toS(_m->FilterState_Min_VXDepart_phys);
+  _m->FilterState_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_VXOncome_ro_toS(_m->FilterState_Min_VXOncome_phys);
+  _m->FilterState_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_VYLeftRight_ro_toS(_m->FilterState_Min_VYLeftRight_phys);
+  _m->FilterState_Min_X_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_X_ro_toS(_m->FilterState_Min_X_phys);
+  _m->FilterState_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_VrelDepart_ro_toS(_m->FilterState_Max_VrelDepart_phys);
+  _m->FilterState_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_Azimuth_ro_toS(_m->FilterState_Max_Azimuth_phys);
+  _m->FilterState_Max_Distance_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_Distance_ro_toS(_m->FilterState_Max_Distance_phys);
+  _m->FilterState_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_Lifetime_ro_toS(_m->FilterState_Max_Lifetime_phys);
+  _m->FilterState_Max_RCS_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_RCS_ro_toS(_m->FilterState_Max_RCS_phys);
+  _m->FilterState_Max_Size_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_Size_ro_toS(_m->FilterState_Max_Size_phys);
+  _m->FilterState_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_VXDepart_ro_toS(_m->FilterState_Max_VXDepart_phys);
+  _m->FilterState_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_VrelOncome_ro_toS(_m->FilterState_Max_VrelOncome_phys);
+  _m->FilterState_Max_Y_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_Y_ro_toS(_m->FilterState_Max_Y_phys);
+  _m->FilterState_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_VYRightLeft_ro_toS(_m->FilterState_Max_VYRightLeft_phys);
+  _m->FilterState_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_VYLeftRight_ro_toS(_m->FilterState_Max_VYLeftRight_phys);
+  _m->FilterState_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_VXOncome_ro_toS(_m->FilterState_Max_VXOncome_phys);
+  _m->FilterState_Max_X_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_X_ro_toS(_m->FilterState_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->FilterState_Active & (0x01U)) << 2) | ((_m->FilterState_Index & (0x0FU)) << 3) | ((_m->FilterState_Type & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->FilterState_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_X_ro >> 8) & (0x1FU));
+  cframe->Data[2] |= (_m->FilterState_Min_RCS_ro & (0xFFU)) | (_m->FilterState_Min_Azimuth_ro & (0xFFU)) | (_m->FilterState_Min_Distance_ro & (0xFFU)) | (_m->FilterState_Min_Lifetime_ro & (0xFFU)) | (_m->FilterState_Min_NofObj & (0xFFU)) | (_m->FilterState_Min_ProbExists & (0xFFU)) | (_m->FilterState_Min_Y_ro & (0xFFU)) | (_m->FilterState_Min_Size_ro & (0xFFU)) | (_m->FilterState_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Min_VXDepart_ro & (0xFFU)) | (_m->FilterState_Min_VXOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Min_X_ro & (0xFFU));
+  cframe->Data[3] |= ((_m->FilterState_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_X_ro >> 8) & (0x1FU));
+  cframe->Data[4] |= (_m->FilterState_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Max_Azimuth_ro & (0xFFU)) | (_m->FilterState_Max_Distance_ro & (0xFFU)) | (_m->FilterState_Max_Lifetime_ro & (0xFFU)) | (_m->FilterState_Max_NofObj & (0xFFU)) | (_m->FilterState_Max_ProbExists & (0xFFU)) | (_m->FilterState_Max_RCS_ro & (0xFFU)) | (_m->FilterState_Max_Size_ro & (0xFFU)) | (_m->FilterState_Max_VXDepart_ro & (0xFFU)) | (_m->FilterState_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Max_Y_ro & (0xFFU)) | (_m->FilterState_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Max_VXOncome_ro & (0xFFU)) | (_m->FilterState_Max_X_ro & (0xFFU));
+
+  cframe->MsgId = FilterState_Cfg_CANID;
+  cframe->DLC = FilterState_Cfg_DLC;
+  cframe->IDE = FilterState_Cfg_IDE;
+  return FilterState_Cfg_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch2(FilterState_Cfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Cfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_RCS_ro_toS(_m->FilterState_Min_RCS_phys);
+  _m->FilterState_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_Azimuth_ro_toS(_m->FilterState_Min_Azimuth_phys);
+  _m->FilterState_Min_Distance_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_Distance_ro_toS(_m->FilterState_Min_Distance_phys);
+  _m->FilterState_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_Lifetime_ro_toS(_m->FilterState_Min_Lifetime_phys);
+  _m->FilterState_Min_Y_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_Y_ro_toS(_m->FilterState_Min_Y_phys);
+  _m->FilterState_Min_Size_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_Size_ro_toS(_m->FilterState_Min_Size_phys);
+  _m->FilterState_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_VrelDepart_ro_toS(_m->FilterState_Min_VrelDepart_phys);
+  _m->FilterState_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_VrelOncome_ro_toS(_m->FilterState_Min_VrelOncome_phys);
+  _m->FilterState_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_VYRightLeft_ro_toS(_m->FilterState_Min_VYRightLeft_phys);
+  _m->FilterState_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_VXDepart_ro_toS(_m->FilterState_Min_VXDepart_phys);
+  _m->FilterState_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_VXOncome_ro_toS(_m->FilterState_Min_VXOncome_phys);
+  _m->FilterState_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_VYLeftRight_ro_toS(_m->FilterState_Min_VYLeftRight_phys);
+  _m->FilterState_Min_X_ro = ARS408_CAN_DATABASE_CH2_FilterState_Min_X_ro_toS(_m->FilterState_Min_X_phys);
+  _m->FilterState_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_VrelDepart_ro_toS(_m->FilterState_Max_VrelDepart_phys);
+  _m->FilterState_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_Azimuth_ro_toS(_m->FilterState_Max_Azimuth_phys);
+  _m->FilterState_Max_Distance_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_Distance_ro_toS(_m->FilterState_Max_Distance_phys);
+  _m->FilterState_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_Lifetime_ro_toS(_m->FilterState_Max_Lifetime_phys);
+  _m->FilterState_Max_RCS_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_RCS_ro_toS(_m->FilterState_Max_RCS_phys);
+  _m->FilterState_Max_Size_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_Size_ro_toS(_m->FilterState_Max_Size_phys);
+  _m->FilterState_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_VXDepart_ro_toS(_m->FilterState_Max_VXDepart_phys);
+  _m->FilterState_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_VrelOncome_ro_toS(_m->FilterState_Max_VrelOncome_phys);
+  _m->FilterState_Max_Y_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_Y_ro_toS(_m->FilterState_Max_Y_phys);
+  _m->FilterState_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_VYRightLeft_ro_toS(_m->FilterState_Max_VYRightLeft_phys);
+  _m->FilterState_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_VYLeftRight_ro_toS(_m->FilterState_Max_VYLeftRight_phys);
+  _m->FilterState_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_VXOncome_ro_toS(_m->FilterState_Max_VXOncome_phys);
+  _m->FilterState_Max_X_ro = ARS408_CAN_DATABASE_CH2_FilterState_Max_X_ro_toS(_m->FilterState_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _d[0] |= ((_m->FilterState_Active & (0x01U)) << 2) | ((_m->FilterState_Index & (0x0FU)) << 3) | ((_m->FilterState_Type & (0x01U)) << 7);
+  _d[1] |= ((_m->FilterState_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_X_ro >> 8) & (0x1FU));
+  _d[2] |= (_m->FilterState_Min_RCS_ro & (0xFFU)) | (_m->FilterState_Min_Azimuth_ro & (0xFFU)) | (_m->FilterState_Min_Distance_ro & (0xFFU)) | (_m->FilterState_Min_Lifetime_ro & (0xFFU)) | (_m->FilterState_Min_NofObj & (0xFFU)) | (_m->FilterState_Min_ProbExists & (0xFFU)) | (_m->FilterState_Min_Y_ro & (0xFFU)) | (_m->FilterState_Min_Size_ro & (0xFFU)) | (_m->FilterState_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Min_VXDepart_ro & (0xFFU)) | (_m->FilterState_Min_VXOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Min_X_ro & (0xFFU));
+  _d[3] |= ((_m->FilterState_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_X_ro >> 8) & (0x1FU));
+  _d[4] |= (_m->FilterState_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Max_Azimuth_ro & (0xFFU)) | (_m->FilterState_Max_Distance_ro & (0xFFU)) | (_m->FilterState_Max_Lifetime_ro & (0xFFU)) | (_m->FilterState_Max_NofObj & (0xFFU)) | (_m->FilterState_Max_ProbExists & (0xFFU)) | (_m->FilterState_Max_RCS_ro & (0xFFU)) | (_m->FilterState_Max_Size_ro & (0xFFU)) | (_m->FilterState_Max_VXDepart_ro & (0xFFU)) | (_m->FilterState_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Max_Y_ro & (0xFFU)) | (_m->FilterState_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Max_VXOncome_ro & (0xFFU)) | (_m->FilterState_Max_X_ro & (0xFFU));
+
+  *_len = FilterState_Cfg_DLC;
+  *_ide = FilterState_Cfg_IDE;
+  return FilterState_Cfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_SpeedInformation_ARS408_can_database_ch2(SpeedInformation_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarDevice_Speed_ro = ((_d[0] & (0x1FU)) << 8) | (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->RadarDevice_Speed_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_RadarDevice_Speed_ro_fromS(_m->RadarDevice_Speed_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->RadarDevice_SpeedDirection = ((_d[0] >> 6) & (0x03U));
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < SpeedInformation_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_SpeedInformation_ars408_can_database_ch2(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+ return SpeedInformation_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch2(SpeedInformation_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < SpeedInformation_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->RadarDevice_Speed_ro = ARS408_CAN_DATABASE_CH2_RadarDevice_Speed_ro_toS(_m->RadarDevice_Speed_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarDevice_Speed_ro >> 8) & (0x1FU)) | ((_m->RadarDevice_SpeedDirection & (0x03U)) << 6);
+  cframe->Data[1] |= (_m->RadarDevice_Speed_ro & (0xFFU));
+
+  cframe->MsgId = SpeedInformation_CANID;
+  cframe->DLC = SpeedInformation_DLC;
+  cframe->IDE = SpeedInformation_IDE;
+  return SpeedInformation_CANID;
+}
+
+#else
+
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch2(SpeedInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < SpeedInformation_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->RadarDevice_Speed_ro = ARS408_CAN_DATABASE_CH2_RadarDevice_Speed_ro_toS(_m->RadarDevice_Speed_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarDevice_Speed_ro >> 8) & (0x1FU)) | ((_m->RadarDevice_SpeedDirection & (0x03U)) << 6);
+  _d[1] |= (_m->RadarDevice_Speed_ro & (0xFFU));
+
+  *_len = SpeedInformation_DLC;
+  *_ide = SpeedInformation_IDE;
+  return SpeedInformation_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_YawRateInformation_ARS408_can_database_ch2(YawRateInformation_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarDevice_YawRate_ro = ((_d[0] & (0xFFU)) << 8) | (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_RadarDevice_YawRate_ro_fromS(_m->RadarDevice_YawRate_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < YawRateInformation_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_YawRateInformation_ars408_can_database_ch2(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+ return YawRateInformation_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch2(YawRateInformation_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < YawRateInformation_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_ro = ARS408_CAN_DATABASE_CH2_RadarDevice_YawRate_ro_toS(_m->RadarDevice_YawRate_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarDevice_YawRate_ro >> 8) & (0xFFU));
+  cframe->Data[1] |= (_m->RadarDevice_YawRate_ro & (0xFFU));
+
+  cframe->MsgId = YawRateInformation_CANID;
+  cframe->DLC = YawRateInformation_DLC;
+  cframe->IDE = YawRateInformation_IDE;
+  return YawRateInformation_CANID;
+}
+
+#else
+
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch2(YawRateInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < YawRateInformation_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_ro = ARS408_CAN_DATABASE_CH2_RadarDevice_YawRate_ro_toS(_m->RadarDevice_YawRate_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarDevice_YawRate_ro >> 8) & (0xFFU));
+  _d[1] |= (_m->RadarDevice_YawRate_ro & (0xFFU));
+
+  *_len = YawRateInformation_DLC;
+  *_ide = YawRateInformation_IDE;
+  return YawRateInformation_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetState_ARS408_can_database_ch2(CollDetState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetState_Active = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetState_NofRegions = ((_d[0] >> 4) & (0x0FU));
+  _m->CollDetState_MinDetectTime_ro = (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_CollDetState_MinDetectTime_ro_fromS(_m->CollDetState_MinDetectTime_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->CollDetState_MeasCounter = ((_d[2] & (0xFFU)) << 8) | (_d[3] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetState_ars408_can_database_ch2(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+ return CollDetState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Pack_CollDetState_ARS408_can_database_ch2(CollDetState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_ro = ARS408_CAN_DATABASE_CH2_CollDetState_MinDetectTime_ro_toS(_m->CollDetState_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetState_Active & (0x01U)) << 1) | ((_m->CollDetState_NofRegions & (0x0FU)) << 4);
+  cframe->Data[1] |= (_m->CollDetState_MinDetectTime_ro & (0xFFU));
+  cframe->Data[2] |= ((_m->CollDetState_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[3] |= (_m->CollDetState_MeasCounter & (0xFFU));
+
+  cframe->MsgId = CollDetState_CANID;
+  cframe->DLC = CollDetState_DLC;
+  cframe->IDE = CollDetState_IDE;
+  return CollDetState_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetState_ARS408_can_database_ch2(CollDetState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_ro = ARS408_CAN_DATABASE_CH2_CollDetState_MinDetectTime_ro_toS(_m->CollDetState_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetState_Active & (0x01U)) << 1) | ((_m->CollDetState_NofRegions & (0x0FU)) << 4);
+  _d[1] |= (_m->CollDetState_MinDetectTime_ro & (0xFFU));
+  _d[2] |= ((_m->CollDetState_MeasCounter >> 8) & (0xFFU));
+  _d[3] |= (_m->CollDetState_MeasCounter & (0xFFU));
+
+  *_len = CollDetState_DLC;
+  *_ide = CollDetState_IDE;
+  return CollDetState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetCfg_ARS408_can_database_ch2(CollDetCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetCfg_WarningReset = (_d[0] & (0x01U));
+  _m->CollDetCfg_Activate = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetCfg_MinTime_valid = ((_d[0] >> 3) & (0x01U));
+  _m->CollDetCfg_ClearRegions = ((_d[0] >> 7) & (0x01U));
+  _m->CollDetCfg_MinDetectTime_ro = (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_CollDetCfg_MinDetectTime_ro_fromS(_m->CollDetCfg_MinDetectTime_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetCfg_ars408_can_database_ch2(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+ return CollDetCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch2(CollDetCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_ro = ARS408_CAN_DATABASE_CH2_CollDetCfg_MinDetectTime_ro_toS(_m->CollDetCfg_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->CollDetCfg_WarningReset & (0x01U)) | ((_m->CollDetCfg_Activate & (0x01U)) << 1) | ((_m->CollDetCfg_MinTime_valid & (0x01U)) << 3) | ((_m->CollDetCfg_ClearRegions & (0x01U)) << 7);
+  cframe->Data[1] |= (_m->CollDetCfg_MinDetectTime_ro & (0xFFU));
+
+  cframe->MsgId = CollDetCfg_CANID;
+  cframe->DLC = CollDetCfg_DLC;
+  cframe->IDE = CollDetCfg_IDE;
+  return CollDetCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch2(CollDetCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_ro = ARS408_CAN_DATABASE_CH2_CollDetCfg_MinDetectTime_ro_toS(_m->CollDetCfg_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _d[0] |= (_m->CollDetCfg_WarningReset & (0x01U)) | ((_m->CollDetCfg_Activate & (0x01U)) << 1) | ((_m->CollDetCfg_MinTime_valid & (0x01U)) << 3) | ((_m->CollDetCfg_ClearRegions & (0x01U)) << 7);
+  _d[1] |= (_m->CollDetCfg_MinDetectTime_ro & (0xFFU));
+
+  *_len = CollDetCfg_DLC;
+  *_ide = CollDetCfg_IDE;
+  return CollDetCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionCfg_ARS408_can_database_ch2(CollDetRegionCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRegCfg_Activate = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetRegCfg_Coordinates_valid = ((_d[0] >> 2) & (0x01U));
+  _m->CollDetRegCfg_RegionID = (_d[1] & (0x07U));
+  _m->CollDetRegCfg_Point1X_ro = ((_d[2] & (0xFFU)) << 5) | ((_d[3] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point1X_ro_fromS(_m->CollDetRegCfg_Point1X_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point1Y_ro = ((_d[3] & (0x07U)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point1Y_ro_fromS(_m->CollDetRegCfg_Point1Y_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point2X_ro = ((_d[5] & (0xFFU)) << 5) | ((_d[6] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point2X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point2X_ro_fromS(_m->CollDetRegCfg_Point2X_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point2Y_ro = ((_d[6] & (0x07U)) << 8) | (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point2Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point2Y_ro_fromS(_m->CollDetRegCfg_Point2Y_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRegionCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRegionCfg_ars408_can_database_ch2(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+ return CollDetRegionCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch2(CollDetRegionCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_ro = ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point1X_ro_toS(_m->CollDetRegCfg_Point1X_phys);
+  _m->CollDetRegCfg_Point1Y_ro = ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point1Y_ro_toS(_m->CollDetRegCfg_Point1Y_phys);
+  _m->CollDetRegCfg_Point2X_ro = ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point2X_ro_toS(_m->CollDetRegCfg_Point2X_phys);
+  _m->CollDetRegCfg_Point2Y_ro = ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point2Y_ro_toS(_m->CollDetRegCfg_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetRegCfg_Activate & (0x01U)) << 1) | ((_m->CollDetRegCfg_Coordinates_valid & (0x01U)) << 2);
+  cframe->Data[1] |= (_m->CollDetRegCfg_RegionID & (0x07U));
+  cframe->Data[2] |= ((_m->CollDetRegCfg_Point1X_ro >> 5) & (0xFFU));
+  cframe->Data[3] |= ((_m->CollDetRegCfg_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point1Y_ro >> 8) & (0x07U));
+  cframe->Data[4] |= (_m->CollDetRegCfg_Point1Y_ro & (0xFFU));
+  cframe->Data[5] |= ((_m->CollDetRegCfg_Point2X_ro >> 5) & (0xFFU));
+  cframe->Data[6] |= ((_m->CollDetRegCfg_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point2Y_ro >> 8) & (0x07U));
+  cframe->Data[7] |= (_m->CollDetRegCfg_Point2Y_ro & (0xFFU));
+
+  cframe->MsgId = CollDetRegionCfg_CANID;
+  cframe->DLC = CollDetRegionCfg_DLC;
+  cframe->IDE = CollDetRegionCfg_IDE;
+  return CollDetRegionCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch2(CollDetRegionCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_ro = ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point1X_ro_toS(_m->CollDetRegCfg_Point1X_phys);
+  _m->CollDetRegCfg_Point1Y_ro = ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point1Y_ro_toS(_m->CollDetRegCfg_Point1Y_phys);
+  _m->CollDetRegCfg_Point2X_ro = ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point2X_ro_toS(_m->CollDetRegCfg_Point2X_phys);
+  _m->CollDetRegCfg_Point2Y_ro = ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point2Y_ro_toS(_m->CollDetRegCfg_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetRegCfg_Activate & (0x01U)) << 1) | ((_m->CollDetRegCfg_Coordinates_valid & (0x01U)) << 2);
+  _d[1] |= (_m->CollDetRegCfg_RegionID & (0x07U));
+  _d[2] |= ((_m->CollDetRegCfg_Point1X_ro >> 5) & (0xFFU));
+  _d[3] |= ((_m->CollDetRegCfg_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point1Y_ro >> 8) & (0x07U));
+  _d[4] |= (_m->CollDetRegCfg_Point1Y_ro & (0xFFU));
+  _d[5] |= ((_m->CollDetRegCfg_Point2X_ro >> 5) & (0xFFU));
+  _d[6] |= ((_m->CollDetRegCfg_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point2Y_ro >> 8) & (0x07U));
+  _d[7] |= (_m->CollDetRegCfg_Point2Y_ro & (0xFFU));
+
+  *_len = CollDetRegionCfg_DLC;
+  *_ide = CollDetRegionCfg_IDE;
+  return CollDetRegionCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionState_ARS408_can_database_ch2(CollDetRegionState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRegState_WarningLevel = ((_d[0] >> 3) & (0x03U));
+  _m->CollDetRegState_RegionID = ((_d[0] >> 5) & (0x07U));
+  _m->CollDetRegState_Point1X_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_CollDetRegState_Point1X_ro_fromS(_m->CollDetRegState_Point1X_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point1Y_ro = ((_d[2] & (0x07U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->CollDetRegState_Point1Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_CollDetRegState_Point1Y_ro_fromS(_m->CollDetRegState_Point1Y_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point2X_ro = ((_d[4] & (0xFFU)) << 5) | ((_d[5] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->CollDetRegState_Point2X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_CollDetRegState_Point2X_ro_fromS(_m->CollDetRegState_Point2X_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point2Y_ro = ((_d[5] & (0x07U)) << 8) | (_d[6] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->CollDetRegState_Point2Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_CollDetRegState_Point2Y_ro_fromS(_m->CollDetRegState_Point2Y_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->CollDetRegState_NofObjects = (_d[7] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRegionState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRegionState_ars408_can_database_ch2(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+ return CollDetRegionState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch2(CollDetRegionState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_ro = ARS408_CAN_DATABASE_CH2_CollDetRegState_Point1X_ro_toS(_m->CollDetRegState_Point1X_phys);
+  _m->CollDetRegState_Point1Y_ro = ARS408_CAN_DATABASE_CH2_CollDetRegState_Point1Y_ro_toS(_m->CollDetRegState_Point1Y_phys);
+  _m->CollDetRegState_Point2X_ro = ARS408_CAN_DATABASE_CH2_CollDetRegState_Point2X_ro_toS(_m->CollDetRegState_Point2X_phys);
+  _m->CollDetRegState_Point2Y_ro = ARS408_CAN_DATABASE_CH2_CollDetRegState_Point2Y_ro_toS(_m->CollDetRegState_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetRegState_WarningLevel & (0x03U)) << 3) | ((_m->CollDetRegState_RegionID & (0x07U)) << 5);
+  cframe->Data[1] |= ((_m->CollDetRegState_Point1X_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->CollDetRegState_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point1Y_ro >> 8) & (0x07U));
+  cframe->Data[3] |= (_m->CollDetRegState_Point1Y_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->CollDetRegState_Point2X_ro >> 5) & (0xFFU));
+  cframe->Data[5] |= ((_m->CollDetRegState_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point2Y_ro >> 8) & (0x07U));
+  cframe->Data[6] |= (_m->CollDetRegState_Point2Y_ro & (0xFFU));
+  cframe->Data[7] |= (_m->CollDetRegState_NofObjects & (0xFFU));
+
+  cframe->MsgId = CollDetRegionState_CANID;
+  cframe->DLC = CollDetRegionState_DLC;
+  cframe->IDE = CollDetRegionState_IDE;
+  return CollDetRegionState_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch2(CollDetRegionState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_ro = ARS408_CAN_DATABASE_CH2_CollDetRegState_Point1X_ro_toS(_m->CollDetRegState_Point1X_phys);
+  _m->CollDetRegState_Point1Y_ro = ARS408_CAN_DATABASE_CH2_CollDetRegState_Point1Y_ro_toS(_m->CollDetRegState_Point1Y_phys);
+  _m->CollDetRegState_Point2X_ro = ARS408_CAN_DATABASE_CH2_CollDetRegState_Point2X_ro_toS(_m->CollDetRegState_Point2X_phys);
+  _m->CollDetRegState_Point2Y_ro = ARS408_CAN_DATABASE_CH2_CollDetRegState_Point2Y_ro_toS(_m->CollDetRegState_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetRegState_WarningLevel & (0x03U)) << 3) | ((_m->CollDetRegState_RegionID & (0x07U)) << 5);
+  _d[1] |= ((_m->CollDetRegState_Point1X_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->CollDetRegState_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point1Y_ro >> 8) & (0x07U));
+  _d[3] |= (_m->CollDetRegState_Point1Y_ro & (0xFFU));
+  _d[4] |= ((_m->CollDetRegState_Point2X_ro >> 5) & (0xFFU));
+  _d[5] |= ((_m->CollDetRegState_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point2Y_ro >> 8) & (0x07U));
+  _d[6] |= (_m->CollDetRegState_Point2Y_ro & (0xFFU));
+  _d[7] |= (_m->CollDetRegState_NofObjects & (0xFFU));
+
+  *_len = CollDetRegionState_DLC;
+  *_ide = CollDetRegionState_IDE;
+  return CollDetRegionState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_0_Status_ARS408_can_database_ch2(Cluster_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_NofClustersNear = (_d[0] & (0xFFU));
+  _m->Cluster_NofClustersFar = (_d[1] & (0xFFU));
+  _m->Cluster_MeasCounter = ((_d[2] & (0xFFU)) << 8) | (_d[3] & (0xFFU));
+  _m->Cluster_InterfaceVersion = ((_d[4] >> 4) & (0x0FU));
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_0_Status_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_0_Status_ars408_can_database_ch2(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+ return Cluster_0_Status_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch2(Cluster_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_0_Status_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Cluster_NofClustersNear & (0xFFU));
+  cframe->Data[1] |= (_m->Cluster_NofClustersFar & (0xFFU));
+  cframe->Data[2] |= ((_m->Cluster_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[3] |= (_m->Cluster_MeasCounter & (0xFFU));
+  cframe->Data[4] |= ((_m->Cluster_InterfaceVersion & (0x0FU)) << 4);
+
+  cframe->MsgId = Cluster_0_Status_CANID;
+  cframe->DLC = Cluster_0_Status_DLC;
+  cframe->IDE = Cluster_0_Status_IDE;
+  return Cluster_0_Status_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch2(Cluster_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_0_Status_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Cluster_NofClustersNear & (0xFFU));
+  _d[1] |= (_m->Cluster_NofClustersFar & (0xFFU));
+  _d[2] |= ((_m->Cluster_MeasCounter >> 8) & (0xFFU));
+  _d[3] |= (_m->Cluster_MeasCounter & (0xFFU));
+  _d[4] |= ((_m->Cluster_InterfaceVersion & (0x0FU)) << 4);
+
+  *_len = Cluster_0_Status_DLC;
+  *_ide = Cluster_0_Status_IDE;
+  return Cluster_0_Status_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_0_Status_ARS408_can_database_ch2(Obj_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_NofObjects = (_d[0] & (0xFFU));
+  _m->Obj_MeasCounter = ((_d[1] & (0xFFU)) << 8) | (_d[2] & (0xFFU));
+  _m->Obj_InterfaceVersion = ((_d[3] >> 4) & (0x0FU));
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_0_Status_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_0_Status_ars408_can_database_ch2(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+ return Obj_0_Status_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch2(Obj_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_0_Status_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_NofObjects & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[2] |= (_m->Obj_MeasCounter & (0xFFU));
+  cframe->Data[3] |= ((_m->Obj_InterfaceVersion & (0x0FU)) << 4);
+
+  cframe->MsgId = Obj_0_Status_CANID;
+  cframe->DLC = Obj_0_Status_DLC;
+  cframe->IDE = Obj_0_Status_IDE;
+  return Obj_0_Status_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch2(Obj_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_0_Status_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_NofObjects & (0xFFU));
+  _d[1] |= ((_m->Obj_MeasCounter >> 8) & (0xFFU));
+  _d[2] |= (_m->Obj_MeasCounter & (0xFFU));
+  _d[3] |= ((_m->Obj_InterfaceVersion & (0x0FU)) << 4);
+
+  *_len = Obj_0_Status_DLC;
+  *_ide = Obj_0_Status_IDE;
+  return Obj_0_Status_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_1_General_ARS408_can_database_ch2(Obj_1_General_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_DistLong_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->Obj_DistLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_Obj_DistLong_ro_fromS(_m->Obj_DistLong_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->Obj_DistLat_ro = ((_d[2] & (0x07U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->Obj_DistLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_Obj_DistLat_ro_fromS(_m->Obj_DistLat_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->Obj_VrelLong_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->Obj_VrelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_Obj_VrelLong_ro_fromS(_m->Obj_VrelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->Obj_VrelLat_ro = ((_d[5] & (0x3FU)) << 3) | ((_d[6] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->Obj_VrelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_Obj_VrelLat_ro_fromS(_m->Obj_VrelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->Obj_DynProp = (_d[6] & (0x07U));
+  _m->Obj_RCS_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->Obj_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_Obj_RCS_ro_fromS(_m->Obj_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_1_General_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_1_General_ars408_can_database_ch2(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+ return Obj_1_General_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch2(Obj_1_General_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_1_General_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->Obj_DistLong_ro = ARS408_CAN_DATABASE_CH2_Obj_DistLong_ro_toS(_m->Obj_DistLong_phys);
+  _m->Obj_DistLat_ro = ARS408_CAN_DATABASE_CH2_Obj_DistLat_ro_toS(_m->Obj_DistLat_phys);
+  _m->Obj_VrelLong_ro = ARS408_CAN_DATABASE_CH2_Obj_VrelLong_ro_toS(_m->Obj_VrelLong_phys);
+  _m->Obj_VrelLat_ro = ARS408_CAN_DATABASE_CH2_Obj_VrelLat_ro_toS(_m->Obj_VrelLat_phys);
+  _m->Obj_RCS_ro = ARS408_CAN_DATABASE_CH2_Obj_RCS_ro_toS(_m->Obj_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_DistLong_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->Obj_DistLong_ro & (0x1FU)) << 3) | ((_m->Obj_DistLat_ro >> 8) & (0x07U));
+  cframe->Data[3] |= (_m->Obj_DistLat_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->Obj_VrelLong_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Obj_VrelLong_ro & (0x03U)) << 6) | ((_m->Obj_VrelLat_ro >> 3) & (0x3FU));
+  cframe->Data[6] |= ((_m->Obj_VrelLat_ro & (0x07U)) << 5) | (_m->Obj_DynProp & (0x07U));
+  cframe->Data[7] |= (_m->Obj_RCS_ro & (0xFFU));
+
+  cframe->MsgId = Obj_1_General_CANID;
+  cframe->DLC = Obj_1_General_DLC;
+  cframe->IDE = Obj_1_General_IDE;
+  return Obj_1_General_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch2(Obj_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_1_General_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->Obj_DistLong_ro = ARS408_CAN_DATABASE_CH2_Obj_DistLong_ro_toS(_m->Obj_DistLong_phys);
+  _m->Obj_DistLat_ro = ARS408_CAN_DATABASE_CH2_Obj_DistLat_ro_toS(_m->Obj_DistLat_phys);
+  _m->Obj_VrelLong_ro = ARS408_CAN_DATABASE_CH2_Obj_VrelLong_ro_toS(_m->Obj_VrelLong_phys);
+  _m->Obj_VrelLat_ro = ARS408_CAN_DATABASE_CH2_Obj_VrelLat_ro_toS(_m->Obj_VrelLat_phys);
+  _m->Obj_RCS_ro = ARS408_CAN_DATABASE_CH2_Obj_RCS_ro_toS(_m->Obj_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_DistLong_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->Obj_DistLong_ro & (0x1FU)) << 3) | ((_m->Obj_DistLat_ro >> 8) & (0x07U));
+  _d[3] |= (_m->Obj_DistLat_ro & (0xFFU));
+  _d[4] |= ((_m->Obj_VrelLong_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Obj_VrelLong_ro & (0x03U)) << 6) | ((_m->Obj_VrelLat_ro >> 3) & (0x3FU));
+  _d[6] |= ((_m->Obj_VrelLat_ro & (0x07U)) << 5) | (_m->Obj_DynProp & (0x07U));
+  _d[7] |= (_m->Obj_RCS_ro & (0xFFU));
+
+  *_len = Obj_1_General_DLC;
+  *_ide = Obj_1_General_IDE;
+  return Obj_1_General_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_2_Quality_ARS408_can_database_ch2(Obj_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_DistLat_rms = ((_d[1] & (0x07U)) << 2) | ((_d[2] >> 6) & (0x03U));
+  _m->Obj_DistLong_rms = ((_d[1] >> 3) & (0x1FU));
+  _m->Obj_VrelLat_rms = ((_d[2] & (0x01U)) << 4) | ((_d[3] >> 4) & (0x0FU));
+  _m->Obj_VrelLong_rms = ((_d[2] >> 1) & (0x1FU));
+  _m->Obj_ArelLong_rms = ((_d[3] & (0x0FU)) << 1) | ((_d[4] >> 7) & (0x01U));
+  _m->Obj_Orientation_rms = ((_d[4] & (0x03U)) << 3) | ((_d[5] >> 5) & (0x07U));
+  _m->Obj_ArelLat_rms = ((_d[4] >> 2) & (0x1FU));
+  _m->Obj_MeasState = ((_d[6] >> 2) & (0x07U));
+  _m->Obj_ProbOfExist = ((_d[6] >> 5) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_2_Quality_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_2_Quality_ars408_can_database_ch2(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+ return Obj_2_Quality_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch2(Obj_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_2_Quality_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_DistLat_rms >> 2) & (0x07U)) | ((_m->Obj_DistLong_rms & (0x1FU)) << 3);
+  cframe->Data[2] |= ((_m->Obj_DistLat_rms & (0x03U)) << 6) | ((_m->Obj_VrelLat_rms >> 4) & (0x01U)) | ((_m->Obj_VrelLong_rms & (0x1FU)) << 1);
+  cframe->Data[3] |= ((_m->Obj_VrelLat_rms & (0x0FU)) << 4) | ((_m->Obj_ArelLong_rms >> 1) & (0x0FU));
+  cframe->Data[4] |= ((_m->Obj_ArelLong_rms & (0x01U)) << 7) | ((_m->Obj_Orientation_rms >> 3) & (0x03U)) | ((_m->Obj_ArelLat_rms & (0x1FU)) << 2);
+  cframe->Data[5] |= ((_m->Obj_Orientation_rms & (0x07U)) << 5);
+  cframe->Data[6] |= ((_m->Obj_MeasState & (0x07U)) << 2) | ((_m->Obj_ProbOfExist & (0x07U)) << 5);
+
+  cframe->MsgId = Obj_2_Quality_CANID;
+  cframe->DLC = Obj_2_Quality_DLC;
+  cframe->IDE = Obj_2_Quality_IDE;
+  return Obj_2_Quality_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch2(Obj_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_2_Quality_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_DistLat_rms >> 2) & (0x07U)) | ((_m->Obj_DistLong_rms & (0x1FU)) << 3);
+  _d[2] |= ((_m->Obj_DistLat_rms & (0x03U)) << 6) | ((_m->Obj_VrelLat_rms >> 4) & (0x01U)) | ((_m->Obj_VrelLong_rms & (0x1FU)) << 1);
+  _d[3] |= ((_m->Obj_VrelLat_rms & (0x0FU)) << 4) | ((_m->Obj_ArelLong_rms >> 1) & (0x0FU));
+  _d[4] |= ((_m->Obj_ArelLong_rms & (0x01U)) << 7) | ((_m->Obj_Orientation_rms >> 3) & (0x03U)) | ((_m->Obj_ArelLat_rms & (0x1FU)) << 2);
+  _d[5] |= ((_m->Obj_Orientation_rms & (0x07U)) << 5);
+  _d[6] |= ((_m->Obj_MeasState & (0x07U)) << 2) | ((_m->Obj_ProbOfExist & (0x07U)) << 5);
+
+  *_len = Obj_2_Quality_DLC;
+  *_ide = Obj_2_Quality_IDE;
+  return Obj_2_Quality_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_3_Extended_ARS408_can_database_ch2(Obj_3_Extended_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_ArelLong_ro = ((_d[1] & (0xFFU)) << 3) | ((_d[2] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->Obj_ArelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_Obj_ArelLong_ro_fromS(_m->Obj_ArelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->Obj_ArelLat_ro = ((_d[2] & (0x1FU)) << 4) | ((_d[3] >> 4) & (0x0FU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->Obj_ArelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_Obj_ArelLat_ro_fromS(_m->Obj_ArelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->Obj_Class = (_d[3] & (0x07U));
+  _m->Obj_OrientationAngle_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->Obj_OrientationAngle_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_Obj_OrientationAngle_ro_fromS(_m->Obj_OrientationAngle_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->Obj_Length_ro = (_d[6] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->Obj_Length_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_Obj_Length_ro_fromS(_m->Obj_Length_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->Obj_Width_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->Obj_Width_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_Obj_Width_ro_fromS(_m->Obj_Width_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_3_Extended_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_3_Extended_ars408_can_database_ch2(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+ return Obj_3_Extended_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch2(Obj_3_Extended_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_3_Extended_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->Obj_ArelLong_ro = ARS408_CAN_DATABASE_CH2_Obj_ArelLong_ro_toS(_m->Obj_ArelLong_phys);
+  _m->Obj_ArelLat_ro = ARS408_CAN_DATABASE_CH2_Obj_ArelLat_ro_toS(_m->Obj_ArelLat_phys);
+  _m->Obj_OrientationAngle_ro = ARS408_CAN_DATABASE_CH2_Obj_OrientationAngle_ro_toS(_m->Obj_OrientationAngle_phys);
+  _m->Obj_Length_ro = ARS408_CAN_DATABASE_CH2_Obj_Length_ro_toS(_m->Obj_Length_phys);
+  _m->Obj_Width_ro = ARS408_CAN_DATABASE_CH2_Obj_Width_ro_toS(_m->Obj_Width_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_ArelLong_ro >> 3) & (0xFFU));
+  cframe->Data[2] |= ((_m->Obj_ArelLong_ro & (0x07U)) << 5) | ((_m->Obj_ArelLat_ro >> 4) & (0x1FU));
+  cframe->Data[3] |= ((_m->Obj_ArelLat_ro & (0x0FU)) << 4) | (_m->Obj_Class & (0x07U));
+  cframe->Data[4] |= ((_m->Obj_OrientationAngle_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Obj_OrientationAngle_ro & (0x03U)) << 6);
+  cframe->Data[6] |= (_m->Obj_Length_ro & (0xFFU));
+  cframe->Data[7] |= (_m->Obj_Width_ro & (0xFFU));
+
+  cframe->MsgId = Obj_3_Extended_CANID;
+  cframe->DLC = Obj_3_Extended_DLC;
+  cframe->IDE = Obj_3_Extended_IDE;
+  return Obj_3_Extended_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch2(Obj_3_Extended_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_3_Extended_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->Obj_ArelLong_ro = ARS408_CAN_DATABASE_CH2_Obj_ArelLong_ro_toS(_m->Obj_ArelLong_phys);
+  _m->Obj_ArelLat_ro = ARS408_CAN_DATABASE_CH2_Obj_ArelLat_ro_toS(_m->Obj_ArelLat_phys);
+  _m->Obj_OrientationAngle_ro = ARS408_CAN_DATABASE_CH2_Obj_OrientationAngle_ro_toS(_m->Obj_OrientationAngle_phys);
+  _m->Obj_Length_ro = ARS408_CAN_DATABASE_CH2_Obj_Length_ro_toS(_m->Obj_Length_phys);
+  _m->Obj_Width_ro = ARS408_CAN_DATABASE_CH2_Obj_Width_ro_toS(_m->Obj_Width_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_ArelLong_ro >> 3) & (0xFFU));
+  _d[2] |= ((_m->Obj_ArelLong_ro & (0x07U)) << 5) | ((_m->Obj_ArelLat_ro >> 4) & (0x1FU));
+  _d[3] |= ((_m->Obj_ArelLat_ro & (0x0FU)) << 4) | (_m->Obj_Class & (0x07U));
+  _d[4] |= ((_m->Obj_OrientationAngle_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Obj_OrientationAngle_ro & (0x03U)) << 6);
+  _d[6] |= (_m->Obj_Length_ro & (0xFFU));
+  _d[7] |= (_m->Obj_Width_ro & (0xFFU));
+
+  *_len = Obj_3_Extended_DLC;
+  *_ide = Obj_3_Extended_IDE;
+  return Obj_3_Extended_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_4_Warning_ARS408_can_database_ch2(Obj_4_Warning_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_CollDetRegionBitfield = (_d[1] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_4_Warning_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_4_Warning_ars408_can_database_ch2(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+ return Obj_4_Warning_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch2(Obj_4_Warning_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_4_Warning_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= (_m->Obj_CollDetRegionBitfield & (0xFFU));
+
+  cframe->MsgId = Obj_4_Warning_CANID;
+  cframe->DLC = Obj_4_Warning_DLC;
+  cframe->IDE = Obj_4_Warning_IDE;
+  return Obj_4_Warning_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch2(Obj_4_Warning_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_4_Warning_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= (_m->Obj_CollDetRegionBitfield & (0xFFU));
+
+  *_len = Obj_4_Warning_DLC;
+  *_ide = Obj_4_Warning_IDE;
+  return Obj_4_Warning_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_VersionID_ARS408_can_database_ch2(VersionID_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Version_MajorRelease = (_d[0] & (0xFFU));
+  _m->Version_MinorRelease = (_d[1] & (0xFFU));
+  _m->Version_PatchLevel = (_d[2] & (0xFFU));
+  _m->Version_CountryCode = (_d[3] & (0x01U));
+  _m->Version_ExtendedRange = ((_d[3] >> 1) & (0x01U));
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < VersionID_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_VersionID_ars408_can_database_ch2(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+ return VersionID_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Pack_VersionID_ARS408_can_database_ch2(VersionID_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < VersionID_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Version_MajorRelease & (0xFFU));
+  cframe->Data[1] |= (_m->Version_MinorRelease & (0xFFU));
+  cframe->Data[2] |= (_m->Version_PatchLevel & (0xFFU));
+  cframe->Data[3] |= (_m->Version_CountryCode & (0x01U)) | ((_m->Version_ExtendedRange & (0x01U)) << 1);
+
+  cframe->MsgId = VersionID_CANID;
+  cframe->DLC = VersionID_DLC;
+  cframe->IDE = VersionID_IDE;
+  return VersionID_CANID;
+}
+
+#else
+
+uint32_t Pack_VersionID_ARS408_can_database_ch2(VersionID_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < VersionID_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Version_MajorRelease & (0xFFU));
+  _d[1] |= (_m->Version_MinorRelease & (0xFFU));
+  _d[2] |= (_m->Version_PatchLevel & (0xFFU));
+  _d[3] |= (_m->Version_CountryCode & (0x01U)) | ((_m->Version_ExtendedRange & (0x01U)) << 1);
+
+  *_len = VersionID_DLC;
+  *_ide = VersionID_IDE;
+  return VersionID_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_1_General_ARS408_can_database_ch2(Cluster_1_General_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_ID = (_d[0] & (0xFFU));
+  _m->Cluster_DistLong_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->Cluster_DistLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_Cluster_DistLong_ro_fromS(_m->Cluster_DistLong_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->Cluster_DistLat_ro = ((_d[2] & (0x03U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->Cluster_DistLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_Cluster_DistLat_ro_fromS(_m->Cluster_DistLat_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->Cluster_VrelLong_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->Cluster_VrelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_Cluster_VrelLong_ro_fromS(_m->Cluster_VrelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->Cluster_VrelLat_ro = ((_d[5] & (0x3FU)) << 3) | ((_d[6] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->Cluster_VrelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_Cluster_VrelLat_ro_fromS(_m->Cluster_VrelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _m->Cluster_DynProp = (_d[6] & (0x07U));
+  _m->Cluster_RCS_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->Cluster_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH2_Cluster_RCS_ro_fromS(_m->Cluster_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_1_General_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_1_General_ars408_can_database_ch2(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+ return Cluster_1_General_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch2(Cluster_1_General_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_1_General_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->Cluster_DistLong_ro = ARS408_CAN_DATABASE_CH2_Cluster_DistLong_ro_toS(_m->Cluster_DistLong_phys);
+  _m->Cluster_DistLat_ro = ARS408_CAN_DATABASE_CH2_Cluster_DistLat_ro_toS(_m->Cluster_DistLat_phys);
+  _m->Cluster_VrelLong_ro = ARS408_CAN_DATABASE_CH2_Cluster_VrelLong_ro_toS(_m->Cluster_VrelLong_phys);
+  _m->Cluster_VrelLat_ro = ARS408_CAN_DATABASE_CH2_Cluster_VrelLat_ro_toS(_m->Cluster_VrelLat_phys);
+  _m->Cluster_RCS_ro = ARS408_CAN_DATABASE_CH2_Cluster_RCS_ro_toS(_m->Cluster_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Cluster_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Cluster_DistLong_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->Cluster_DistLong_ro & (0x1FU)) << 3) | ((_m->Cluster_DistLat_ro >> 8) & (0x03U));
+  cframe->Data[3] |= (_m->Cluster_DistLat_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->Cluster_VrelLong_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Cluster_VrelLong_ro & (0x03U)) << 6) | ((_m->Cluster_VrelLat_ro >> 3) & (0x3FU));
+  cframe->Data[6] |= ((_m->Cluster_VrelLat_ro & (0x07U)) << 5) | (_m->Cluster_DynProp & (0x07U));
+  cframe->Data[7] |= (_m->Cluster_RCS_ro & (0xFFU));
+
+  cframe->MsgId = Cluster_1_General_CANID;
+  cframe->DLC = Cluster_1_General_DLC;
+  cframe->IDE = Cluster_1_General_IDE;
+  return Cluster_1_General_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch2(Cluster_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_1_General_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  _m->Cluster_DistLong_ro = ARS408_CAN_DATABASE_CH2_Cluster_DistLong_ro_toS(_m->Cluster_DistLong_phys);
+  _m->Cluster_DistLat_ro = ARS408_CAN_DATABASE_CH2_Cluster_DistLat_ro_toS(_m->Cluster_DistLat_phys);
+  _m->Cluster_VrelLong_ro = ARS408_CAN_DATABASE_CH2_Cluster_VrelLong_ro_toS(_m->Cluster_VrelLong_phys);
+  _m->Cluster_VrelLat_ro = ARS408_CAN_DATABASE_CH2_Cluster_VrelLat_ro_toS(_m->Cluster_VrelLat_phys);
+  _m->Cluster_RCS_ro = ARS408_CAN_DATABASE_CH2_Cluster_RCS_ro_toS(_m->Cluster_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  _d[0] |= (_m->Cluster_ID & (0xFFU));
+  _d[1] |= ((_m->Cluster_DistLong_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->Cluster_DistLong_ro & (0x1FU)) << 3) | ((_m->Cluster_DistLat_ro >> 8) & (0x03U));
+  _d[3] |= (_m->Cluster_DistLat_ro & (0xFFU));
+  _d[4] |= ((_m->Cluster_VrelLong_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Cluster_VrelLong_ro & (0x03U)) << 6) | ((_m->Cluster_VrelLat_ro >> 3) & (0x3FU));
+  _d[6] |= ((_m->Cluster_VrelLat_ro & (0x07U)) << 5) | (_m->Cluster_DynProp & (0x07U));
+  _d[7] |= (_m->Cluster_RCS_ro & (0xFFU));
+
+  *_len = Cluster_1_General_DLC;
+  *_ide = Cluster_1_General_IDE;
+  return Cluster_1_General_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_2_Quality_ARS408_can_database_ch2(Cluster_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_ID = (_d[0] & (0xFFU));
+  _m->Cluster_DistLat_rms = ((_d[1] & (0x07U)) << 2) | ((_d[2] >> 6) & (0x03U));
+  _m->Cluster_DistLong_rms = ((_d[1] >> 3) & (0x1FU));
+  _m->Cluster_VrelLat_rms = ((_d[2] & (0x01U)) << 4) | ((_d[3] >> 4) & (0x0FU));
+  _m->Cluster_VrelLong_rms = ((_d[2] >> 1) & (0x1FU));
+  _m->Cluster_PdH0 = (_d[3] & (0x07U));
+  _m->Cluster_AmbigState = (_d[4] & (0x07U));
+  _m->Cluster_InvalidState = ((_d[4] >> 3) & (0x1FU));
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_2_Quality_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_2_Quality_ars408_can_database_ch2(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+ return Cluster_2_Quality_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch2(Cluster_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_2_Quality_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Cluster_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Cluster_DistLat_rms >> 2) & (0x07U)) | ((_m->Cluster_DistLong_rms & (0x1FU)) << 3);
+  cframe->Data[2] |= ((_m->Cluster_DistLat_rms & (0x03U)) << 6) | ((_m->Cluster_VrelLat_rms >> 4) & (0x01U)) | ((_m->Cluster_VrelLong_rms & (0x1FU)) << 1);
+  cframe->Data[3] |= ((_m->Cluster_VrelLat_rms & (0x0FU)) << 4) | (_m->Cluster_PdH0 & (0x07U));
+  cframe->Data[4] |= (_m->Cluster_AmbigState & (0x07U)) | ((_m->Cluster_InvalidState & (0x1FU)) << 3);
+
+  cframe->MsgId = Cluster_2_Quality_CANID;
+  cframe->DLC = Cluster_2_Quality_DLC;
+  cframe->IDE = Cluster_2_Quality_IDE;
+  return Cluster_2_Quality_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch2(Cluster_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_2_Quality_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Cluster_ID & (0xFFU));
+  _d[1] |= ((_m->Cluster_DistLat_rms >> 2) & (0x07U)) | ((_m->Cluster_DistLong_rms & (0x1FU)) << 3);
+  _d[2] |= ((_m->Cluster_DistLat_rms & (0x03U)) << 6) | ((_m->Cluster_VrelLat_rms >> 4) & (0x01U)) | ((_m->Cluster_VrelLong_rms & (0x1FU)) << 1);
+  _d[3] |= ((_m->Cluster_VrelLat_rms & (0x0FU)) << 4) | (_m->Cluster_PdH0 & (0x07U));
+  _d[4] |= (_m->Cluster_AmbigState & (0x07U)) | ((_m->Cluster_InvalidState & (0x1FU)) << 3);
+
+  *_len = Cluster_2_Quality_DLC;
+  *_ide = Cluster_2_Quality_IDE;
+  return Cluster_2_Quality_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+

+ 4044 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch2.h

@@ -0,0 +1,4044 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+// DBC file version
+#define VER_ARS408_CAN_DATABASE_CH2_MAJ (0U)
+#define VER_ARS408_CAN_DATABASE_CH2_MIN (0U)
+
+// include current dbc-driver compilation config
+#include "ars408_can_database_ch2-config.h"
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+// This file must define:
+// base monitor struct
+// function signature for HASH calculation: (@GetFrameHash)
+// function signature for getting system tick value: (@GetSystemTick)
+#include "canmonitorutil.h"
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+
+// Control message for relay to display collision detection
+// def @CollDetRelayCtrl CAN Message (8    0x8)
+#define CollDetRelayCtrl_IDE (0U)
+#define CollDetRelayCtrl_DLC (1U)
+#define CollDetRelayCtrl_CANID (0x8)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+  // Region bit field for control relay
+  uint8_t CollDetRelayCtrl_Param;            //      Bits= 8
+
+#else
+
+  // Region bit field for control relay
+  uint8_t CollDetRelayCtrl_Param;            //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+} CollDetRelayCtrl_t;
+
+// Radar configuration
+// def @RadarConfiguration CAN Message (544  0x220)
+#define RadarConfiguration_IDE (0U)
+#define RadarConfiguration_DLC (8U)
+#define RadarConfiguration_CANID (0x220)
+// signal: @RadarCfg_MaxDistance_ro
+#define ARS408_CAN_DATABASE_CH2_RadarCfg_MaxDistance_ro_CovFactor (2)
+#define ARS408_CAN_DATABASE_CH2_RadarCfg_MaxDistance_ro_toS(x) ( (uint16_t) ((x) / (2)) )
+#define ARS408_CAN_DATABASE_CH2_RadarCfg_MaxDistance_ro_fromS(x) ( ((x) * (2)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+  // Allows changing the MaxDistance parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_MaxDistance_valid : 1;     //      Bits= 1
+
+  // Allows changing the SensorId parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SensorID_valid : 1;        //      Bits= 1
+
+  // Allows changing the RadarPower parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RadarPower_valid : 1;      //      Bits= 1
+
+  // Allows changing the OutputType parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_OutputType_valid : 1;      //      Bits= 1
+
+  // Allows changing the SendQuality parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendQuality_valid : 1;     //      Bits= 1
+
+  // Allows changing the SendExtInfo parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendExtInfo_valid : 1;     //      Bits= 1
+
+  // Allows changing the SortIndex parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SortIndex_valid : 1;       //      Bits= 1
+
+  // Allows changing the StoreInNvm parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_StoreInNVM_valid : 1;      //      Bits= 1
+
+  uint16_t RadarCfg_MaxDistance_ro;           //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  uint16_t RadarCfg_MaxDistance_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // Sensor ID (0 to 7)
+  uint8_t RadarCfg_SensorID : 3;              //      Bits= 3
+
+  // Data output type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarCfg_OutputType : 2;            //      Bits= 2
+
+  // Radar Tx output power reduction (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RadarPower : 3;            //      Bits= 3
+
+  // Allows changing the CtrlRelay parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_CtrlRelay_valid : 1;       //      Bits= 1
+
+  // Enables output of CtrlRelay message if CollDet is active
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_CtrlRelay : 1;             //      Bits= 1
+
+  // Enables output of quality message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendQuality : 1;           //      Bits= 1
+
+  // Enables output of extended message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendExtInfo : 1;           //      Bits= 1
+
+  // Object sort index
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarCfg_SortIndex : 3;             //      Bits= 3
+
+  // Store configuration in Nvm
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_StoreInNVM : 1;            //      Bits= 1
+
+  // Allows changing the RCS_Threshold parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RCS_Threshold_Valid : 1;   //      Bits= 1
+
+  // Standard or high sensitivity for cluster list output
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RCS_Threshold : 3;         //      Bits= 3
+
+#else
+
+  // Allows changing the MaxDistance parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_MaxDistance_valid;         //      Bits= 1
+
+  // Allows changing the SensorId parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SensorID_valid;            //      Bits= 1
+
+  // Allows changing the RadarPower parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RadarPower_valid;          //      Bits= 1
+
+  // Allows changing the OutputType parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_OutputType_valid;          //      Bits= 1
+
+  // Allows changing the SendQuality parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendQuality_valid;         //      Bits= 1
+
+  // Allows changing the SendExtInfo parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendExtInfo_valid;         //      Bits= 1
+
+  // Allows changing the SortIndex parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SortIndex_valid;           //      Bits= 1
+
+  // Allows changing the StoreInNvm parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_StoreInNVM_valid;          //      Bits= 1
+
+  uint16_t RadarCfg_MaxDistance_ro;           //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  uint16_t RadarCfg_MaxDistance_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // Sensor ID (0 to 7)
+  uint8_t RadarCfg_SensorID;                  //      Bits= 3
+
+  // Data output type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarCfg_OutputType;                //      Bits= 2
+
+  // Radar Tx output power reduction (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RadarPower;                //      Bits= 3
+
+  // Allows changing the CtrlRelay parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_CtrlRelay_valid;           //      Bits= 1
+
+  // Enables output of CtrlRelay message if CollDet is active
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_CtrlRelay;                 //      Bits= 1
+
+  // Enables output of quality message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendQuality;               //      Bits= 1
+
+  // Enables output of extended message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendExtInfo;               //      Bits= 1
+
+  // Object sort index
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarCfg_SortIndex;                 //      Bits= 3
+
+  // Store configuration in Nvm
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_StoreInNVM;                //      Bits= 1
+
+  // Allows changing the RCS_Threshold parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RCS_Threshold_Valid;       //      Bits= 1
+
+  // Standard or high sensitivity for cluster list output
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RCS_Threshold;             //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+} RadarConfiguration_t;
+
+// Radar configuration status
+// def @RadarState CAN Message (545  0x221)
+#define RadarState_IDE (0U)
+#define RadarState_DLC (8U)
+#define RadarState_CANID (0x221)
+#define RadarState_CYC (50U)
+// signal: @RadarState_MaxDistanceCfg_ro
+#define ARS408_CAN_DATABASE_CH2_RadarState_MaxDistanceCfg_ro_CovFactor (2)
+#define ARS408_CAN_DATABASE_CH2_RadarState_MaxDistanceCfg_ro_toS(x) ( (uint16_t) ((x) / (2)) )
+#define ARS408_CAN_DATABASE_CH2_RadarState_MaxDistanceCfg_ro_fromS(x) ( ((x) * (2)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+  // Gives the status of reading the radar configuration from EEPROM
+  //  1 : "successful"
+  //  0 : "pending"
+  // 
+  uint8_t RadarState_NVMReadStatus : 1;       //      Bits= 1
+
+  // Gives the status of writing the radar configuration from EEPROM
+  // 
+  uint8_t RadarState_NVMwriteStatus : 1;      //      Bits= 1
+
+  uint16_t RadarState_MaxDistanceCfg_ro;      //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  uint16_t RadarState_MaxDistanceCfg_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // 
+  // 
+  //  1 : "Voltage error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Voltage_Error : 1;       //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temporary error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temporary_Error : 1;     //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temperature error  active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temperature_Error : 1;   //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Interference detected"
+  //  0 : "No interference"
+  // 
+  uint8_t RadarState_Interference : 1;        //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Persistent error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Persistent_Error : 1;    //      Bits= 1
+
+  // Radar Tx output level (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RadarPowerCfg : 3;       //      Bits= 3
+
+  // Sensor ID (0 to 7)
+  //  7 : "ID 7"
+  //  6 : "ID 6"
+  //  5 : "ID 5"
+  //  4 : "ID 4"
+  //  3 : "ID 3"
+  //  2 : "ID 2"
+  //  1 : "ID 1"
+  //  0 : "ID 0"
+  // 
+  uint8_t RadarState_SensorID : 3;            //      Bits= 3
+
+  // Current sorting of object list
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarState_SortIndex : 3;           //      Bits= 3
+
+  // Status of control relay message output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_CtrlRelayCfg : 1;        //      Bits= 1
+
+  // Current output list type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarState_OutputTypeCfg : 2;       //      Bits= 2
+
+  // Status of quality information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendQualityCfg : 1;      //      Bits= 1
+
+  // Status of extended information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendExtInfoCfg : 1;      //      Bits= 1
+
+  // Status of motion input signals
+  //  3 : "Speed and yaw rate missing"
+  //  2 : "Yaw rate missing"
+  //  1 : "Speed missing"
+  //  0 : "Input ok"
+  // 
+  uint8_t RadarState_MotionRxState : 2;       //      Bits= 2
+
+  // Current sensitivity mode
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RCS_Threshold : 3;       //      Bits= 3
+
+#else
+
+  // Gives the status of reading the radar configuration from EEPROM
+  //  1 : "successful"
+  //  0 : "pending"
+  // 
+  uint8_t RadarState_NVMReadStatus;           //      Bits= 1
+
+  // Gives the status of writing the radar configuration from EEPROM
+  // 
+  uint8_t RadarState_NVMwriteStatus;          //      Bits= 1
+
+  uint16_t RadarState_MaxDistanceCfg_ro;      //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  uint16_t RadarState_MaxDistanceCfg_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // 
+  // 
+  //  1 : "Voltage error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Voltage_Error;           //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temporary error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temporary_Error;         //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temperature error  active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temperature_Error;       //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Interference detected"
+  //  0 : "No interference"
+  // 
+  uint8_t RadarState_Interference;            //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Persistent error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Persistent_Error;        //      Bits= 1
+
+  // Radar Tx output level (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RadarPowerCfg;           //      Bits= 3
+
+  // Sensor ID (0 to 7)
+  //  7 : "ID 7"
+  //  6 : "ID 6"
+  //  5 : "ID 5"
+  //  4 : "ID 4"
+  //  3 : "ID 3"
+  //  2 : "ID 2"
+  //  1 : "ID 1"
+  //  0 : "ID 0"
+  // 
+  uint8_t RadarState_SensorID;                //      Bits= 3
+
+  // Current sorting of object list
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarState_SortIndex;               //      Bits= 3
+
+  // Status of control relay message output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_CtrlRelayCfg;            //      Bits= 1
+
+  // Current output list type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarState_OutputTypeCfg;           //      Bits= 2
+
+  // Status of quality information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendQualityCfg;          //      Bits= 1
+
+  // Status of extended information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendExtInfoCfg;          //      Bits= 1
+
+  // Status of motion input signals
+  //  3 : "Speed and yaw rate missing"
+  //  2 : "Yaw rate missing"
+  //  1 : "Speed missing"
+  //  0 : "Input ok"
+  // 
+  uint8_t RadarState_MotionRxState;           //      Bits= 2
+
+  // Current sensitivity mode
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RCS_Threshold;           //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+} RadarState_t;
+
+// Filter configuration
+// def @FilterCfg CAN Message (546  0x222)
+#define FilterCfg_IDE (0U)
+#define FilterCfg_DLC (5U)
+#define FilterCfg_CANID (0x222)
+// signal: @FilterCfg_Min_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_Size_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterCfg_Min_RCS_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Min_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Min_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Min_Distance_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Min_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_Y_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterCfg_Min_X_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Min_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @FilterCfg_Max_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Max_Distance_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Max_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Max_RCS_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Max_Size_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterCfg_Max_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_Y_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterCfg_Max_X_ro
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterCfg_Max_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+  //  1 : "valid"
+  //  0 : "invalid"
+  // 
+  uint8_t FilterCfg_Valid : 1;                //      Bits= 1
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterCfg_Active : 1;               //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterCfg_Index : 4;                //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterCfg_Type : 1;                 //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#else
+
+  //  1 : "valid"
+  //  0 : "invalid"
+  // 
+  uint8_t FilterCfg_Valid;                    //      Bits= 1
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterCfg_Active;                   //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterCfg_Index;                    //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterCfg_Type;                     //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+} FilterCfg_t;
+
+// Header of filter configuration state
+// def @FilterState_Header CAN Message (547  0x223)
+#define FilterState_Header_IDE (0U)
+#define FilterState_Header_DLC (2U)
+#define FilterState_Header_CANID (0x223)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+  uint8_t FilterState_NofClusterFilterCfg : 5;   //      Bits= 5
+
+  uint8_t FilterState_NofObjectFilterCfg : 5;    //      Bits= 5
+
+#else
+
+  uint8_t FilterState_NofClusterFilterCfg;       //      Bits= 5
+
+  uint8_t FilterState_NofObjectFilterCfg;        //      Bits= 5
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+} FilterState_Header_t;
+
+// Filter configuration status
+// def @FilterState_Cfg CAN Message (548  0x224)
+#define FilterState_Cfg_IDE (0U)
+#define FilterState_Cfg_DLC (5U)
+#define FilterState_Cfg_CANID (0x224)
+// signal: @FilterState_Min_RCS_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Min_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Min_Distance_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Min_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Min_Y_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterState_Min_Size_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterState_Min_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_X_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Min_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @FilterState_Max_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Max_Distance_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Max_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Max_RCS_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Max_Size_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterState_Max_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_Y_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterState_Max_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_X_ro
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_FilterState_Max_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterState_Active : 1;               //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterState_Index : 4;                //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterState_Type : 1;                 //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterState_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_NofObj;              //      Bits=12
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_NofObj;              //      Bits=12
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#else
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterState_Active;                   //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterState_Index;                    //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterState_Type;                     //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterState_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_NofObj;              //      Bits=12
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_NofObj;              //      Bits=12
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+} FilterState_Cfg_t;
+
+// Device movement speed
+// def @SpeedInformation CAN Message (800  0x320)
+#define SpeedInformation_IDE (0U)
+#define SpeedInformation_DLC (2U)
+#define SpeedInformation_CANID (0x320)
+// signal: @RadarDevice_Speed_ro
+#define ARS408_CAN_DATABASE_CH2_RadarDevice_Speed_ro_CovFactor (0.020000)
+#define ARS408_CAN_DATABASE_CH2_RadarDevice_Speed_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.020000)) )
+#define ARS408_CAN_DATABASE_CH2_RadarDevice_Speed_ro_fromS(x) ( (((x) * (0.020000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+  uint16_t RadarDevice_Speed_ro;             //      Bits=13 Factor= 0.020000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t RadarDevice_Speed_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // Speed direction of the radar unit
+  //  3 : "reserved"
+  //  2 : "reverse"
+  //  1 : "forward"
+  //  0 : "standstill"
+  // 
+  uint8_t RadarDevice_SpeedDirection : 2;    //      Bits= 2
+
+#else
+
+  uint16_t RadarDevice_Speed_ro;             //      Bits=13 Factor= 0.020000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t RadarDevice_Speed_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // Speed direction of the radar unit
+  //  3 : "reserved"
+  //  2 : "reverse"
+  //  1 : "forward"
+  //  0 : "standstill"
+  // 
+  uint8_t RadarDevice_SpeedDirection;        //      Bits= 2
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+} SpeedInformation_t;
+
+// Device movement yaw rate
+// def @YawRateInformation CAN Message (801  0x321)
+#define YawRateInformation_IDE (0U)
+#define YawRateInformation_DLC (2U)
+#define YawRateInformation_CANID (0x321)
+// signal: @RadarDevice_YawRate_ro
+#define ARS408_CAN_DATABASE_CH2_RadarDevice_YawRate_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH2_RadarDevice_YawRate_ro_toS(x) ( (uint16_t) (((x) - (-327.680000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH2_RadarDevice_YawRate_ro_fromS(x) ( (((x) * (0.010000)) + (-327.680000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+  uint16_t RadarDevice_YawRate_ro;           //      Bits=16 Offset= -327.680000        Factor= 0.010000        Unit:'deg/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t RadarDevice_YawRate_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#else
+
+  uint16_t RadarDevice_YawRate_ro;           //      Bits=16 Offset= -327.680000        Factor= 0.010000        Unit:'deg/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t RadarDevice_YawRate_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+} YawRateInformation_t;
+
+// Collision detection configuration status
+// def @CollDetState CAN Message (1032 0x408)
+#define CollDetState_IDE (0U)
+#define CollDetState_DLC (4U)
+#define CollDetState_CANID (0x408)
+// signal: @CollDetState_MinDetectTime_ro
+#define ARS408_CAN_DATABASE_CH2_CollDetState_MinDetectTime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH2_CollDetState_MinDetectTime_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH2_CollDetState_MinDetectTime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetState_Active : 1;             //      Bits= 1
+
+  uint8_t CollDetState_NofRegions : 4;         //      Bits= 4
+
+  uint8_t CollDetState_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t CollDetState_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t CollDetState_MeasCounter;           //      Bits=16
+
+#else
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetState_Active;                 //      Bits= 1
+
+  uint8_t CollDetState_NofRegions;             //      Bits= 4
+
+  uint8_t CollDetState_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t CollDetState_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t CollDetState_MeasCounter;           //      Bits=16
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+} CollDetState_t;
+
+// Collision detection configuration
+// def @CollDetCfg CAN Message (1056 0x420)
+#define CollDetCfg_IDE (0U)
+#define CollDetCfg_DLC (2U)
+#define CollDetCfg_CANID (0x420)
+// signal: @CollDetCfg_MinDetectTime_ro
+#define ARS408_CAN_DATABASE_CH2_CollDetCfg_MinDetectTime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH2_CollDetCfg_MinDetectTime_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH2_CollDetCfg_MinDetectTime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+  //  1 : "Warn reset"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_WarningReset : 1;       //      Bits= 1
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetCfg_Activate : 1;           //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetCfg_MinTime_valid : 1;      //      Bits= 1
+
+  //  1 : "Clear all defined regions"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_ClearRegions : 1;       //      Bits= 1
+
+  uint8_t CollDetCfg_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t CollDetCfg_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#else
+
+  //  1 : "Warn reset"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_WarningReset;           //      Bits= 1
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetCfg_Activate;               //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetCfg_MinTime_valid;          //      Bits= 1
+
+  //  1 : "Clear all defined regions"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_ClearRegions;           //      Bits= 1
+
+  uint8_t CollDetCfg_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t CollDetCfg_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+} CollDetCfg_t;
+
+// Collision detection region configuration
+// def @CollDetRegionCfg CAN Message (1057 0x421)
+#define CollDetRegionCfg_IDE (0U)
+#define CollDetRegionCfg_DLC (8U)
+#define CollDetRegionCfg_CANID (0x421)
+// signal: @CollDetRegCfg_Point1X_ro
+#define ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point1X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point1X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point1X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegCfg_Point1Y_ro
+#define ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point1Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point1Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point1Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @CollDetRegCfg_Point2X_ro
+#define ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point2X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point2X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point2X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegCfg_Point2Y_ro
+#define ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point2Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point2Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_CollDetRegCfg_Point2Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetRegCfg_Activate : 1;            //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetRegCfg_Coordinates_valid : 1;   //      Bits= 1
+
+  uint8_t CollDetRegCfg_RegionID : 3;            //      Bits= 3
+
+  uint16_t CollDetRegCfg_Point1X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point1Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#else
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetRegCfg_Activate;                //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetRegCfg_Coordinates_valid;       //      Bits= 1
+
+  uint8_t CollDetRegCfg_RegionID;                //      Bits= 3
+
+  uint16_t CollDetRegCfg_Point1X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point1Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+} CollDetRegionCfg_t;
+
+// Collision detection region configuration and warning status
+// def @CollDetRegionState CAN Message (1058 0x422)
+#define CollDetRegionState_IDE (0U)
+#define CollDetRegionState_DLC (8U)
+#define CollDetRegionState_CANID (0x422)
+// signal: @CollDetRegState_Point1X_ro
+#define ARS408_CAN_DATABASE_CH2_CollDetRegState_Point1X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_CollDetRegState_Point1X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_CollDetRegState_Point1X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegState_Point1Y_ro
+#define ARS408_CAN_DATABASE_CH2_CollDetRegState_Point1Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_CollDetRegState_Point1Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_CollDetRegState_Point1Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @CollDetRegState_Point2X_ro
+#define ARS408_CAN_DATABASE_CH2_CollDetRegState_Point2X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_CollDetRegState_Point2X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_CollDetRegState_Point2X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegState_Point2Y_ro
+#define ARS408_CAN_DATABASE_CH2_CollDetRegState_Point2Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_CollDetRegState_Point2Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_CollDetRegState_Point2Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+  //  3 : "Warning deactivated"
+  //  2 : "Preliminary warning"
+  //  1 : "Object warning"
+  //  0 : "No warning"
+  // 
+  uint8_t CollDetRegState_WarningLevel : 2;   //      Bits= 2
+
+  uint8_t CollDetRegState_RegionID : 3;       //      Bits= 3
+
+  uint16_t CollDetRegState_Point1X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point1Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint8_t CollDetRegState_NofObjects;         //      Bits= 8
+
+#else
+
+  //  3 : "Warning deactivated"
+  //  2 : "Preliminary warning"
+  //  1 : "Object warning"
+  //  0 : "No warning"
+  // 
+  uint8_t CollDetRegState_WarningLevel;       //      Bits= 2
+
+  uint8_t CollDetRegState_RegionID;           //      Bits= 3
+
+  uint16_t CollDetRegState_Point1X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point1Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint8_t CollDetRegState_NofObjects;         //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+} CollDetRegionState_t;
+
+// Status information about Clusters
+// def @Cluster_0_Status CAN Message (1568 0x620)
+#define Cluster_0_Status_IDE (0U)
+#define Cluster_0_Status_DLC (5U)
+#define Cluster_0_Status_CANID (0x620)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+  // Number of valid Clusters in near range scan
+  uint8_t Cluster_NofClustersNear;           //      Bits= 8
+
+  // Number of valid Clusters in far range scan
+  uint8_t Cluster_NofClustersFar;            //      Bits= 8
+
+  // Measurement counter
+  uint16_t Cluster_MeasCounter;              //      Bits=16
+
+  // Cluster CAN Interface Version Number
+  uint8_t Cluster_InterfaceVersion : 4;      //      Bits= 4
+
+#else
+
+  // Number of valid Clusters in near range scan
+  uint8_t Cluster_NofClustersNear;           //      Bits= 8
+
+  // Number of valid Clusters in far range scan
+  uint8_t Cluster_NofClustersFar;            //      Bits= 8
+
+  // Measurement counter
+  uint16_t Cluster_MeasCounter;              //      Bits=16
+
+  // Cluster CAN Interface Version Number
+  uint8_t Cluster_InterfaceVersion;          //      Bits= 4
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+} Cluster_0_Status_t;
+
+// Status information about object
+// def @Obj_0_Status CAN Message (1578 0x62a)
+#define Obj_0_Status_IDE (0U)
+#define Obj_0_Status_DLC (4U)
+#define Obj_0_Status_CANID (0x62a)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+  // Number of Objects sent
+  uint8_t Obj_NofObjects;                    //      Bits= 8
+
+  // Measurement Counter
+  uint16_t Obj_MeasCounter;                  //      Bits=16
+
+  // Object CAN Interface Version Number
+  uint8_t Obj_InterfaceVersion : 4;          //      Bits= 4
+
+#else
+
+  // Number of Objects sent
+  uint8_t Obj_NofObjects;                    //      Bits= 8
+
+  // Measurement Counter
+  uint16_t Obj_MeasCounter;                  //      Bits=16
+
+  // Object CAN Interface Version Number
+  uint8_t Obj_InterfaceVersion;              //      Bits= 4
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+} Obj_0_Status_t;
+
+// General object information
+// def @Obj_1_General CAN Message (1579 0x62b)
+#define Obj_1_General_IDE (0U)
+#define Obj_1_General_DLC (8U)
+#define Obj_1_General_CANID (0x62b)
+// signal: @Obj_DistLong_ro
+#define ARS408_CAN_DATABASE_CH2_Obj_DistLong_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_Obj_DistLong_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_Obj_DistLong_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @Obj_DistLat_ro
+#define ARS408_CAN_DATABASE_CH2_Obj_DistLat_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_Obj_DistLat_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_Obj_DistLat_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @Obj_VrelLong_ro
+#define ARS408_CAN_DATABASE_CH2_Obj_VrelLong_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH2_Obj_VrelLong_ro_toS(x) ( (uint16_t) (((x) - (-128.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH2_Obj_VrelLong_ro_fromS(x) ( (((x) * (0.250000)) + (-128.000000)) )
+// signal: @Obj_VrelLat_ro
+#define ARS408_CAN_DATABASE_CH2_Obj_VrelLat_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH2_Obj_VrelLat_ro_toS(x) ( (uint16_t) (((x) - (-64.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH2_Obj_VrelLat_ro_fromS(x) ( (((x) * (0.250000)) + (-64.000000)) )
+// signal: @Obj_RCS_ro
+#define ARS408_CAN_DATABASE_CH2_Obj_RCS_ro_CovFactor (0.500000)
+#define ARS408_CAN_DATABASE_CH2_Obj_RCS_ro_toS(x) ( (uint8_t) (((x) - (-64.000000)) / (0.500000)) )
+#define ARS408_CAN_DATABASE_CH2_Obj_RCS_ro_fromS(x) ( (((x) * (0.500000)) + (-64.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_DistLong_ro;                  //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Obj_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t Obj_DistLat_ro;                   //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Obj_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLong_ro;                  //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLat_ro;                   //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // Object dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Obj_DynProp : 3;                   //      Bits= 3
+
+  uint8_t Obj_RCS_ro;                        //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Obj_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_DistLong_ro;                  //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Obj_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t Obj_DistLat_ro;                   //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Obj_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLong_ro;                  //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLat_ro;                   //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // Object dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Obj_DynProp;                       //      Bits= 3
+
+  uint8_t Obj_RCS_ro;                        //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Obj_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+} Obj_1_General_t;
+
+// Quality object information
+// def @Obj_2_Quality CAN Message (1580 0x62c)
+#define Obj_2_Quality_IDE (0U)
+#define Obj_2_Quality_DLC (7U)
+#define Obj_2_Quality_CANID (0x62c)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Object lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLat_rms : 5;               //      Bits= 5
+
+  // Object longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLong_rms : 5;              //      Bits= 5
+
+  // Object relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLat_rms : 5;               //      Bits= 5
+
+  // Object relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLong_rms : 5;              //      Bits= 5
+
+  // Object relative longitudinal acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLong_rms : 5;              //      Bits= 5
+
+  // Object orientation angle
+  //  31 : "Invalid"
+  //  30 : "<180.000 deg"
+  //  29 : "<126.881 deg"
+  //  28 : "<89.437 deg"
+  //  27 : "<63.044 deg"
+  //  26 : "<44.439 deg"
+  //  25 : "<31.325 deg"
+  //  24 : "<22.081 deg"
+  //  23 : "<15.565 deg"
+  //  22 : "<10.971 deg"
+  //  21 : "<7.734 deg"
+  //  20 : "<5.451 deg"
+  //  19 : "<3.843 deg"
+  //  18 : "<2.709 deg"
+  //  17 : "<1.909 deg"
+  //  16 : "<1.346 deg"
+  //  15 : "<0.949 deg"
+  //  14 : "<0.669 deg"
+  //  13 : "<0.471 deg"
+  //  12 : "<0.332 deg"
+  //  11 : "<0.234 deg"
+  //  10 : "<0.165 deg"
+  //  9 : "<0.116 deg"
+  //  8 : "<0.082 deg"
+  //  7 : "<0.058 deg"
+  //  6 : "<0.041 deg"
+  //  5 : "<0.029 deg"
+  //  4 : "<0.020 deg"
+  //  3 : "<0.014 deg"
+  //  2 : "<0.010 deg"
+  //  1 : "<0.007 deg"
+  //  0 : "<0.005 deg"
+  // 
+  uint8_t Obj_Orientation_rms : 5;           //      Bits= 5
+
+  // Object relative lateral acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLat_rms : 5;               //      Bits= 5
+
+  // Object measurement status
+  //  5 : "New from merge"
+  //  4 : "Deleted for merge"
+  //  3 : "Predicted"
+  //  2 : "Measured"
+  //  1 : "New"
+  //  0 : "Deleted"
+  // 
+  uint8_t Obj_MeasState : 3;                 //      Bits= 3
+
+  // Object probability of existence
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Obj_ProbOfExist : 3;               //      Bits= 3
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Object lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLat_rms;                   //      Bits= 5
+
+  // Object longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLong_rms;                  //      Bits= 5
+
+  // Object relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLat_rms;                   //      Bits= 5
+
+  // Object relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLong_rms;                  //      Bits= 5
+
+  // Object relative longitudinal acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLong_rms;                  //      Bits= 5
+
+  // Object orientation angle
+  //  31 : "Invalid"
+  //  30 : "<180.000 deg"
+  //  29 : "<126.881 deg"
+  //  28 : "<89.437 deg"
+  //  27 : "<63.044 deg"
+  //  26 : "<44.439 deg"
+  //  25 : "<31.325 deg"
+  //  24 : "<22.081 deg"
+  //  23 : "<15.565 deg"
+  //  22 : "<10.971 deg"
+  //  21 : "<7.734 deg"
+  //  20 : "<5.451 deg"
+  //  19 : "<3.843 deg"
+  //  18 : "<2.709 deg"
+  //  17 : "<1.909 deg"
+  //  16 : "<1.346 deg"
+  //  15 : "<0.949 deg"
+  //  14 : "<0.669 deg"
+  //  13 : "<0.471 deg"
+  //  12 : "<0.332 deg"
+  //  11 : "<0.234 deg"
+  //  10 : "<0.165 deg"
+  //  9 : "<0.116 deg"
+  //  8 : "<0.082 deg"
+  //  7 : "<0.058 deg"
+  //  6 : "<0.041 deg"
+  //  5 : "<0.029 deg"
+  //  4 : "<0.020 deg"
+  //  3 : "<0.014 deg"
+  //  2 : "<0.010 deg"
+  //  1 : "<0.007 deg"
+  //  0 : "<0.005 deg"
+  // 
+  uint8_t Obj_Orientation_rms;               //      Bits= 5
+
+  // Object relative lateral acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLat_rms;                   //      Bits= 5
+
+  // Object measurement status
+  //  5 : "New from merge"
+  //  4 : "Deleted for merge"
+  //  3 : "Predicted"
+  //  2 : "Measured"
+  //  1 : "New"
+  //  0 : "Deleted"
+  // 
+  uint8_t Obj_MeasState;                     //      Bits= 3
+
+  // Object probability of existence
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Obj_ProbOfExist;                   //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+} Obj_2_Quality_t;
+
+// Extended object information
+// def @Obj_3_Extended CAN Message (1581 0x62d)
+#define Obj_3_Extended_IDE (0U)
+#define Obj_3_Extended_DLC (8U)
+#define Obj_3_Extended_CANID (0x62d)
+// signal: @Obj_ArelLong_ro
+#define ARS408_CAN_DATABASE_CH2_Obj_ArelLong_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH2_Obj_ArelLong_ro_toS(x) ( (uint16_t) (((x) - (-10.000000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH2_Obj_ArelLong_ro_fromS(x) ( (((x) * (0.010000)) + (-10.000000)) )
+// signal: @Obj_ArelLat_ro
+#define ARS408_CAN_DATABASE_CH2_Obj_ArelLat_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH2_Obj_ArelLat_ro_toS(x) ( (uint16_t) (((x) - (-2.500000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH2_Obj_ArelLat_ro_fromS(x) ( (((x) * (0.010000)) + (-2.500000)) )
+// signal: @Obj_OrientationAngle_ro
+#define ARS408_CAN_DATABASE_CH2_Obj_OrientationAngle_ro_CovFactor (0.400000)
+#define ARS408_CAN_DATABASE_CH2_Obj_OrientationAngle_ro_toS(x) ( (uint16_t) (((x) - (-180.000000)) / (0.400000)) )
+#define ARS408_CAN_DATABASE_CH2_Obj_OrientationAngle_ro_fromS(x) ( (((x) * (0.400000)) + (-180.000000)) )
+// signal: @Obj_Length_ro
+#define ARS408_CAN_DATABASE_CH2_Obj_Length_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_Obj_Length_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_Obj_Length_ro_fromS(x) ( (((x) * (0.200000)) + (0.000000)) )
+// signal: @Obj_Width_ro
+#define ARS408_CAN_DATABASE_CH2_Obj_Width_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_Obj_Width_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_Obj_Width_ro_fromS(x) ( (((x) * (0.200000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_ArelLong_ro;                  //      Bits=11 Offset= -10.000000         Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t Obj_ArelLat_ro;                   //      Bits= 9 Offset= -2.500000          Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // Object classification
+  //  7 : "Description for the value '0x7'"
+  //  6 : "Wide"
+  //  5 : "Bicycle"
+  //  4 : "Motorcycle"
+  //  3 : "Pedestrian"
+  //  2 : "Truck"
+  //  1 : "Car"
+  //  0 : "Point"
+  // 
+  uint8_t Obj_Class : 3;                     //      Bits= 3
+
+  uint16_t Obj_OrientationAngle_ro;          //      Bits=10 Offset= -180.000000        Factor= 0.400000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Obj_OrientationAngle_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint8_t Obj_Length_ro;                     //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Obj_Length_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint8_t Obj_Width_ro;                      //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Obj_Width_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_ArelLong_ro;                  //      Bits=11 Offset= -10.000000         Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t Obj_ArelLat_ro;                   //      Bits= 9 Offset= -2.500000          Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // Object classification
+  //  7 : "Description for the value '0x7'"
+  //  6 : "Wide"
+  //  5 : "Bicycle"
+  //  4 : "Motorcycle"
+  //  3 : "Pedestrian"
+  //  2 : "Truck"
+  //  1 : "Car"
+  //  0 : "Point"
+  // 
+  uint8_t Obj_Class;                         //      Bits= 3
+
+  uint16_t Obj_OrientationAngle_ro;          //      Bits=10 Offset= -180.000000        Factor= 0.400000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Obj_OrientationAngle_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint8_t Obj_Length_ro;                     //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Obj_Length_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint8_t Obj_Width_ro;                      //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Obj_Width_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+} Obj_3_Extended_t;
+
+// Collision detection warning object information
+// def @Obj_4_Warning CAN Message (1582 0x62e)
+#define Obj_4_Warning_IDE (0U)
+#define Obj_4_Warning_DLC (4U)
+#define Obj_4_Warning_CANID (0x62e)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Region bit field with collision detection
+  uint8_t Obj_CollDetRegionBitfield;         //      Bits= 8
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Region bit field with collision detection
+  uint8_t Obj_CollDetRegionBitfield;         //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+} Obj_4_Warning_t;
+
+// Firmware version
+// def @VersionID CAN Message (1824 0x720)
+#define VersionID_IDE (0U)
+#define VersionID_DLC (4U)
+#define VersionID_CANID (0x720)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+  // Major Release Number
+  uint8_t Version_MajorRelease;              //      Bits= 8
+
+  // Minor Release Number
+  uint8_t Version_MinorRelease;              //      Bits= 8
+
+  // Patch Level
+  uint8_t Version_PatchLevel;                //      Bits= 8
+
+  // 
+  // 
+  //  1 : "Power Reduction is demanded"
+  //  0 : "International Version"
+  // 
+  uint8_t Version_CountryCode : 1;           //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Description for the value '0x1'"
+  //  0 : "Standard Range 196m-260m"
+  // 
+  uint8_t Version_ExtendedRange : 1;         //      Bits= 1
+
+#else
+
+  // Major Release Number
+  uint8_t Version_MajorRelease;              //      Bits= 8
+
+  // Minor Release Number
+  uint8_t Version_MinorRelease;              //      Bits= 8
+
+  // Patch Level
+  uint8_t Version_PatchLevel;                //      Bits= 8
+
+  // 
+  // 
+  //  1 : "Power Reduction is demanded"
+  //  0 : "International Version"
+  // 
+  uint8_t Version_CountryCode;               //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Description for the value '0x1'"
+  //  0 : "Standard Range 196m-260m"
+  // 
+  uint8_t Version_ExtendedRange;             //      Bits= 1
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+} VersionID_t;
+
+// General Cluster information
+// def @Cluster_1_General CAN Message (1825 0x721)
+#define Cluster_1_General_IDE (0U)
+#define Cluster_1_General_DLC (8U)
+#define Cluster_1_General_CANID (0x721)
+// signal: @Cluster_DistLong_ro
+#define ARS408_CAN_DATABASE_CH2_Cluster_DistLong_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_Cluster_DistLong_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_Cluster_DistLong_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @Cluster_DistLat_ro
+#define ARS408_CAN_DATABASE_CH2_Cluster_DistLat_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH2_Cluster_DistLat_ro_toS(x) ( (uint16_t) (((x) - (-102.300000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH2_Cluster_DistLat_ro_fromS(x) ( (((x) * (0.200000)) + (-102.300000)) )
+// signal: @Cluster_VrelLong_ro
+#define ARS408_CAN_DATABASE_CH2_Cluster_VrelLong_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH2_Cluster_VrelLong_ro_toS(x) ( (uint16_t) (((x) - (-128.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH2_Cluster_VrelLong_ro_fromS(x) ( (((x) * (0.250000)) + (-128.000000)) )
+// signal: @Cluster_VrelLat_ro
+#define ARS408_CAN_DATABASE_CH2_Cluster_VrelLat_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH2_Cluster_VrelLat_ro_toS(x) ( (uint16_t) (((x) - (-64.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH2_Cluster_VrelLat_ro_fromS(x) ( (((x) * (0.250000)) + (-64.000000)) )
+// signal: @Cluster_RCS_ro
+#define ARS408_CAN_DATABASE_CH2_Cluster_RCS_ro_CovFactor (0.500000)
+#define ARS408_CAN_DATABASE_CH2_Cluster_RCS_ro_toS(x) ( (uint8_t) (((x) - (-64.000000)) / (0.500000)) )
+#define ARS408_CAN_DATABASE_CH2_Cluster_RCS_ro_fromS(x) ( (((x) * (0.500000)) + (-64.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  uint16_t Cluster_DistLong_ro;              //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t Cluster_DistLat_ro;               //      Bits=10 Offset= -102.300000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLong_ro;              //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLat_ro;               //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // Cluster dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Cluster_DynProp : 3;               //      Bits= 3
+
+  uint8_t Cluster_RCS_ro;                    //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Cluster_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#else
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  uint16_t Cluster_DistLong_ro;              //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t Cluster_DistLat_ro;               //      Bits=10 Offset= -102.300000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLong_ro;              //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLat_ro;               //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+  // Cluster dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Cluster_DynProp;                   //      Bits= 3
+
+  uint8_t Cluster_RCS_ro;                    //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+  sigfloat_t Cluster_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH2_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+} Cluster_1_General_t;
+
+// Quality Cluster information
+// def @Cluster_2_Quality CAN Message (1826 0x722)
+#define Cluster_2_Quality_IDE (0U)
+#define Cluster_2_Quality_DLC (5U)
+#define Cluster_2_Quality_CANID (0x722)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  // Cluster lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLat_rms : 5;           //      Bits= 5 Unit:'m'
+
+  // Cluster longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLong_rms : 5;          //      Bits= 5 Unit:'m'
+
+  // Cluster relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLat_rms : 5;           //      Bits= 5 Unit:'m/s'
+
+  // Cluster relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLong_rms : 5;          //      Bits= 5 Unit:'m/s'
+
+  // Cluster false alarm probability
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Cluster_PdH0 : 3;                  //      Bits= 3
+
+  // Cluster Doppler ambiguity status
+  //  4 : "Stationary candidate"
+  //  3 : "Unambiguous"
+  //  2 : "Staggered ramp"
+  //  1 : "Ambiguous"
+  //  0 : "Invalid"
+  // 
+  uint8_t Cluster_AmbigState : 3;            //      Bits= 3
+
+  // Cluster invalid state
+  //  17 : "Valid suspicious angle"
+  //  16 : "Valid multi-target"
+  //  15 : "Valid near above 95 m"
+  //  14 : "Invalid harmonics "
+  //  13 : "reserved"
+  //  12 : "Valid artefact "
+  //  11 : "Valid but no local maximum"
+  //  10 : "Valid 50 deg artefact"
+  //  9 : "Valid child"
+  //  8 : "Valid with elevation"
+  //  7 : "Invalid outside field of view"
+  //  6 : "Invalid mirror"
+  //  5 : "reserved"
+  //  4 : "Valid with low RCS"
+  //  3 : "Invalid far not confirmed"
+  //  2 : "Invalid nearfield"
+  //  1 : "Invalid with too low RCS"
+  //  0 : "Valid"
+  // 
+  uint8_t Cluster_InvalidState : 5;          //      Bits= 5
+
+#else
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  // Cluster lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLat_rms;               //      Bits= 5 Unit:'m'
+
+  // Cluster longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLong_rms;              //      Bits= 5 Unit:'m'
+
+  // Cluster relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLat_rms;               //      Bits= 5 Unit:'m/s'
+
+  // Cluster relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLong_rms;              //      Bits= 5 Unit:'m/s'
+
+  // Cluster false alarm probability
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Cluster_PdH0;                      //      Bits= 3
+
+  // Cluster Doppler ambiguity status
+  //  4 : "Stationary candidate"
+  //  3 : "Unambiguous"
+  //  2 : "Staggered ramp"
+  //  1 : "Ambiguous"
+  //  0 : "Invalid"
+  // 
+  uint8_t Cluster_AmbigState;                //      Bits= 3
+
+  // Cluster invalid state
+  //  17 : "Valid suspicious angle"
+  //  16 : "Valid multi-target"
+  //  15 : "Valid near above 95 m"
+  //  14 : "Invalid harmonics "
+  //  13 : "reserved"
+  //  12 : "Valid artefact "
+  //  11 : "Valid but no local maximum"
+  //  10 : "Valid 50 deg artefact"
+  //  9 : "Valid child"
+  //  8 : "Valid with elevation"
+  //  7 : "Invalid outside field of view"
+  //  6 : "Invalid mirror"
+  //  5 : "reserved"
+  //  4 : "Valid with low RCS"
+  //  3 : "Invalid far not confirmed"
+  //  2 : "Invalid nearfield"
+  //  1 : "Invalid with too low RCS"
+  //  0 : "Valid"
+  // 
+  uint8_t Cluster_InvalidState;              //      Bits= 5
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH2_USE_DIAG_MONITORS
+
+} Cluster_2_Quality_t;
+
+// Function signatures
+
+uint32_t Unpack_CollDetRelayCtrl_ARS408_can_database_ch2(CollDetRelayCtrl_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch2(CollDetRelayCtrl_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch2(CollDetRelayCtrl_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_RadarConfiguration_ARS408_can_database_ch2(RadarConfiguration_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch2(RadarConfiguration_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch2(RadarConfiguration_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_RadarState_ARS408_can_database_ch2(RadarState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+uint32_t Pack_RadarState_ARS408_can_database_ch2(RadarState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_RadarState_ARS408_can_database_ch2(RadarState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_FilterCfg_ARS408_can_database_ch2(FilterCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+uint32_t Pack_FilterCfg_ARS408_can_database_ch2(FilterCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterCfg_ARS408_can_database_ch2(FilterCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Header_ARS408_can_database_ch2(FilterState_Header_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch2(FilterState_Header_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch2(FilterState_Header_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Cfg_ARS408_can_database_ch2(FilterState_Cfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch2(FilterState_Cfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch2(FilterState_Cfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_SpeedInformation_ARS408_can_database_ch2(SpeedInformation_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch2(SpeedInformation_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch2(SpeedInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_YawRateInformation_ARS408_can_database_ch2(YawRateInformation_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch2(YawRateInformation_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch2(YawRateInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetState_ARS408_can_database_ch2(CollDetState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+uint32_t Pack_CollDetState_ARS408_can_database_ch2(CollDetState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetState_ARS408_can_database_ch2(CollDetState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetCfg_ARS408_can_database_ch2(CollDetCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch2(CollDetCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch2(CollDetCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionCfg_ARS408_can_database_ch2(CollDetRegionCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch2(CollDetRegionCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch2(CollDetRegionCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionState_ARS408_can_database_ch2(CollDetRegionState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch2(CollDetRegionState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch2(CollDetRegionState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_0_Status_ARS408_can_database_ch2(Cluster_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch2(Cluster_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch2(Cluster_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_0_Status_ARS408_can_database_ch2(Obj_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch2(Obj_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch2(Obj_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_1_General_ARS408_can_database_ch2(Obj_1_General_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch2(Obj_1_General_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch2(Obj_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_2_Quality_ARS408_can_database_ch2(Obj_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch2(Obj_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch2(Obj_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_3_Extended_ARS408_can_database_ch2(Obj_3_Extended_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch2(Obj_3_Extended_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch2(Obj_3_Extended_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_4_Warning_ARS408_can_database_ch2(Obj_4_Warning_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch2(Obj_4_Warning_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch2(Obj_4_Warning_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_VersionID_ARS408_can_database_ch2(VersionID_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+uint32_t Pack_VersionID_ARS408_can_database_ch2(VersionID_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_VersionID_ARS408_can_database_ch2(VersionID_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_1_General_ARS408_can_database_ch2(Cluster_1_General_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch2(Cluster_1_General_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch2(Cluster_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_2_Quality_ARS408_can_database_ch2(Cluster_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch2(Cluster_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch2(Cluster_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH2_USE_CANSTRUCT
+
+#ifdef __cplusplus
+}
+#endif

+ 96 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch3-binutil.c

@@ -0,0 +1,96 @@
+#include "ars408_can_database_ch3-binutil.h"
+
+#ifdef __DEF_ARS408_CAN_DATABASE_CH3__
+
+ars408_can_database_ch3_rx_t ars408_can_database_ch3_rx;
+
+#endif // __DEF_ARS408_CAN_DATABASE_CH3__
+
+uint32_t ars408_can_database_ch3_Receive(ars408_can_database_ch3_rx_t* _m, const uint8_t* _d, uint32_t _id, uint8_t dlc_)
+{
+ uint32_t recid = 0;
+ if ((_id >= 0x8U) && (_id < 0x431U)) {
+  if ((_id >= 0x8U) && (_id < 0x234U)) {
+   if ((_id >= 0x8U) && (_id < 0x231U)) {
+    if (_id == 0x8U) {
+     recid = Unpack_CollDetRelayCtrl_ARS408_can_database_ch3(&(_m->CollDetRelayCtrl), _d, dlc_);
+    } else if (_id == 0x230U) {
+     recid = Unpack_RadarConfiguration_ARS408_can_database_ch3(&(_m->RadarConfiguration), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x231U) {
+     recid = Unpack_RadarState_ARS408_can_database_ch3(&(_m->RadarState), _d, dlc_);
+    } else {
+     if (_id == 0x232U) {
+      recid = Unpack_FilterCfg_ARS408_can_database_ch3(&(_m->FilterCfg), _d, dlc_);
+     } else if (_id == 0x233U) {
+      recid = Unpack_FilterState_Header_ARS408_can_database_ch3(&(_m->FilterState_Header), _d, dlc_);
+     }
+    }
+   }
+  } else {
+   if ((_id >= 0x234U) && (_id < 0x331U)) {
+    if (_id == 0x234U) {
+     recid = Unpack_FilterState_Cfg_ARS408_can_database_ch3(&(_m->FilterState_Cfg), _d, dlc_);
+    } else if (_id == 0x330U) {
+     recid = Unpack_SpeedInformation_ARS408_can_database_ch3(&(_m->SpeedInformation), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x331U) {
+     recid = Unpack_YawRateInformation_ARS408_can_database_ch3(&(_m->YawRateInformation), _d, dlc_);
+    } else {
+     if (_id == 0x408U) {
+      recid = Unpack_CollDetState_ARS408_can_database_ch3(&(_m->CollDetState), _d, dlc_);
+     } else if (_id == 0x430U) {
+      recid = Unpack_CollDetCfg_ARS408_can_database_ch3(&(_m->CollDetCfg), _d, dlc_);
+     }
+    }
+   }
+  }
+ } else {
+  if ((_id >= 0x431U) && (_id < 0x63CU)) {
+   if ((_id >= 0x431U) && (_id < 0x630U)) {
+    if (_id == 0x431U) {
+     recid = Unpack_CollDetRegionCfg_ARS408_can_database_ch3(&(_m->CollDetRegionCfg), _d, dlc_);
+    } else if (_id == 0x432U) {
+     recid = Unpack_CollDetRegionState_ARS408_can_database_ch3(&(_m->CollDetRegionState), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x630U) {
+     recid = Unpack_Cluster_0_Status_ARS408_can_database_ch3(&(_m->Cluster_0_Status), _d, dlc_);
+    } else {
+     if (_id == 0x63AU) {
+      recid = Unpack_Obj_0_Status_ARS408_can_database_ch3(&(_m->Obj_0_Status), _d, dlc_);
+     } else if (_id == 0x63BU) {
+      recid = Unpack_Obj_1_General_ARS408_can_database_ch3(&(_m->Obj_1_General), _d, dlc_);
+     }
+    }
+   }
+  } else {
+   if ((_id >= 0x63CU) && (_id < 0x730U)) {
+    if (_id == 0x63CU) {
+     recid = Unpack_Obj_2_Quality_ARS408_can_database_ch3(&(_m->Obj_2_Quality), _d, dlc_);
+    } else {
+     if (_id == 0x63DU) {
+      recid = Unpack_Obj_3_Extended_ARS408_can_database_ch3(&(_m->Obj_3_Extended), _d, dlc_);
+     } else if (_id == 0x63EU) {
+      recid = Unpack_Obj_4_Warning_ARS408_can_database_ch3(&(_m->Obj_4_Warning), _d, dlc_);
+     }
+    }
+   } else {
+    if (_id == 0x730U) {
+     recid = Unpack_VersionID_ARS408_can_database_ch3(&(_m->VersionID), _d, dlc_);
+    } else {
+     if (_id == 0x731U) {
+      recid = Unpack_Cluster_1_General_ARS408_can_database_ch3(&(_m->Cluster_1_General), _d, dlc_);
+     } else if (_id == 0x732U) {
+      recid = Unpack_Cluster_2_Quality_ARS408_can_database_ch3(&(_m->Cluster_2_Quality), _d, dlc_);
+     }
+    }
+   }
+  }
+ }
+
+ return recid;
+}
+

+ 53 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch3-binutil.h

@@ -0,0 +1,53 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "dbccodeconf.h"
+
+#include "ars408_can_database_ch3.h"
+
+// This version definition comes from main driver version and
+// can be compared in user code space for strict compatibility test
+#define VER_ARS408_CAN_DATABASE_CH3_MAJ (0U)
+#define VER_ARS408_CAN_DATABASE_CH3_MIN (0U)
+
+typedef struct
+{
+  CollDetRelayCtrl_t CollDetRelayCtrl;
+  RadarConfiguration_t RadarConfiguration;
+  RadarState_t RadarState;
+  FilterCfg_t FilterCfg;
+  FilterState_Header_t FilterState_Header;
+  FilterState_Cfg_t FilterState_Cfg;
+  SpeedInformation_t SpeedInformation;
+  YawRateInformation_t YawRateInformation;
+  CollDetState_t CollDetState;
+  CollDetCfg_t CollDetCfg;
+  CollDetRegionCfg_t CollDetRegionCfg;
+  CollDetRegionState_t CollDetRegionState;
+  Cluster_0_Status_t Cluster_0_Status;
+  Obj_0_Status_t Obj_0_Status;
+  Obj_1_General_t Obj_1_General;
+  Obj_2_Quality_t Obj_2_Quality;
+  Obj_3_Extended_t Obj_3_Extended;
+  Obj_4_Warning_t Obj_4_Warning;
+  VersionID_t VersionID;
+  Cluster_1_General_t Cluster_1_General;
+  Cluster_2_Quality_t Cluster_2_Quality;
+} ars408_can_database_ch3_rx_t;
+
+// There is no any TX mapped massage.
+
+uint32_t ars408_can_database_ch3_Receive(ars408_can_database_ch3_rx_t* m, const uint8_t* d, uint32_t msgid, uint8_t dlc);
+
+#ifdef __DEF_ARS408_CAN_DATABASE_CH3__
+
+extern ars408_can_database_ch3_rx_t ars408_can_database_ch3_rx;
+
+#endif // __DEF_ARS408_CAN_DATABASE_CH3__
+
+#ifdef __cplusplus
+}
+#endif

+ 109 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch3-config.h

@@ -0,0 +1,109 @@
+#pragma once
+
+/* include common dbccode configurations */
+#include "dbccodeconf.h"
+
+
+/* ------------------------------------------------------------------------- *
+  This define enables using CAN message structs with bit-fielded signals
+  layout.
+
+  Note(!): bit-feild was not tested properly. */
+
+/* #define ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL */
+
+
+/* ------------------------------------------------------------------------- *
+  This macro enables using CAN message descriptive struct packing functions
+  (by default signature of pack function intakes a few simple typed params
+  for loading data, len, etc). To compile you need to define the struct
+  __CoderDbcCanFrame_t__ which must have fields:
+
+    u32 MsgId (CAN Frame message ID)
+    u8 DLC (CAN Frame payload length field)
+    u8 Data[8] (CAN Frame payload data)
+    u8 IDE (CAN Frame Extended (1) / Standard (0) ID type)
+
+  This struct definition have to be placed (or be included) in dbccodeconf.h */
+
+/* #define ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT */
+
+
+/* ------------------------------------------------------------------------- *
+  All the signals which have values of factor != 1 or offset != 0
+  will be named in message struct with posfix '_ro'. Pack to payload
+  operations will be made on this signal value as well as unpack from payload.
+
+  USE_SIGFLOAT macro makes some difference:
+
+  1. All the '_ro' fields will have a pair field with '_phys' postfix.
+  If only offset != 0 is true then the type of '_phys' signal is the same
+  as '_ro' signal. In other case the type will be @sigfloat_t which
+  have to be defined in user dbccodeconf.h
+
+  2. In pack function '_ro' signal will be rewritten by '_phys' signal, which
+  requires from user to use ONLY '_phys' signal for packing frame
+
+  3. In unpack function '_phys' signal will be written by '_ro' signal.
+  User have to use '_phys' signal to read physical value. */
+
+/* #define ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT */
+
+
+/* ------------------------------------------------------------------------- *
+  Note(!) that the "canmonitorutil.h" must be accessed in include path:
+
+  This macro adds:
+
+  - monitor field @mon1 to message struct
+
+  - capture system tick in unpack function and save value to mon1 field
+  to provide to user better missing frame detection code. For this case
+  user must provide function declared in canmonitorutil.h - GetSysTick()
+  which may return 1ms uptime.
+
+  - calling function FMon_***  (from 'fmon' driver) inside unpack function
+  which is empty by default and have to be filled by user if
+  tests for DLC, rolling, checksum are necessary */
+
+/* #define ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS */
+
+
+/* ------------------------------------------------------------------------- *
+  When monitor using is enabled (ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS) and define below
+  uncommented, additional signal will be added to message struct. ***_expt:
+  expected rolling counter, to perform monitoring rolling counter sequence
+  automatically (result may be tested in dedicated Fmon_*** function) */
+
+/* #define ARS408_CAN_DATABASE_CH3_AUTO_ROLL */
+
+
+/* ------------------------------------------------------------------------- *
+  When monitor using is enabled (ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS) and define below
+  uncommented, frame checksum signal may be handled automatically.
+
+  The signal which may be marked as checksum signal must have substring
+  with next format:
+    <Checksum:XOR8:3>
+
+  where:
+
+  - "Checksum": constant marker word
+
+  - "XOR8": type of method, this text will be passed to GetFrameHash
+  (canmonitorutil.h) function as is, the best use case is to define 'enum
+  DbcCanCrcMethods' in canmonitorutil.h file with all possible
+  checksum algorithms (e.g. XOR8, XOR4 etc)
+
+  - "3": optional value that will be passed to GetFrameHash as integer value
+
+  Function GetFrameHash have to be implemented by user
+
+  In pack function checksum signal will be calculated automatically
+  and loaded to payload
+
+  In unpack function checksum signal is checked with calculated.
+  (result may be tested in dedicated Fmon_*** function).
+
+/* #define ARS408_CAN_DATABASE_CH3_AUTO_CSM */
+

+ 115 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch3-fmon.c

@@ -0,0 +1,115 @@
+#include "ars408_can_database_ch3-fmon.h"
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+/*
+Put the monitor function content here, keep in mind -
+next generation will completely clear all manually added code (!)
+*/
+
+void FMon_CollDetRelayCtrl_ars408_can_database_ch3(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_RadarConfiguration_ars408_can_database_ch3(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_RadarState_ars408_can_database_ch3(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterCfg_ars408_can_database_ch3(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterState_Header_ars408_can_database_ch3(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterState_Cfg_ars408_can_database_ch3(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_SpeedInformation_ars408_can_database_ch3(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_YawRateInformation_ars408_can_database_ch3(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetState_ars408_can_database_ch3(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetCfg_ars408_can_database_ch3(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetRegionCfg_ars408_can_database_ch3(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetRegionState_ars408_can_database_ch3(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_0_Status_ars408_can_database_ch3(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_0_Status_ars408_can_database_ch3(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_1_General_ars408_can_database_ch3(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_2_Quality_ars408_can_database_ch3(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_3_Extended_ars408_can_database_ch3(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_4_Warning_ars408_can_database_ch3(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_VersionID_ars408_can_database_ch3(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_1_General_ars408_can_database_ch3(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_2_Quality_ars408_can_database_ch3(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS

+ 49 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch3-fmon.h

@@ -0,0 +1,49 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// DBC file version
+#define VER_ARS408_CAN_DATABASE_CH3_MAJ_FMON (0U)
+#define VER_ARS408_CAN_DATABASE_CH3_MIN_FMON (0U)
+
+#include "ars408_can_database_ch3-config.h"
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+#include "canmonitorutil.h"
+/*
+This file contains the prototypes of all the functions that will be called
+from each Unpack_*name* function to detect DBC related errors
+It is the user responsibility to defined these functions in the
+separated .c file. If it won't be done the linkage error will happen
+*/
+
+void FMon_CollDetRelayCtrl_ars408_can_database_ch3(FrameMonitor_t* _mon);
+void FMon_RadarConfiguration_ars408_can_database_ch3(FrameMonitor_t* _mon);
+void FMon_RadarState_ars408_can_database_ch3(FrameMonitor_t* _mon);
+void FMon_FilterCfg_ars408_can_database_ch3(FrameMonitor_t* _mon);
+void FMon_FilterState_Header_ars408_can_database_ch3(FrameMonitor_t* _mon);
+void FMon_FilterState_Cfg_ars408_can_database_ch3(FrameMonitor_t* _mon);
+void FMon_SpeedInformation_ars408_can_database_ch3(FrameMonitor_t* _mon);
+void FMon_YawRateInformation_ars408_can_database_ch3(FrameMonitor_t* _mon);
+void FMon_CollDetState_ars408_can_database_ch3(FrameMonitor_t* _mon);
+void FMon_CollDetCfg_ars408_can_database_ch3(FrameMonitor_t* _mon);
+void FMon_CollDetRegionCfg_ars408_can_database_ch3(FrameMonitor_t* _mon);
+void FMon_CollDetRegionState_ars408_can_database_ch3(FrameMonitor_t* _mon);
+void FMon_Cluster_0_Status_ars408_can_database_ch3(FrameMonitor_t* _mon);
+void FMon_Obj_0_Status_ars408_can_database_ch3(FrameMonitor_t* _mon);
+void FMon_Obj_1_General_ars408_can_database_ch3(FrameMonitor_t* _mon);
+void FMon_Obj_2_Quality_ars408_can_database_ch3(FrameMonitor_t* _mon);
+void FMon_Obj_3_Extended_ars408_can_database_ch3(FrameMonitor_t* _mon);
+void FMon_Obj_4_Warning_ars408_can_database_ch3(FrameMonitor_t* _mon);
+void FMon_VersionID_ars408_can_database_ch3(FrameMonitor_t* _mon);
+void FMon_Cluster_1_General_ars408_can_database_ch3(FrameMonitor_t* _mon);
+void FMon_Cluster_2_Quality_ars408_can_database_ch3(FrameMonitor_t* _mon);
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+#ifdef __cplusplus
+}
+#endif

+ 1841 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch3.c

@@ -0,0 +1,1841 @@
+#include "ars408_can_database_ch3.h"
+
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+// Function prototypes to be called each time CAN frame is unpacked
+// FMon function may detect RC, CRC or DLC violation 
+#include "ars408_can_database_ch3-fmon.h"
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+
+uint32_t Unpack_CollDetRelayCtrl_ARS408_can_database_ch3(CollDetRelayCtrl_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRelayCtrl_Param = (_d[0] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRelayCtrl_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRelayCtrl_ars408_can_database_ch3(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+ return CollDetRelayCtrl_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch3(CollDetRelayCtrl_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRelayCtrl_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->CollDetRelayCtrl_Param & (0xFFU));
+
+  cframe->MsgId = CollDetRelayCtrl_CANID;
+  cframe->DLC = CollDetRelayCtrl_DLC;
+  cframe->IDE = CollDetRelayCtrl_IDE;
+  return CollDetRelayCtrl_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch3(CollDetRelayCtrl_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRelayCtrl_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->CollDetRelayCtrl_Param & (0xFFU));
+
+  *_len = CollDetRelayCtrl_DLC;
+  *_ide = CollDetRelayCtrl_IDE;
+  return CollDetRelayCtrl_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_RadarConfiguration_ARS408_can_database_ch3(RadarConfiguration_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarCfg_MaxDistance_valid = (_d[0] & (0x01U));
+  _m->RadarCfg_SensorID_valid = ((_d[0] >> 1) & (0x01U));
+  _m->RadarCfg_RadarPower_valid = ((_d[0] >> 2) & (0x01U));
+  _m->RadarCfg_OutputType_valid = ((_d[0] >> 3) & (0x01U));
+  _m->RadarCfg_SendQuality_valid = ((_d[0] >> 4) & (0x01U));
+  _m->RadarCfg_SendExtInfo_valid = ((_d[0] >> 5) & (0x01U));
+  _m->RadarCfg_SortIndex_valid = ((_d[0] >> 6) & (0x01U));
+  _m->RadarCfg_StoreInNVM_valid = ((_d[0] >> 7) & (0x01U));
+  _m->RadarCfg_MaxDistance_ro = ((_d[1] & (0xFFU)) << 2) | ((_d[2] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_phys = ARS408_CAN_DATABASE_CH3_RadarCfg_MaxDistance_ro_fromS(_m->RadarCfg_MaxDistance_ro);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->RadarCfg_SensorID = (_d[4] & (0x07U));
+  _m->RadarCfg_OutputType = ((_d[4] >> 3) & (0x03U));
+  _m->RadarCfg_RadarPower = ((_d[4] >> 5) & (0x07U));
+  _m->RadarCfg_CtrlRelay_valid = (_d[5] & (0x01U));
+  _m->RadarCfg_CtrlRelay = ((_d[5] >> 1) & (0x01U));
+  _m->RadarCfg_SendQuality = ((_d[5] >> 2) & (0x01U));
+  _m->RadarCfg_SendExtInfo = ((_d[5] >> 3) & (0x01U));
+  _m->RadarCfg_SortIndex = ((_d[5] >> 4) & (0x07U));
+  _m->RadarCfg_StoreInNVM = ((_d[5] >> 7) & (0x01U));
+  _m->RadarCfg_RCS_Threshold_Valid = (_d[6] & (0x01U));
+  _m->RadarCfg_RCS_Threshold = ((_d[6] >> 1) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < RadarConfiguration_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_RadarConfiguration_ars408_can_database_ch3(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+ return RadarConfiguration_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch3(RadarConfiguration_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < RadarConfiguration_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_ro = ARS408_CAN_DATABASE_CH3_RadarCfg_MaxDistance_ro_toS(_m->RadarCfg_MaxDistance_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->RadarCfg_MaxDistance_valid & (0x01U)) | ((_m->RadarCfg_SensorID_valid & (0x01U)) << 1) | ((_m->RadarCfg_RadarPower_valid & (0x01U)) << 2) | ((_m->RadarCfg_OutputType_valid & (0x01U)) << 3) | ((_m->RadarCfg_SendQuality_valid & (0x01U)) << 4) | ((_m->RadarCfg_SendExtInfo_valid & (0x01U)) << 5) | ((_m->RadarCfg_SortIndex_valid & (0x01U)) << 6) | ((_m->RadarCfg_StoreInNVM_valid & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->RadarCfg_MaxDistance_ro >> 2) & (0xFFU));
+  cframe->Data[2] |= ((_m->RadarCfg_MaxDistance_ro & (0x03U)) << 6);
+  cframe->Data[4] |= (_m->RadarCfg_SensorID & (0x07U)) | ((_m->RadarCfg_OutputType & (0x03U)) << 3) | ((_m->RadarCfg_RadarPower & (0x07U)) << 5);
+  cframe->Data[5] |= (_m->RadarCfg_CtrlRelay_valid & (0x01U)) | ((_m->RadarCfg_CtrlRelay & (0x01U)) << 1) | ((_m->RadarCfg_SendQuality & (0x01U)) << 2) | ((_m->RadarCfg_SendExtInfo & (0x01U)) << 3) | ((_m->RadarCfg_SortIndex & (0x07U)) << 4) | ((_m->RadarCfg_StoreInNVM & (0x01U)) << 7);
+  cframe->Data[6] |= (_m->RadarCfg_RCS_Threshold_Valid & (0x01U)) | ((_m->RadarCfg_RCS_Threshold & (0x07U)) << 1);
+
+  cframe->MsgId = RadarConfiguration_CANID;
+  cframe->DLC = RadarConfiguration_DLC;
+  cframe->IDE = RadarConfiguration_IDE;
+  return RadarConfiguration_CANID;
+}
+
+#else
+
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch3(RadarConfiguration_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < RadarConfiguration_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_ro = ARS408_CAN_DATABASE_CH3_RadarCfg_MaxDistance_ro_toS(_m->RadarCfg_MaxDistance_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _d[0] |= (_m->RadarCfg_MaxDistance_valid & (0x01U)) | ((_m->RadarCfg_SensorID_valid & (0x01U)) << 1) | ((_m->RadarCfg_RadarPower_valid & (0x01U)) << 2) | ((_m->RadarCfg_OutputType_valid & (0x01U)) << 3) | ((_m->RadarCfg_SendQuality_valid & (0x01U)) << 4) | ((_m->RadarCfg_SendExtInfo_valid & (0x01U)) << 5) | ((_m->RadarCfg_SortIndex_valid & (0x01U)) << 6) | ((_m->RadarCfg_StoreInNVM_valid & (0x01U)) << 7);
+  _d[1] |= ((_m->RadarCfg_MaxDistance_ro >> 2) & (0xFFU));
+  _d[2] |= ((_m->RadarCfg_MaxDistance_ro & (0x03U)) << 6);
+  _d[4] |= (_m->RadarCfg_SensorID & (0x07U)) | ((_m->RadarCfg_OutputType & (0x03U)) << 3) | ((_m->RadarCfg_RadarPower & (0x07U)) << 5);
+  _d[5] |= (_m->RadarCfg_CtrlRelay_valid & (0x01U)) | ((_m->RadarCfg_CtrlRelay & (0x01U)) << 1) | ((_m->RadarCfg_SendQuality & (0x01U)) << 2) | ((_m->RadarCfg_SendExtInfo & (0x01U)) << 3) | ((_m->RadarCfg_SortIndex & (0x07U)) << 4) | ((_m->RadarCfg_StoreInNVM & (0x01U)) << 7);
+  _d[6] |= (_m->RadarCfg_RCS_Threshold_Valid & (0x01U)) | ((_m->RadarCfg_RCS_Threshold & (0x07U)) << 1);
+
+  *_len = RadarConfiguration_DLC;
+  *_ide = RadarConfiguration_IDE;
+  return RadarConfiguration_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_RadarState_ARS408_can_database_ch3(RadarState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarState_NVMReadStatus = ((_d[0] >> 6) & (0x01U));
+  _m->RadarState_NVMwriteStatus = ((_d[0] >> 7) & (0x01U));
+  _m->RadarState_MaxDistanceCfg_ro = ((_d[1] & (0xFFU)) << 2) | ((_d[2] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_phys = ARS408_CAN_DATABASE_CH3_RadarState_MaxDistanceCfg_ro_fromS(_m->RadarState_MaxDistanceCfg_ro);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->RadarState_Voltage_Error = ((_d[2] >> 1) & (0x01U));
+  _m->RadarState_Temporary_Error = ((_d[2] >> 2) & (0x01U));
+  _m->RadarState_Temperature_Error = ((_d[2] >> 3) & (0x01U));
+  _m->RadarState_Interference = ((_d[2] >> 4) & (0x01U));
+  _m->RadarState_Persistent_Error = ((_d[2] >> 5) & (0x01U));
+  _m->RadarState_RadarPowerCfg = ((_d[3] & (0x03U)) << 1) | ((_d[4] >> 7) & (0x01U));
+  _m->RadarState_SensorID = (_d[4] & (0x07U));
+  _m->RadarState_SortIndex = ((_d[4] >> 4) & (0x07U));
+  _m->RadarState_CtrlRelayCfg = ((_d[5] >> 1) & (0x01U));
+  _m->RadarState_OutputTypeCfg = ((_d[5] >> 2) & (0x03U));
+  _m->RadarState_SendQualityCfg = ((_d[5] >> 4) & (0x01U));
+  _m->RadarState_SendExtInfoCfg = ((_d[5] >> 5) & (0x01U));
+  _m->RadarState_MotionRxState = ((_d[5] >> 6) & (0x03U));
+  _m->RadarState_RCS_Threshold = ((_d[7] >> 2) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < RadarState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_RadarState_ars408_can_database_ch3(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+ return RadarState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Pack_RadarState_ARS408_can_database_ch3(RadarState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < RadarState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_ro = ARS408_CAN_DATABASE_CH3_RadarState_MaxDistanceCfg_ro_toS(_m->RadarState_MaxDistanceCfg_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarState_NVMReadStatus & (0x01U)) << 6) | ((_m->RadarState_NVMwriteStatus & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->RadarState_MaxDistanceCfg_ro >> 2) & (0xFFU));
+  cframe->Data[2] |= ((_m->RadarState_MaxDistanceCfg_ro & (0x03U)) << 6) | ((_m->RadarState_Voltage_Error & (0x01U)) << 1) | ((_m->RadarState_Temporary_Error & (0x01U)) << 2) | ((_m->RadarState_Temperature_Error & (0x01U)) << 3) | ((_m->RadarState_Interference & (0x01U)) << 4) | ((_m->RadarState_Persistent_Error & (0x01U)) << 5);
+  cframe->Data[3] |= ((_m->RadarState_RadarPowerCfg >> 1) & (0x03U));
+  cframe->Data[4] |= ((_m->RadarState_RadarPowerCfg & (0x01U)) << 7) | (_m->RadarState_SensorID & (0x07U)) | ((_m->RadarState_SortIndex & (0x07U)) << 4);
+  cframe->Data[5] |= ((_m->RadarState_CtrlRelayCfg & (0x01U)) << 1) | ((_m->RadarState_OutputTypeCfg & (0x03U)) << 2) | ((_m->RadarState_SendQualityCfg & (0x01U)) << 4) | ((_m->RadarState_SendExtInfoCfg & (0x01U)) << 5) | ((_m->RadarState_MotionRxState & (0x03U)) << 6);
+  cframe->Data[7] |= ((_m->RadarState_RCS_Threshold & (0x07U)) << 2);
+
+  cframe->MsgId = RadarState_CANID;
+  cframe->DLC = RadarState_DLC;
+  cframe->IDE = RadarState_IDE;
+  return RadarState_CANID;
+}
+
+#else
+
+uint32_t Pack_RadarState_ARS408_can_database_ch3(RadarState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < RadarState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_ro = ARS408_CAN_DATABASE_CH3_RadarState_MaxDistanceCfg_ro_toS(_m->RadarState_MaxDistanceCfg_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarState_NVMReadStatus & (0x01U)) << 6) | ((_m->RadarState_NVMwriteStatus & (0x01U)) << 7);
+  _d[1] |= ((_m->RadarState_MaxDistanceCfg_ro >> 2) & (0xFFU));
+  _d[2] |= ((_m->RadarState_MaxDistanceCfg_ro & (0x03U)) << 6) | ((_m->RadarState_Voltage_Error & (0x01U)) << 1) | ((_m->RadarState_Temporary_Error & (0x01U)) << 2) | ((_m->RadarState_Temperature_Error & (0x01U)) << 3) | ((_m->RadarState_Interference & (0x01U)) << 4) | ((_m->RadarState_Persistent_Error & (0x01U)) << 5);
+  _d[3] |= ((_m->RadarState_RadarPowerCfg >> 1) & (0x03U));
+  _d[4] |= ((_m->RadarState_RadarPowerCfg & (0x01U)) << 7) | (_m->RadarState_SensorID & (0x07U)) | ((_m->RadarState_SortIndex & (0x07U)) << 4);
+  _d[5] |= ((_m->RadarState_CtrlRelayCfg & (0x01U)) << 1) | ((_m->RadarState_OutputTypeCfg & (0x03U)) << 2) | ((_m->RadarState_SendQualityCfg & (0x01U)) << 4) | ((_m->RadarState_SendExtInfoCfg & (0x01U)) << 5) | ((_m->RadarState_MotionRxState & (0x03U)) << 6);
+  _d[7] |= ((_m->RadarState_RCS_Threshold & (0x07U)) << 2);
+
+  *_len = RadarState_DLC;
+  *_ide = RadarState_IDE;
+  return RadarState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_FilterCfg_ARS408_can_database_ch3(FilterCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterCfg_Valid = ((_d[0] >> 1) & (0x01U));
+  _m->FilterCfg_Active = ((_d[0] >> 2) & (0x01U));
+  _m->FilterCfg_Index = ((_d[0] >> 3) & (0x0FU));
+  _m->FilterCfg_Type = ((_d[0] >> 7) & (0x01U));
+  _m->FilterCfg_Min_NofObj = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterCfg_Min_VrelOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VrelOncome_ro_fromS(_m->FilterCfg_Min_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VrelDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VrelDepart_ro_fromS(_m->FilterCfg_Min_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Size_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Min_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Size_ro_fromS(_m->FilterCfg_Min_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_RCS_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Min_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Min_RCS_ro_fromS(_m->FilterCfg_Min_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_ProbExists = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterCfg_Min_Lifetime_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Min_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Lifetime_ro_fromS(_m->FilterCfg_Min_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Azimuth_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Min_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Azimuth_ro_fromS(_m->FilterCfg_Min_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Distance_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Min_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Distance_ro_fromS(_m->FilterCfg_Min_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VXDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Min_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VXDepart_ro_fromS(_m->FilterCfg_Min_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VXOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Min_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VXOncome_ro_fromS(_m->FilterCfg_Min_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VYLeftRight_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Min_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VYLeftRight_ro_fromS(_m->FilterCfg_Min_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VYRightLeft_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Min_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VYRightLeft_ro_fromS(_m->FilterCfg_Min_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Y_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Min_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Y_ro_fromS(_m->FilterCfg_Min_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_X_ro = ((_d[1] & (0x1FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Min_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Min_X_ro_fromS(_m->FilterCfg_Min_X_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_NofObj = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterCfg_Max_Lifetime_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Max_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Lifetime_ro_fromS(_m->FilterCfg_Max_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Distance_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Max_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Distance_ro_fromS(_m->FilterCfg_Max_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Azimuth_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Max_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Azimuth_ro_fromS(_m->FilterCfg_Max_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_ProbExists = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterCfg_Max_RCS_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Max_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Max_RCS_ro_fromS(_m->FilterCfg_Max_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Size_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Max_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Size_ro_fromS(_m->FilterCfg_Max_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VrelDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Max_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VrelDepart_ro_fromS(_m->FilterCfg_Max_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VrelOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Max_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VrelOncome_ro_fromS(_m->FilterCfg_Max_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VXDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Max_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VXDepart_ro_fromS(_m->FilterCfg_Max_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VYLeftRight_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Max_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VYLeftRight_ro_fromS(_m->FilterCfg_Max_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VXOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Max_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VXOncome_ro_fromS(_m->FilterCfg_Max_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VYRightLeft_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Max_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VYRightLeft_ro_fromS(_m->FilterCfg_Max_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Y_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Max_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Y_ro_fromS(_m->FilterCfg_Max_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_X_ro = ((_d[3] & (0x1FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Max_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterCfg_Max_X_ro_fromS(_m->FilterCfg_Max_X_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterCfg_ars408_can_database_ch3(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+ return FilterCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Pack_FilterCfg_ARS408_can_database_ch3(FilterCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VrelOncome_ro_toS(_m->FilterCfg_Min_VrelOncome_phys);
+  _m->FilterCfg_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VrelDepart_ro_toS(_m->FilterCfg_Min_VrelDepart_phys);
+  _m->FilterCfg_Min_Size_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Size_ro_toS(_m->FilterCfg_Min_Size_phys);
+  _m->FilterCfg_Min_RCS_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_RCS_ro_toS(_m->FilterCfg_Min_RCS_phys);
+  _m->FilterCfg_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Lifetime_ro_toS(_m->FilterCfg_Min_Lifetime_phys);
+  _m->FilterCfg_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Azimuth_ro_toS(_m->FilterCfg_Min_Azimuth_phys);
+  _m->FilterCfg_Min_Distance_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Distance_ro_toS(_m->FilterCfg_Min_Distance_phys);
+  _m->FilterCfg_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VXDepart_ro_toS(_m->FilterCfg_Min_VXDepart_phys);
+  _m->FilterCfg_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VXOncome_ro_toS(_m->FilterCfg_Min_VXOncome_phys);
+  _m->FilterCfg_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VYLeftRight_ro_toS(_m->FilterCfg_Min_VYLeftRight_phys);
+  _m->FilterCfg_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VYRightLeft_ro_toS(_m->FilterCfg_Min_VYRightLeft_phys);
+  _m->FilterCfg_Min_Y_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Y_ro_toS(_m->FilterCfg_Min_Y_phys);
+  _m->FilterCfg_Min_X_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_X_ro_toS(_m->FilterCfg_Min_X_phys);
+  _m->FilterCfg_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Lifetime_ro_toS(_m->FilterCfg_Max_Lifetime_phys);
+  _m->FilterCfg_Max_Distance_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Distance_ro_toS(_m->FilterCfg_Max_Distance_phys);
+  _m->FilterCfg_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Azimuth_ro_toS(_m->FilterCfg_Max_Azimuth_phys);
+  _m->FilterCfg_Max_RCS_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_RCS_ro_toS(_m->FilterCfg_Max_RCS_phys);
+  _m->FilterCfg_Max_Size_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Size_ro_toS(_m->FilterCfg_Max_Size_phys);
+  _m->FilterCfg_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VrelDepart_ro_toS(_m->FilterCfg_Max_VrelDepart_phys);
+  _m->FilterCfg_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VrelOncome_ro_toS(_m->FilterCfg_Max_VrelOncome_phys);
+  _m->FilterCfg_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VXDepart_ro_toS(_m->FilterCfg_Max_VXDepart_phys);
+  _m->FilterCfg_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VYLeftRight_ro_toS(_m->FilterCfg_Max_VYLeftRight_phys);
+  _m->FilterCfg_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VXOncome_ro_toS(_m->FilterCfg_Max_VXOncome_phys);
+  _m->FilterCfg_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VYRightLeft_ro_toS(_m->FilterCfg_Max_VYRightLeft_phys);
+  _m->FilterCfg_Max_Y_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Y_ro_toS(_m->FilterCfg_Max_Y_phys);
+  _m->FilterCfg_Max_X_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_X_ro_toS(_m->FilterCfg_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->FilterCfg_Valid & (0x01U)) << 1) | ((_m->FilterCfg_Active & (0x01U)) << 2) | ((_m->FilterCfg_Index & (0x0FU)) << 3) | ((_m->FilterCfg_Type & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->FilterCfg_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_X_ro >> 8) & (0x1FU));
+  cframe->Data[2] |= (_m->FilterCfg_Min_NofObj & (0xFFU)) | (_m->FilterCfg_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_Size_ro & (0xFFU)) | (_m->FilterCfg_Min_RCS_ro & (0xFFU)) | (_m->FilterCfg_Min_ProbExists & (0xFFU)) | (_m->FilterCfg_Min_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Min_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Min_Distance_ro & (0xFFU)) | (_m->FilterCfg_Min_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Min_Y_ro & (0xFFU)) | (_m->FilterCfg_Min_X_ro & (0xFFU));
+  cframe->Data[3] |= ((_m->FilterCfg_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_X_ro >> 8) & (0x1FU));
+  cframe->Data[4] |= (_m->FilterCfg_Max_NofObj & (0xFFU)) | (_m->FilterCfg_Max_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Max_Distance_ro & (0xFFU)) | (_m->FilterCfg_Max_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Max_ProbExists & (0xFFU)) | (_m->FilterCfg_Max_RCS_ro & (0xFFU)) | (_m->FilterCfg_Max_Size_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Max_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Max_Y_ro & (0xFFU)) | (_m->FilterCfg_Max_X_ro & (0xFFU));
+
+  cframe->MsgId = FilterCfg_CANID;
+  cframe->DLC = FilterCfg_DLC;
+  cframe->IDE = FilterCfg_IDE;
+  return FilterCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterCfg_ARS408_can_database_ch3(FilterCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VrelOncome_ro_toS(_m->FilterCfg_Min_VrelOncome_phys);
+  _m->FilterCfg_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VrelDepart_ro_toS(_m->FilterCfg_Min_VrelDepart_phys);
+  _m->FilterCfg_Min_Size_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Size_ro_toS(_m->FilterCfg_Min_Size_phys);
+  _m->FilterCfg_Min_RCS_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_RCS_ro_toS(_m->FilterCfg_Min_RCS_phys);
+  _m->FilterCfg_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Lifetime_ro_toS(_m->FilterCfg_Min_Lifetime_phys);
+  _m->FilterCfg_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Azimuth_ro_toS(_m->FilterCfg_Min_Azimuth_phys);
+  _m->FilterCfg_Min_Distance_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Distance_ro_toS(_m->FilterCfg_Min_Distance_phys);
+  _m->FilterCfg_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VXDepart_ro_toS(_m->FilterCfg_Min_VXDepart_phys);
+  _m->FilterCfg_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VXOncome_ro_toS(_m->FilterCfg_Min_VXOncome_phys);
+  _m->FilterCfg_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VYLeftRight_ro_toS(_m->FilterCfg_Min_VYLeftRight_phys);
+  _m->FilterCfg_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VYRightLeft_ro_toS(_m->FilterCfg_Min_VYRightLeft_phys);
+  _m->FilterCfg_Min_Y_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Y_ro_toS(_m->FilterCfg_Min_Y_phys);
+  _m->FilterCfg_Min_X_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Min_X_ro_toS(_m->FilterCfg_Min_X_phys);
+  _m->FilterCfg_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Lifetime_ro_toS(_m->FilterCfg_Max_Lifetime_phys);
+  _m->FilterCfg_Max_Distance_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Distance_ro_toS(_m->FilterCfg_Max_Distance_phys);
+  _m->FilterCfg_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Azimuth_ro_toS(_m->FilterCfg_Max_Azimuth_phys);
+  _m->FilterCfg_Max_RCS_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_RCS_ro_toS(_m->FilterCfg_Max_RCS_phys);
+  _m->FilterCfg_Max_Size_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Size_ro_toS(_m->FilterCfg_Max_Size_phys);
+  _m->FilterCfg_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VrelDepart_ro_toS(_m->FilterCfg_Max_VrelDepart_phys);
+  _m->FilterCfg_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VrelOncome_ro_toS(_m->FilterCfg_Max_VrelOncome_phys);
+  _m->FilterCfg_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VXDepart_ro_toS(_m->FilterCfg_Max_VXDepart_phys);
+  _m->FilterCfg_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VYLeftRight_ro_toS(_m->FilterCfg_Max_VYLeftRight_phys);
+  _m->FilterCfg_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VXOncome_ro_toS(_m->FilterCfg_Max_VXOncome_phys);
+  _m->FilterCfg_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VYRightLeft_ro_toS(_m->FilterCfg_Max_VYRightLeft_phys);
+  _m->FilterCfg_Max_Y_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Y_ro_toS(_m->FilterCfg_Max_Y_phys);
+  _m->FilterCfg_Max_X_ro = ARS408_CAN_DATABASE_CH3_FilterCfg_Max_X_ro_toS(_m->FilterCfg_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _d[0] |= ((_m->FilterCfg_Valid & (0x01U)) << 1) | ((_m->FilterCfg_Active & (0x01U)) << 2) | ((_m->FilterCfg_Index & (0x0FU)) << 3) | ((_m->FilterCfg_Type & (0x01U)) << 7);
+  _d[1] |= ((_m->FilterCfg_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_X_ro >> 8) & (0x1FU));
+  _d[2] |= (_m->FilterCfg_Min_NofObj & (0xFFU)) | (_m->FilterCfg_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_Size_ro & (0xFFU)) | (_m->FilterCfg_Min_RCS_ro & (0xFFU)) | (_m->FilterCfg_Min_ProbExists & (0xFFU)) | (_m->FilterCfg_Min_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Min_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Min_Distance_ro & (0xFFU)) | (_m->FilterCfg_Min_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Min_Y_ro & (0xFFU)) | (_m->FilterCfg_Min_X_ro & (0xFFU));
+  _d[3] |= ((_m->FilterCfg_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_X_ro >> 8) & (0x1FU));
+  _d[4] |= (_m->FilterCfg_Max_NofObj & (0xFFU)) | (_m->FilterCfg_Max_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Max_Distance_ro & (0xFFU)) | (_m->FilterCfg_Max_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Max_ProbExists & (0xFFU)) | (_m->FilterCfg_Max_RCS_ro & (0xFFU)) | (_m->FilterCfg_Max_Size_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Max_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Max_Y_ro & (0xFFU)) | (_m->FilterCfg_Max_X_ro & (0xFFU));
+
+  *_len = FilterCfg_DLC;
+  *_ide = FilterCfg_IDE;
+  return FilterCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Header_ARS408_can_database_ch3(FilterState_Header_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterState_NofClusterFilterCfg = ((_d[0] >> 3) & (0x1FU));
+  _m->FilterState_NofObjectFilterCfg = ((_d[1] >> 3) & (0x1FU));
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterState_Header_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterState_Header_ars408_can_database_ch3(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+ return FilterState_Header_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch3(FilterState_Header_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Header_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= ((_m->FilterState_NofClusterFilterCfg & (0x1FU)) << 3);
+  cframe->Data[1] |= ((_m->FilterState_NofObjectFilterCfg & (0x1FU)) << 3);
+
+  cframe->MsgId = FilterState_Header_CANID;
+  cframe->DLC = FilterState_Header_DLC;
+  cframe->IDE = FilterState_Header_IDE;
+  return FilterState_Header_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch3(FilterState_Header_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Header_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= ((_m->FilterState_NofClusterFilterCfg & (0x1FU)) << 3);
+  _d[1] |= ((_m->FilterState_NofObjectFilterCfg & (0x1FU)) << 3);
+
+  *_len = FilterState_Header_DLC;
+  *_ide = FilterState_Header_IDE;
+  return FilterState_Header_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Cfg_ARS408_can_database_ch3(FilterState_Cfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterState_Active = ((_d[0] >> 2) & (0x01U));
+  _m->FilterState_Index = ((_d[0] >> 3) & (0x0FU));
+  _m->FilterState_Type = ((_d[0] >> 7) & (0x01U));
+  _m->FilterState_Min_RCS_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Min_RCS_ro_fromS(_m->FilterState_Min_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Min_Azimuth_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Min_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Min_Azimuth_ro_fromS(_m->FilterState_Min_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Min_Distance_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Min_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Min_Distance_ro_fromS(_m->FilterState_Min_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Min_Lifetime_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Min_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Min_Lifetime_ro_fromS(_m->FilterState_Min_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Min_NofObj = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterState_Min_ProbExists = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterState_Min_Y_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Min_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Min_Y_ro_fromS(_m->FilterState_Min_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Min_Size_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Min_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Min_Size_ro_fromS(_m->FilterState_Min_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Min_VrelDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Min_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Min_VrelDepart_ro_fromS(_m->FilterState_Min_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Min_VrelOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Min_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Min_VrelOncome_ro_fromS(_m->FilterState_Min_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Min_VYRightLeft_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Min_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Min_VYRightLeft_ro_fromS(_m->FilterState_Min_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Min_VXDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Min_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Min_VXDepart_ro_fromS(_m->FilterState_Min_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Min_VXOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Min_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Min_VXOncome_ro_fromS(_m->FilterState_Min_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Min_VYLeftRight_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Min_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Min_VYLeftRight_ro_fromS(_m->FilterState_Min_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Min_X_ro = ((_d[1] & (0x1FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Min_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Min_X_ro_fromS(_m->FilterState_Min_X_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Max_VrelDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Max_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Max_VrelDepart_ro_fromS(_m->FilterState_Max_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Max_Azimuth_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Max_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Max_Azimuth_ro_fromS(_m->FilterState_Max_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Max_Distance_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Max_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Max_Distance_ro_fromS(_m->FilterState_Max_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Max_Lifetime_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Max_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Max_Lifetime_ro_fromS(_m->FilterState_Max_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Max_NofObj = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterState_Max_ProbExists = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterState_Max_RCS_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Max_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Max_RCS_ro_fromS(_m->FilterState_Max_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Max_Size_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Max_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Max_Size_ro_fromS(_m->FilterState_Max_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Max_VXDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Max_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Max_VXDepart_ro_fromS(_m->FilterState_Max_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Max_VrelOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Max_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Max_VrelOncome_ro_fromS(_m->FilterState_Max_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Max_Y_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Max_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Max_Y_ro_fromS(_m->FilterState_Max_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Max_VYRightLeft_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Max_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Max_VYRightLeft_ro_fromS(_m->FilterState_Max_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Max_VYLeftRight_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Max_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Max_VYLeftRight_ro_fromS(_m->FilterState_Max_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Max_VXOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Max_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Max_VXOncome_ro_fromS(_m->FilterState_Max_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->FilterState_Max_X_ro = ((_d[3] & (0x1FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Max_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_FilterState_Max_X_ro_fromS(_m->FilterState_Max_X_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterState_Cfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterState_Cfg_ars408_can_database_ch3(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+ return FilterState_Cfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch3(FilterState_Cfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Cfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_RCS_ro_toS(_m->FilterState_Min_RCS_phys);
+  _m->FilterState_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_Azimuth_ro_toS(_m->FilterState_Min_Azimuth_phys);
+  _m->FilterState_Min_Distance_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_Distance_ro_toS(_m->FilterState_Min_Distance_phys);
+  _m->FilterState_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_Lifetime_ro_toS(_m->FilterState_Min_Lifetime_phys);
+  _m->FilterState_Min_Y_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_Y_ro_toS(_m->FilterState_Min_Y_phys);
+  _m->FilterState_Min_Size_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_Size_ro_toS(_m->FilterState_Min_Size_phys);
+  _m->FilterState_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_VrelDepart_ro_toS(_m->FilterState_Min_VrelDepart_phys);
+  _m->FilterState_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_VrelOncome_ro_toS(_m->FilterState_Min_VrelOncome_phys);
+  _m->FilterState_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_VYRightLeft_ro_toS(_m->FilterState_Min_VYRightLeft_phys);
+  _m->FilterState_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_VXDepart_ro_toS(_m->FilterState_Min_VXDepart_phys);
+  _m->FilterState_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_VXOncome_ro_toS(_m->FilterState_Min_VXOncome_phys);
+  _m->FilterState_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_VYLeftRight_ro_toS(_m->FilterState_Min_VYLeftRight_phys);
+  _m->FilterState_Min_X_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_X_ro_toS(_m->FilterState_Min_X_phys);
+  _m->FilterState_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_VrelDepart_ro_toS(_m->FilterState_Max_VrelDepart_phys);
+  _m->FilterState_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_Azimuth_ro_toS(_m->FilterState_Max_Azimuth_phys);
+  _m->FilterState_Max_Distance_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_Distance_ro_toS(_m->FilterState_Max_Distance_phys);
+  _m->FilterState_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_Lifetime_ro_toS(_m->FilterState_Max_Lifetime_phys);
+  _m->FilterState_Max_RCS_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_RCS_ro_toS(_m->FilterState_Max_RCS_phys);
+  _m->FilterState_Max_Size_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_Size_ro_toS(_m->FilterState_Max_Size_phys);
+  _m->FilterState_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_VXDepart_ro_toS(_m->FilterState_Max_VXDepart_phys);
+  _m->FilterState_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_VrelOncome_ro_toS(_m->FilterState_Max_VrelOncome_phys);
+  _m->FilterState_Max_Y_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_Y_ro_toS(_m->FilterState_Max_Y_phys);
+  _m->FilterState_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_VYRightLeft_ro_toS(_m->FilterState_Max_VYRightLeft_phys);
+  _m->FilterState_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_VYLeftRight_ro_toS(_m->FilterState_Max_VYLeftRight_phys);
+  _m->FilterState_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_VXOncome_ro_toS(_m->FilterState_Max_VXOncome_phys);
+  _m->FilterState_Max_X_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_X_ro_toS(_m->FilterState_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->FilterState_Active & (0x01U)) << 2) | ((_m->FilterState_Index & (0x0FU)) << 3) | ((_m->FilterState_Type & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->FilterState_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_X_ro >> 8) & (0x1FU));
+  cframe->Data[2] |= (_m->FilterState_Min_RCS_ro & (0xFFU)) | (_m->FilterState_Min_Azimuth_ro & (0xFFU)) | (_m->FilterState_Min_Distance_ro & (0xFFU)) | (_m->FilterState_Min_Lifetime_ro & (0xFFU)) | (_m->FilterState_Min_NofObj & (0xFFU)) | (_m->FilterState_Min_ProbExists & (0xFFU)) | (_m->FilterState_Min_Y_ro & (0xFFU)) | (_m->FilterState_Min_Size_ro & (0xFFU)) | (_m->FilterState_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Min_VXDepart_ro & (0xFFU)) | (_m->FilterState_Min_VXOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Min_X_ro & (0xFFU));
+  cframe->Data[3] |= ((_m->FilterState_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_X_ro >> 8) & (0x1FU));
+  cframe->Data[4] |= (_m->FilterState_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Max_Azimuth_ro & (0xFFU)) | (_m->FilterState_Max_Distance_ro & (0xFFU)) | (_m->FilterState_Max_Lifetime_ro & (0xFFU)) | (_m->FilterState_Max_NofObj & (0xFFU)) | (_m->FilterState_Max_ProbExists & (0xFFU)) | (_m->FilterState_Max_RCS_ro & (0xFFU)) | (_m->FilterState_Max_Size_ro & (0xFFU)) | (_m->FilterState_Max_VXDepart_ro & (0xFFU)) | (_m->FilterState_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Max_Y_ro & (0xFFU)) | (_m->FilterState_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Max_VXOncome_ro & (0xFFU)) | (_m->FilterState_Max_X_ro & (0xFFU));
+
+  cframe->MsgId = FilterState_Cfg_CANID;
+  cframe->DLC = FilterState_Cfg_DLC;
+  cframe->IDE = FilterState_Cfg_IDE;
+  return FilterState_Cfg_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch3(FilterState_Cfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Cfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_RCS_ro_toS(_m->FilterState_Min_RCS_phys);
+  _m->FilterState_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_Azimuth_ro_toS(_m->FilterState_Min_Azimuth_phys);
+  _m->FilterState_Min_Distance_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_Distance_ro_toS(_m->FilterState_Min_Distance_phys);
+  _m->FilterState_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_Lifetime_ro_toS(_m->FilterState_Min_Lifetime_phys);
+  _m->FilterState_Min_Y_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_Y_ro_toS(_m->FilterState_Min_Y_phys);
+  _m->FilterState_Min_Size_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_Size_ro_toS(_m->FilterState_Min_Size_phys);
+  _m->FilterState_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_VrelDepart_ro_toS(_m->FilterState_Min_VrelDepart_phys);
+  _m->FilterState_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_VrelOncome_ro_toS(_m->FilterState_Min_VrelOncome_phys);
+  _m->FilterState_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_VYRightLeft_ro_toS(_m->FilterState_Min_VYRightLeft_phys);
+  _m->FilterState_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_VXDepart_ro_toS(_m->FilterState_Min_VXDepart_phys);
+  _m->FilterState_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_VXOncome_ro_toS(_m->FilterState_Min_VXOncome_phys);
+  _m->FilterState_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_VYLeftRight_ro_toS(_m->FilterState_Min_VYLeftRight_phys);
+  _m->FilterState_Min_X_ro = ARS408_CAN_DATABASE_CH3_FilterState_Min_X_ro_toS(_m->FilterState_Min_X_phys);
+  _m->FilterState_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_VrelDepart_ro_toS(_m->FilterState_Max_VrelDepart_phys);
+  _m->FilterState_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_Azimuth_ro_toS(_m->FilterState_Max_Azimuth_phys);
+  _m->FilterState_Max_Distance_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_Distance_ro_toS(_m->FilterState_Max_Distance_phys);
+  _m->FilterState_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_Lifetime_ro_toS(_m->FilterState_Max_Lifetime_phys);
+  _m->FilterState_Max_RCS_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_RCS_ro_toS(_m->FilterState_Max_RCS_phys);
+  _m->FilterState_Max_Size_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_Size_ro_toS(_m->FilterState_Max_Size_phys);
+  _m->FilterState_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_VXDepart_ro_toS(_m->FilterState_Max_VXDepart_phys);
+  _m->FilterState_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_VrelOncome_ro_toS(_m->FilterState_Max_VrelOncome_phys);
+  _m->FilterState_Max_Y_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_Y_ro_toS(_m->FilterState_Max_Y_phys);
+  _m->FilterState_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_VYRightLeft_ro_toS(_m->FilterState_Max_VYRightLeft_phys);
+  _m->FilterState_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_VYLeftRight_ro_toS(_m->FilterState_Max_VYLeftRight_phys);
+  _m->FilterState_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_VXOncome_ro_toS(_m->FilterState_Max_VXOncome_phys);
+  _m->FilterState_Max_X_ro = ARS408_CAN_DATABASE_CH3_FilterState_Max_X_ro_toS(_m->FilterState_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _d[0] |= ((_m->FilterState_Active & (0x01U)) << 2) | ((_m->FilterState_Index & (0x0FU)) << 3) | ((_m->FilterState_Type & (0x01U)) << 7);
+  _d[1] |= ((_m->FilterState_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_X_ro >> 8) & (0x1FU));
+  _d[2] |= (_m->FilterState_Min_RCS_ro & (0xFFU)) | (_m->FilterState_Min_Azimuth_ro & (0xFFU)) | (_m->FilterState_Min_Distance_ro & (0xFFU)) | (_m->FilterState_Min_Lifetime_ro & (0xFFU)) | (_m->FilterState_Min_NofObj & (0xFFU)) | (_m->FilterState_Min_ProbExists & (0xFFU)) | (_m->FilterState_Min_Y_ro & (0xFFU)) | (_m->FilterState_Min_Size_ro & (0xFFU)) | (_m->FilterState_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Min_VXDepart_ro & (0xFFU)) | (_m->FilterState_Min_VXOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Min_X_ro & (0xFFU));
+  _d[3] |= ((_m->FilterState_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_X_ro >> 8) & (0x1FU));
+  _d[4] |= (_m->FilterState_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Max_Azimuth_ro & (0xFFU)) | (_m->FilterState_Max_Distance_ro & (0xFFU)) | (_m->FilterState_Max_Lifetime_ro & (0xFFU)) | (_m->FilterState_Max_NofObj & (0xFFU)) | (_m->FilterState_Max_ProbExists & (0xFFU)) | (_m->FilterState_Max_RCS_ro & (0xFFU)) | (_m->FilterState_Max_Size_ro & (0xFFU)) | (_m->FilterState_Max_VXDepart_ro & (0xFFU)) | (_m->FilterState_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Max_Y_ro & (0xFFU)) | (_m->FilterState_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Max_VXOncome_ro & (0xFFU)) | (_m->FilterState_Max_X_ro & (0xFFU));
+
+  *_len = FilterState_Cfg_DLC;
+  *_ide = FilterState_Cfg_IDE;
+  return FilterState_Cfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_SpeedInformation_ARS408_can_database_ch3(SpeedInformation_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarDevice_Speed_ro = ((_d[0] & (0x1FU)) << 8) | (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->RadarDevice_Speed_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_RadarDevice_Speed_ro_fromS(_m->RadarDevice_Speed_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->RadarDevice_SpeedDirection = ((_d[0] >> 6) & (0x03U));
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < SpeedInformation_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_SpeedInformation_ars408_can_database_ch3(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+ return SpeedInformation_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch3(SpeedInformation_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < SpeedInformation_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->RadarDevice_Speed_ro = ARS408_CAN_DATABASE_CH3_RadarDevice_Speed_ro_toS(_m->RadarDevice_Speed_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarDevice_Speed_ro >> 8) & (0x1FU)) | ((_m->RadarDevice_SpeedDirection & (0x03U)) << 6);
+  cframe->Data[1] |= (_m->RadarDevice_Speed_ro & (0xFFU));
+
+  cframe->MsgId = SpeedInformation_CANID;
+  cframe->DLC = SpeedInformation_DLC;
+  cframe->IDE = SpeedInformation_IDE;
+  return SpeedInformation_CANID;
+}
+
+#else
+
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch3(SpeedInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < SpeedInformation_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->RadarDevice_Speed_ro = ARS408_CAN_DATABASE_CH3_RadarDevice_Speed_ro_toS(_m->RadarDevice_Speed_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarDevice_Speed_ro >> 8) & (0x1FU)) | ((_m->RadarDevice_SpeedDirection & (0x03U)) << 6);
+  _d[1] |= (_m->RadarDevice_Speed_ro & (0xFFU));
+
+  *_len = SpeedInformation_DLC;
+  *_ide = SpeedInformation_IDE;
+  return SpeedInformation_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_YawRateInformation_ARS408_can_database_ch3(YawRateInformation_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarDevice_YawRate_ro = ((_d[0] & (0xFFU)) << 8) | (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_RadarDevice_YawRate_ro_fromS(_m->RadarDevice_YawRate_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < YawRateInformation_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_YawRateInformation_ars408_can_database_ch3(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+ return YawRateInformation_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch3(YawRateInformation_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < YawRateInformation_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_ro = ARS408_CAN_DATABASE_CH3_RadarDevice_YawRate_ro_toS(_m->RadarDevice_YawRate_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarDevice_YawRate_ro >> 8) & (0xFFU));
+  cframe->Data[1] |= (_m->RadarDevice_YawRate_ro & (0xFFU));
+
+  cframe->MsgId = YawRateInformation_CANID;
+  cframe->DLC = YawRateInformation_DLC;
+  cframe->IDE = YawRateInformation_IDE;
+  return YawRateInformation_CANID;
+}
+
+#else
+
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch3(YawRateInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < YawRateInformation_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_ro = ARS408_CAN_DATABASE_CH3_RadarDevice_YawRate_ro_toS(_m->RadarDevice_YawRate_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarDevice_YawRate_ro >> 8) & (0xFFU));
+  _d[1] |= (_m->RadarDevice_YawRate_ro & (0xFFU));
+
+  *_len = YawRateInformation_DLC;
+  *_ide = YawRateInformation_IDE;
+  return YawRateInformation_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetState_ARS408_can_database_ch3(CollDetState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetState_Active = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetState_NofRegions = ((_d[0] >> 4) & (0x0FU));
+  _m->CollDetState_MinDetectTime_ro = (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_CollDetState_MinDetectTime_ro_fromS(_m->CollDetState_MinDetectTime_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->CollDetState_MeasCounter = ((_d[2] & (0xFFU)) << 8) | (_d[3] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetState_ars408_can_database_ch3(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+ return CollDetState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Pack_CollDetState_ARS408_can_database_ch3(CollDetState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_ro = ARS408_CAN_DATABASE_CH3_CollDetState_MinDetectTime_ro_toS(_m->CollDetState_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetState_Active & (0x01U)) << 1) | ((_m->CollDetState_NofRegions & (0x0FU)) << 4);
+  cframe->Data[1] |= (_m->CollDetState_MinDetectTime_ro & (0xFFU));
+  cframe->Data[2] |= ((_m->CollDetState_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[3] |= (_m->CollDetState_MeasCounter & (0xFFU));
+
+  cframe->MsgId = CollDetState_CANID;
+  cframe->DLC = CollDetState_DLC;
+  cframe->IDE = CollDetState_IDE;
+  return CollDetState_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetState_ARS408_can_database_ch3(CollDetState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_ro = ARS408_CAN_DATABASE_CH3_CollDetState_MinDetectTime_ro_toS(_m->CollDetState_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetState_Active & (0x01U)) << 1) | ((_m->CollDetState_NofRegions & (0x0FU)) << 4);
+  _d[1] |= (_m->CollDetState_MinDetectTime_ro & (0xFFU));
+  _d[2] |= ((_m->CollDetState_MeasCounter >> 8) & (0xFFU));
+  _d[3] |= (_m->CollDetState_MeasCounter & (0xFFU));
+
+  *_len = CollDetState_DLC;
+  *_ide = CollDetState_IDE;
+  return CollDetState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetCfg_ARS408_can_database_ch3(CollDetCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetCfg_WarningReset = (_d[0] & (0x01U));
+  _m->CollDetCfg_Activate = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetCfg_MinTime_valid = ((_d[0] >> 3) & (0x01U));
+  _m->CollDetCfg_ClearRegions = ((_d[0] >> 7) & (0x01U));
+  _m->CollDetCfg_MinDetectTime_ro = (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_CollDetCfg_MinDetectTime_ro_fromS(_m->CollDetCfg_MinDetectTime_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetCfg_ars408_can_database_ch3(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+ return CollDetCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch3(CollDetCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_ro = ARS408_CAN_DATABASE_CH3_CollDetCfg_MinDetectTime_ro_toS(_m->CollDetCfg_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->CollDetCfg_WarningReset & (0x01U)) | ((_m->CollDetCfg_Activate & (0x01U)) << 1) | ((_m->CollDetCfg_MinTime_valid & (0x01U)) << 3) | ((_m->CollDetCfg_ClearRegions & (0x01U)) << 7);
+  cframe->Data[1] |= (_m->CollDetCfg_MinDetectTime_ro & (0xFFU));
+
+  cframe->MsgId = CollDetCfg_CANID;
+  cframe->DLC = CollDetCfg_DLC;
+  cframe->IDE = CollDetCfg_IDE;
+  return CollDetCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch3(CollDetCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_ro = ARS408_CAN_DATABASE_CH3_CollDetCfg_MinDetectTime_ro_toS(_m->CollDetCfg_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _d[0] |= (_m->CollDetCfg_WarningReset & (0x01U)) | ((_m->CollDetCfg_Activate & (0x01U)) << 1) | ((_m->CollDetCfg_MinTime_valid & (0x01U)) << 3) | ((_m->CollDetCfg_ClearRegions & (0x01U)) << 7);
+  _d[1] |= (_m->CollDetCfg_MinDetectTime_ro & (0xFFU));
+
+  *_len = CollDetCfg_DLC;
+  *_ide = CollDetCfg_IDE;
+  return CollDetCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionCfg_ARS408_can_database_ch3(CollDetRegionCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRegCfg_Activate = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetRegCfg_Coordinates_valid = ((_d[0] >> 2) & (0x01U));
+  _m->CollDetRegCfg_RegionID = (_d[1] & (0x07U));
+  _m->CollDetRegCfg_Point1X_ro = ((_d[2] & (0xFFU)) << 5) | ((_d[3] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point1X_ro_fromS(_m->CollDetRegCfg_Point1X_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point1Y_ro = ((_d[3] & (0x07U)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point1Y_ro_fromS(_m->CollDetRegCfg_Point1Y_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point2X_ro = ((_d[5] & (0xFFU)) << 5) | ((_d[6] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point2X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point2X_ro_fromS(_m->CollDetRegCfg_Point2X_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point2Y_ro = ((_d[6] & (0x07U)) << 8) | (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point2Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point2Y_ro_fromS(_m->CollDetRegCfg_Point2Y_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRegionCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRegionCfg_ars408_can_database_ch3(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+ return CollDetRegionCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch3(CollDetRegionCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_ro = ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point1X_ro_toS(_m->CollDetRegCfg_Point1X_phys);
+  _m->CollDetRegCfg_Point1Y_ro = ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point1Y_ro_toS(_m->CollDetRegCfg_Point1Y_phys);
+  _m->CollDetRegCfg_Point2X_ro = ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point2X_ro_toS(_m->CollDetRegCfg_Point2X_phys);
+  _m->CollDetRegCfg_Point2Y_ro = ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point2Y_ro_toS(_m->CollDetRegCfg_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetRegCfg_Activate & (0x01U)) << 1) | ((_m->CollDetRegCfg_Coordinates_valid & (0x01U)) << 2);
+  cframe->Data[1] |= (_m->CollDetRegCfg_RegionID & (0x07U));
+  cframe->Data[2] |= ((_m->CollDetRegCfg_Point1X_ro >> 5) & (0xFFU));
+  cframe->Data[3] |= ((_m->CollDetRegCfg_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point1Y_ro >> 8) & (0x07U));
+  cframe->Data[4] |= (_m->CollDetRegCfg_Point1Y_ro & (0xFFU));
+  cframe->Data[5] |= ((_m->CollDetRegCfg_Point2X_ro >> 5) & (0xFFU));
+  cframe->Data[6] |= ((_m->CollDetRegCfg_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point2Y_ro >> 8) & (0x07U));
+  cframe->Data[7] |= (_m->CollDetRegCfg_Point2Y_ro & (0xFFU));
+
+  cframe->MsgId = CollDetRegionCfg_CANID;
+  cframe->DLC = CollDetRegionCfg_DLC;
+  cframe->IDE = CollDetRegionCfg_IDE;
+  return CollDetRegionCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch3(CollDetRegionCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_ro = ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point1X_ro_toS(_m->CollDetRegCfg_Point1X_phys);
+  _m->CollDetRegCfg_Point1Y_ro = ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point1Y_ro_toS(_m->CollDetRegCfg_Point1Y_phys);
+  _m->CollDetRegCfg_Point2X_ro = ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point2X_ro_toS(_m->CollDetRegCfg_Point2X_phys);
+  _m->CollDetRegCfg_Point2Y_ro = ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point2Y_ro_toS(_m->CollDetRegCfg_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetRegCfg_Activate & (0x01U)) << 1) | ((_m->CollDetRegCfg_Coordinates_valid & (0x01U)) << 2);
+  _d[1] |= (_m->CollDetRegCfg_RegionID & (0x07U));
+  _d[2] |= ((_m->CollDetRegCfg_Point1X_ro >> 5) & (0xFFU));
+  _d[3] |= ((_m->CollDetRegCfg_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point1Y_ro >> 8) & (0x07U));
+  _d[4] |= (_m->CollDetRegCfg_Point1Y_ro & (0xFFU));
+  _d[5] |= ((_m->CollDetRegCfg_Point2X_ro >> 5) & (0xFFU));
+  _d[6] |= ((_m->CollDetRegCfg_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point2Y_ro >> 8) & (0x07U));
+  _d[7] |= (_m->CollDetRegCfg_Point2Y_ro & (0xFFU));
+
+  *_len = CollDetRegionCfg_DLC;
+  *_ide = CollDetRegionCfg_IDE;
+  return CollDetRegionCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionState_ARS408_can_database_ch3(CollDetRegionState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRegState_WarningLevel = ((_d[0] >> 3) & (0x03U));
+  _m->CollDetRegState_RegionID = ((_d[0] >> 5) & (0x07U));
+  _m->CollDetRegState_Point1X_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_CollDetRegState_Point1X_ro_fromS(_m->CollDetRegState_Point1X_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point1Y_ro = ((_d[2] & (0x07U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->CollDetRegState_Point1Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_CollDetRegState_Point1Y_ro_fromS(_m->CollDetRegState_Point1Y_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point2X_ro = ((_d[4] & (0xFFU)) << 5) | ((_d[5] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->CollDetRegState_Point2X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_CollDetRegState_Point2X_ro_fromS(_m->CollDetRegState_Point2X_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point2Y_ro = ((_d[5] & (0x07U)) << 8) | (_d[6] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->CollDetRegState_Point2Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_CollDetRegState_Point2Y_ro_fromS(_m->CollDetRegState_Point2Y_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->CollDetRegState_NofObjects = (_d[7] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRegionState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRegionState_ars408_can_database_ch3(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+ return CollDetRegionState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch3(CollDetRegionState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_ro = ARS408_CAN_DATABASE_CH3_CollDetRegState_Point1X_ro_toS(_m->CollDetRegState_Point1X_phys);
+  _m->CollDetRegState_Point1Y_ro = ARS408_CAN_DATABASE_CH3_CollDetRegState_Point1Y_ro_toS(_m->CollDetRegState_Point1Y_phys);
+  _m->CollDetRegState_Point2X_ro = ARS408_CAN_DATABASE_CH3_CollDetRegState_Point2X_ro_toS(_m->CollDetRegState_Point2X_phys);
+  _m->CollDetRegState_Point2Y_ro = ARS408_CAN_DATABASE_CH3_CollDetRegState_Point2Y_ro_toS(_m->CollDetRegState_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetRegState_WarningLevel & (0x03U)) << 3) | ((_m->CollDetRegState_RegionID & (0x07U)) << 5);
+  cframe->Data[1] |= ((_m->CollDetRegState_Point1X_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->CollDetRegState_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point1Y_ro >> 8) & (0x07U));
+  cframe->Data[3] |= (_m->CollDetRegState_Point1Y_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->CollDetRegState_Point2X_ro >> 5) & (0xFFU));
+  cframe->Data[5] |= ((_m->CollDetRegState_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point2Y_ro >> 8) & (0x07U));
+  cframe->Data[6] |= (_m->CollDetRegState_Point2Y_ro & (0xFFU));
+  cframe->Data[7] |= (_m->CollDetRegState_NofObjects & (0xFFU));
+
+  cframe->MsgId = CollDetRegionState_CANID;
+  cframe->DLC = CollDetRegionState_DLC;
+  cframe->IDE = CollDetRegionState_IDE;
+  return CollDetRegionState_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch3(CollDetRegionState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_ro = ARS408_CAN_DATABASE_CH3_CollDetRegState_Point1X_ro_toS(_m->CollDetRegState_Point1X_phys);
+  _m->CollDetRegState_Point1Y_ro = ARS408_CAN_DATABASE_CH3_CollDetRegState_Point1Y_ro_toS(_m->CollDetRegState_Point1Y_phys);
+  _m->CollDetRegState_Point2X_ro = ARS408_CAN_DATABASE_CH3_CollDetRegState_Point2X_ro_toS(_m->CollDetRegState_Point2X_phys);
+  _m->CollDetRegState_Point2Y_ro = ARS408_CAN_DATABASE_CH3_CollDetRegState_Point2Y_ro_toS(_m->CollDetRegState_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetRegState_WarningLevel & (0x03U)) << 3) | ((_m->CollDetRegState_RegionID & (0x07U)) << 5);
+  _d[1] |= ((_m->CollDetRegState_Point1X_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->CollDetRegState_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point1Y_ro >> 8) & (0x07U));
+  _d[3] |= (_m->CollDetRegState_Point1Y_ro & (0xFFU));
+  _d[4] |= ((_m->CollDetRegState_Point2X_ro >> 5) & (0xFFU));
+  _d[5] |= ((_m->CollDetRegState_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point2Y_ro >> 8) & (0x07U));
+  _d[6] |= (_m->CollDetRegState_Point2Y_ro & (0xFFU));
+  _d[7] |= (_m->CollDetRegState_NofObjects & (0xFFU));
+
+  *_len = CollDetRegionState_DLC;
+  *_ide = CollDetRegionState_IDE;
+  return CollDetRegionState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_0_Status_ARS408_can_database_ch3(Cluster_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_NofClustersNear = (_d[0] & (0xFFU));
+  _m->Cluster_NofClustersFar = (_d[1] & (0xFFU));
+  _m->Cluster_MeasCounter = ((_d[2] & (0xFFU)) << 8) | (_d[3] & (0xFFU));
+  _m->Cluster_InterfaceVersion = ((_d[4] >> 4) & (0x0FU));
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_0_Status_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_0_Status_ars408_can_database_ch3(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+ return Cluster_0_Status_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch3(Cluster_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_0_Status_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Cluster_NofClustersNear & (0xFFU));
+  cframe->Data[1] |= (_m->Cluster_NofClustersFar & (0xFFU));
+  cframe->Data[2] |= ((_m->Cluster_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[3] |= (_m->Cluster_MeasCounter & (0xFFU));
+  cframe->Data[4] |= ((_m->Cluster_InterfaceVersion & (0x0FU)) << 4);
+
+  cframe->MsgId = Cluster_0_Status_CANID;
+  cframe->DLC = Cluster_0_Status_DLC;
+  cframe->IDE = Cluster_0_Status_IDE;
+  return Cluster_0_Status_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch3(Cluster_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_0_Status_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Cluster_NofClustersNear & (0xFFU));
+  _d[1] |= (_m->Cluster_NofClustersFar & (0xFFU));
+  _d[2] |= ((_m->Cluster_MeasCounter >> 8) & (0xFFU));
+  _d[3] |= (_m->Cluster_MeasCounter & (0xFFU));
+  _d[4] |= ((_m->Cluster_InterfaceVersion & (0x0FU)) << 4);
+
+  *_len = Cluster_0_Status_DLC;
+  *_ide = Cluster_0_Status_IDE;
+  return Cluster_0_Status_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_0_Status_ARS408_can_database_ch3(Obj_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_NofObjects = (_d[0] & (0xFFU));
+  _m->Obj_MeasCounter = ((_d[1] & (0xFFU)) << 8) | (_d[2] & (0xFFU));
+  _m->Obj_InterfaceVersion = ((_d[3] >> 4) & (0x0FU));
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_0_Status_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_0_Status_ars408_can_database_ch3(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+ return Obj_0_Status_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch3(Obj_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_0_Status_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_NofObjects & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[2] |= (_m->Obj_MeasCounter & (0xFFU));
+  cframe->Data[3] |= ((_m->Obj_InterfaceVersion & (0x0FU)) << 4);
+
+  cframe->MsgId = Obj_0_Status_CANID;
+  cframe->DLC = Obj_0_Status_DLC;
+  cframe->IDE = Obj_0_Status_IDE;
+  return Obj_0_Status_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch3(Obj_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_0_Status_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_NofObjects & (0xFFU));
+  _d[1] |= ((_m->Obj_MeasCounter >> 8) & (0xFFU));
+  _d[2] |= (_m->Obj_MeasCounter & (0xFFU));
+  _d[3] |= ((_m->Obj_InterfaceVersion & (0x0FU)) << 4);
+
+  *_len = Obj_0_Status_DLC;
+  *_ide = Obj_0_Status_IDE;
+  return Obj_0_Status_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_1_General_ARS408_can_database_ch3(Obj_1_General_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_DistLong_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->Obj_DistLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_Obj_DistLong_ro_fromS(_m->Obj_DistLong_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->Obj_DistLat_ro = ((_d[2] & (0x07U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->Obj_DistLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_Obj_DistLat_ro_fromS(_m->Obj_DistLat_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->Obj_VrelLong_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->Obj_VrelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_Obj_VrelLong_ro_fromS(_m->Obj_VrelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->Obj_VrelLat_ro = ((_d[5] & (0x3FU)) << 3) | ((_d[6] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->Obj_VrelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_Obj_VrelLat_ro_fromS(_m->Obj_VrelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->Obj_DynProp = (_d[6] & (0x07U));
+  _m->Obj_RCS_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->Obj_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_Obj_RCS_ro_fromS(_m->Obj_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_1_General_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_1_General_ars408_can_database_ch3(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+ return Obj_1_General_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch3(Obj_1_General_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_1_General_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->Obj_DistLong_ro = ARS408_CAN_DATABASE_CH3_Obj_DistLong_ro_toS(_m->Obj_DistLong_phys);
+  _m->Obj_DistLat_ro = ARS408_CAN_DATABASE_CH3_Obj_DistLat_ro_toS(_m->Obj_DistLat_phys);
+  _m->Obj_VrelLong_ro = ARS408_CAN_DATABASE_CH3_Obj_VrelLong_ro_toS(_m->Obj_VrelLong_phys);
+  _m->Obj_VrelLat_ro = ARS408_CAN_DATABASE_CH3_Obj_VrelLat_ro_toS(_m->Obj_VrelLat_phys);
+  _m->Obj_RCS_ro = ARS408_CAN_DATABASE_CH3_Obj_RCS_ro_toS(_m->Obj_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_DistLong_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->Obj_DistLong_ro & (0x1FU)) << 3) | ((_m->Obj_DistLat_ro >> 8) & (0x07U));
+  cframe->Data[3] |= (_m->Obj_DistLat_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->Obj_VrelLong_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Obj_VrelLong_ro & (0x03U)) << 6) | ((_m->Obj_VrelLat_ro >> 3) & (0x3FU));
+  cframe->Data[6] |= ((_m->Obj_VrelLat_ro & (0x07U)) << 5) | (_m->Obj_DynProp & (0x07U));
+  cframe->Data[7] |= (_m->Obj_RCS_ro & (0xFFU));
+
+  cframe->MsgId = Obj_1_General_CANID;
+  cframe->DLC = Obj_1_General_DLC;
+  cframe->IDE = Obj_1_General_IDE;
+  return Obj_1_General_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch3(Obj_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_1_General_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->Obj_DistLong_ro = ARS408_CAN_DATABASE_CH3_Obj_DistLong_ro_toS(_m->Obj_DistLong_phys);
+  _m->Obj_DistLat_ro = ARS408_CAN_DATABASE_CH3_Obj_DistLat_ro_toS(_m->Obj_DistLat_phys);
+  _m->Obj_VrelLong_ro = ARS408_CAN_DATABASE_CH3_Obj_VrelLong_ro_toS(_m->Obj_VrelLong_phys);
+  _m->Obj_VrelLat_ro = ARS408_CAN_DATABASE_CH3_Obj_VrelLat_ro_toS(_m->Obj_VrelLat_phys);
+  _m->Obj_RCS_ro = ARS408_CAN_DATABASE_CH3_Obj_RCS_ro_toS(_m->Obj_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_DistLong_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->Obj_DistLong_ro & (0x1FU)) << 3) | ((_m->Obj_DistLat_ro >> 8) & (0x07U));
+  _d[3] |= (_m->Obj_DistLat_ro & (0xFFU));
+  _d[4] |= ((_m->Obj_VrelLong_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Obj_VrelLong_ro & (0x03U)) << 6) | ((_m->Obj_VrelLat_ro >> 3) & (0x3FU));
+  _d[6] |= ((_m->Obj_VrelLat_ro & (0x07U)) << 5) | (_m->Obj_DynProp & (0x07U));
+  _d[7] |= (_m->Obj_RCS_ro & (0xFFU));
+
+  *_len = Obj_1_General_DLC;
+  *_ide = Obj_1_General_IDE;
+  return Obj_1_General_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_2_Quality_ARS408_can_database_ch3(Obj_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_DistLat_rms = ((_d[1] & (0x07U)) << 2) | ((_d[2] >> 6) & (0x03U));
+  _m->Obj_DistLong_rms = ((_d[1] >> 3) & (0x1FU));
+  _m->Obj_VrelLat_rms = ((_d[2] & (0x01U)) << 4) | ((_d[3] >> 4) & (0x0FU));
+  _m->Obj_VrelLong_rms = ((_d[2] >> 1) & (0x1FU));
+  _m->Obj_ArelLong_rms = ((_d[3] & (0x0FU)) << 1) | ((_d[4] >> 7) & (0x01U));
+  _m->Obj_Orientation_rms = ((_d[4] & (0x03U)) << 3) | ((_d[5] >> 5) & (0x07U));
+  _m->Obj_ArelLat_rms = ((_d[4] >> 2) & (0x1FU));
+  _m->Obj_MeasState = ((_d[6] >> 2) & (0x07U));
+  _m->Obj_ProbOfExist = ((_d[6] >> 5) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_2_Quality_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_2_Quality_ars408_can_database_ch3(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+ return Obj_2_Quality_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch3(Obj_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_2_Quality_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_DistLat_rms >> 2) & (0x07U)) | ((_m->Obj_DistLong_rms & (0x1FU)) << 3);
+  cframe->Data[2] |= ((_m->Obj_DistLat_rms & (0x03U)) << 6) | ((_m->Obj_VrelLat_rms >> 4) & (0x01U)) | ((_m->Obj_VrelLong_rms & (0x1FU)) << 1);
+  cframe->Data[3] |= ((_m->Obj_VrelLat_rms & (0x0FU)) << 4) | ((_m->Obj_ArelLong_rms >> 1) & (0x0FU));
+  cframe->Data[4] |= ((_m->Obj_ArelLong_rms & (0x01U)) << 7) | ((_m->Obj_Orientation_rms >> 3) & (0x03U)) | ((_m->Obj_ArelLat_rms & (0x1FU)) << 2);
+  cframe->Data[5] |= ((_m->Obj_Orientation_rms & (0x07U)) << 5);
+  cframe->Data[6] |= ((_m->Obj_MeasState & (0x07U)) << 2) | ((_m->Obj_ProbOfExist & (0x07U)) << 5);
+
+  cframe->MsgId = Obj_2_Quality_CANID;
+  cframe->DLC = Obj_2_Quality_DLC;
+  cframe->IDE = Obj_2_Quality_IDE;
+  return Obj_2_Quality_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch3(Obj_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_2_Quality_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_DistLat_rms >> 2) & (0x07U)) | ((_m->Obj_DistLong_rms & (0x1FU)) << 3);
+  _d[2] |= ((_m->Obj_DistLat_rms & (0x03U)) << 6) | ((_m->Obj_VrelLat_rms >> 4) & (0x01U)) | ((_m->Obj_VrelLong_rms & (0x1FU)) << 1);
+  _d[3] |= ((_m->Obj_VrelLat_rms & (0x0FU)) << 4) | ((_m->Obj_ArelLong_rms >> 1) & (0x0FU));
+  _d[4] |= ((_m->Obj_ArelLong_rms & (0x01U)) << 7) | ((_m->Obj_Orientation_rms >> 3) & (0x03U)) | ((_m->Obj_ArelLat_rms & (0x1FU)) << 2);
+  _d[5] |= ((_m->Obj_Orientation_rms & (0x07U)) << 5);
+  _d[6] |= ((_m->Obj_MeasState & (0x07U)) << 2) | ((_m->Obj_ProbOfExist & (0x07U)) << 5);
+
+  *_len = Obj_2_Quality_DLC;
+  *_ide = Obj_2_Quality_IDE;
+  return Obj_2_Quality_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_3_Extended_ARS408_can_database_ch3(Obj_3_Extended_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_ArelLong_ro = ((_d[1] & (0xFFU)) << 3) | ((_d[2] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->Obj_ArelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_Obj_ArelLong_ro_fromS(_m->Obj_ArelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->Obj_ArelLat_ro = ((_d[2] & (0x1FU)) << 4) | ((_d[3] >> 4) & (0x0FU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->Obj_ArelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_Obj_ArelLat_ro_fromS(_m->Obj_ArelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->Obj_Class = (_d[3] & (0x07U));
+  _m->Obj_OrientationAngle_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->Obj_OrientationAngle_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_Obj_OrientationAngle_ro_fromS(_m->Obj_OrientationAngle_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->Obj_Length_ro = (_d[6] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->Obj_Length_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_Obj_Length_ro_fromS(_m->Obj_Length_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->Obj_Width_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->Obj_Width_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_Obj_Width_ro_fromS(_m->Obj_Width_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_3_Extended_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_3_Extended_ars408_can_database_ch3(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+ return Obj_3_Extended_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch3(Obj_3_Extended_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_3_Extended_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->Obj_ArelLong_ro = ARS408_CAN_DATABASE_CH3_Obj_ArelLong_ro_toS(_m->Obj_ArelLong_phys);
+  _m->Obj_ArelLat_ro = ARS408_CAN_DATABASE_CH3_Obj_ArelLat_ro_toS(_m->Obj_ArelLat_phys);
+  _m->Obj_OrientationAngle_ro = ARS408_CAN_DATABASE_CH3_Obj_OrientationAngle_ro_toS(_m->Obj_OrientationAngle_phys);
+  _m->Obj_Length_ro = ARS408_CAN_DATABASE_CH3_Obj_Length_ro_toS(_m->Obj_Length_phys);
+  _m->Obj_Width_ro = ARS408_CAN_DATABASE_CH3_Obj_Width_ro_toS(_m->Obj_Width_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_ArelLong_ro >> 3) & (0xFFU));
+  cframe->Data[2] |= ((_m->Obj_ArelLong_ro & (0x07U)) << 5) | ((_m->Obj_ArelLat_ro >> 4) & (0x1FU));
+  cframe->Data[3] |= ((_m->Obj_ArelLat_ro & (0x0FU)) << 4) | (_m->Obj_Class & (0x07U));
+  cframe->Data[4] |= ((_m->Obj_OrientationAngle_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Obj_OrientationAngle_ro & (0x03U)) << 6);
+  cframe->Data[6] |= (_m->Obj_Length_ro & (0xFFU));
+  cframe->Data[7] |= (_m->Obj_Width_ro & (0xFFU));
+
+  cframe->MsgId = Obj_3_Extended_CANID;
+  cframe->DLC = Obj_3_Extended_DLC;
+  cframe->IDE = Obj_3_Extended_IDE;
+  return Obj_3_Extended_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch3(Obj_3_Extended_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_3_Extended_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->Obj_ArelLong_ro = ARS408_CAN_DATABASE_CH3_Obj_ArelLong_ro_toS(_m->Obj_ArelLong_phys);
+  _m->Obj_ArelLat_ro = ARS408_CAN_DATABASE_CH3_Obj_ArelLat_ro_toS(_m->Obj_ArelLat_phys);
+  _m->Obj_OrientationAngle_ro = ARS408_CAN_DATABASE_CH3_Obj_OrientationAngle_ro_toS(_m->Obj_OrientationAngle_phys);
+  _m->Obj_Length_ro = ARS408_CAN_DATABASE_CH3_Obj_Length_ro_toS(_m->Obj_Length_phys);
+  _m->Obj_Width_ro = ARS408_CAN_DATABASE_CH3_Obj_Width_ro_toS(_m->Obj_Width_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_ArelLong_ro >> 3) & (0xFFU));
+  _d[2] |= ((_m->Obj_ArelLong_ro & (0x07U)) << 5) | ((_m->Obj_ArelLat_ro >> 4) & (0x1FU));
+  _d[3] |= ((_m->Obj_ArelLat_ro & (0x0FU)) << 4) | (_m->Obj_Class & (0x07U));
+  _d[4] |= ((_m->Obj_OrientationAngle_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Obj_OrientationAngle_ro & (0x03U)) << 6);
+  _d[6] |= (_m->Obj_Length_ro & (0xFFU));
+  _d[7] |= (_m->Obj_Width_ro & (0xFFU));
+
+  *_len = Obj_3_Extended_DLC;
+  *_ide = Obj_3_Extended_IDE;
+  return Obj_3_Extended_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_4_Warning_ARS408_can_database_ch3(Obj_4_Warning_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_CollDetRegionBitfield = (_d[1] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_4_Warning_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_4_Warning_ars408_can_database_ch3(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+ return Obj_4_Warning_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch3(Obj_4_Warning_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_4_Warning_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= (_m->Obj_CollDetRegionBitfield & (0xFFU));
+
+  cframe->MsgId = Obj_4_Warning_CANID;
+  cframe->DLC = Obj_4_Warning_DLC;
+  cframe->IDE = Obj_4_Warning_IDE;
+  return Obj_4_Warning_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch3(Obj_4_Warning_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_4_Warning_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= (_m->Obj_CollDetRegionBitfield & (0xFFU));
+
+  *_len = Obj_4_Warning_DLC;
+  *_ide = Obj_4_Warning_IDE;
+  return Obj_4_Warning_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_VersionID_ARS408_can_database_ch3(VersionID_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Version_MajorRelease = (_d[0] & (0xFFU));
+  _m->Version_MinorRelease = (_d[1] & (0xFFU));
+  _m->Version_PatchLevel = (_d[2] & (0xFFU));
+  _m->Version_CountryCode = (_d[3] & (0x01U));
+  _m->Version_ExtendedRange = ((_d[3] >> 1) & (0x01U));
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < VersionID_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_VersionID_ars408_can_database_ch3(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+ return VersionID_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Pack_VersionID_ARS408_can_database_ch3(VersionID_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < VersionID_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Version_MajorRelease & (0xFFU));
+  cframe->Data[1] |= (_m->Version_MinorRelease & (0xFFU));
+  cframe->Data[2] |= (_m->Version_PatchLevel & (0xFFU));
+  cframe->Data[3] |= (_m->Version_CountryCode & (0x01U)) | ((_m->Version_ExtendedRange & (0x01U)) << 1);
+
+  cframe->MsgId = VersionID_CANID;
+  cframe->DLC = VersionID_DLC;
+  cframe->IDE = VersionID_IDE;
+  return VersionID_CANID;
+}
+
+#else
+
+uint32_t Pack_VersionID_ARS408_can_database_ch3(VersionID_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < VersionID_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Version_MajorRelease & (0xFFU));
+  _d[1] |= (_m->Version_MinorRelease & (0xFFU));
+  _d[2] |= (_m->Version_PatchLevel & (0xFFU));
+  _d[3] |= (_m->Version_CountryCode & (0x01U)) | ((_m->Version_ExtendedRange & (0x01U)) << 1);
+
+  *_len = VersionID_DLC;
+  *_ide = VersionID_IDE;
+  return VersionID_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_1_General_ARS408_can_database_ch3(Cluster_1_General_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_ID = (_d[0] & (0xFFU));
+  _m->Cluster_DistLong_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->Cluster_DistLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_Cluster_DistLong_ro_fromS(_m->Cluster_DistLong_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->Cluster_DistLat_ro = ((_d[2] & (0x03U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->Cluster_DistLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_Cluster_DistLat_ro_fromS(_m->Cluster_DistLat_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->Cluster_VrelLong_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->Cluster_VrelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_Cluster_VrelLong_ro_fromS(_m->Cluster_VrelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->Cluster_VrelLat_ro = ((_d[5] & (0x3FU)) << 3) | ((_d[6] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->Cluster_VrelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_Cluster_VrelLat_ro_fromS(_m->Cluster_VrelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _m->Cluster_DynProp = (_d[6] & (0x07U));
+  _m->Cluster_RCS_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->Cluster_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH3_Cluster_RCS_ro_fromS(_m->Cluster_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_1_General_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_1_General_ars408_can_database_ch3(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+ return Cluster_1_General_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch3(Cluster_1_General_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_1_General_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->Cluster_DistLong_ro = ARS408_CAN_DATABASE_CH3_Cluster_DistLong_ro_toS(_m->Cluster_DistLong_phys);
+  _m->Cluster_DistLat_ro = ARS408_CAN_DATABASE_CH3_Cluster_DistLat_ro_toS(_m->Cluster_DistLat_phys);
+  _m->Cluster_VrelLong_ro = ARS408_CAN_DATABASE_CH3_Cluster_VrelLong_ro_toS(_m->Cluster_VrelLong_phys);
+  _m->Cluster_VrelLat_ro = ARS408_CAN_DATABASE_CH3_Cluster_VrelLat_ro_toS(_m->Cluster_VrelLat_phys);
+  _m->Cluster_RCS_ro = ARS408_CAN_DATABASE_CH3_Cluster_RCS_ro_toS(_m->Cluster_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Cluster_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Cluster_DistLong_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->Cluster_DistLong_ro & (0x1FU)) << 3) | ((_m->Cluster_DistLat_ro >> 8) & (0x03U));
+  cframe->Data[3] |= (_m->Cluster_DistLat_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->Cluster_VrelLong_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Cluster_VrelLong_ro & (0x03U)) << 6) | ((_m->Cluster_VrelLat_ro >> 3) & (0x3FU));
+  cframe->Data[6] |= ((_m->Cluster_VrelLat_ro & (0x07U)) << 5) | (_m->Cluster_DynProp & (0x07U));
+  cframe->Data[7] |= (_m->Cluster_RCS_ro & (0xFFU));
+
+  cframe->MsgId = Cluster_1_General_CANID;
+  cframe->DLC = Cluster_1_General_DLC;
+  cframe->IDE = Cluster_1_General_IDE;
+  return Cluster_1_General_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch3(Cluster_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_1_General_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  _m->Cluster_DistLong_ro = ARS408_CAN_DATABASE_CH3_Cluster_DistLong_ro_toS(_m->Cluster_DistLong_phys);
+  _m->Cluster_DistLat_ro = ARS408_CAN_DATABASE_CH3_Cluster_DistLat_ro_toS(_m->Cluster_DistLat_phys);
+  _m->Cluster_VrelLong_ro = ARS408_CAN_DATABASE_CH3_Cluster_VrelLong_ro_toS(_m->Cluster_VrelLong_phys);
+  _m->Cluster_VrelLat_ro = ARS408_CAN_DATABASE_CH3_Cluster_VrelLat_ro_toS(_m->Cluster_VrelLat_phys);
+  _m->Cluster_RCS_ro = ARS408_CAN_DATABASE_CH3_Cluster_RCS_ro_toS(_m->Cluster_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  _d[0] |= (_m->Cluster_ID & (0xFFU));
+  _d[1] |= ((_m->Cluster_DistLong_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->Cluster_DistLong_ro & (0x1FU)) << 3) | ((_m->Cluster_DistLat_ro >> 8) & (0x03U));
+  _d[3] |= (_m->Cluster_DistLat_ro & (0xFFU));
+  _d[4] |= ((_m->Cluster_VrelLong_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Cluster_VrelLong_ro & (0x03U)) << 6) | ((_m->Cluster_VrelLat_ro >> 3) & (0x3FU));
+  _d[6] |= ((_m->Cluster_VrelLat_ro & (0x07U)) << 5) | (_m->Cluster_DynProp & (0x07U));
+  _d[7] |= (_m->Cluster_RCS_ro & (0xFFU));
+
+  *_len = Cluster_1_General_DLC;
+  *_ide = Cluster_1_General_IDE;
+  return Cluster_1_General_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_2_Quality_ARS408_can_database_ch3(Cluster_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_ID = (_d[0] & (0xFFU));
+  _m->Cluster_DistLat_rms = ((_d[1] & (0x07U)) << 2) | ((_d[2] >> 6) & (0x03U));
+  _m->Cluster_DistLong_rms = ((_d[1] >> 3) & (0x1FU));
+  _m->Cluster_VrelLat_rms = ((_d[2] & (0x01U)) << 4) | ((_d[3] >> 4) & (0x0FU));
+  _m->Cluster_VrelLong_rms = ((_d[2] >> 1) & (0x1FU));
+  _m->Cluster_PdH0 = (_d[3] & (0x07U));
+  _m->Cluster_AmbigState = (_d[4] & (0x07U));
+  _m->Cluster_InvalidState = ((_d[4] >> 3) & (0x1FU));
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_2_Quality_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_2_Quality_ars408_can_database_ch3(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+ return Cluster_2_Quality_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch3(Cluster_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_2_Quality_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Cluster_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Cluster_DistLat_rms >> 2) & (0x07U)) | ((_m->Cluster_DistLong_rms & (0x1FU)) << 3);
+  cframe->Data[2] |= ((_m->Cluster_DistLat_rms & (0x03U)) << 6) | ((_m->Cluster_VrelLat_rms >> 4) & (0x01U)) | ((_m->Cluster_VrelLong_rms & (0x1FU)) << 1);
+  cframe->Data[3] |= ((_m->Cluster_VrelLat_rms & (0x0FU)) << 4) | (_m->Cluster_PdH0 & (0x07U));
+  cframe->Data[4] |= (_m->Cluster_AmbigState & (0x07U)) | ((_m->Cluster_InvalidState & (0x1FU)) << 3);
+
+  cframe->MsgId = Cluster_2_Quality_CANID;
+  cframe->DLC = Cluster_2_Quality_DLC;
+  cframe->IDE = Cluster_2_Quality_IDE;
+  return Cluster_2_Quality_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch3(Cluster_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_2_Quality_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Cluster_ID & (0xFFU));
+  _d[1] |= ((_m->Cluster_DistLat_rms >> 2) & (0x07U)) | ((_m->Cluster_DistLong_rms & (0x1FU)) << 3);
+  _d[2] |= ((_m->Cluster_DistLat_rms & (0x03U)) << 6) | ((_m->Cluster_VrelLat_rms >> 4) & (0x01U)) | ((_m->Cluster_VrelLong_rms & (0x1FU)) << 1);
+  _d[3] |= ((_m->Cluster_VrelLat_rms & (0x0FU)) << 4) | (_m->Cluster_PdH0 & (0x07U));
+  _d[4] |= (_m->Cluster_AmbigState & (0x07U)) | ((_m->Cluster_InvalidState & (0x1FU)) << 3);
+
+  *_len = Cluster_2_Quality_DLC;
+  *_ide = Cluster_2_Quality_IDE;
+  return Cluster_2_Quality_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+

+ 4044 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch3.h

@@ -0,0 +1,4044 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+// DBC file version
+#define VER_ARS408_CAN_DATABASE_CH3_MAJ (0U)
+#define VER_ARS408_CAN_DATABASE_CH3_MIN (0U)
+
+// include current dbc-driver compilation config
+#include "ars408_can_database_ch3-config.h"
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+// This file must define:
+// base monitor struct
+// function signature for HASH calculation: (@GetFrameHash)
+// function signature for getting system tick value: (@GetSystemTick)
+#include "canmonitorutil.h"
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+
+// Control message for relay to display collision detection
+// def @CollDetRelayCtrl CAN Message (8    0x8)
+#define CollDetRelayCtrl_IDE (0U)
+#define CollDetRelayCtrl_DLC (1U)
+#define CollDetRelayCtrl_CANID (0x8)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+  // Region bit field for control relay
+  uint8_t CollDetRelayCtrl_Param;            //      Bits= 8
+
+#else
+
+  // Region bit field for control relay
+  uint8_t CollDetRelayCtrl_Param;            //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+} CollDetRelayCtrl_t;
+
+// Radar configuration
+// def @RadarConfiguration CAN Message (560  0x230)
+#define RadarConfiguration_IDE (0U)
+#define RadarConfiguration_DLC (8U)
+#define RadarConfiguration_CANID (0x230)
+// signal: @RadarCfg_MaxDistance_ro
+#define ARS408_CAN_DATABASE_CH3_RadarCfg_MaxDistance_ro_CovFactor (2)
+#define ARS408_CAN_DATABASE_CH3_RadarCfg_MaxDistance_ro_toS(x) ( (uint16_t) ((x) / (2)) )
+#define ARS408_CAN_DATABASE_CH3_RadarCfg_MaxDistance_ro_fromS(x) ( ((x) * (2)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+  // Allows changing the MaxDistance parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_MaxDistance_valid : 1;     //      Bits= 1
+
+  // Allows changing the SensorId parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SensorID_valid : 1;        //      Bits= 1
+
+  // Allows changing the RadarPower parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RadarPower_valid : 1;      //      Bits= 1
+
+  // Allows changing the OutputType parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_OutputType_valid : 1;      //      Bits= 1
+
+  // Allows changing the SendQuality parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendQuality_valid : 1;     //      Bits= 1
+
+  // Allows changing the SendExtInfo parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendExtInfo_valid : 1;     //      Bits= 1
+
+  // Allows changing the SortIndex parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SortIndex_valid : 1;       //      Bits= 1
+
+  // Allows changing the StoreInNvm parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_StoreInNVM_valid : 1;      //      Bits= 1
+
+  uint16_t RadarCfg_MaxDistance_ro;           //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  uint16_t RadarCfg_MaxDistance_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // Sensor ID (0 to 7)
+  uint8_t RadarCfg_SensorID : 3;              //      Bits= 3
+
+  // Data output type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarCfg_OutputType : 2;            //      Bits= 2
+
+  // Radar Tx output power reduction (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RadarPower : 3;            //      Bits= 3
+
+  // Allows changing the CtrlRelay parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_CtrlRelay_valid : 1;       //      Bits= 1
+
+  // Enables output of CtrlRelay message if CollDet is active
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_CtrlRelay : 1;             //      Bits= 1
+
+  // Enables output of quality message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendQuality : 1;           //      Bits= 1
+
+  // Enables output of extended message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendExtInfo : 1;           //      Bits= 1
+
+  // Object sort index
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarCfg_SortIndex : 3;             //      Bits= 3
+
+  // Store configuration in Nvm
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_StoreInNVM : 1;            //      Bits= 1
+
+  // Allows changing the RCS_Threshold parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RCS_Threshold_Valid : 1;   //      Bits= 1
+
+  // Standard or high sensitivity for cluster list output
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RCS_Threshold : 3;         //      Bits= 3
+
+#else
+
+  // Allows changing the MaxDistance parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_MaxDistance_valid;         //      Bits= 1
+
+  // Allows changing the SensorId parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SensorID_valid;            //      Bits= 1
+
+  // Allows changing the RadarPower parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RadarPower_valid;          //      Bits= 1
+
+  // Allows changing the OutputType parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_OutputType_valid;          //      Bits= 1
+
+  // Allows changing the SendQuality parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendQuality_valid;         //      Bits= 1
+
+  // Allows changing the SendExtInfo parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendExtInfo_valid;         //      Bits= 1
+
+  // Allows changing the SortIndex parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SortIndex_valid;           //      Bits= 1
+
+  // Allows changing the StoreInNvm parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_StoreInNVM_valid;          //      Bits= 1
+
+  uint16_t RadarCfg_MaxDistance_ro;           //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  uint16_t RadarCfg_MaxDistance_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // Sensor ID (0 to 7)
+  uint8_t RadarCfg_SensorID;                  //      Bits= 3
+
+  // Data output type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarCfg_OutputType;                //      Bits= 2
+
+  // Radar Tx output power reduction (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RadarPower;                //      Bits= 3
+
+  // Allows changing the CtrlRelay parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_CtrlRelay_valid;           //      Bits= 1
+
+  // Enables output of CtrlRelay message if CollDet is active
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_CtrlRelay;                 //      Bits= 1
+
+  // Enables output of quality message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendQuality;               //      Bits= 1
+
+  // Enables output of extended message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendExtInfo;               //      Bits= 1
+
+  // Object sort index
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarCfg_SortIndex;                 //      Bits= 3
+
+  // Store configuration in Nvm
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_StoreInNVM;                //      Bits= 1
+
+  // Allows changing the RCS_Threshold parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RCS_Threshold_Valid;       //      Bits= 1
+
+  // Standard or high sensitivity for cluster list output
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RCS_Threshold;             //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+} RadarConfiguration_t;
+
+// Radar configuration status
+// def @RadarState CAN Message (561  0x231)
+#define RadarState_IDE (0U)
+#define RadarState_DLC (8U)
+#define RadarState_CANID (0x231)
+#define RadarState_CYC (50U)
+// signal: @RadarState_MaxDistanceCfg_ro
+#define ARS408_CAN_DATABASE_CH3_RadarState_MaxDistanceCfg_ro_CovFactor (2)
+#define ARS408_CAN_DATABASE_CH3_RadarState_MaxDistanceCfg_ro_toS(x) ( (uint16_t) ((x) / (2)) )
+#define ARS408_CAN_DATABASE_CH3_RadarState_MaxDistanceCfg_ro_fromS(x) ( ((x) * (2)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+  // Gives the status of reading the radar configuration from EEPROM
+  //  1 : "successful"
+  //  0 : "pending"
+  // 
+  uint8_t RadarState_NVMReadStatus : 1;       //      Bits= 1
+
+  // Gives the status of writing the radar configuration from EEPROM
+  // 
+  uint8_t RadarState_NVMwriteStatus : 1;      //      Bits= 1
+
+  uint16_t RadarState_MaxDistanceCfg_ro;      //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  uint16_t RadarState_MaxDistanceCfg_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // 
+  // 
+  //  1 : "Voltage error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Voltage_Error : 1;       //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temporary error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temporary_Error : 1;     //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temperature error  active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temperature_Error : 1;   //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Interference detected"
+  //  0 : "No interference"
+  // 
+  uint8_t RadarState_Interference : 1;        //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Persistent error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Persistent_Error : 1;    //      Bits= 1
+
+  // Radar Tx output level (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RadarPowerCfg : 3;       //      Bits= 3
+
+  // Sensor ID (0 to 7)
+  //  7 : "ID 7"
+  //  6 : "ID 6"
+  //  5 : "ID 5"
+  //  4 : "ID 4"
+  //  3 : "ID 3"
+  //  2 : "ID 2"
+  //  1 : "ID 1"
+  //  0 : "ID 0"
+  // 
+  uint8_t RadarState_SensorID : 3;            //      Bits= 3
+
+  // Current sorting of object list
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarState_SortIndex : 3;           //      Bits= 3
+
+  // Status of control relay message output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_CtrlRelayCfg : 1;        //      Bits= 1
+
+  // Current output list type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarState_OutputTypeCfg : 2;       //      Bits= 2
+
+  // Status of quality information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendQualityCfg : 1;      //      Bits= 1
+
+  // Status of extended information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendExtInfoCfg : 1;      //      Bits= 1
+
+  // Status of motion input signals
+  //  3 : "Speed and yaw rate missing"
+  //  2 : "Yaw rate missing"
+  //  1 : "Speed missing"
+  //  0 : "Input ok"
+  // 
+  uint8_t RadarState_MotionRxState : 2;       //      Bits= 2
+
+  // Current sensitivity mode
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RCS_Threshold : 3;       //      Bits= 3
+
+#else
+
+  // Gives the status of reading the radar configuration from EEPROM
+  //  1 : "successful"
+  //  0 : "pending"
+  // 
+  uint8_t RadarState_NVMReadStatus;           //      Bits= 1
+
+  // Gives the status of writing the radar configuration from EEPROM
+  // 
+  uint8_t RadarState_NVMwriteStatus;          //      Bits= 1
+
+  uint16_t RadarState_MaxDistanceCfg_ro;      //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  uint16_t RadarState_MaxDistanceCfg_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // 
+  // 
+  //  1 : "Voltage error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Voltage_Error;           //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temporary error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temporary_Error;         //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temperature error  active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temperature_Error;       //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Interference detected"
+  //  0 : "No interference"
+  // 
+  uint8_t RadarState_Interference;            //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Persistent error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Persistent_Error;        //      Bits= 1
+
+  // Radar Tx output level (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RadarPowerCfg;           //      Bits= 3
+
+  // Sensor ID (0 to 7)
+  //  7 : "ID 7"
+  //  6 : "ID 6"
+  //  5 : "ID 5"
+  //  4 : "ID 4"
+  //  3 : "ID 3"
+  //  2 : "ID 2"
+  //  1 : "ID 1"
+  //  0 : "ID 0"
+  // 
+  uint8_t RadarState_SensorID;                //      Bits= 3
+
+  // Current sorting of object list
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarState_SortIndex;               //      Bits= 3
+
+  // Status of control relay message output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_CtrlRelayCfg;            //      Bits= 1
+
+  // Current output list type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarState_OutputTypeCfg;           //      Bits= 2
+
+  // Status of quality information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendQualityCfg;          //      Bits= 1
+
+  // Status of extended information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendExtInfoCfg;          //      Bits= 1
+
+  // Status of motion input signals
+  //  3 : "Speed and yaw rate missing"
+  //  2 : "Yaw rate missing"
+  //  1 : "Speed missing"
+  //  0 : "Input ok"
+  // 
+  uint8_t RadarState_MotionRxState;           //      Bits= 2
+
+  // Current sensitivity mode
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RCS_Threshold;           //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+} RadarState_t;
+
+// Filter configuration
+// def @FilterCfg CAN Message (562  0x232)
+#define FilterCfg_IDE (0U)
+#define FilterCfg_DLC (5U)
+#define FilterCfg_CANID (0x232)
+// signal: @FilterCfg_Min_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_Size_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterCfg_Min_RCS_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Min_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Min_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Min_Distance_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Min_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_Y_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterCfg_Min_X_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Min_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @FilterCfg_Max_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Max_Distance_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Max_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Max_RCS_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Max_Size_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterCfg_Max_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_Y_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterCfg_Max_X_ro
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterCfg_Max_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+  //  1 : "valid"
+  //  0 : "invalid"
+  // 
+  uint8_t FilterCfg_Valid : 1;                //      Bits= 1
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterCfg_Active : 1;               //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterCfg_Index : 4;                //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterCfg_Type : 1;                 //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#else
+
+  //  1 : "valid"
+  //  0 : "invalid"
+  // 
+  uint8_t FilterCfg_Valid;                    //      Bits= 1
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterCfg_Active;                   //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterCfg_Index;                    //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterCfg_Type;                     //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+} FilterCfg_t;
+
+// Header of filter configuration state
+// def @FilterState_Header CAN Message (563  0x233)
+#define FilterState_Header_IDE (0U)
+#define FilterState_Header_DLC (2U)
+#define FilterState_Header_CANID (0x233)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+  uint8_t FilterState_NofClusterFilterCfg : 5;   //      Bits= 5
+
+  uint8_t FilterState_NofObjectFilterCfg : 5;    //      Bits= 5
+
+#else
+
+  uint8_t FilterState_NofClusterFilterCfg;       //      Bits= 5
+
+  uint8_t FilterState_NofObjectFilterCfg;        //      Bits= 5
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+} FilterState_Header_t;
+
+// Filter configuration status
+// def @FilterState_Cfg CAN Message (564  0x234)
+#define FilterState_Cfg_IDE (0U)
+#define FilterState_Cfg_DLC (5U)
+#define FilterState_Cfg_CANID (0x234)
+// signal: @FilterState_Min_RCS_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Min_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Min_Distance_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Min_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Min_Y_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterState_Min_Size_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterState_Min_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_X_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Min_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @FilterState_Max_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Max_Distance_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Max_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Max_RCS_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Max_Size_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterState_Max_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_Y_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterState_Max_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_X_ro
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_FilterState_Max_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterState_Active : 1;               //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterState_Index : 4;                //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterState_Type : 1;                 //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterState_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_NofObj;              //      Bits=12
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_NofObj;              //      Bits=12
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#else
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterState_Active;                   //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterState_Index;                    //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterState_Type;                     //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterState_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_NofObj;              //      Bits=12
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_NofObj;              //      Bits=12
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+} FilterState_Cfg_t;
+
+// Device movement speed
+// def @SpeedInformation CAN Message (816  0x330)
+#define SpeedInformation_IDE (0U)
+#define SpeedInformation_DLC (2U)
+#define SpeedInformation_CANID (0x330)
+// signal: @RadarDevice_Speed_ro
+#define ARS408_CAN_DATABASE_CH3_RadarDevice_Speed_ro_CovFactor (0.020000)
+#define ARS408_CAN_DATABASE_CH3_RadarDevice_Speed_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.020000)) )
+#define ARS408_CAN_DATABASE_CH3_RadarDevice_Speed_ro_fromS(x) ( (((x) * (0.020000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+  uint16_t RadarDevice_Speed_ro;             //      Bits=13 Factor= 0.020000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t RadarDevice_Speed_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // Speed direction of the radar unit
+  //  3 : "reserved"
+  //  2 : "reverse"
+  //  1 : "forward"
+  //  0 : "standstill"
+  // 
+  uint8_t RadarDevice_SpeedDirection : 2;    //      Bits= 2
+
+#else
+
+  uint16_t RadarDevice_Speed_ro;             //      Bits=13 Factor= 0.020000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t RadarDevice_Speed_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // Speed direction of the radar unit
+  //  3 : "reserved"
+  //  2 : "reverse"
+  //  1 : "forward"
+  //  0 : "standstill"
+  // 
+  uint8_t RadarDevice_SpeedDirection;        //      Bits= 2
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+} SpeedInformation_t;
+
+// Device movement yaw rate
+// def @YawRateInformation CAN Message (817  0x331)
+#define YawRateInformation_IDE (0U)
+#define YawRateInformation_DLC (2U)
+#define YawRateInformation_CANID (0x331)
+// signal: @RadarDevice_YawRate_ro
+#define ARS408_CAN_DATABASE_CH3_RadarDevice_YawRate_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH3_RadarDevice_YawRate_ro_toS(x) ( (uint16_t) (((x) - (-327.680000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH3_RadarDevice_YawRate_ro_fromS(x) ( (((x) * (0.010000)) + (-327.680000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+  uint16_t RadarDevice_YawRate_ro;           //      Bits=16 Offset= -327.680000        Factor= 0.010000        Unit:'deg/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t RadarDevice_YawRate_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#else
+
+  uint16_t RadarDevice_YawRate_ro;           //      Bits=16 Offset= -327.680000        Factor= 0.010000        Unit:'deg/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t RadarDevice_YawRate_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+} YawRateInformation_t;
+
+// Collision detection configuration status
+// def @CollDetState CAN Message (1032 0x408)
+#define CollDetState_IDE (0U)
+#define CollDetState_DLC (4U)
+#define CollDetState_CANID (0x408)
+// signal: @CollDetState_MinDetectTime_ro
+#define ARS408_CAN_DATABASE_CH3_CollDetState_MinDetectTime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH3_CollDetState_MinDetectTime_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH3_CollDetState_MinDetectTime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetState_Active : 1;             //      Bits= 1
+
+  uint8_t CollDetState_NofRegions : 4;         //      Bits= 4
+
+  uint8_t CollDetState_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t CollDetState_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t CollDetState_MeasCounter;           //      Bits=16
+
+#else
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetState_Active;                 //      Bits= 1
+
+  uint8_t CollDetState_NofRegions;             //      Bits= 4
+
+  uint8_t CollDetState_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t CollDetState_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t CollDetState_MeasCounter;           //      Bits=16
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+} CollDetState_t;
+
+// Collision detection configuration
+// def @CollDetCfg CAN Message (1072 0x430)
+#define CollDetCfg_IDE (0U)
+#define CollDetCfg_DLC (2U)
+#define CollDetCfg_CANID (0x430)
+// signal: @CollDetCfg_MinDetectTime_ro
+#define ARS408_CAN_DATABASE_CH3_CollDetCfg_MinDetectTime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH3_CollDetCfg_MinDetectTime_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH3_CollDetCfg_MinDetectTime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+  //  1 : "Warn reset"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_WarningReset : 1;       //      Bits= 1
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetCfg_Activate : 1;           //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetCfg_MinTime_valid : 1;      //      Bits= 1
+
+  //  1 : "Clear all defined regions"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_ClearRegions : 1;       //      Bits= 1
+
+  uint8_t CollDetCfg_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t CollDetCfg_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#else
+
+  //  1 : "Warn reset"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_WarningReset;           //      Bits= 1
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetCfg_Activate;               //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetCfg_MinTime_valid;          //      Bits= 1
+
+  //  1 : "Clear all defined regions"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_ClearRegions;           //      Bits= 1
+
+  uint8_t CollDetCfg_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t CollDetCfg_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+} CollDetCfg_t;
+
+// Collision detection region configuration
+// def @CollDetRegionCfg CAN Message (1073 0x431)
+#define CollDetRegionCfg_IDE (0U)
+#define CollDetRegionCfg_DLC (8U)
+#define CollDetRegionCfg_CANID (0x431)
+// signal: @CollDetRegCfg_Point1X_ro
+#define ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point1X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point1X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point1X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegCfg_Point1Y_ro
+#define ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point1Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point1Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point1Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @CollDetRegCfg_Point2X_ro
+#define ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point2X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point2X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point2X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegCfg_Point2Y_ro
+#define ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point2Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point2Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_CollDetRegCfg_Point2Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetRegCfg_Activate : 1;            //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetRegCfg_Coordinates_valid : 1;   //      Bits= 1
+
+  uint8_t CollDetRegCfg_RegionID : 3;            //      Bits= 3
+
+  uint16_t CollDetRegCfg_Point1X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point1Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#else
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetRegCfg_Activate;                //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetRegCfg_Coordinates_valid;       //      Bits= 1
+
+  uint8_t CollDetRegCfg_RegionID;                //      Bits= 3
+
+  uint16_t CollDetRegCfg_Point1X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point1Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+} CollDetRegionCfg_t;
+
+// Collision detection region configuration and warning status
+// def @CollDetRegionState CAN Message (1074 0x432)
+#define CollDetRegionState_IDE (0U)
+#define CollDetRegionState_DLC (8U)
+#define CollDetRegionState_CANID (0x432)
+// signal: @CollDetRegState_Point1X_ro
+#define ARS408_CAN_DATABASE_CH3_CollDetRegState_Point1X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_CollDetRegState_Point1X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_CollDetRegState_Point1X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegState_Point1Y_ro
+#define ARS408_CAN_DATABASE_CH3_CollDetRegState_Point1Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_CollDetRegState_Point1Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_CollDetRegState_Point1Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @CollDetRegState_Point2X_ro
+#define ARS408_CAN_DATABASE_CH3_CollDetRegState_Point2X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_CollDetRegState_Point2X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_CollDetRegState_Point2X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegState_Point2Y_ro
+#define ARS408_CAN_DATABASE_CH3_CollDetRegState_Point2Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_CollDetRegState_Point2Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_CollDetRegState_Point2Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+  //  3 : "Warning deactivated"
+  //  2 : "Preliminary warning"
+  //  1 : "Object warning"
+  //  0 : "No warning"
+  // 
+  uint8_t CollDetRegState_WarningLevel : 2;   //      Bits= 2
+
+  uint8_t CollDetRegState_RegionID : 3;       //      Bits= 3
+
+  uint16_t CollDetRegState_Point1X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point1Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint8_t CollDetRegState_NofObjects;         //      Bits= 8
+
+#else
+
+  //  3 : "Warning deactivated"
+  //  2 : "Preliminary warning"
+  //  1 : "Object warning"
+  //  0 : "No warning"
+  // 
+  uint8_t CollDetRegState_WarningLevel;       //      Bits= 2
+
+  uint8_t CollDetRegState_RegionID;           //      Bits= 3
+
+  uint16_t CollDetRegState_Point1X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point1Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint8_t CollDetRegState_NofObjects;         //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+} CollDetRegionState_t;
+
+// Status information about Clusters
+// def @Cluster_0_Status CAN Message (1584 0x630)
+#define Cluster_0_Status_IDE (0U)
+#define Cluster_0_Status_DLC (5U)
+#define Cluster_0_Status_CANID (0x630)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+  // Number of valid Clusters in near range scan
+  uint8_t Cluster_NofClustersNear;           //      Bits= 8
+
+  // Number of valid Clusters in far range scan
+  uint8_t Cluster_NofClustersFar;            //      Bits= 8
+
+  // Measurement counter
+  uint16_t Cluster_MeasCounter;              //      Bits=16
+
+  // Cluster CAN Interface Version Number
+  uint8_t Cluster_InterfaceVersion : 4;      //      Bits= 4
+
+#else
+
+  // Number of valid Clusters in near range scan
+  uint8_t Cluster_NofClustersNear;           //      Bits= 8
+
+  // Number of valid Clusters in far range scan
+  uint8_t Cluster_NofClustersFar;            //      Bits= 8
+
+  // Measurement counter
+  uint16_t Cluster_MeasCounter;              //      Bits=16
+
+  // Cluster CAN Interface Version Number
+  uint8_t Cluster_InterfaceVersion;          //      Bits= 4
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+} Cluster_0_Status_t;
+
+// Status information about object
+// def @Obj_0_Status CAN Message (1594 0x63a)
+#define Obj_0_Status_IDE (0U)
+#define Obj_0_Status_DLC (4U)
+#define Obj_0_Status_CANID (0x63a)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+  // Number of Objects sent
+  uint8_t Obj_NofObjects;                    //      Bits= 8
+
+  // Measurement Counter
+  uint16_t Obj_MeasCounter;                  //      Bits=16
+
+  // Object CAN Interface Version Number
+  uint8_t Obj_InterfaceVersion : 4;          //      Bits= 4
+
+#else
+
+  // Number of Objects sent
+  uint8_t Obj_NofObjects;                    //      Bits= 8
+
+  // Measurement Counter
+  uint16_t Obj_MeasCounter;                  //      Bits=16
+
+  // Object CAN Interface Version Number
+  uint8_t Obj_InterfaceVersion;              //      Bits= 4
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+} Obj_0_Status_t;
+
+// General object information
+// def @Obj_1_General CAN Message (1595 0x63b)
+#define Obj_1_General_IDE (0U)
+#define Obj_1_General_DLC (8U)
+#define Obj_1_General_CANID (0x63b)
+// signal: @Obj_DistLong_ro
+#define ARS408_CAN_DATABASE_CH3_Obj_DistLong_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_Obj_DistLong_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_Obj_DistLong_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @Obj_DistLat_ro
+#define ARS408_CAN_DATABASE_CH3_Obj_DistLat_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_Obj_DistLat_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_Obj_DistLat_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @Obj_VrelLong_ro
+#define ARS408_CAN_DATABASE_CH3_Obj_VrelLong_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH3_Obj_VrelLong_ro_toS(x) ( (uint16_t) (((x) - (-128.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH3_Obj_VrelLong_ro_fromS(x) ( (((x) * (0.250000)) + (-128.000000)) )
+// signal: @Obj_VrelLat_ro
+#define ARS408_CAN_DATABASE_CH3_Obj_VrelLat_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH3_Obj_VrelLat_ro_toS(x) ( (uint16_t) (((x) - (-64.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH3_Obj_VrelLat_ro_fromS(x) ( (((x) * (0.250000)) + (-64.000000)) )
+// signal: @Obj_RCS_ro
+#define ARS408_CAN_DATABASE_CH3_Obj_RCS_ro_CovFactor (0.500000)
+#define ARS408_CAN_DATABASE_CH3_Obj_RCS_ro_toS(x) ( (uint8_t) (((x) - (-64.000000)) / (0.500000)) )
+#define ARS408_CAN_DATABASE_CH3_Obj_RCS_ro_fromS(x) ( (((x) * (0.500000)) + (-64.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_DistLong_ro;                  //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Obj_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t Obj_DistLat_ro;                   //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Obj_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLong_ro;                  //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLat_ro;                   //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // Object dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Obj_DynProp : 3;                   //      Bits= 3
+
+  uint8_t Obj_RCS_ro;                        //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Obj_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_DistLong_ro;                  //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Obj_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t Obj_DistLat_ro;                   //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Obj_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLong_ro;                  //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLat_ro;                   //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // Object dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Obj_DynProp;                       //      Bits= 3
+
+  uint8_t Obj_RCS_ro;                        //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Obj_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+} Obj_1_General_t;
+
+// Quality object information
+// def @Obj_2_Quality CAN Message (1596 0x63c)
+#define Obj_2_Quality_IDE (0U)
+#define Obj_2_Quality_DLC (7U)
+#define Obj_2_Quality_CANID (0x63c)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Object lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLat_rms : 5;               //      Bits= 5
+
+  // Object longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLong_rms : 5;              //      Bits= 5
+
+  // Object relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLat_rms : 5;               //      Bits= 5
+
+  // Object relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLong_rms : 5;              //      Bits= 5
+
+  // Object relative longitudinal acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLong_rms : 5;              //      Bits= 5
+
+  // Object orientation angle
+  //  31 : "Invalid"
+  //  30 : "<180.000 deg"
+  //  29 : "<126.881 deg"
+  //  28 : "<89.437 deg"
+  //  27 : "<63.044 deg"
+  //  26 : "<44.439 deg"
+  //  25 : "<31.325 deg"
+  //  24 : "<22.081 deg"
+  //  23 : "<15.565 deg"
+  //  22 : "<10.971 deg"
+  //  21 : "<7.734 deg"
+  //  20 : "<5.451 deg"
+  //  19 : "<3.843 deg"
+  //  18 : "<2.709 deg"
+  //  17 : "<1.909 deg"
+  //  16 : "<1.346 deg"
+  //  15 : "<0.949 deg"
+  //  14 : "<0.669 deg"
+  //  13 : "<0.471 deg"
+  //  12 : "<0.332 deg"
+  //  11 : "<0.234 deg"
+  //  10 : "<0.165 deg"
+  //  9 : "<0.116 deg"
+  //  8 : "<0.082 deg"
+  //  7 : "<0.058 deg"
+  //  6 : "<0.041 deg"
+  //  5 : "<0.029 deg"
+  //  4 : "<0.020 deg"
+  //  3 : "<0.014 deg"
+  //  2 : "<0.010 deg"
+  //  1 : "<0.007 deg"
+  //  0 : "<0.005 deg"
+  // 
+  uint8_t Obj_Orientation_rms : 5;           //      Bits= 5
+
+  // Object relative lateral acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLat_rms : 5;               //      Bits= 5
+
+  // Object measurement status
+  //  5 : "New from merge"
+  //  4 : "Deleted for merge"
+  //  3 : "Predicted"
+  //  2 : "Measured"
+  //  1 : "New"
+  //  0 : "Deleted"
+  // 
+  uint8_t Obj_MeasState : 3;                 //      Bits= 3
+
+  // Object probability of existence
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Obj_ProbOfExist : 3;               //      Bits= 3
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Object lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLat_rms;                   //      Bits= 5
+
+  // Object longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLong_rms;                  //      Bits= 5
+
+  // Object relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLat_rms;                   //      Bits= 5
+
+  // Object relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLong_rms;                  //      Bits= 5
+
+  // Object relative longitudinal acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLong_rms;                  //      Bits= 5
+
+  // Object orientation angle
+  //  31 : "Invalid"
+  //  30 : "<180.000 deg"
+  //  29 : "<126.881 deg"
+  //  28 : "<89.437 deg"
+  //  27 : "<63.044 deg"
+  //  26 : "<44.439 deg"
+  //  25 : "<31.325 deg"
+  //  24 : "<22.081 deg"
+  //  23 : "<15.565 deg"
+  //  22 : "<10.971 deg"
+  //  21 : "<7.734 deg"
+  //  20 : "<5.451 deg"
+  //  19 : "<3.843 deg"
+  //  18 : "<2.709 deg"
+  //  17 : "<1.909 deg"
+  //  16 : "<1.346 deg"
+  //  15 : "<0.949 deg"
+  //  14 : "<0.669 deg"
+  //  13 : "<0.471 deg"
+  //  12 : "<0.332 deg"
+  //  11 : "<0.234 deg"
+  //  10 : "<0.165 deg"
+  //  9 : "<0.116 deg"
+  //  8 : "<0.082 deg"
+  //  7 : "<0.058 deg"
+  //  6 : "<0.041 deg"
+  //  5 : "<0.029 deg"
+  //  4 : "<0.020 deg"
+  //  3 : "<0.014 deg"
+  //  2 : "<0.010 deg"
+  //  1 : "<0.007 deg"
+  //  0 : "<0.005 deg"
+  // 
+  uint8_t Obj_Orientation_rms;               //      Bits= 5
+
+  // Object relative lateral acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLat_rms;                   //      Bits= 5
+
+  // Object measurement status
+  //  5 : "New from merge"
+  //  4 : "Deleted for merge"
+  //  3 : "Predicted"
+  //  2 : "Measured"
+  //  1 : "New"
+  //  0 : "Deleted"
+  // 
+  uint8_t Obj_MeasState;                     //      Bits= 3
+
+  // Object probability of existence
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Obj_ProbOfExist;                   //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+} Obj_2_Quality_t;
+
+// Extended object information
+// def @Obj_3_Extended CAN Message (1597 0x63d)
+#define Obj_3_Extended_IDE (0U)
+#define Obj_3_Extended_DLC (8U)
+#define Obj_3_Extended_CANID (0x63d)
+// signal: @Obj_ArelLong_ro
+#define ARS408_CAN_DATABASE_CH3_Obj_ArelLong_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH3_Obj_ArelLong_ro_toS(x) ( (uint16_t) (((x) - (-10.000000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH3_Obj_ArelLong_ro_fromS(x) ( (((x) * (0.010000)) + (-10.000000)) )
+// signal: @Obj_ArelLat_ro
+#define ARS408_CAN_DATABASE_CH3_Obj_ArelLat_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH3_Obj_ArelLat_ro_toS(x) ( (uint16_t) (((x) - (-2.500000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH3_Obj_ArelLat_ro_fromS(x) ( (((x) * (0.010000)) + (-2.500000)) )
+// signal: @Obj_OrientationAngle_ro
+#define ARS408_CAN_DATABASE_CH3_Obj_OrientationAngle_ro_CovFactor (0.400000)
+#define ARS408_CAN_DATABASE_CH3_Obj_OrientationAngle_ro_toS(x) ( (uint16_t) (((x) - (-180.000000)) / (0.400000)) )
+#define ARS408_CAN_DATABASE_CH3_Obj_OrientationAngle_ro_fromS(x) ( (((x) * (0.400000)) + (-180.000000)) )
+// signal: @Obj_Length_ro
+#define ARS408_CAN_DATABASE_CH3_Obj_Length_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_Obj_Length_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_Obj_Length_ro_fromS(x) ( (((x) * (0.200000)) + (0.000000)) )
+// signal: @Obj_Width_ro
+#define ARS408_CAN_DATABASE_CH3_Obj_Width_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_Obj_Width_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_Obj_Width_ro_fromS(x) ( (((x) * (0.200000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_ArelLong_ro;                  //      Bits=11 Offset= -10.000000         Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t Obj_ArelLat_ro;                   //      Bits= 9 Offset= -2.500000          Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // Object classification
+  //  7 : "Description for the value '0x7'"
+  //  6 : "Wide"
+  //  5 : "Bicycle"
+  //  4 : "Motorcycle"
+  //  3 : "Pedestrian"
+  //  2 : "Truck"
+  //  1 : "Car"
+  //  0 : "Point"
+  // 
+  uint8_t Obj_Class : 3;                     //      Bits= 3
+
+  uint16_t Obj_OrientationAngle_ro;          //      Bits=10 Offset= -180.000000        Factor= 0.400000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Obj_OrientationAngle_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint8_t Obj_Length_ro;                     //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Obj_Length_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint8_t Obj_Width_ro;                      //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Obj_Width_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_ArelLong_ro;                  //      Bits=11 Offset= -10.000000         Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t Obj_ArelLat_ro;                   //      Bits= 9 Offset= -2.500000          Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // Object classification
+  //  7 : "Description for the value '0x7'"
+  //  6 : "Wide"
+  //  5 : "Bicycle"
+  //  4 : "Motorcycle"
+  //  3 : "Pedestrian"
+  //  2 : "Truck"
+  //  1 : "Car"
+  //  0 : "Point"
+  // 
+  uint8_t Obj_Class;                         //      Bits= 3
+
+  uint16_t Obj_OrientationAngle_ro;          //      Bits=10 Offset= -180.000000        Factor= 0.400000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Obj_OrientationAngle_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint8_t Obj_Length_ro;                     //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Obj_Length_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint8_t Obj_Width_ro;                      //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Obj_Width_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+} Obj_3_Extended_t;
+
+// Collision detection warning object information
+// def @Obj_4_Warning CAN Message (1598 0x63e)
+#define Obj_4_Warning_IDE (0U)
+#define Obj_4_Warning_DLC (4U)
+#define Obj_4_Warning_CANID (0x63e)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Region bit field with collision detection
+  uint8_t Obj_CollDetRegionBitfield;         //      Bits= 8
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Region bit field with collision detection
+  uint8_t Obj_CollDetRegionBitfield;         //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+} Obj_4_Warning_t;
+
+// Firmware version
+// def @VersionID CAN Message (1840 0x730)
+#define VersionID_IDE (0U)
+#define VersionID_DLC (4U)
+#define VersionID_CANID (0x730)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+  // Major Release Number
+  uint8_t Version_MajorRelease;              //      Bits= 8
+
+  // Minor Release Number
+  uint8_t Version_MinorRelease;              //      Bits= 8
+
+  // Patch Level
+  uint8_t Version_PatchLevel;                //      Bits= 8
+
+  // 
+  // 
+  //  1 : "Power Reduction is demanded"
+  //  0 : "International Version"
+  // 
+  uint8_t Version_CountryCode : 1;           //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Description for the value '0x1'"
+  //  0 : "Standard Range 196m-260m"
+  // 
+  uint8_t Version_ExtendedRange : 1;         //      Bits= 1
+
+#else
+
+  // Major Release Number
+  uint8_t Version_MajorRelease;              //      Bits= 8
+
+  // Minor Release Number
+  uint8_t Version_MinorRelease;              //      Bits= 8
+
+  // Patch Level
+  uint8_t Version_PatchLevel;                //      Bits= 8
+
+  // 
+  // 
+  //  1 : "Power Reduction is demanded"
+  //  0 : "International Version"
+  // 
+  uint8_t Version_CountryCode;               //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Description for the value '0x1'"
+  //  0 : "Standard Range 196m-260m"
+  // 
+  uint8_t Version_ExtendedRange;             //      Bits= 1
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+} VersionID_t;
+
+// General Cluster information
+// def @Cluster_1_General CAN Message (1841 0x731)
+#define Cluster_1_General_IDE (0U)
+#define Cluster_1_General_DLC (8U)
+#define Cluster_1_General_CANID (0x731)
+// signal: @Cluster_DistLong_ro
+#define ARS408_CAN_DATABASE_CH3_Cluster_DistLong_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_Cluster_DistLong_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_Cluster_DistLong_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @Cluster_DistLat_ro
+#define ARS408_CAN_DATABASE_CH3_Cluster_DistLat_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH3_Cluster_DistLat_ro_toS(x) ( (uint16_t) (((x) - (-102.300000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH3_Cluster_DistLat_ro_fromS(x) ( (((x) * (0.200000)) + (-102.300000)) )
+// signal: @Cluster_VrelLong_ro
+#define ARS408_CAN_DATABASE_CH3_Cluster_VrelLong_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH3_Cluster_VrelLong_ro_toS(x) ( (uint16_t) (((x) - (-128.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH3_Cluster_VrelLong_ro_fromS(x) ( (((x) * (0.250000)) + (-128.000000)) )
+// signal: @Cluster_VrelLat_ro
+#define ARS408_CAN_DATABASE_CH3_Cluster_VrelLat_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH3_Cluster_VrelLat_ro_toS(x) ( (uint16_t) (((x) - (-64.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH3_Cluster_VrelLat_ro_fromS(x) ( (((x) * (0.250000)) + (-64.000000)) )
+// signal: @Cluster_RCS_ro
+#define ARS408_CAN_DATABASE_CH3_Cluster_RCS_ro_CovFactor (0.500000)
+#define ARS408_CAN_DATABASE_CH3_Cluster_RCS_ro_toS(x) ( (uint8_t) (((x) - (-64.000000)) / (0.500000)) )
+#define ARS408_CAN_DATABASE_CH3_Cluster_RCS_ro_fromS(x) ( (((x) * (0.500000)) + (-64.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  uint16_t Cluster_DistLong_ro;              //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t Cluster_DistLat_ro;               //      Bits=10 Offset= -102.300000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLong_ro;              //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLat_ro;               //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // Cluster dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Cluster_DynProp : 3;               //      Bits= 3
+
+  uint8_t Cluster_RCS_ro;                    //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Cluster_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#else
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  uint16_t Cluster_DistLong_ro;              //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t Cluster_DistLat_ro;               //      Bits=10 Offset= -102.300000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLong_ro;              //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLat_ro;               //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+  // Cluster dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Cluster_DynProp;                   //      Bits= 3
+
+  uint8_t Cluster_RCS_ro;                    //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+  sigfloat_t Cluster_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH3_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+} Cluster_1_General_t;
+
+// Quality Cluster information
+// def @Cluster_2_Quality CAN Message (1842 0x732)
+#define Cluster_2_Quality_IDE (0U)
+#define Cluster_2_Quality_DLC (5U)
+#define Cluster_2_Quality_CANID (0x732)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  // Cluster lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLat_rms : 5;           //      Bits= 5 Unit:'m'
+
+  // Cluster longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLong_rms : 5;          //      Bits= 5 Unit:'m'
+
+  // Cluster relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLat_rms : 5;           //      Bits= 5 Unit:'m/s'
+
+  // Cluster relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLong_rms : 5;          //      Bits= 5 Unit:'m/s'
+
+  // Cluster false alarm probability
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Cluster_PdH0 : 3;                  //      Bits= 3
+
+  // Cluster Doppler ambiguity status
+  //  4 : "Stationary candidate"
+  //  3 : "Unambiguous"
+  //  2 : "Staggered ramp"
+  //  1 : "Ambiguous"
+  //  0 : "Invalid"
+  // 
+  uint8_t Cluster_AmbigState : 3;            //      Bits= 3
+
+  // Cluster invalid state
+  //  17 : "Valid suspicious angle"
+  //  16 : "Valid multi-target"
+  //  15 : "Valid near above 95 m"
+  //  14 : "Invalid harmonics "
+  //  13 : "reserved"
+  //  12 : "Valid artefact "
+  //  11 : "Valid but no local maximum"
+  //  10 : "Valid 50 deg artefact"
+  //  9 : "Valid child"
+  //  8 : "Valid with elevation"
+  //  7 : "Invalid outside field of view"
+  //  6 : "Invalid mirror"
+  //  5 : "reserved"
+  //  4 : "Valid with low RCS"
+  //  3 : "Invalid far not confirmed"
+  //  2 : "Invalid nearfield"
+  //  1 : "Invalid with too low RCS"
+  //  0 : "Valid"
+  // 
+  uint8_t Cluster_InvalidState : 5;          //      Bits= 5
+
+#else
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  // Cluster lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLat_rms;               //      Bits= 5 Unit:'m'
+
+  // Cluster longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLong_rms;              //      Bits= 5 Unit:'m'
+
+  // Cluster relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLat_rms;               //      Bits= 5 Unit:'m/s'
+
+  // Cluster relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLong_rms;              //      Bits= 5 Unit:'m/s'
+
+  // Cluster false alarm probability
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Cluster_PdH0;                      //      Bits= 3
+
+  // Cluster Doppler ambiguity status
+  //  4 : "Stationary candidate"
+  //  3 : "Unambiguous"
+  //  2 : "Staggered ramp"
+  //  1 : "Ambiguous"
+  //  0 : "Invalid"
+  // 
+  uint8_t Cluster_AmbigState;                //      Bits= 3
+
+  // Cluster invalid state
+  //  17 : "Valid suspicious angle"
+  //  16 : "Valid multi-target"
+  //  15 : "Valid near above 95 m"
+  //  14 : "Invalid harmonics "
+  //  13 : "reserved"
+  //  12 : "Valid artefact "
+  //  11 : "Valid but no local maximum"
+  //  10 : "Valid 50 deg artefact"
+  //  9 : "Valid child"
+  //  8 : "Valid with elevation"
+  //  7 : "Invalid outside field of view"
+  //  6 : "Invalid mirror"
+  //  5 : "reserved"
+  //  4 : "Valid with low RCS"
+  //  3 : "Invalid far not confirmed"
+  //  2 : "Invalid nearfield"
+  //  1 : "Invalid with too low RCS"
+  //  0 : "Valid"
+  // 
+  uint8_t Cluster_InvalidState;              //      Bits= 5
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH3_USE_DIAG_MONITORS
+
+} Cluster_2_Quality_t;
+
+// Function signatures
+
+uint32_t Unpack_CollDetRelayCtrl_ARS408_can_database_ch3(CollDetRelayCtrl_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch3(CollDetRelayCtrl_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch3(CollDetRelayCtrl_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_RadarConfiguration_ARS408_can_database_ch3(RadarConfiguration_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch3(RadarConfiguration_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch3(RadarConfiguration_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_RadarState_ARS408_can_database_ch3(RadarState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+uint32_t Pack_RadarState_ARS408_can_database_ch3(RadarState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_RadarState_ARS408_can_database_ch3(RadarState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_FilterCfg_ARS408_can_database_ch3(FilterCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+uint32_t Pack_FilterCfg_ARS408_can_database_ch3(FilterCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterCfg_ARS408_can_database_ch3(FilterCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Header_ARS408_can_database_ch3(FilterState_Header_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch3(FilterState_Header_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch3(FilterState_Header_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Cfg_ARS408_can_database_ch3(FilterState_Cfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch3(FilterState_Cfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch3(FilterState_Cfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_SpeedInformation_ARS408_can_database_ch3(SpeedInformation_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch3(SpeedInformation_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch3(SpeedInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_YawRateInformation_ARS408_can_database_ch3(YawRateInformation_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch3(YawRateInformation_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch3(YawRateInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetState_ARS408_can_database_ch3(CollDetState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+uint32_t Pack_CollDetState_ARS408_can_database_ch3(CollDetState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetState_ARS408_can_database_ch3(CollDetState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetCfg_ARS408_can_database_ch3(CollDetCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch3(CollDetCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch3(CollDetCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionCfg_ARS408_can_database_ch3(CollDetRegionCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch3(CollDetRegionCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch3(CollDetRegionCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionState_ARS408_can_database_ch3(CollDetRegionState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch3(CollDetRegionState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch3(CollDetRegionState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_0_Status_ARS408_can_database_ch3(Cluster_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch3(Cluster_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch3(Cluster_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_0_Status_ARS408_can_database_ch3(Obj_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch3(Obj_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch3(Obj_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_1_General_ARS408_can_database_ch3(Obj_1_General_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch3(Obj_1_General_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch3(Obj_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_2_Quality_ARS408_can_database_ch3(Obj_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch3(Obj_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch3(Obj_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_3_Extended_ARS408_can_database_ch3(Obj_3_Extended_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch3(Obj_3_Extended_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch3(Obj_3_Extended_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_4_Warning_ARS408_can_database_ch3(Obj_4_Warning_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch3(Obj_4_Warning_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch3(Obj_4_Warning_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_VersionID_ARS408_can_database_ch3(VersionID_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+uint32_t Pack_VersionID_ARS408_can_database_ch3(VersionID_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_VersionID_ARS408_can_database_ch3(VersionID_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_1_General_ARS408_can_database_ch3(Cluster_1_General_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch3(Cluster_1_General_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch3(Cluster_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_2_Quality_ARS408_can_database_ch3(Cluster_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch3(Cluster_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch3(Cluster_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH3_USE_CANSTRUCT
+
+#ifdef __cplusplus
+}
+#endif

+ 96 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch4-binutil.c

@@ -0,0 +1,96 @@
+#include "ars408_can_database_ch4-binutil.h"
+
+#ifdef __DEF_ARS408_CAN_DATABASE_CH4__
+
+ars408_can_database_ch4_rx_t ars408_can_database_ch4_rx;
+
+#endif // __DEF_ARS408_CAN_DATABASE_CH4__
+
+uint32_t ars408_can_database_ch4_Receive(ars408_can_database_ch4_rx_t* _m, const uint8_t* _d, uint32_t _id, uint8_t dlc_)
+{
+ uint32_t recid = 0;
+ if ((_id >= 0x8U) && (_id < 0x441U)) {
+  if ((_id >= 0x8U) && (_id < 0x244U)) {
+   if ((_id >= 0x8U) && (_id < 0x241U)) {
+    if (_id == 0x8U) {
+     recid = Unpack_CollDetRelayCtrl_ARS408_can_database_ch4(&(_m->CollDetRelayCtrl), _d, dlc_);
+    } else if (_id == 0x240U) {
+     recid = Unpack_RadarConfiguration_ARS408_can_database_ch4(&(_m->RadarConfiguration), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x241U) {
+     recid = Unpack_RadarState_ARS408_can_database_ch4(&(_m->RadarState), _d, dlc_);
+    } else {
+     if (_id == 0x242U) {
+      recid = Unpack_FilterCfg_ARS408_can_database_ch4(&(_m->FilterCfg), _d, dlc_);
+     } else if (_id == 0x243U) {
+      recid = Unpack_FilterState_Header_ARS408_can_database_ch4(&(_m->FilterState_Header), _d, dlc_);
+     }
+    }
+   }
+  } else {
+   if ((_id >= 0x244U) && (_id < 0x341U)) {
+    if (_id == 0x244U) {
+     recid = Unpack_FilterState_Cfg_ARS408_can_database_ch4(&(_m->FilterState_Cfg), _d, dlc_);
+    } else if (_id == 0x340U) {
+     recid = Unpack_SpeedInformation_ARS408_can_database_ch4(&(_m->SpeedInformation), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x341U) {
+     recid = Unpack_YawRateInformation_ARS408_can_database_ch4(&(_m->YawRateInformation), _d, dlc_);
+    } else {
+     if (_id == 0x408U) {
+      recid = Unpack_CollDetState_ARS408_can_database_ch4(&(_m->CollDetState), _d, dlc_);
+     } else if (_id == 0x440U) {
+      recid = Unpack_CollDetCfg_ARS408_can_database_ch4(&(_m->CollDetCfg), _d, dlc_);
+     }
+    }
+   }
+  }
+ } else {
+  if ((_id >= 0x441U) && (_id < 0x64CU)) {
+   if ((_id >= 0x441U) && (_id < 0x640U)) {
+    if (_id == 0x441U) {
+     recid = Unpack_CollDetRegionCfg_ARS408_can_database_ch4(&(_m->CollDetRegionCfg), _d, dlc_);
+    } else if (_id == 0x442U) {
+     recid = Unpack_CollDetRegionState_ARS408_can_database_ch4(&(_m->CollDetRegionState), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x640U) {
+     recid = Unpack_Cluster_0_Status_ARS408_can_database_ch4(&(_m->Cluster_0_Status), _d, dlc_);
+    } else {
+     if (_id == 0x64AU) {
+      recid = Unpack_Obj_0_Status_ARS408_can_database_ch4(&(_m->Obj_0_Status), _d, dlc_);
+     } else if (_id == 0x64BU) {
+      recid = Unpack_Obj_1_General_ARS408_can_database_ch4(&(_m->Obj_1_General), _d, dlc_);
+     }
+    }
+   }
+  } else {
+   if ((_id >= 0x64CU) && (_id < 0x740U)) {
+    if (_id == 0x64CU) {
+     recid = Unpack_Obj_2_Quality_ARS408_can_database_ch4(&(_m->Obj_2_Quality), _d, dlc_);
+    } else {
+     if (_id == 0x64DU) {
+      recid = Unpack_Obj_3_Extended_ARS408_can_database_ch4(&(_m->Obj_3_Extended), _d, dlc_);
+     } else if (_id == 0x64EU) {
+      recid = Unpack_Obj_4_Warning_ARS408_can_database_ch4(&(_m->Obj_4_Warning), _d, dlc_);
+     }
+    }
+   } else {
+    if (_id == 0x740U) {
+     recid = Unpack_VersionID_ARS408_can_database_ch4(&(_m->VersionID), _d, dlc_);
+    } else {
+     if (_id == 0x741U) {
+      recid = Unpack_Cluster_1_General_ARS408_can_database_ch4(&(_m->Cluster_1_General), _d, dlc_);
+     } else if (_id == 0x742U) {
+      recid = Unpack_Cluster_2_Quality_ARS408_can_database_ch4(&(_m->Cluster_2_Quality), _d, dlc_);
+     }
+    }
+   }
+  }
+ }
+
+ return recid;
+}
+

+ 53 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch4-binutil.h

@@ -0,0 +1,53 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "dbccodeconf.h"
+
+#include "ars408_can_database_ch4.h"
+
+// This version definition comes from main driver version and
+// can be compared in user code space for strict compatibility test
+#define VER_ARS408_CAN_DATABASE_CH4_MAJ (0U)
+#define VER_ARS408_CAN_DATABASE_CH4_MIN (0U)
+
+typedef struct
+{
+  CollDetRelayCtrl_t CollDetRelayCtrl;
+  RadarConfiguration_t RadarConfiguration;
+  RadarState_t RadarState;
+  FilterCfg_t FilterCfg;
+  FilterState_Header_t FilterState_Header;
+  FilterState_Cfg_t FilterState_Cfg;
+  SpeedInformation_t SpeedInformation;
+  YawRateInformation_t YawRateInformation;
+  CollDetState_t CollDetState;
+  CollDetCfg_t CollDetCfg;
+  CollDetRegionCfg_t CollDetRegionCfg;
+  CollDetRegionState_t CollDetRegionState;
+  Cluster_0_Status_t Cluster_0_Status;
+  Obj_0_Status_t Obj_0_Status;
+  Obj_1_General_t Obj_1_General;
+  Obj_2_Quality_t Obj_2_Quality;
+  Obj_3_Extended_t Obj_3_Extended;
+  Obj_4_Warning_t Obj_4_Warning;
+  VersionID_t VersionID;
+  Cluster_1_General_t Cluster_1_General;
+  Cluster_2_Quality_t Cluster_2_Quality;
+} ars408_can_database_ch4_rx_t;
+
+// There is no any TX mapped massage.
+
+uint32_t ars408_can_database_ch4_Receive(ars408_can_database_ch4_rx_t* m, const uint8_t* d, uint32_t msgid, uint8_t dlc);
+
+#ifdef __DEF_ARS408_CAN_DATABASE_CH4__
+
+extern ars408_can_database_ch4_rx_t ars408_can_database_ch4_rx;
+
+#endif // __DEF_ARS408_CAN_DATABASE_CH4__
+
+#ifdef __cplusplus
+}
+#endif

+ 109 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch4-config.h

@@ -0,0 +1,109 @@
+#pragma once
+
+/* include common dbccode configurations */
+#include "dbccodeconf.h"
+
+
+/* ------------------------------------------------------------------------- *
+  This define enables using CAN message structs with bit-fielded signals
+  layout.
+
+  Note(!): bit-feild was not tested properly. */
+
+/* #define ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL */
+
+
+/* ------------------------------------------------------------------------- *
+  This macro enables using CAN message descriptive struct packing functions
+  (by default signature of pack function intakes a few simple typed params
+  for loading data, len, etc). To compile you need to define the struct
+  __CoderDbcCanFrame_t__ which must have fields:
+
+    u32 MsgId (CAN Frame message ID)
+    u8 DLC (CAN Frame payload length field)
+    u8 Data[8] (CAN Frame payload data)
+    u8 IDE (CAN Frame Extended (1) / Standard (0) ID type)
+
+  This struct definition have to be placed (or be included) in dbccodeconf.h */
+
+/* #define ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT */
+
+
+/* ------------------------------------------------------------------------- *
+  All the signals which have values of factor != 1 or offset != 0
+  will be named in message struct with posfix '_ro'. Pack to payload
+  operations will be made on this signal value as well as unpack from payload.
+
+  USE_SIGFLOAT macro makes some difference:
+
+  1. All the '_ro' fields will have a pair field with '_phys' postfix.
+  If only offset != 0 is true then the type of '_phys' signal is the same
+  as '_ro' signal. In other case the type will be @sigfloat_t which
+  have to be defined in user dbccodeconf.h
+
+  2. In pack function '_ro' signal will be rewritten by '_phys' signal, which
+  requires from user to use ONLY '_phys' signal for packing frame
+
+  3. In unpack function '_phys' signal will be written by '_ro' signal.
+  User have to use '_phys' signal to read physical value. */
+
+/* #define ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT */
+
+
+/* ------------------------------------------------------------------------- *
+  Note(!) that the "canmonitorutil.h" must be accessed in include path:
+
+  This macro adds:
+
+  - monitor field @mon1 to message struct
+
+  - capture system tick in unpack function and save value to mon1 field
+  to provide to user better missing frame detection code. For this case
+  user must provide function declared in canmonitorutil.h - GetSysTick()
+  which may return 1ms uptime.
+
+  - calling function FMon_***  (from 'fmon' driver) inside unpack function
+  which is empty by default and have to be filled by user if
+  tests for DLC, rolling, checksum are necessary */
+
+/* #define ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS */
+
+
+/* ------------------------------------------------------------------------- *
+  When monitor using is enabled (ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS) and define below
+  uncommented, additional signal will be added to message struct. ***_expt:
+  expected rolling counter, to perform monitoring rolling counter sequence
+  automatically (result may be tested in dedicated Fmon_*** function) */
+
+/* #define ARS408_CAN_DATABASE_CH4_AUTO_ROLL */
+
+
+/* ------------------------------------------------------------------------- *
+  When monitor using is enabled (ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS) and define below
+  uncommented, frame checksum signal may be handled automatically.
+
+  The signal which may be marked as checksum signal must have substring
+  with next format:
+    <Checksum:XOR8:3>
+
+  where:
+
+  - "Checksum": constant marker word
+
+  - "XOR8": type of method, this text will be passed to GetFrameHash
+  (canmonitorutil.h) function as is, the best use case is to define 'enum
+  DbcCanCrcMethods' in canmonitorutil.h file with all possible
+  checksum algorithms (e.g. XOR8, XOR4 etc)
+
+  - "3": optional value that will be passed to GetFrameHash as integer value
+
+  Function GetFrameHash have to be implemented by user
+
+  In pack function checksum signal will be calculated automatically
+  and loaded to payload
+
+  In unpack function checksum signal is checked with calculated.
+  (result may be tested in dedicated Fmon_*** function).
+
+/* #define ARS408_CAN_DATABASE_CH4_AUTO_CSM */
+

+ 115 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch4-fmon.c

@@ -0,0 +1,115 @@
+#include "ars408_can_database_ch4-fmon.h"
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+/*
+Put the monitor function content here, keep in mind -
+next generation will completely clear all manually added code (!)
+*/
+
+void FMon_CollDetRelayCtrl_ars408_can_database_ch4(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_RadarConfiguration_ars408_can_database_ch4(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_RadarState_ars408_can_database_ch4(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterCfg_ars408_can_database_ch4(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterState_Header_ars408_can_database_ch4(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterState_Cfg_ars408_can_database_ch4(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_SpeedInformation_ars408_can_database_ch4(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_YawRateInformation_ars408_can_database_ch4(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetState_ars408_can_database_ch4(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetCfg_ars408_can_database_ch4(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetRegionCfg_ars408_can_database_ch4(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetRegionState_ars408_can_database_ch4(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_0_Status_ars408_can_database_ch4(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_0_Status_ars408_can_database_ch4(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_1_General_ars408_can_database_ch4(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_2_Quality_ars408_can_database_ch4(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_3_Extended_ars408_can_database_ch4(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_4_Warning_ars408_can_database_ch4(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_VersionID_ars408_can_database_ch4(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_1_General_ars408_can_database_ch4(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_2_Quality_ars408_can_database_ch4(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS

+ 49 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch4-fmon.h

@@ -0,0 +1,49 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// DBC file version
+#define VER_ARS408_CAN_DATABASE_CH4_MAJ_FMON (0U)
+#define VER_ARS408_CAN_DATABASE_CH4_MIN_FMON (0U)
+
+#include "ars408_can_database_ch4-config.h"
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+#include "canmonitorutil.h"
+/*
+This file contains the prototypes of all the functions that will be called
+from each Unpack_*name* function to detect DBC related errors
+It is the user responsibility to defined these functions in the
+separated .c file. If it won't be done the linkage error will happen
+*/
+
+void FMon_CollDetRelayCtrl_ars408_can_database_ch4(FrameMonitor_t* _mon);
+void FMon_RadarConfiguration_ars408_can_database_ch4(FrameMonitor_t* _mon);
+void FMon_RadarState_ars408_can_database_ch4(FrameMonitor_t* _mon);
+void FMon_FilterCfg_ars408_can_database_ch4(FrameMonitor_t* _mon);
+void FMon_FilterState_Header_ars408_can_database_ch4(FrameMonitor_t* _mon);
+void FMon_FilterState_Cfg_ars408_can_database_ch4(FrameMonitor_t* _mon);
+void FMon_SpeedInformation_ars408_can_database_ch4(FrameMonitor_t* _mon);
+void FMon_YawRateInformation_ars408_can_database_ch4(FrameMonitor_t* _mon);
+void FMon_CollDetState_ars408_can_database_ch4(FrameMonitor_t* _mon);
+void FMon_CollDetCfg_ars408_can_database_ch4(FrameMonitor_t* _mon);
+void FMon_CollDetRegionCfg_ars408_can_database_ch4(FrameMonitor_t* _mon);
+void FMon_CollDetRegionState_ars408_can_database_ch4(FrameMonitor_t* _mon);
+void FMon_Cluster_0_Status_ars408_can_database_ch4(FrameMonitor_t* _mon);
+void FMon_Obj_0_Status_ars408_can_database_ch4(FrameMonitor_t* _mon);
+void FMon_Obj_1_General_ars408_can_database_ch4(FrameMonitor_t* _mon);
+void FMon_Obj_2_Quality_ars408_can_database_ch4(FrameMonitor_t* _mon);
+void FMon_Obj_3_Extended_ars408_can_database_ch4(FrameMonitor_t* _mon);
+void FMon_Obj_4_Warning_ars408_can_database_ch4(FrameMonitor_t* _mon);
+void FMon_VersionID_ars408_can_database_ch4(FrameMonitor_t* _mon);
+void FMon_Cluster_1_General_ars408_can_database_ch4(FrameMonitor_t* _mon);
+void FMon_Cluster_2_Quality_ars408_can_database_ch4(FrameMonitor_t* _mon);
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+#ifdef __cplusplus
+}
+#endif

+ 1841 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch4.c

@@ -0,0 +1,1841 @@
+#include "ars408_can_database_ch4.h"
+
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+// Function prototypes to be called each time CAN frame is unpacked
+// FMon function may detect RC, CRC or DLC violation 
+#include "ars408_can_database_ch4-fmon.h"
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+
+uint32_t Unpack_CollDetRelayCtrl_ARS408_can_database_ch4(CollDetRelayCtrl_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRelayCtrl_Param = (_d[0] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRelayCtrl_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRelayCtrl_ars408_can_database_ch4(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+ return CollDetRelayCtrl_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch4(CollDetRelayCtrl_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRelayCtrl_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->CollDetRelayCtrl_Param & (0xFFU));
+
+  cframe->MsgId = CollDetRelayCtrl_CANID;
+  cframe->DLC = CollDetRelayCtrl_DLC;
+  cframe->IDE = CollDetRelayCtrl_IDE;
+  return CollDetRelayCtrl_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch4(CollDetRelayCtrl_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRelayCtrl_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->CollDetRelayCtrl_Param & (0xFFU));
+
+  *_len = CollDetRelayCtrl_DLC;
+  *_ide = CollDetRelayCtrl_IDE;
+  return CollDetRelayCtrl_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_RadarConfiguration_ARS408_can_database_ch4(RadarConfiguration_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarCfg_MaxDistance_valid = (_d[0] & (0x01U));
+  _m->RadarCfg_SensorID_valid = ((_d[0] >> 1) & (0x01U));
+  _m->RadarCfg_RadarPower_valid = ((_d[0] >> 2) & (0x01U));
+  _m->RadarCfg_OutputType_valid = ((_d[0] >> 3) & (0x01U));
+  _m->RadarCfg_SendQuality_valid = ((_d[0] >> 4) & (0x01U));
+  _m->RadarCfg_SendExtInfo_valid = ((_d[0] >> 5) & (0x01U));
+  _m->RadarCfg_SortIndex_valid = ((_d[0] >> 6) & (0x01U));
+  _m->RadarCfg_StoreInNVM_valid = ((_d[0] >> 7) & (0x01U));
+  _m->RadarCfg_MaxDistance_ro = ((_d[1] & (0xFFU)) << 2) | ((_d[2] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_phys = ARS408_CAN_DATABASE_CH4_RadarCfg_MaxDistance_ro_fromS(_m->RadarCfg_MaxDistance_ro);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->RadarCfg_SensorID = (_d[4] & (0x07U));
+  _m->RadarCfg_OutputType = ((_d[4] >> 3) & (0x03U));
+  _m->RadarCfg_RadarPower = ((_d[4] >> 5) & (0x07U));
+  _m->RadarCfg_CtrlRelay_valid = (_d[5] & (0x01U));
+  _m->RadarCfg_CtrlRelay = ((_d[5] >> 1) & (0x01U));
+  _m->RadarCfg_SendQuality = ((_d[5] >> 2) & (0x01U));
+  _m->RadarCfg_SendExtInfo = ((_d[5] >> 3) & (0x01U));
+  _m->RadarCfg_SortIndex = ((_d[5] >> 4) & (0x07U));
+  _m->RadarCfg_StoreInNVM = ((_d[5] >> 7) & (0x01U));
+  _m->RadarCfg_RCS_Threshold_Valid = (_d[6] & (0x01U));
+  _m->RadarCfg_RCS_Threshold = ((_d[6] >> 1) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < RadarConfiguration_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_RadarConfiguration_ars408_can_database_ch4(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+ return RadarConfiguration_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch4(RadarConfiguration_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < RadarConfiguration_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_ro = ARS408_CAN_DATABASE_CH4_RadarCfg_MaxDistance_ro_toS(_m->RadarCfg_MaxDistance_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->RadarCfg_MaxDistance_valid & (0x01U)) | ((_m->RadarCfg_SensorID_valid & (0x01U)) << 1) | ((_m->RadarCfg_RadarPower_valid & (0x01U)) << 2) | ((_m->RadarCfg_OutputType_valid & (0x01U)) << 3) | ((_m->RadarCfg_SendQuality_valid & (0x01U)) << 4) | ((_m->RadarCfg_SendExtInfo_valid & (0x01U)) << 5) | ((_m->RadarCfg_SortIndex_valid & (0x01U)) << 6) | ((_m->RadarCfg_StoreInNVM_valid & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->RadarCfg_MaxDistance_ro >> 2) & (0xFFU));
+  cframe->Data[2] |= ((_m->RadarCfg_MaxDistance_ro & (0x03U)) << 6);
+  cframe->Data[4] |= (_m->RadarCfg_SensorID & (0x07U)) | ((_m->RadarCfg_OutputType & (0x03U)) << 3) | ((_m->RadarCfg_RadarPower & (0x07U)) << 5);
+  cframe->Data[5] |= (_m->RadarCfg_CtrlRelay_valid & (0x01U)) | ((_m->RadarCfg_CtrlRelay & (0x01U)) << 1) | ((_m->RadarCfg_SendQuality & (0x01U)) << 2) | ((_m->RadarCfg_SendExtInfo & (0x01U)) << 3) | ((_m->RadarCfg_SortIndex & (0x07U)) << 4) | ((_m->RadarCfg_StoreInNVM & (0x01U)) << 7);
+  cframe->Data[6] |= (_m->RadarCfg_RCS_Threshold_Valid & (0x01U)) | ((_m->RadarCfg_RCS_Threshold & (0x07U)) << 1);
+
+  cframe->MsgId = RadarConfiguration_CANID;
+  cframe->DLC = RadarConfiguration_DLC;
+  cframe->IDE = RadarConfiguration_IDE;
+  return RadarConfiguration_CANID;
+}
+
+#else
+
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch4(RadarConfiguration_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < RadarConfiguration_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_ro = ARS408_CAN_DATABASE_CH4_RadarCfg_MaxDistance_ro_toS(_m->RadarCfg_MaxDistance_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _d[0] |= (_m->RadarCfg_MaxDistance_valid & (0x01U)) | ((_m->RadarCfg_SensorID_valid & (0x01U)) << 1) | ((_m->RadarCfg_RadarPower_valid & (0x01U)) << 2) | ((_m->RadarCfg_OutputType_valid & (0x01U)) << 3) | ((_m->RadarCfg_SendQuality_valid & (0x01U)) << 4) | ((_m->RadarCfg_SendExtInfo_valid & (0x01U)) << 5) | ((_m->RadarCfg_SortIndex_valid & (0x01U)) << 6) | ((_m->RadarCfg_StoreInNVM_valid & (0x01U)) << 7);
+  _d[1] |= ((_m->RadarCfg_MaxDistance_ro >> 2) & (0xFFU));
+  _d[2] |= ((_m->RadarCfg_MaxDistance_ro & (0x03U)) << 6);
+  _d[4] |= (_m->RadarCfg_SensorID & (0x07U)) | ((_m->RadarCfg_OutputType & (0x03U)) << 3) | ((_m->RadarCfg_RadarPower & (0x07U)) << 5);
+  _d[5] |= (_m->RadarCfg_CtrlRelay_valid & (0x01U)) | ((_m->RadarCfg_CtrlRelay & (0x01U)) << 1) | ((_m->RadarCfg_SendQuality & (0x01U)) << 2) | ((_m->RadarCfg_SendExtInfo & (0x01U)) << 3) | ((_m->RadarCfg_SortIndex & (0x07U)) << 4) | ((_m->RadarCfg_StoreInNVM & (0x01U)) << 7);
+  _d[6] |= (_m->RadarCfg_RCS_Threshold_Valid & (0x01U)) | ((_m->RadarCfg_RCS_Threshold & (0x07U)) << 1);
+
+  *_len = RadarConfiguration_DLC;
+  *_ide = RadarConfiguration_IDE;
+  return RadarConfiguration_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_RadarState_ARS408_can_database_ch4(RadarState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarState_NVMReadStatus = ((_d[0] >> 6) & (0x01U));
+  _m->RadarState_NVMwriteStatus = ((_d[0] >> 7) & (0x01U));
+  _m->RadarState_MaxDistanceCfg_ro = ((_d[1] & (0xFFU)) << 2) | ((_d[2] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_phys = ARS408_CAN_DATABASE_CH4_RadarState_MaxDistanceCfg_ro_fromS(_m->RadarState_MaxDistanceCfg_ro);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->RadarState_Voltage_Error = ((_d[2] >> 1) & (0x01U));
+  _m->RadarState_Temporary_Error = ((_d[2] >> 2) & (0x01U));
+  _m->RadarState_Temperature_Error = ((_d[2] >> 3) & (0x01U));
+  _m->RadarState_Interference = ((_d[2] >> 4) & (0x01U));
+  _m->RadarState_Persistent_Error = ((_d[2] >> 5) & (0x01U));
+  _m->RadarState_RadarPowerCfg = ((_d[3] & (0x03U)) << 1) | ((_d[4] >> 7) & (0x01U));
+  _m->RadarState_SensorID = (_d[4] & (0x07U));
+  _m->RadarState_SortIndex = ((_d[4] >> 4) & (0x07U));
+  _m->RadarState_CtrlRelayCfg = ((_d[5] >> 1) & (0x01U));
+  _m->RadarState_OutputTypeCfg = ((_d[5] >> 2) & (0x03U));
+  _m->RadarState_SendQualityCfg = ((_d[5] >> 4) & (0x01U));
+  _m->RadarState_SendExtInfoCfg = ((_d[5] >> 5) & (0x01U));
+  _m->RadarState_MotionRxState = ((_d[5] >> 6) & (0x03U));
+  _m->RadarState_RCS_Threshold = ((_d[7] >> 2) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < RadarState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_RadarState_ars408_can_database_ch4(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+ return RadarState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Pack_RadarState_ARS408_can_database_ch4(RadarState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < RadarState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_ro = ARS408_CAN_DATABASE_CH4_RadarState_MaxDistanceCfg_ro_toS(_m->RadarState_MaxDistanceCfg_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarState_NVMReadStatus & (0x01U)) << 6) | ((_m->RadarState_NVMwriteStatus & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->RadarState_MaxDistanceCfg_ro >> 2) & (0xFFU));
+  cframe->Data[2] |= ((_m->RadarState_MaxDistanceCfg_ro & (0x03U)) << 6) | ((_m->RadarState_Voltage_Error & (0x01U)) << 1) | ((_m->RadarState_Temporary_Error & (0x01U)) << 2) | ((_m->RadarState_Temperature_Error & (0x01U)) << 3) | ((_m->RadarState_Interference & (0x01U)) << 4) | ((_m->RadarState_Persistent_Error & (0x01U)) << 5);
+  cframe->Data[3] |= ((_m->RadarState_RadarPowerCfg >> 1) & (0x03U));
+  cframe->Data[4] |= ((_m->RadarState_RadarPowerCfg & (0x01U)) << 7) | (_m->RadarState_SensorID & (0x07U)) | ((_m->RadarState_SortIndex & (0x07U)) << 4);
+  cframe->Data[5] |= ((_m->RadarState_CtrlRelayCfg & (0x01U)) << 1) | ((_m->RadarState_OutputTypeCfg & (0x03U)) << 2) | ((_m->RadarState_SendQualityCfg & (0x01U)) << 4) | ((_m->RadarState_SendExtInfoCfg & (0x01U)) << 5) | ((_m->RadarState_MotionRxState & (0x03U)) << 6);
+  cframe->Data[7] |= ((_m->RadarState_RCS_Threshold & (0x07U)) << 2);
+
+  cframe->MsgId = RadarState_CANID;
+  cframe->DLC = RadarState_DLC;
+  cframe->IDE = RadarState_IDE;
+  return RadarState_CANID;
+}
+
+#else
+
+uint32_t Pack_RadarState_ARS408_can_database_ch4(RadarState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < RadarState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_ro = ARS408_CAN_DATABASE_CH4_RadarState_MaxDistanceCfg_ro_toS(_m->RadarState_MaxDistanceCfg_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarState_NVMReadStatus & (0x01U)) << 6) | ((_m->RadarState_NVMwriteStatus & (0x01U)) << 7);
+  _d[1] |= ((_m->RadarState_MaxDistanceCfg_ro >> 2) & (0xFFU));
+  _d[2] |= ((_m->RadarState_MaxDistanceCfg_ro & (0x03U)) << 6) | ((_m->RadarState_Voltage_Error & (0x01U)) << 1) | ((_m->RadarState_Temporary_Error & (0x01U)) << 2) | ((_m->RadarState_Temperature_Error & (0x01U)) << 3) | ((_m->RadarState_Interference & (0x01U)) << 4) | ((_m->RadarState_Persistent_Error & (0x01U)) << 5);
+  _d[3] |= ((_m->RadarState_RadarPowerCfg >> 1) & (0x03U));
+  _d[4] |= ((_m->RadarState_RadarPowerCfg & (0x01U)) << 7) | (_m->RadarState_SensorID & (0x07U)) | ((_m->RadarState_SortIndex & (0x07U)) << 4);
+  _d[5] |= ((_m->RadarState_CtrlRelayCfg & (0x01U)) << 1) | ((_m->RadarState_OutputTypeCfg & (0x03U)) << 2) | ((_m->RadarState_SendQualityCfg & (0x01U)) << 4) | ((_m->RadarState_SendExtInfoCfg & (0x01U)) << 5) | ((_m->RadarState_MotionRxState & (0x03U)) << 6);
+  _d[7] |= ((_m->RadarState_RCS_Threshold & (0x07U)) << 2);
+
+  *_len = RadarState_DLC;
+  *_ide = RadarState_IDE;
+  return RadarState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_FilterCfg_ARS408_can_database_ch4(FilterCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterCfg_Valid = ((_d[0] >> 1) & (0x01U));
+  _m->FilterCfg_Active = ((_d[0] >> 2) & (0x01U));
+  _m->FilterCfg_Index = ((_d[0] >> 3) & (0x0FU));
+  _m->FilterCfg_Type = ((_d[0] >> 7) & (0x01U));
+  _m->FilterCfg_Min_NofObj = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterCfg_Min_VrelOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VrelOncome_ro_fromS(_m->FilterCfg_Min_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VrelDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VrelDepart_ro_fromS(_m->FilterCfg_Min_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Size_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Min_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Size_ro_fromS(_m->FilterCfg_Min_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_RCS_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Min_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Min_RCS_ro_fromS(_m->FilterCfg_Min_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_ProbExists = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterCfg_Min_Lifetime_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Min_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Lifetime_ro_fromS(_m->FilterCfg_Min_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Azimuth_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Min_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Azimuth_ro_fromS(_m->FilterCfg_Min_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Distance_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Min_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Distance_ro_fromS(_m->FilterCfg_Min_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VXDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Min_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VXDepart_ro_fromS(_m->FilterCfg_Min_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VXOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Min_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VXOncome_ro_fromS(_m->FilterCfg_Min_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VYLeftRight_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Min_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VYLeftRight_ro_fromS(_m->FilterCfg_Min_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VYRightLeft_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Min_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VYRightLeft_ro_fromS(_m->FilterCfg_Min_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Y_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Min_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Y_ro_fromS(_m->FilterCfg_Min_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_X_ro = ((_d[1] & (0x1FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Min_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Min_X_ro_fromS(_m->FilterCfg_Min_X_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_NofObj = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterCfg_Max_Lifetime_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Max_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Lifetime_ro_fromS(_m->FilterCfg_Max_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Distance_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Max_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Distance_ro_fromS(_m->FilterCfg_Max_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Azimuth_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Max_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Azimuth_ro_fromS(_m->FilterCfg_Max_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_ProbExists = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterCfg_Max_RCS_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Max_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Max_RCS_ro_fromS(_m->FilterCfg_Max_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Size_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Max_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Size_ro_fromS(_m->FilterCfg_Max_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VrelDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Max_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VrelDepart_ro_fromS(_m->FilterCfg_Max_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VrelOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Max_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VrelOncome_ro_fromS(_m->FilterCfg_Max_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VXDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Max_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VXDepart_ro_fromS(_m->FilterCfg_Max_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VYLeftRight_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Max_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VYLeftRight_ro_fromS(_m->FilterCfg_Max_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VXOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Max_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VXOncome_ro_fromS(_m->FilterCfg_Max_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VYRightLeft_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Max_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VYRightLeft_ro_fromS(_m->FilterCfg_Max_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Y_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Max_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Y_ro_fromS(_m->FilterCfg_Max_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_X_ro = ((_d[3] & (0x1FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Max_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterCfg_Max_X_ro_fromS(_m->FilterCfg_Max_X_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterCfg_ars408_can_database_ch4(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+ return FilterCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Pack_FilterCfg_ARS408_can_database_ch4(FilterCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VrelOncome_ro_toS(_m->FilterCfg_Min_VrelOncome_phys);
+  _m->FilterCfg_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VrelDepart_ro_toS(_m->FilterCfg_Min_VrelDepart_phys);
+  _m->FilterCfg_Min_Size_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Size_ro_toS(_m->FilterCfg_Min_Size_phys);
+  _m->FilterCfg_Min_RCS_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_RCS_ro_toS(_m->FilterCfg_Min_RCS_phys);
+  _m->FilterCfg_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Lifetime_ro_toS(_m->FilterCfg_Min_Lifetime_phys);
+  _m->FilterCfg_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Azimuth_ro_toS(_m->FilterCfg_Min_Azimuth_phys);
+  _m->FilterCfg_Min_Distance_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Distance_ro_toS(_m->FilterCfg_Min_Distance_phys);
+  _m->FilterCfg_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VXDepart_ro_toS(_m->FilterCfg_Min_VXDepart_phys);
+  _m->FilterCfg_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VXOncome_ro_toS(_m->FilterCfg_Min_VXOncome_phys);
+  _m->FilterCfg_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VYLeftRight_ro_toS(_m->FilterCfg_Min_VYLeftRight_phys);
+  _m->FilterCfg_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VYRightLeft_ro_toS(_m->FilterCfg_Min_VYRightLeft_phys);
+  _m->FilterCfg_Min_Y_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Y_ro_toS(_m->FilterCfg_Min_Y_phys);
+  _m->FilterCfg_Min_X_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_X_ro_toS(_m->FilterCfg_Min_X_phys);
+  _m->FilterCfg_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Lifetime_ro_toS(_m->FilterCfg_Max_Lifetime_phys);
+  _m->FilterCfg_Max_Distance_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Distance_ro_toS(_m->FilterCfg_Max_Distance_phys);
+  _m->FilterCfg_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Azimuth_ro_toS(_m->FilterCfg_Max_Azimuth_phys);
+  _m->FilterCfg_Max_RCS_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_RCS_ro_toS(_m->FilterCfg_Max_RCS_phys);
+  _m->FilterCfg_Max_Size_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Size_ro_toS(_m->FilterCfg_Max_Size_phys);
+  _m->FilterCfg_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VrelDepart_ro_toS(_m->FilterCfg_Max_VrelDepart_phys);
+  _m->FilterCfg_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VrelOncome_ro_toS(_m->FilterCfg_Max_VrelOncome_phys);
+  _m->FilterCfg_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VXDepart_ro_toS(_m->FilterCfg_Max_VXDepart_phys);
+  _m->FilterCfg_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VYLeftRight_ro_toS(_m->FilterCfg_Max_VYLeftRight_phys);
+  _m->FilterCfg_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VXOncome_ro_toS(_m->FilterCfg_Max_VXOncome_phys);
+  _m->FilterCfg_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VYRightLeft_ro_toS(_m->FilterCfg_Max_VYRightLeft_phys);
+  _m->FilterCfg_Max_Y_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Y_ro_toS(_m->FilterCfg_Max_Y_phys);
+  _m->FilterCfg_Max_X_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_X_ro_toS(_m->FilterCfg_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->FilterCfg_Valid & (0x01U)) << 1) | ((_m->FilterCfg_Active & (0x01U)) << 2) | ((_m->FilterCfg_Index & (0x0FU)) << 3) | ((_m->FilterCfg_Type & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->FilterCfg_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_X_ro >> 8) & (0x1FU));
+  cframe->Data[2] |= (_m->FilterCfg_Min_NofObj & (0xFFU)) | (_m->FilterCfg_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_Size_ro & (0xFFU)) | (_m->FilterCfg_Min_RCS_ro & (0xFFU)) | (_m->FilterCfg_Min_ProbExists & (0xFFU)) | (_m->FilterCfg_Min_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Min_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Min_Distance_ro & (0xFFU)) | (_m->FilterCfg_Min_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Min_Y_ro & (0xFFU)) | (_m->FilterCfg_Min_X_ro & (0xFFU));
+  cframe->Data[3] |= ((_m->FilterCfg_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_X_ro >> 8) & (0x1FU));
+  cframe->Data[4] |= (_m->FilterCfg_Max_NofObj & (0xFFU)) | (_m->FilterCfg_Max_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Max_Distance_ro & (0xFFU)) | (_m->FilterCfg_Max_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Max_ProbExists & (0xFFU)) | (_m->FilterCfg_Max_RCS_ro & (0xFFU)) | (_m->FilterCfg_Max_Size_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Max_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Max_Y_ro & (0xFFU)) | (_m->FilterCfg_Max_X_ro & (0xFFU));
+
+  cframe->MsgId = FilterCfg_CANID;
+  cframe->DLC = FilterCfg_DLC;
+  cframe->IDE = FilterCfg_IDE;
+  return FilterCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterCfg_ARS408_can_database_ch4(FilterCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VrelOncome_ro_toS(_m->FilterCfg_Min_VrelOncome_phys);
+  _m->FilterCfg_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VrelDepart_ro_toS(_m->FilterCfg_Min_VrelDepart_phys);
+  _m->FilterCfg_Min_Size_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Size_ro_toS(_m->FilterCfg_Min_Size_phys);
+  _m->FilterCfg_Min_RCS_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_RCS_ro_toS(_m->FilterCfg_Min_RCS_phys);
+  _m->FilterCfg_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Lifetime_ro_toS(_m->FilterCfg_Min_Lifetime_phys);
+  _m->FilterCfg_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Azimuth_ro_toS(_m->FilterCfg_Min_Azimuth_phys);
+  _m->FilterCfg_Min_Distance_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Distance_ro_toS(_m->FilterCfg_Min_Distance_phys);
+  _m->FilterCfg_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VXDepart_ro_toS(_m->FilterCfg_Min_VXDepart_phys);
+  _m->FilterCfg_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VXOncome_ro_toS(_m->FilterCfg_Min_VXOncome_phys);
+  _m->FilterCfg_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VYLeftRight_ro_toS(_m->FilterCfg_Min_VYLeftRight_phys);
+  _m->FilterCfg_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VYRightLeft_ro_toS(_m->FilterCfg_Min_VYRightLeft_phys);
+  _m->FilterCfg_Min_Y_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Y_ro_toS(_m->FilterCfg_Min_Y_phys);
+  _m->FilterCfg_Min_X_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Min_X_ro_toS(_m->FilterCfg_Min_X_phys);
+  _m->FilterCfg_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Lifetime_ro_toS(_m->FilterCfg_Max_Lifetime_phys);
+  _m->FilterCfg_Max_Distance_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Distance_ro_toS(_m->FilterCfg_Max_Distance_phys);
+  _m->FilterCfg_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Azimuth_ro_toS(_m->FilterCfg_Max_Azimuth_phys);
+  _m->FilterCfg_Max_RCS_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_RCS_ro_toS(_m->FilterCfg_Max_RCS_phys);
+  _m->FilterCfg_Max_Size_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Size_ro_toS(_m->FilterCfg_Max_Size_phys);
+  _m->FilterCfg_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VrelDepart_ro_toS(_m->FilterCfg_Max_VrelDepart_phys);
+  _m->FilterCfg_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VrelOncome_ro_toS(_m->FilterCfg_Max_VrelOncome_phys);
+  _m->FilterCfg_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VXDepart_ro_toS(_m->FilterCfg_Max_VXDepart_phys);
+  _m->FilterCfg_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VYLeftRight_ro_toS(_m->FilterCfg_Max_VYLeftRight_phys);
+  _m->FilterCfg_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VXOncome_ro_toS(_m->FilterCfg_Max_VXOncome_phys);
+  _m->FilterCfg_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VYRightLeft_ro_toS(_m->FilterCfg_Max_VYRightLeft_phys);
+  _m->FilterCfg_Max_Y_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Y_ro_toS(_m->FilterCfg_Max_Y_phys);
+  _m->FilterCfg_Max_X_ro = ARS408_CAN_DATABASE_CH4_FilterCfg_Max_X_ro_toS(_m->FilterCfg_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _d[0] |= ((_m->FilterCfg_Valid & (0x01U)) << 1) | ((_m->FilterCfg_Active & (0x01U)) << 2) | ((_m->FilterCfg_Index & (0x0FU)) << 3) | ((_m->FilterCfg_Type & (0x01U)) << 7);
+  _d[1] |= ((_m->FilterCfg_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_X_ro >> 8) & (0x1FU));
+  _d[2] |= (_m->FilterCfg_Min_NofObj & (0xFFU)) | (_m->FilterCfg_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_Size_ro & (0xFFU)) | (_m->FilterCfg_Min_RCS_ro & (0xFFU)) | (_m->FilterCfg_Min_ProbExists & (0xFFU)) | (_m->FilterCfg_Min_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Min_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Min_Distance_ro & (0xFFU)) | (_m->FilterCfg_Min_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Min_Y_ro & (0xFFU)) | (_m->FilterCfg_Min_X_ro & (0xFFU));
+  _d[3] |= ((_m->FilterCfg_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_X_ro >> 8) & (0x1FU));
+  _d[4] |= (_m->FilterCfg_Max_NofObj & (0xFFU)) | (_m->FilterCfg_Max_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Max_Distance_ro & (0xFFU)) | (_m->FilterCfg_Max_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Max_ProbExists & (0xFFU)) | (_m->FilterCfg_Max_RCS_ro & (0xFFU)) | (_m->FilterCfg_Max_Size_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Max_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Max_Y_ro & (0xFFU)) | (_m->FilterCfg_Max_X_ro & (0xFFU));
+
+  *_len = FilterCfg_DLC;
+  *_ide = FilterCfg_IDE;
+  return FilterCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Header_ARS408_can_database_ch4(FilterState_Header_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterState_NofClusterFilterCfg = ((_d[0] >> 3) & (0x1FU));
+  _m->FilterState_NofObjectFilterCfg = ((_d[1] >> 3) & (0x1FU));
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterState_Header_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterState_Header_ars408_can_database_ch4(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+ return FilterState_Header_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch4(FilterState_Header_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Header_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= ((_m->FilterState_NofClusterFilterCfg & (0x1FU)) << 3);
+  cframe->Data[1] |= ((_m->FilterState_NofObjectFilterCfg & (0x1FU)) << 3);
+
+  cframe->MsgId = FilterState_Header_CANID;
+  cframe->DLC = FilterState_Header_DLC;
+  cframe->IDE = FilterState_Header_IDE;
+  return FilterState_Header_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch4(FilterState_Header_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Header_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= ((_m->FilterState_NofClusterFilterCfg & (0x1FU)) << 3);
+  _d[1] |= ((_m->FilterState_NofObjectFilterCfg & (0x1FU)) << 3);
+
+  *_len = FilterState_Header_DLC;
+  *_ide = FilterState_Header_IDE;
+  return FilterState_Header_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Cfg_ARS408_can_database_ch4(FilterState_Cfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterState_Active = ((_d[0] >> 2) & (0x01U));
+  _m->FilterState_Index = ((_d[0] >> 3) & (0x0FU));
+  _m->FilterState_Type = ((_d[0] >> 7) & (0x01U));
+  _m->FilterState_Min_RCS_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Min_RCS_ro_fromS(_m->FilterState_Min_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Min_Azimuth_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Min_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Min_Azimuth_ro_fromS(_m->FilterState_Min_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Min_Distance_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Min_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Min_Distance_ro_fromS(_m->FilterState_Min_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Min_Lifetime_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Min_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Min_Lifetime_ro_fromS(_m->FilterState_Min_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Min_NofObj = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterState_Min_ProbExists = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterState_Min_Y_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Min_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Min_Y_ro_fromS(_m->FilterState_Min_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Min_Size_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Min_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Min_Size_ro_fromS(_m->FilterState_Min_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Min_VrelDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Min_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Min_VrelDepart_ro_fromS(_m->FilterState_Min_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Min_VrelOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Min_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Min_VrelOncome_ro_fromS(_m->FilterState_Min_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Min_VYRightLeft_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Min_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Min_VYRightLeft_ro_fromS(_m->FilterState_Min_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Min_VXDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Min_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Min_VXDepart_ro_fromS(_m->FilterState_Min_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Min_VXOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Min_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Min_VXOncome_ro_fromS(_m->FilterState_Min_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Min_VYLeftRight_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Min_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Min_VYLeftRight_ro_fromS(_m->FilterState_Min_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Min_X_ro = ((_d[1] & (0x1FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Min_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Min_X_ro_fromS(_m->FilterState_Min_X_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Max_VrelDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Max_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Max_VrelDepart_ro_fromS(_m->FilterState_Max_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Max_Azimuth_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Max_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Max_Azimuth_ro_fromS(_m->FilterState_Max_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Max_Distance_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Max_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Max_Distance_ro_fromS(_m->FilterState_Max_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Max_Lifetime_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Max_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Max_Lifetime_ro_fromS(_m->FilterState_Max_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Max_NofObj = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterState_Max_ProbExists = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterState_Max_RCS_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Max_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Max_RCS_ro_fromS(_m->FilterState_Max_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Max_Size_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Max_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Max_Size_ro_fromS(_m->FilterState_Max_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Max_VXDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Max_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Max_VXDepart_ro_fromS(_m->FilterState_Max_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Max_VrelOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Max_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Max_VrelOncome_ro_fromS(_m->FilterState_Max_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Max_Y_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Max_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Max_Y_ro_fromS(_m->FilterState_Max_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Max_VYRightLeft_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Max_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Max_VYRightLeft_ro_fromS(_m->FilterState_Max_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Max_VYLeftRight_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Max_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Max_VYLeftRight_ro_fromS(_m->FilterState_Max_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Max_VXOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Max_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Max_VXOncome_ro_fromS(_m->FilterState_Max_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->FilterState_Max_X_ro = ((_d[3] & (0x1FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Max_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_FilterState_Max_X_ro_fromS(_m->FilterState_Max_X_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterState_Cfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterState_Cfg_ars408_can_database_ch4(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+ return FilterState_Cfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch4(FilterState_Cfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Cfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_RCS_ro_toS(_m->FilterState_Min_RCS_phys);
+  _m->FilterState_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_Azimuth_ro_toS(_m->FilterState_Min_Azimuth_phys);
+  _m->FilterState_Min_Distance_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_Distance_ro_toS(_m->FilterState_Min_Distance_phys);
+  _m->FilterState_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_Lifetime_ro_toS(_m->FilterState_Min_Lifetime_phys);
+  _m->FilterState_Min_Y_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_Y_ro_toS(_m->FilterState_Min_Y_phys);
+  _m->FilterState_Min_Size_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_Size_ro_toS(_m->FilterState_Min_Size_phys);
+  _m->FilterState_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_VrelDepart_ro_toS(_m->FilterState_Min_VrelDepart_phys);
+  _m->FilterState_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_VrelOncome_ro_toS(_m->FilterState_Min_VrelOncome_phys);
+  _m->FilterState_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_VYRightLeft_ro_toS(_m->FilterState_Min_VYRightLeft_phys);
+  _m->FilterState_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_VXDepart_ro_toS(_m->FilterState_Min_VXDepart_phys);
+  _m->FilterState_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_VXOncome_ro_toS(_m->FilterState_Min_VXOncome_phys);
+  _m->FilterState_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_VYLeftRight_ro_toS(_m->FilterState_Min_VYLeftRight_phys);
+  _m->FilterState_Min_X_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_X_ro_toS(_m->FilterState_Min_X_phys);
+  _m->FilterState_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_VrelDepart_ro_toS(_m->FilterState_Max_VrelDepart_phys);
+  _m->FilterState_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_Azimuth_ro_toS(_m->FilterState_Max_Azimuth_phys);
+  _m->FilterState_Max_Distance_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_Distance_ro_toS(_m->FilterState_Max_Distance_phys);
+  _m->FilterState_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_Lifetime_ro_toS(_m->FilterState_Max_Lifetime_phys);
+  _m->FilterState_Max_RCS_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_RCS_ro_toS(_m->FilterState_Max_RCS_phys);
+  _m->FilterState_Max_Size_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_Size_ro_toS(_m->FilterState_Max_Size_phys);
+  _m->FilterState_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_VXDepart_ro_toS(_m->FilterState_Max_VXDepart_phys);
+  _m->FilterState_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_VrelOncome_ro_toS(_m->FilterState_Max_VrelOncome_phys);
+  _m->FilterState_Max_Y_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_Y_ro_toS(_m->FilterState_Max_Y_phys);
+  _m->FilterState_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_VYRightLeft_ro_toS(_m->FilterState_Max_VYRightLeft_phys);
+  _m->FilterState_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_VYLeftRight_ro_toS(_m->FilterState_Max_VYLeftRight_phys);
+  _m->FilterState_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_VXOncome_ro_toS(_m->FilterState_Max_VXOncome_phys);
+  _m->FilterState_Max_X_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_X_ro_toS(_m->FilterState_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->FilterState_Active & (0x01U)) << 2) | ((_m->FilterState_Index & (0x0FU)) << 3) | ((_m->FilterState_Type & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->FilterState_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_X_ro >> 8) & (0x1FU));
+  cframe->Data[2] |= (_m->FilterState_Min_RCS_ro & (0xFFU)) | (_m->FilterState_Min_Azimuth_ro & (0xFFU)) | (_m->FilterState_Min_Distance_ro & (0xFFU)) | (_m->FilterState_Min_Lifetime_ro & (0xFFU)) | (_m->FilterState_Min_NofObj & (0xFFU)) | (_m->FilterState_Min_ProbExists & (0xFFU)) | (_m->FilterState_Min_Y_ro & (0xFFU)) | (_m->FilterState_Min_Size_ro & (0xFFU)) | (_m->FilterState_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Min_VXDepart_ro & (0xFFU)) | (_m->FilterState_Min_VXOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Min_X_ro & (0xFFU));
+  cframe->Data[3] |= ((_m->FilterState_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_X_ro >> 8) & (0x1FU));
+  cframe->Data[4] |= (_m->FilterState_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Max_Azimuth_ro & (0xFFU)) | (_m->FilterState_Max_Distance_ro & (0xFFU)) | (_m->FilterState_Max_Lifetime_ro & (0xFFU)) | (_m->FilterState_Max_NofObj & (0xFFU)) | (_m->FilterState_Max_ProbExists & (0xFFU)) | (_m->FilterState_Max_RCS_ro & (0xFFU)) | (_m->FilterState_Max_Size_ro & (0xFFU)) | (_m->FilterState_Max_VXDepart_ro & (0xFFU)) | (_m->FilterState_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Max_Y_ro & (0xFFU)) | (_m->FilterState_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Max_VXOncome_ro & (0xFFU)) | (_m->FilterState_Max_X_ro & (0xFFU));
+
+  cframe->MsgId = FilterState_Cfg_CANID;
+  cframe->DLC = FilterState_Cfg_DLC;
+  cframe->IDE = FilterState_Cfg_IDE;
+  return FilterState_Cfg_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch4(FilterState_Cfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Cfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_RCS_ro_toS(_m->FilterState_Min_RCS_phys);
+  _m->FilterState_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_Azimuth_ro_toS(_m->FilterState_Min_Azimuth_phys);
+  _m->FilterState_Min_Distance_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_Distance_ro_toS(_m->FilterState_Min_Distance_phys);
+  _m->FilterState_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_Lifetime_ro_toS(_m->FilterState_Min_Lifetime_phys);
+  _m->FilterState_Min_Y_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_Y_ro_toS(_m->FilterState_Min_Y_phys);
+  _m->FilterState_Min_Size_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_Size_ro_toS(_m->FilterState_Min_Size_phys);
+  _m->FilterState_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_VrelDepart_ro_toS(_m->FilterState_Min_VrelDepart_phys);
+  _m->FilterState_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_VrelOncome_ro_toS(_m->FilterState_Min_VrelOncome_phys);
+  _m->FilterState_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_VYRightLeft_ro_toS(_m->FilterState_Min_VYRightLeft_phys);
+  _m->FilterState_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_VXDepart_ro_toS(_m->FilterState_Min_VXDepart_phys);
+  _m->FilterState_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_VXOncome_ro_toS(_m->FilterState_Min_VXOncome_phys);
+  _m->FilterState_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_VYLeftRight_ro_toS(_m->FilterState_Min_VYLeftRight_phys);
+  _m->FilterState_Min_X_ro = ARS408_CAN_DATABASE_CH4_FilterState_Min_X_ro_toS(_m->FilterState_Min_X_phys);
+  _m->FilterState_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_VrelDepart_ro_toS(_m->FilterState_Max_VrelDepart_phys);
+  _m->FilterState_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_Azimuth_ro_toS(_m->FilterState_Max_Azimuth_phys);
+  _m->FilterState_Max_Distance_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_Distance_ro_toS(_m->FilterState_Max_Distance_phys);
+  _m->FilterState_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_Lifetime_ro_toS(_m->FilterState_Max_Lifetime_phys);
+  _m->FilterState_Max_RCS_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_RCS_ro_toS(_m->FilterState_Max_RCS_phys);
+  _m->FilterState_Max_Size_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_Size_ro_toS(_m->FilterState_Max_Size_phys);
+  _m->FilterState_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_VXDepart_ro_toS(_m->FilterState_Max_VXDepart_phys);
+  _m->FilterState_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_VrelOncome_ro_toS(_m->FilterState_Max_VrelOncome_phys);
+  _m->FilterState_Max_Y_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_Y_ro_toS(_m->FilterState_Max_Y_phys);
+  _m->FilterState_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_VYRightLeft_ro_toS(_m->FilterState_Max_VYRightLeft_phys);
+  _m->FilterState_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_VYLeftRight_ro_toS(_m->FilterState_Max_VYLeftRight_phys);
+  _m->FilterState_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_VXOncome_ro_toS(_m->FilterState_Max_VXOncome_phys);
+  _m->FilterState_Max_X_ro = ARS408_CAN_DATABASE_CH4_FilterState_Max_X_ro_toS(_m->FilterState_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _d[0] |= ((_m->FilterState_Active & (0x01U)) << 2) | ((_m->FilterState_Index & (0x0FU)) << 3) | ((_m->FilterState_Type & (0x01U)) << 7);
+  _d[1] |= ((_m->FilterState_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_X_ro >> 8) & (0x1FU));
+  _d[2] |= (_m->FilterState_Min_RCS_ro & (0xFFU)) | (_m->FilterState_Min_Azimuth_ro & (0xFFU)) | (_m->FilterState_Min_Distance_ro & (0xFFU)) | (_m->FilterState_Min_Lifetime_ro & (0xFFU)) | (_m->FilterState_Min_NofObj & (0xFFU)) | (_m->FilterState_Min_ProbExists & (0xFFU)) | (_m->FilterState_Min_Y_ro & (0xFFU)) | (_m->FilterState_Min_Size_ro & (0xFFU)) | (_m->FilterState_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Min_VXDepart_ro & (0xFFU)) | (_m->FilterState_Min_VXOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Min_X_ro & (0xFFU));
+  _d[3] |= ((_m->FilterState_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_X_ro >> 8) & (0x1FU));
+  _d[4] |= (_m->FilterState_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Max_Azimuth_ro & (0xFFU)) | (_m->FilterState_Max_Distance_ro & (0xFFU)) | (_m->FilterState_Max_Lifetime_ro & (0xFFU)) | (_m->FilterState_Max_NofObj & (0xFFU)) | (_m->FilterState_Max_ProbExists & (0xFFU)) | (_m->FilterState_Max_RCS_ro & (0xFFU)) | (_m->FilterState_Max_Size_ro & (0xFFU)) | (_m->FilterState_Max_VXDepart_ro & (0xFFU)) | (_m->FilterState_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Max_Y_ro & (0xFFU)) | (_m->FilterState_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Max_VXOncome_ro & (0xFFU)) | (_m->FilterState_Max_X_ro & (0xFFU));
+
+  *_len = FilterState_Cfg_DLC;
+  *_ide = FilterState_Cfg_IDE;
+  return FilterState_Cfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_SpeedInformation_ARS408_can_database_ch4(SpeedInformation_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarDevice_Speed_ro = ((_d[0] & (0x1FU)) << 8) | (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->RadarDevice_Speed_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_RadarDevice_Speed_ro_fromS(_m->RadarDevice_Speed_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->RadarDevice_SpeedDirection = ((_d[0] >> 6) & (0x03U));
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < SpeedInformation_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_SpeedInformation_ars408_can_database_ch4(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+ return SpeedInformation_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch4(SpeedInformation_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < SpeedInformation_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->RadarDevice_Speed_ro = ARS408_CAN_DATABASE_CH4_RadarDevice_Speed_ro_toS(_m->RadarDevice_Speed_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarDevice_Speed_ro >> 8) & (0x1FU)) | ((_m->RadarDevice_SpeedDirection & (0x03U)) << 6);
+  cframe->Data[1] |= (_m->RadarDevice_Speed_ro & (0xFFU));
+
+  cframe->MsgId = SpeedInformation_CANID;
+  cframe->DLC = SpeedInformation_DLC;
+  cframe->IDE = SpeedInformation_IDE;
+  return SpeedInformation_CANID;
+}
+
+#else
+
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch4(SpeedInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < SpeedInformation_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->RadarDevice_Speed_ro = ARS408_CAN_DATABASE_CH4_RadarDevice_Speed_ro_toS(_m->RadarDevice_Speed_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarDevice_Speed_ro >> 8) & (0x1FU)) | ((_m->RadarDevice_SpeedDirection & (0x03U)) << 6);
+  _d[1] |= (_m->RadarDevice_Speed_ro & (0xFFU));
+
+  *_len = SpeedInformation_DLC;
+  *_ide = SpeedInformation_IDE;
+  return SpeedInformation_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_YawRateInformation_ARS408_can_database_ch4(YawRateInformation_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarDevice_YawRate_ro = ((_d[0] & (0xFFU)) << 8) | (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_RadarDevice_YawRate_ro_fromS(_m->RadarDevice_YawRate_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < YawRateInformation_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_YawRateInformation_ars408_can_database_ch4(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+ return YawRateInformation_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch4(YawRateInformation_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < YawRateInformation_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_ro = ARS408_CAN_DATABASE_CH4_RadarDevice_YawRate_ro_toS(_m->RadarDevice_YawRate_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarDevice_YawRate_ro >> 8) & (0xFFU));
+  cframe->Data[1] |= (_m->RadarDevice_YawRate_ro & (0xFFU));
+
+  cframe->MsgId = YawRateInformation_CANID;
+  cframe->DLC = YawRateInformation_DLC;
+  cframe->IDE = YawRateInformation_IDE;
+  return YawRateInformation_CANID;
+}
+
+#else
+
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch4(YawRateInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < YawRateInformation_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_ro = ARS408_CAN_DATABASE_CH4_RadarDevice_YawRate_ro_toS(_m->RadarDevice_YawRate_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarDevice_YawRate_ro >> 8) & (0xFFU));
+  _d[1] |= (_m->RadarDevice_YawRate_ro & (0xFFU));
+
+  *_len = YawRateInformation_DLC;
+  *_ide = YawRateInformation_IDE;
+  return YawRateInformation_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetState_ARS408_can_database_ch4(CollDetState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetState_Active = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetState_NofRegions = ((_d[0] >> 4) & (0x0FU));
+  _m->CollDetState_MinDetectTime_ro = (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_CollDetState_MinDetectTime_ro_fromS(_m->CollDetState_MinDetectTime_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->CollDetState_MeasCounter = ((_d[2] & (0xFFU)) << 8) | (_d[3] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetState_ars408_can_database_ch4(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+ return CollDetState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Pack_CollDetState_ARS408_can_database_ch4(CollDetState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_ro = ARS408_CAN_DATABASE_CH4_CollDetState_MinDetectTime_ro_toS(_m->CollDetState_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetState_Active & (0x01U)) << 1) | ((_m->CollDetState_NofRegions & (0x0FU)) << 4);
+  cframe->Data[1] |= (_m->CollDetState_MinDetectTime_ro & (0xFFU));
+  cframe->Data[2] |= ((_m->CollDetState_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[3] |= (_m->CollDetState_MeasCounter & (0xFFU));
+
+  cframe->MsgId = CollDetState_CANID;
+  cframe->DLC = CollDetState_DLC;
+  cframe->IDE = CollDetState_IDE;
+  return CollDetState_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetState_ARS408_can_database_ch4(CollDetState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_ro = ARS408_CAN_DATABASE_CH4_CollDetState_MinDetectTime_ro_toS(_m->CollDetState_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetState_Active & (0x01U)) << 1) | ((_m->CollDetState_NofRegions & (0x0FU)) << 4);
+  _d[1] |= (_m->CollDetState_MinDetectTime_ro & (0xFFU));
+  _d[2] |= ((_m->CollDetState_MeasCounter >> 8) & (0xFFU));
+  _d[3] |= (_m->CollDetState_MeasCounter & (0xFFU));
+
+  *_len = CollDetState_DLC;
+  *_ide = CollDetState_IDE;
+  return CollDetState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetCfg_ARS408_can_database_ch4(CollDetCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetCfg_WarningReset = (_d[0] & (0x01U));
+  _m->CollDetCfg_Activate = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetCfg_MinTime_valid = ((_d[0] >> 3) & (0x01U));
+  _m->CollDetCfg_ClearRegions = ((_d[0] >> 7) & (0x01U));
+  _m->CollDetCfg_MinDetectTime_ro = (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_CollDetCfg_MinDetectTime_ro_fromS(_m->CollDetCfg_MinDetectTime_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetCfg_ars408_can_database_ch4(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+ return CollDetCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch4(CollDetCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_ro = ARS408_CAN_DATABASE_CH4_CollDetCfg_MinDetectTime_ro_toS(_m->CollDetCfg_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->CollDetCfg_WarningReset & (0x01U)) | ((_m->CollDetCfg_Activate & (0x01U)) << 1) | ((_m->CollDetCfg_MinTime_valid & (0x01U)) << 3) | ((_m->CollDetCfg_ClearRegions & (0x01U)) << 7);
+  cframe->Data[1] |= (_m->CollDetCfg_MinDetectTime_ro & (0xFFU));
+
+  cframe->MsgId = CollDetCfg_CANID;
+  cframe->DLC = CollDetCfg_DLC;
+  cframe->IDE = CollDetCfg_IDE;
+  return CollDetCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch4(CollDetCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_ro = ARS408_CAN_DATABASE_CH4_CollDetCfg_MinDetectTime_ro_toS(_m->CollDetCfg_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _d[0] |= (_m->CollDetCfg_WarningReset & (0x01U)) | ((_m->CollDetCfg_Activate & (0x01U)) << 1) | ((_m->CollDetCfg_MinTime_valid & (0x01U)) << 3) | ((_m->CollDetCfg_ClearRegions & (0x01U)) << 7);
+  _d[1] |= (_m->CollDetCfg_MinDetectTime_ro & (0xFFU));
+
+  *_len = CollDetCfg_DLC;
+  *_ide = CollDetCfg_IDE;
+  return CollDetCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionCfg_ARS408_can_database_ch4(CollDetRegionCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRegCfg_Activate = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetRegCfg_Coordinates_valid = ((_d[0] >> 2) & (0x01U));
+  _m->CollDetRegCfg_RegionID = (_d[1] & (0x07U));
+  _m->CollDetRegCfg_Point1X_ro = ((_d[2] & (0xFFU)) << 5) | ((_d[3] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point1X_ro_fromS(_m->CollDetRegCfg_Point1X_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point1Y_ro = ((_d[3] & (0x07U)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point1Y_ro_fromS(_m->CollDetRegCfg_Point1Y_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point2X_ro = ((_d[5] & (0xFFU)) << 5) | ((_d[6] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point2X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point2X_ro_fromS(_m->CollDetRegCfg_Point2X_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point2Y_ro = ((_d[6] & (0x07U)) << 8) | (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point2Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point2Y_ro_fromS(_m->CollDetRegCfg_Point2Y_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRegionCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRegionCfg_ars408_can_database_ch4(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+ return CollDetRegionCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch4(CollDetRegionCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_ro = ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point1X_ro_toS(_m->CollDetRegCfg_Point1X_phys);
+  _m->CollDetRegCfg_Point1Y_ro = ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point1Y_ro_toS(_m->CollDetRegCfg_Point1Y_phys);
+  _m->CollDetRegCfg_Point2X_ro = ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point2X_ro_toS(_m->CollDetRegCfg_Point2X_phys);
+  _m->CollDetRegCfg_Point2Y_ro = ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point2Y_ro_toS(_m->CollDetRegCfg_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetRegCfg_Activate & (0x01U)) << 1) | ((_m->CollDetRegCfg_Coordinates_valid & (0x01U)) << 2);
+  cframe->Data[1] |= (_m->CollDetRegCfg_RegionID & (0x07U));
+  cframe->Data[2] |= ((_m->CollDetRegCfg_Point1X_ro >> 5) & (0xFFU));
+  cframe->Data[3] |= ((_m->CollDetRegCfg_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point1Y_ro >> 8) & (0x07U));
+  cframe->Data[4] |= (_m->CollDetRegCfg_Point1Y_ro & (0xFFU));
+  cframe->Data[5] |= ((_m->CollDetRegCfg_Point2X_ro >> 5) & (0xFFU));
+  cframe->Data[6] |= ((_m->CollDetRegCfg_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point2Y_ro >> 8) & (0x07U));
+  cframe->Data[7] |= (_m->CollDetRegCfg_Point2Y_ro & (0xFFU));
+
+  cframe->MsgId = CollDetRegionCfg_CANID;
+  cframe->DLC = CollDetRegionCfg_DLC;
+  cframe->IDE = CollDetRegionCfg_IDE;
+  return CollDetRegionCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch4(CollDetRegionCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_ro = ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point1X_ro_toS(_m->CollDetRegCfg_Point1X_phys);
+  _m->CollDetRegCfg_Point1Y_ro = ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point1Y_ro_toS(_m->CollDetRegCfg_Point1Y_phys);
+  _m->CollDetRegCfg_Point2X_ro = ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point2X_ro_toS(_m->CollDetRegCfg_Point2X_phys);
+  _m->CollDetRegCfg_Point2Y_ro = ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point2Y_ro_toS(_m->CollDetRegCfg_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetRegCfg_Activate & (0x01U)) << 1) | ((_m->CollDetRegCfg_Coordinates_valid & (0x01U)) << 2);
+  _d[1] |= (_m->CollDetRegCfg_RegionID & (0x07U));
+  _d[2] |= ((_m->CollDetRegCfg_Point1X_ro >> 5) & (0xFFU));
+  _d[3] |= ((_m->CollDetRegCfg_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point1Y_ro >> 8) & (0x07U));
+  _d[4] |= (_m->CollDetRegCfg_Point1Y_ro & (0xFFU));
+  _d[5] |= ((_m->CollDetRegCfg_Point2X_ro >> 5) & (0xFFU));
+  _d[6] |= ((_m->CollDetRegCfg_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point2Y_ro >> 8) & (0x07U));
+  _d[7] |= (_m->CollDetRegCfg_Point2Y_ro & (0xFFU));
+
+  *_len = CollDetRegionCfg_DLC;
+  *_ide = CollDetRegionCfg_IDE;
+  return CollDetRegionCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionState_ARS408_can_database_ch4(CollDetRegionState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRegState_WarningLevel = ((_d[0] >> 3) & (0x03U));
+  _m->CollDetRegState_RegionID = ((_d[0] >> 5) & (0x07U));
+  _m->CollDetRegState_Point1X_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_CollDetRegState_Point1X_ro_fromS(_m->CollDetRegState_Point1X_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point1Y_ro = ((_d[2] & (0x07U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->CollDetRegState_Point1Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_CollDetRegState_Point1Y_ro_fromS(_m->CollDetRegState_Point1Y_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point2X_ro = ((_d[4] & (0xFFU)) << 5) | ((_d[5] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->CollDetRegState_Point2X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_CollDetRegState_Point2X_ro_fromS(_m->CollDetRegState_Point2X_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point2Y_ro = ((_d[5] & (0x07U)) << 8) | (_d[6] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->CollDetRegState_Point2Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_CollDetRegState_Point2Y_ro_fromS(_m->CollDetRegState_Point2Y_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->CollDetRegState_NofObjects = (_d[7] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRegionState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRegionState_ars408_can_database_ch4(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+ return CollDetRegionState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch4(CollDetRegionState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_ro = ARS408_CAN_DATABASE_CH4_CollDetRegState_Point1X_ro_toS(_m->CollDetRegState_Point1X_phys);
+  _m->CollDetRegState_Point1Y_ro = ARS408_CAN_DATABASE_CH4_CollDetRegState_Point1Y_ro_toS(_m->CollDetRegState_Point1Y_phys);
+  _m->CollDetRegState_Point2X_ro = ARS408_CAN_DATABASE_CH4_CollDetRegState_Point2X_ro_toS(_m->CollDetRegState_Point2X_phys);
+  _m->CollDetRegState_Point2Y_ro = ARS408_CAN_DATABASE_CH4_CollDetRegState_Point2Y_ro_toS(_m->CollDetRegState_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetRegState_WarningLevel & (0x03U)) << 3) | ((_m->CollDetRegState_RegionID & (0x07U)) << 5);
+  cframe->Data[1] |= ((_m->CollDetRegState_Point1X_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->CollDetRegState_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point1Y_ro >> 8) & (0x07U));
+  cframe->Data[3] |= (_m->CollDetRegState_Point1Y_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->CollDetRegState_Point2X_ro >> 5) & (0xFFU));
+  cframe->Data[5] |= ((_m->CollDetRegState_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point2Y_ro >> 8) & (0x07U));
+  cframe->Data[6] |= (_m->CollDetRegState_Point2Y_ro & (0xFFU));
+  cframe->Data[7] |= (_m->CollDetRegState_NofObjects & (0xFFU));
+
+  cframe->MsgId = CollDetRegionState_CANID;
+  cframe->DLC = CollDetRegionState_DLC;
+  cframe->IDE = CollDetRegionState_IDE;
+  return CollDetRegionState_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch4(CollDetRegionState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_ro = ARS408_CAN_DATABASE_CH4_CollDetRegState_Point1X_ro_toS(_m->CollDetRegState_Point1X_phys);
+  _m->CollDetRegState_Point1Y_ro = ARS408_CAN_DATABASE_CH4_CollDetRegState_Point1Y_ro_toS(_m->CollDetRegState_Point1Y_phys);
+  _m->CollDetRegState_Point2X_ro = ARS408_CAN_DATABASE_CH4_CollDetRegState_Point2X_ro_toS(_m->CollDetRegState_Point2X_phys);
+  _m->CollDetRegState_Point2Y_ro = ARS408_CAN_DATABASE_CH4_CollDetRegState_Point2Y_ro_toS(_m->CollDetRegState_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetRegState_WarningLevel & (0x03U)) << 3) | ((_m->CollDetRegState_RegionID & (0x07U)) << 5);
+  _d[1] |= ((_m->CollDetRegState_Point1X_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->CollDetRegState_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point1Y_ro >> 8) & (0x07U));
+  _d[3] |= (_m->CollDetRegState_Point1Y_ro & (0xFFU));
+  _d[4] |= ((_m->CollDetRegState_Point2X_ro >> 5) & (0xFFU));
+  _d[5] |= ((_m->CollDetRegState_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point2Y_ro >> 8) & (0x07U));
+  _d[6] |= (_m->CollDetRegState_Point2Y_ro & (0xFFU));
+  _d[7] |= (_m->CollDetRegState_NofObjects & (0xFFU));
+
+  *_len = CollDetRegionState_DLC;
+  *_ide = CollDetRegionState_IDE;
+  return CollDetRegionState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_0_Status_ARS408_can_database_ch4(Cluster_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_NofClustersNear = (_d[0] & (0xFFU));
+  _m->Cluster_NofClustersFar = (_d[1] & (0xFFU));
+  _m->Cluster_MeasCounter = ((_d[2] & (0xFFU)) << 8) | (_d[3] & (0xFFU));
+  _m->Cluster_InterfaceVersion = ((_d[4] >> 4) & (0x0FU));
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_0_Status_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_0_Status_ars408_can_database_ch4(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+ return Cluster_0_Status_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch4(Cluster_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_0_Status_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Cluster_NofClustersNear & (0xFFU));
+  cframe->Data[1] |= (_m->Cluster_NofClustersFar & (0xFFU));
+  cframe->Data[2] |= ((_m->Cluster_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[3] |= (_m->Cluster_MeasCounter & (0xFFU));
+  cframe->Data[4] |= ((_m->Cluster_InterfaceVersion & (0x0FU)) << 4);
+
+  cframe->MsgId = Cluster_0_Status_CANID;
+  cframe->DLC = Cluster_0_Status_DLC;
+  cframe->IDE = Cluster_0_Status_IDE;
+  return Cluster_0_Status_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch4(Cluster_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_0_Status_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Cluster_NofClustersNear & (0xFFU));
+  _d[1] |= (_m->Cluster_NofClustersFar & (0xFFU));
+  _d[2] |= ((_m->Cluster_MeasCounter >> 8) & (0xFFU));
+  _d[3] |= (_m->Cluster_MeasCounter & (0xFFU));
+  _d[4] |= ((_m->Cluster_InterfaceVersion & (0x0FU)) << 4);
+
+  *_len = Cluster_0_Status_DLC;
+  *_ide = Cluster_0_Status_IDE;
+  return Cluster_0_Status_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_0_Status_ARS408_can_database_ch4(Obj_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_NofObjects = (_d[0] & (0xFFU));
+  _m->Obj_MeasCounter = ((_d[1] & (0xFFU)) << 8) | (_d[2] & (0xFFU));
+  _m->Obj_InterfaceVersion = ((_d[3] >> 4) & (0x0FU));
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_0_Status_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_0_Status_ars408_can_database_ch4(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+ return Obj_0_Status_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch4(Obj_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_0_Status_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_NofObjects & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[2] |= (_m->Obj_MeasCounter & (0xFFU));
+  cframe->Data[3] |= ((_m->Obj_InterfaceVersion & (0x0FU)) << 4);
+
+  cframe->MsgId = Obj_0_Status_CANID;
+  cframe->DLC = Obj_0_Status_DLC;
+  cframe->IDE = Obj_0_Status_IDE;
+  return Obj_0_Status_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch4(Obj_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_0_Status_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_NofObjects & (0xFFU));
+  _d[1] |= ((_m->Obj_MeasCounter >> 8) & (0xFFU));
+  _d[2] |= (_m->Obj_MeasCounter & (0xFFU));
+  _d[3] |= ((_m->Obj_InterfaceVersion & (0x0FU)) << 4);
+
+  *_len = Obj_0_Status_DLC;
+  *_ide = Obj_0_Status_IDE;
+  return Obj_0_Status_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_1_General_ARS408_can_database_ch4(Obj_1_General_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_DistLong_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->Obj_DistLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_Obj_DistLong_ro_fromS(_m->Obj_DistLong_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->Obj_DistLat_ro = ((_d[2] & (0x07U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->Obj_DistLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_Obj_DistLat_ro_fromS(_m->Obj_DistLat_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->Obj_VrelLong_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->Obj_VrelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_Obj_VrelLong_ro_fromS(_m->Obj_VrelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->Obj_VrelLat_ro = ((_d[5] & (0x3FU)) << 3) | ((_d[6] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->Obj_VrelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_Obj_VrelLat_ro_fromS(_m->Obj_VrelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->Obj_DynProp = (_d[6] & (0x07U));
+  _m->Obj_RCS_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->Obj_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_Obj_RCS_ro_fromS(_m->Obj_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_1_General_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_1_General_ars408_can_database_ch4(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+ return Obj_1_General_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch4(Obj_1_General_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_1_General_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->Obj_DistLong_ro = ARS408_CAN_DATABASE_CH4_Obj_DistLong_ro_toS(_m->Obj_DistLong_phys);
+  _m->Obj_DistLat_ro = ARS408_CAN_DATABASE_CH4_Obj_DistLat_ro_toS(_m->Obj_DistLat_phys);
+  _m->Obj_VrelLong_ro = ARS408_CAN_DATABASE_CH4_Obj_VrelLong_ro_toS(_m->Obj_VrelLong_phys);
+  _m->Obj_VrelLat_ro = ARS408_CAN_DATABASE_CH4_Obj_VrelLat_ro_toS(_m->Obj_VrelLat_phys);
+  _m->Obj_RCS_ro = ARS408_CAN_DATABASE_CH4_Obj_RCS_ro_toS(_m->Obj_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_DistLong_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->Obj_DistLong_ro & (0x1FU)) << 3) | ((_m->Obj_DistLat_ro >> 8) & (0x07U));
+  cframe->Data[3] |= (_m->Obj_DistLat_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->Obj_VrelLong_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Obj_VrelLong_ro & (0x03U)) << 6) | ((_m->Obj_VrelLat_ro >> 3) & (0x3FU));
+  cframe->Data[6] |= ((_m->Obj_VrelLat_ro & (0x07U)) << 5) | (_m->Obj_DynProp & (0x07U));
+  cframe->Data[7] |= (_m->Obj_RCS_ro & (0xFFU));
+
+  cframe->MsgId = Obj_1_General_CANID;
+  cframe->DLC = Obj_1_General_DLC;
+  cframe->IDE = Obj_1_General_IDE;
+  return Obj_1_General_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch4(Obj_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_1_General_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->Obj_DistLong_ro = ARS408_CAN_DATABASE_CH4_Obj_DistLong_ro_toS(_m->Obj_DistLong_phys);
+  _m->Obj_DistLat_ro = ARS408_CAN_DATABASE_CH4_Obj_DistLat_ro_toS(_m->Obj_DistLat_phys);
+  _m->Obj_VrelLong_ro = ARS408_CAN_DATABASE_CH4_Obj_VrelLong_ro_toS(_m->Obj_VrelLong_phys);
+  _m->Obj_VrelLat_ro = ARS408_CAN_DATABASE_CH4_Obj_VrelLat_ro_toS(_m->Obj_VrelLat_phys);
+  _m->Obj_RCS_ro = ARS408_CAN_DATABASE_CH4_Obj_RCS_ro_toS(_m->Obj_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_DistLong_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->Obj_DistLong_ro & (0x1FU)) << 3) | ((_m->Obj_DistLat_ro >> 8) & (0x07U));
+  _d[3] |= (_m->Obj_DistLat_ro & (0xFFU));
+  _d[4] |= ((_m->Obj_VrelLong_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Obj_VrelLong_ro & (0x03U)) << 6) | ((_m->Obj_VrelLat_ro >> 3) & (0x3FU));
+  _d[6] |= ((_m->Obj_VrelLat_ro & (0x07U)) << 5) | (_m->Obj_DynProp & (0x07U));
+  _d[7] |= (_m->Obj_RCS_ro & (0xFFU));
+
+  *_len = Obj_1_General_DLC;
+  *_ide = Obj_1_General_IDE;
+  return Obj_1_General_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_2_Quality_ARS408_can_database_ch4(Obj_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_DistLat_rms = ((_d[1] & (0x07U)) << 2) | ((_d[2] >> 6) & (0x03U));
+  _m->Obj_DistLong_rms = ((_d[1] >> 3) & (0x1FU));
+  _m->Obj_VrelLat_rms = ((_d[2] & (0x01U)) << 4) | ((_d[3] >> 4) & (0x0FU));
+  _m->Obj_VrelLong_rms = ((_d[2] >> 1) & (0x1FU));
+  _m->Obj_ArelLong_rms = ((_d[3] & (0x0FU)) << 1) | ((_d[4] >> 7) & (0x01U));
+  _m->Obj_Orientation_rms = ((_d[4] & (0x03U)) << 3) | ((_d[5] >> 5) & (0x07U));
+  _m->Obj_ArelLat_rms = ((_d[4] >> 2) & (0x1FU));
+  _m->Obj_MeasState = ((_d[6] >> 2) & (0x07U));
+  _m->Obj_ProbOfExist = ((_d[6] >> 5) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_2_Quality_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_2_Quality_ars408_can_database_ch4(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+ return Obj_2_Quality_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch4(Obj_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_2_Quality_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_DistLat_rms >> 2) & (0x07U)) | ((_m->Obj_DistLong_rms & (0x1FU)) << 3);
+  cframe->Data[2] |= ((_m->Obj_DistLat_rms & (0x03U)) << 6) | ((_m->Obj_VrelLat_rms >> 4) & (0x01U)) | ((_m->Obj_VrelLong_rms & (0x1FU)) << 1);
+  cframe->Data[3] |= ((_m->Obj_VrelLat_rms & (0x0FU)) << 4) | ((_m->Obj_ArelLong_rms >> 1) & (0x0FU));
+  cframe->Data[4] |= ((_m->Obj_ArelLong_rms & (0x01U)) << 7) | ((_m->Obj_Orientation_rms >> 3) & (0x03U)) | ((_m->Obj_ArelLat_rms & (0x1FU)) << 2);
+  cframe->Data[5] |= ((_m->Obj_Orientation_rms & (0x07U)) << 5);
+  cframe->Data[6] |= ((_m->Obj_MeasState & (0x07U)) << 2) | ((_m->Obj_ProbOfExist & (0x07U)) << 5);
+
+  cframe->MsgId = Obj_2_Quality_CANID;
+  cframe->DLC = Obj_2_Quality_DLC;
+  cframe->IDE = Obj_2_Quality_IDE;
+  return Obj_2_Quality_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch4(Obj_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_2_Quality_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_DistLat_rms >> 2) & (0x07U)) | ((_m->Obj_DistLong_rms & (0x1FU)) << 3);
+  _d[2] |= ((_m->Obj_DistLat_rms & (0x03U)) << 6) | ((_m->Obj_VrelLat_rms >> 4) & (0x01U)) | ((_m->Obj_VrelLong_rms & (0x1FU)) << 1);
+  _d[3] |= ((_m->Obj_VrelLat_rms & (0x0FU)) << 4) | ((_m->Obj_ArelLong_rms >> 1) & (0x0FU));
+  _d[4] |= ((_m->Obj_ArelLong_rms & (0x01U)) << 7) | ((_m->Obj_Orientation_rms >> 3) & (0x03U)) | ((_m->Obj_ArelLat_rms & (0x1FU)) << 2);
+  _d[5] |= ((_m->Obj_Orientation_rms & (0x07U)) << 5);
+  _d[6] |= ((_m->Obj_MeasState & (0x07U)) << 2) | ((_m->Obj_ProbOfExist & (0x07U)) << 5);
+
+  *_len = Obj_2_Quality_DLC;
+  *_ide = Obj_2_Quality_IDE;
+  return Obj_2_Quality_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_3_Extended_ARS408_can_database_ch4(Obj_3_Extended_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_ArelLong_ro = ((_d[1] & (0xFFU)) << 3) | ((_d[2] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->Obj_ArelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_Obj_ArelLong_ro_fromS(_m->Obj_ArelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->Obj_ArelLat_ro = ((_d[2] & (0x1FU)) << 4) | ((_d[3] >> 4) & (0x0FU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->Obj_ArelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_Obj_ArelLat_ro_fromS(_m->Obj_ArelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->Obj_Class = (_d[3] & (0x07U));
+  _m->Obj_OrientationAngle_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->Obj_OrientationAngle_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_Obj_OrientationAngle_ro_fromS(_m->Obj_OrientationAngle_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->Obj_Length_ro = (_d[6] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->Obj_Length_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_Obj_Length_ro_fromS(_m->Obj_Length_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->Obj_Width_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->Obj_Width_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_Obj_Width_ro_fromS(_m->Obj_Width_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_3_Extended_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_3_Extended_ars408_can_database_ch4(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+ return Obj_3_Extended_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch4(Obj_3_Extended_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_3_Extended_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->Obj_ArelLong_ro = ARS408_CAN_DATABASE_CH4_Obj_ArelLong_ro_toS(_m->Obj_ArelLong_phys);
+  _m->Obj_ArelLat_ro = ARS408_CAN_DATABASE_CH4_Obj_ArelLat_ro_toS(_m->Obj_ArelLat_phys);
+  _m->Obj_OrientationAngle_ro = ARS408_CAN_DATABASE_CH4_Obj_OrientationAngle_ro_toS(_m->Obj_OrientationAngle_phys);
+  _m->Obj_Length_ro = ARS408_CAN_DATABASE_CH4_Obj_Length_ro_toS(_m->Obj_Length_phys);
+  _m->Obj_Width_ro = ARS408_CAN_DATABASE_CH4_Obj_Width_ro_toS(_m->Obj_Width_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_ArelLong_ro >> 3) & (0xFFU));
+  cframe->Data[2] |= ((_m->Obj_ArelLong_ro & (0x07U)) << 5) | ((_m->Obj_ArelLat_ro >> 4) & (0x1FU));
+  cframe->Data[3] |= ((_m->Obj_ArelLat_ro & (0x0FU)) << 4) | (_m->Obj_Class & (0x07U));
+  cframe->Data[4] |= ((_m->Obj_OrientationAngle_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Obj_OrientationAngle_ro & (0x03U)) << 6);
+  cframe->Data[6] |= (_m->Obj_Length_ro & (0xFFU));
+  cframe->Data[7] |= (_m->Obj_Width_ro & (0xFFU));
+
+  cframe->MsgId = Obj_3_Extended_CANID;
+  cframe->DLC = Obj_3_Extended_DLC;
+  cframe->IDE = Obj_3_Extended_IDE;
+  return Obj_3_Extended_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch4(Obj_3_Extended_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_3_Extended_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->Obj_ArelLong_ro = ARS408_CAN_DATABASE_CH4_Obj_ArelLong_ro_toS(_m->Obj_ArelLong_phys);
+  _m->Obj_ArelLat_ro = ARS408_CAN_DATABASE_CH4_Obj_ArelLat_ro_toS(_m->Obj_ArelLat_phys);
+  _m->Obj_OrientationAngle_ro = ARS408_CAN_DATABASE_CH4_Obj_OrientationAngle_ro_toS(_m->Obj_OrientationAngle_phys);
+  _m->Obj_Length_ro = ARS408_CAN_DATABASE_CH4_Obj_Length_ro_toS(_m->Obj_Length_phys);
+  _m->Obj_Width_ro = ARS408_CAN_DATABASE_CH4_Obj_Width_ro_toS(_m->Obj_Width_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_ArelLong_ro >> 3) & (0xFFU));
+  _d[2] |= ((_m->Obj_ArelLong_ro & (0x07U)) << 5) | ((_m->Obj_ArelLat_ro >> 4) & (0x1FU));
+  _d[3] |= ((_m->Obj_ArelLat_ro & (0x0FU)) << 4) | (_m->Obj_Class & (0x07U));
+  _d[4] |= ((_m->Obj_OrientationAngle_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Obj_OrientationAngle_ro & (0x03U)) << 6);
+  _d[6] |= (_m->Obj_Length_ro & (0xFFU));
+  _d[7] |= (_m->Obj_Width_ro & (0xFFU));
+
+  *_len = Obj_3_Extended_DLC;
+  *_ide = Obj_3_Extended_IDE;
+  return Obj_3_Extended_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_4_Warning_ARS408_can_database_ch4(Obj_4_Warning_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_CollDetRegionBitfield = (_d[1] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_4_Warning_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_4_Warning_ars408_can_database_ch4(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+ return Obj_4_Warning_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch4(Obj_4_Warning_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_4_Warning_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= (_m->Obj_CollDetRegionBitfield & (0xFFU));
+
+  cframe->MsgId = Obj_4_Warning_CANID;
+  cframe->DLC = Obj_4_Warning_DLC;
+  cframe->IDE = Obj_4_Warning_IDE;
+  return Obj_4_Warning_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch4(Obj_4_Warning_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_4_Warning_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= (_m->Obj_CollDetRegionBitfield & (0xFFU));
+
+  *_len = Obj_4_Warning_DLC;
+  *_ide = Obj_4_Warning_IDE;
+  return Obj_4_Warning_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_VersionID_ARS408_can_database_ch4(VersionID_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Version_MajorRelease = (_d[0] & (0xFFU));
+  _m->Version_MinorRelease = (_d[1] & (0xFFU));
+  _m->Version_PatchLevel = (_d[2] & (0xFFU));
+  _m->Version_CountryCode = (_d[3] & (0x01U));
+  _m->Version_ExtendedRange = ((_d[3] >> 1) & (0x01U));
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < VersionID_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_VersionID_ars408_can_database_ch4(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+ return VersionID_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Pack_VersionID_ARS408_can_database_ch4(VersionID_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < VersionID_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Version_MajorRelease & (0xFFU));
+  cframe->Data[1] |= (_m->Version_MinorRelease & (0xFFU));
+  cframe->Data[2] |= (_m->Version_PatchLevel & (0xFFU));
+  cframe->Data[3] |= (_m->Version_CountryCode & (0x01U)) | ((_m->Version_ExtendedRange & (0x01U)) << 1);
+
+  cframe->MsgId = VersionID_CANID;
+  cframe->DLC = VersionID_DLC;
+  cframe->IDE = VersionID_IDE;
+  return VersionID_CANID;
+}
+
+#else
+
+uint32_t Pack_VersionID_ARS408_can_database_ch4(VersionID_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < VersionID_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Version_MajorRelease & (0xFFU));
+  _d[1] |= (_m->Version_MinorRelease & (0xFFU));
+  _d[2] |= (_m->Version_PatchLevel & (0xFFU));
+  _d[3] |= (_m->Version_CountryCode & (0x01U)) | ((_m->Version_ExtendedRange & (0x01U)) << 1);
+
+  *_len = VersionID_DLC;
+  *_ide = VersionID_IDE;
+  return VersionID_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_1_General_ARS408_can_database_ch4(Cluster_1_General_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_ID = (_d[0] & (0xFFU));
+  _m->Cluster_DistLong_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->Cluster_DistLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_Cluster_DistLong_ro_fromS(_m->Cluster_DistLong_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->Cluster_DistLat_ro = ((_d[2] & (0x03U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->Cluster_DistLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_Cluster_DistLat_ro_fromS(_m->Cluster_DistLat_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->Cluster_VrelLong_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->Cluster_VrelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_Cluster_VrelLong_ro_fromS(_m->Cluster_VrelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->Cluster_VrelLat_ro = ((_d[5] & (0x3FU)) << 3) | ((_d[6] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->Cluster_VrelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_Cluster_VrelLat_ro_fromS(_m->Cluster_VrelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _m->Cluster_DynProp = (_d[6] & (0x07U));
+  _m->Cluster_RCS_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->Cluster_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH4_Cluster_RCS_ro_fromS(_m->Cluster_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_1_General_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_1_General_ars408_can_database_ch4(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+ return Cluster_1_General_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch4(Cluster_1_General_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_1_General_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->Cluster_DistLong_ro = ARS408_CAN_DATABASE_CH4_Cluster_DistLong_ro_toS(_m->Cluster_DistLong_phys);
+  _m->Cluster_DistLat_ro = ARS408_CAN_DATABASE_CH4_Cluster_DistLat_ro_toS(_m->Cluster_DistLat_phys);
+  _m->Cluster_VrelLong_ro = ARS408_CAN_DATABASE_CH4_Cluster_VrelLong_ro_toS(_m->Cluster_VrelLong_phys);
+  _m->Cluster_VrelLat_ro = ARS408_CAN_DATABASE_CH4_Cluster_VrelLat_ro_toS(_m->Cluster_VrelLat_phys);
+  _m->Cluster_RCS_ro = ARS408_CAN_DATABASE_CH4_Cluster_RCS_ro_toS(_m->Cluster_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Cluster_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Cluster_DistLong_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->Cluster_DistLong_ro & (0x1FU)) << 3) | ((_m->Cluster_DistLat_ro >> 8) & (0x03U));
+  cframe->Data[3] |= (_m->Cluster_DistLat_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->Cluster_VrelLong_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Cluster_VrelLong_ro & (0x03U)) << 6) | ((_m->Cluster_VrelLat_ro >> 3) & (0x3FU));
+  cframe->Data[6] |= ((_m->Cluster_VrelLat_ro & (0x07U)) << 5) | (_m->Cluster_DynProp & (0x07U));
+  cframe->Data[7] |= (_m->Cluster_RCS_ro & (0xFFU));
+
+  cframe->MsgId = Cluster_1_General_CANID;
+  cframe->DLC = Cluster_1_General_DLC;
+  cframe->IDE = Cluster_1_General_IDE;
+  return Cluster_1_General_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch4(Cluster_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_1_General_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  _m->Cluster_DistLong_ro = ARS408_CAN_DATABASE_CH4_Cluster_DistLong_ro_toS(_m->Cluster_DistLong_phys);
+  _m->Cluster_DistLat_ro = ARS408_CAN_DATABASE_CH4_Cluster_DistLat_ro_toS(_m->Cluster_DistLat_phys);
+  _m->Cluster_VrelLong_ro = ARS408_CAN_DATABASE_CH4_Cluster_VrelLong_ro_toS(_m->Cluster_VrelLong_phys);
+  _m->Cluster_VrelLat_ro = ARS408_CAN_DATABASE_CH4_Cluster_VrelLat_ro_toS(_m->Cluster_VrelLat_phys);
+  _m->Cluster_RCS_ro = ARS408_CAN_DATABASE_CH4_Cluster_RCS_ro_toS(_m->Cluster_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  _d[0] |= (_m->Cluster_ID & (0xFFU));
+  _d[1] |= ((_m->Cluster_DistLong_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->Cluster_DistLong_ro & (0x1FU)) << 3) | ((_m->Cluster_DistLat_ro >> 8) & (0x03U));
+  _d[3] |= (_m->Cluster_DistLat_ro & (0xFFU));
+  _d[4] |= ((_m->Cluster_VrelLong_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Cluster_VrelLong_ro & (0x03U)) << 6) | ((_m->Cluster_VrelLat_ro >> 3) & (0x3FU));
+  _d[6] |= ((_m->Cluster_VrelLat_ro & (0x07U)) << 5) | (_m->Cluster_DynProp & (0x07U));
+  _d[7] |= (_m->Cluster_RCS_ro & (0xFFU));
+
+  *_len = Cluster_1_General_DLC;
+  *_ide = Cluster_1_General_IDE;
+  return Cluster_1_General_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_2_Quality_ARS408_can_database_ch4(Cluster_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_ID = (_d[0] & (0xFFU));
+  _m->Cluster_DistLat_rms = ((_d[1] & (0x07U)) << 2) | ((_d[2] >> 6) & (0x03U));
+  _m->Cluster_DistLong_rms = ((_d[1] >> 3) & (0x1FU));
+  _m->Cluster_VrelLat_rms = ((_d[2] & (0x01U)) << 4) | ((_d[3] >> 4) & (0x0FU));
+  _m->Cluster_VrelLong_rms = ((_d[2] >> 1) & (0x1FU));
+  _m->Cluster_PdH0 = (_d[3] & (0x07U));
+  _m->Cluster_AmbigState = (_d[4] & (0x07U));
+  _m->Cluster_InvalidState = ((_d[4] >> 3) & (0x1FU));
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_2_Quality_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_2_Quality_ars408_can_database_ch4(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+ return Cluster_2_Quality_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch4(Cluster_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_2_Quality_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Cluster_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Cluster_DistLat_rms >> 2) & (0x07U)) | ((_m->Cluster_DistLong_rms & (0x1FU)) << 3);
+  cframe->Data[2] |= ((_m->Cluster_DistLat_rms & (0x03U)) << 6) | ((_m->Cluster_VrelLat_rms >> 4) & (0x01U)) | ((_m->Cluster_VrelLong_rms & (0x1FU)) << 1);
+  cframe->Data[3] |= ((_m->Cluster_VrelLat_rms & (0x0FU)) << 4) | (_m->Cluster_PdH0 & (0x07U));
+  cframe->Data[4] |= (_m->Cluster_AmbigState & (0x07U)) | ((_m->Cluster_InvalidState & (0x1FU)) << 3);
+
+  cframe->MsgId = Cluster_2_Quality_CANID;
+  cframe->DLC = Cluster_2_Quality_DLC;
+  cframe->IDE = Cluster_2_Quality_IDE;
+  return Cluster_2_Quality_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch4(Cluster_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_2_Quality_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Cluster_ID & (0xFFU));
+  _d[1] |= ((_m->Cluster_DistLat_rms >> 2) & (0x07U)) | ((_m->Cluster_DistLong_rms & (0x1FU)) << 3);
+  _d[2] |= ((_m->Cluster_DistLat_rms & (0x03U)) << 6) | ((_m->Cluster_VrelLat_rms >> 4) & (0x01U)) | ((_m->Cluster_VrelLong_rms & (0x1FU)) << 1);
+  _d[3] |= ((_m->Cluster_VrelLat_rms & (0x0FU)) << 4) | (_m->Cluster_PdH0 & (0x07U));
+  _d[4] |= (_m->Cluster_AmbigState & (0x07U)) | ((_m->Cluster_InvalidState & (0x1FU)) << 3);
+
+  *_len = Cluster_2_Quality_DLC;
+  *_ide = Cluster_2_Quality_IDE;
+  return Cluster_2_Quality_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+

+ 4044 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch4.h

@@ -0,0 +1,4044 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+// DBC file version
+#define VER_ARS408_CAN_DATABASE_CH4_MAJ (0U)
+#define VER_ARS408_CAN_DATABASE_CH4_MIN (0U)
+
+// include current dbc-driver compilation config
+#include "ars408_can_database_ch4-config.h"
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+// This file must define:
+// base monitor struct
+// function signature for HASH calculation: (@GetFrameHash)
+// function signature for getting system tick value: (@GetSystemTick)
+#include "canmonitorutil.h"
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+
+// Control message for relay to display collision detection
+// def @CollDetRelayCtrl CAN Message (8    0x8)
+#define CollDetRelayCtrl_IDE (0U)
+#define CollDetRelayCtrl_DLC (1U)
+#define CollDetRelayCtrl_CANID (0x8)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+  // Region bit field for control relay
+  uint8_t CollDetRelayCtrl_Param;            //      Bits= 8
+
+#else
+
+  // Region bit field for control relay
+  uint8_t CollDetRelayCtrl_Param;            //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+} CollDetRelayCtrl_t;
+
+// Radar configuration
+// def @RadarConfiguration CAN Message (576  0x240)
+#define RadarConfiguration_IDE (0U)
+#define RadarConfiguration_DLC (8U)
+#define RadarConfiguration_CANID (0x240)
+// signal: @RadarCfg_MaxDistance_ro
+#define ARS408_CAN_DATABASE_CH4_RadarCfg_MaxDistance_ro_CovFactor (2)
+#define ARS408_CAN_DATABASE_CH4_RadarCfg_MaxDistance_ro_toS(x) ( (uint16_t) ((x) / (2)) )
+#define ARS408_CAN_DATABASE_CH4_RadarCfg_MaxDistance_ro_fromS(x) ( ((x) * (2)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+  // Allows changing the MaxDistance parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_MaxDistance_valid : 1;     //      Bits= 1
+
+  // Allows changing the SensorId parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SensorID_valid : 1;        //      Bits= 1
+
+  // Allows changing the RadarPower parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RadarPower_valid : 1;      //      Bits= 1
+
+  // Allows changing the OutputType parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_OutputType_valid : 1;      //      Bits= 1
+
+  // Allows changing the SendQuality parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendQuality_valid : 1;     //      Bits= 1
+
+  // Allows changing the SendExtInfo parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendExtInfo_valid : 1;     //      Bits= 1
+
+  // Allows changing the SortIndex parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SortIndex_valid : 1;       //      Bits= 1
+
+  // Allows changing the StoreInNvm parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_StoreInNVM_valid : 1;      //      Bits= 1
+
+  uint16_t RadarCfg_MaxDistance_ro;           //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  uint16_t RadarCfg_MaxDistance_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // Sensor ID (0 to 7)
+  uint8_t RadarCfg_SensorID : 3;              //      Bits= 3
+
+  // Data output type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarCfg_OutputType : 2;            //      Bits= 2
+
+  // Radar Tx output power reduction (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RadarPower : 3;            //      Bits= 3
+
+  // Allows changing the CtrlRelay parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_CtrlRelay_valid : 1;       //      Bits= 1
+
+  // Enables output of CtrlRelay message if CollDet is active
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_CtrlRelay : 1;             //      Bits= 1
+
+  // Enables output of quality message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendQuality : 1;           //      Bits= 1
+
+  // Enables output of extended message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendExtInfo : 1;           //      Bits= 1
+
+  // Object sort index
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarCfg_SortIndex : 3;             //      Bits= 3
+
+  // Store configuration in Nvm
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_StoreInNVM : 1;            //      Bits= 1
+
+  // Allows changing the RCS_Threshold parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RCS_Threshold_Valid : 1;   //      Bits= 1
+
+  // Standard or high sensitivity for cluster list output
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RCS_Threshold : 3;         //      Bits= 3
+
+#else
+
+  // Allows changing the MaxDistance parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_MaxDistance_valid;         //      Bits= 1
+
+  // Allows changing the SensorId parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SensorID_valid;            //      Bits= 1
+
+  // Allows changing the RadarPower parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RadarPower_valid;          //      Bits= 1
+
+  // Allows changing the OutputType parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_OutputType_valid;          //      Bits= 1
+
+  // Allows changing the SendQuality parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendQuality_valid;         //      Bits= 1
+
+  // Allows changing the SendExtInfo parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendExtInfo_valid;         //      Bits= 1
+
+  // Allows changing the SortIndex parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SortIndex_valid;           //      Bits= 1
+
+  // Allows changing the StoreInNvm parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_StoreInNVM_valid;          //      Bits= 1
+
+  uint16_t RadarCfg_MaxDistance_ro;           //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  uint16_t RadarCfg_MaxDistance_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // Sensor ID (0 to 7)
+  uint8_t RadarCfg_SensorID;                  //      Bits= 3
+
+  // Data output type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarCfg_OutputType;                //      Bits= 2
+
+  // Radar Tx output power reduction (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RadarPower;                //      Bits= 3
+
+  // Allows changing the CtrlRelay parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_CtrlRelay_valid;           //      Bits= 1
+
+  // Enables output of CtrlRelay message if CollDet is active
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_CtrlRelay;                 //      Bits= 1
+
+  // Enables output of quality message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendQuality;               //      Bits= 1
+
+  // Enables output of extended message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendExtInfo;               //      Bits= 1
+
+  // Object sort index
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarCfg_SortIndex;                 //      Bits= 3
+
+  // Store configuration in Nvm
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_StoreInNVM;                //      Bits= 1
+
+  // Allows changing the RCS_Threshold parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RCS_Threshold_Valid;       //      Bits= 1
+
+  // Standard or high sensitivity for cluster list output
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RCS_Threshold;             //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+} RadarConfiguration_t;
+
+// Radar configuration status
+// def @RadarState CAN Message (577  0x241)
+#define RadarState_IDE (0U)
+#define RadarState_DLC (8U)
+#define RadarState_CANID (0x241)
+#define RadarState_CYC (50U)
+// signal: @RadarState_MaxDistanceCfg_ro
+#define ARS408_CAN_DATABASE_CH4_RadarState_MaxDistanceCfg_ro_CovFactor (2)
+#define ARS408_CAN_DATABASE_CH4_RadarState_MaxDistanceCfg_ro_toS(x) ( (uint16_t) ((x) / (2)) )
+#define ARS408_CAN_DATABASE_CH4_RadarState_MaxDistanceCfg_ro_fromS(x) ( ((x) * (2)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+  // Gives the status of reading the radar configuration from EEPROM
+  //  1 : "successful"
+  //  0 : "pending"
+  // 
+  uint8_t RadarState_NVMReadStatus : 1;       //      Bits= 1
+
+  // Gives the status of writing the radar configuration from EEPROM
+  // 
+  uint8_t RadarState_NVMwriteStatus : 1;      //      Bits= 1
+
+  uint16_t RadarState_MaxDistanceCfg_ro;      //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  uint16_t RadarState_MaxDistanceCfg_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // 
+  // 
+  //  1 : "Voltage error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Voltage_Error : 1;       //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temporary error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temporary_Error : 1;     //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temperature error  active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temperature_Error : 1;   //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Interference detected"
+  //  0 : "No interference"
+  // 
+  uint8_t RadarState_Interference : 1;        //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Persistent error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Persistent_Error : 1;    //      Bits= 1
+
+  // Radar Tx output level (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RadarPowerCfg : 3;       //      Bits= 3
+
+  // Sensor ID (0 to 7)
+  //  7 : "ID 7"
+  //  6 : "ID 6"
+  //  5 : "ID 5"
+  //  4 : "ID 4"
+  //  3 : "ID 3"
+  //  2 : "ID 2"
+  //  1 : "ID 1"
+  //  0 : "ID 0"
+  // 
+  uint8_t RadarState_SensorID : 3;            //      Bits= 3
+
+  // Current sorting of object list
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarState_SortIndex : 3;           //      Bits= 3
+
+  // Status of control relay message output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_CtrlRelayCfg : 1;        //      Bits= 1
+
+  // Current output list type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarState_OutputTypeCfg : 2;       //      Bits= 2
+
+  // Status of quality information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendQualityCfg : 1;      //      Bits= 1
+
+  // Status of extended information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendExtInfoCfg : 1;      //      Bits= 1
+
+  // Status of motion input signals
+  //  3 : "Speed and yaw rate missing"
+  //  2 : "Yaw rate missing"
+  //  1 : "Speed missing"
+  //  0 : "Input ok"
+  // 
+  uint8_t RadarState_MotionRxState : 2;       //      Bits= 2
+
+  // Current sensitivity mode
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RCS_Threshold : 3;       //      Bits= 3
+
+#else
+
+  // Gives the status of reading the radar configuration from EEPROM
+  //  1 : "successful"
+  //  0 : "pending"
+  // 
+  uint8_t RadarState_NVMReadStatus;           //      Bits= 1
+
+  // Gives the status of writing the radar configuration from EEPROM
+  // 
+  uint8_t RadarState_NVMwriteStatus;          //      Bits= 1
+
+  uint16_t RadarState_MaxDistanceCfg_ro;      //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  uint16_t RadarState_MaxDistanceCfg_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // 
+  // 
+  //  1 : "Voltage error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Voltage_Error;           //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temporary error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temporary_Error;         //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temperature error  active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temperature_Error;       //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Interference detected"
+  //  0 : "No interference"
+  // 
+  uint8_t RadarState_Interference;            //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Persistent error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Persistent_Error;        //      Bits= 1
+
+  // Radar Tx output level (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RadarPowerCfg;           //      Bits= 3
+
+  // Sensor ID (0 to 7)
+  //  7 : "ID 7"
+  //  6 : "ID 6"
+  //  5 : "ID 5"
+  //  4 : "ID 4"
+  //  3 : "ID 3"
+  //  2 : "ID 2"
+  //  1 : "ID 1"
+  //  0 : "ID 0"
+  // 
+  uint8_t RadarState_SensorID;                //      Bits= 3
+
+  // Current sorting of object list
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarState_SortIndex;               //      Bits= 3
+
+  // Status of control relay message output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_CtrlRelayCfg;            //      Bits= 1
+
+  // Current output list type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarState_OutputTypeCfg;           //      Bits= 2
+
+  // Status of quality information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendQualityCfg;          //      Bits= 1
+
+  // Status of extended information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendExtInfoCfg;          //      Bits= 1
+
+  // Status of motion input signals
+  //  3 : "Speed and yaw rate missing"
+  //  2 : "Yaw rate missing"
+  //  1 : "Speed missing"
+  //  0 : "Input ok"
+  // 
+  uint8_t RadarState_MotionRxState;           //      Bits= 2
+
+  // Current sensitivity mode
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RCS_Threshold;           //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+} RadarState_t;
+
+// Filter configuration
+// def @FilterCfg CAN Message (578  0x242)
+#define FilterCfg_IDE (0U)
+#define FilterCfg_DLC (5U)
+#define FilterCfg_CANID (0x242)
+// signal: @FilterCfg_Min_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_Size_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterCfg_Min_RCS_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Min_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Min_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Min_Distance_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Min_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_Y_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterCfg_Min_X_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Min_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @FilterCfg_Max_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Max_Distance_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Max_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Max_RCS_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Max_Size_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterCfg_Max_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_Y_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterCfg_Max_X_ro
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterCfg_Max_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+  //  1 : "valid"
+  //  0 : "invalid"
+  // 
+  uint8_t FilterCfg_Valid : 1;                //      Bits= 1
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterCfg_Active : 1;               //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterCfg_Index : 4;                //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterCfg_Type : 1;                 //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#else
+
+  //  1 : "valid"
+  //  0 : "invalid"
+  // 
+  uint8_t FilterCfg_Valid;                    //      Bits= 1
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterCfg_Active;                   //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterCfg_Index;                    //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterCfg_Type;                     //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+} FilterCfg_t;
+
+// Header of filter configuration state
+// def @FilterState_Header CAN Message (579  0x243)
+#define FilterState_Header_IDE (0U)
+#define FilterState_Header_DLC (2U)
+#define FilterState_Header_CANID (0x243)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+  uint8_t FilterState_NofClusterFilterCfg : 5;   //      Bits= 5
+
+  uint8_t FilterState_NofObjectFilterCfg : 5;    //      Bits= 5
+
+#else
+
+  uint8_t FilterState_NofClusterFilterCfg;       //      Bits= 5
+
+  uint8_t FilterState_NofObjectFilterCfg;        //      Bits= 5
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+} FilterState_Header_t;
+
+// Filter configuration status
+// def @FilterState_Cfg CAN Message (580  0x244)
+#define FilterState_Cfg_IDE (0U)
+#define FilterState_Cfg_DLC (5U)
+#define FilterState_Cfg_CANID (0x244)
+// signal: @FilterState_Min_RCS_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Min_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Min_Distance_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Min_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Min_Y_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterState_Min_Size_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterState_Min_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_X_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Min_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @FilterState_Max_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Max_Distance_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Max_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Max_RCS_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Max_Size_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterState_Max_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_Y_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterState_Max_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_X_ro
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_FilterState_Max_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterState_Active : 1;               //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterState_Index : 4;                //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterState_Type : 1;                 //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterState_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_NofObj;              //      Bits=12
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_NofObj;              //      Bits=12
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#else
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterState_Active;                   //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterState_Index;                    //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterState_Type;                     //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterState_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_NofObj;              //      Bits=12
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_NofObj;              //      Bits=12
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+} FilterState_Cfg_t;
+
+// Device movement speed
+// def @SpeedInformation CAN Message (832  0x340)
+#define SpeedInformation_IDE (0U)
+#define SpeedInformation_DLC (2U)
+#define SpeedInformation_CANID (0x340)
+// signal: @RadarDevice_Speed_ro
+#define ARS408_CAN_DATABASE_CH4_RadarDevice_Speed_ro_CovFactor (0.020000)
+#define ARS408_CAN_DATABASE_CH4_RadarDevice_Speed_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.020000)) )
+#define ARS408_CAN_DATABASE_CH4_RadarDevice_Speed_ro_fromS(x) ( (((x) * (0.020000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+  uint16_t RadarDevice_Speed_ro;             //      Bits=13 Factor= 0.020000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t RadarDevice_Speed_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // Speed direction of the radar unit
+  //  3 : "reserved"
+  //  2 : "reverse"
+  //  1 : "forward"
+  //  0 : "standstill"
+  // 
+  uint8_t RadarDevice_SpeedDirection : 2;    //      Bits= 2
+
+#else
+
+  uint16_t RadarDevice_Speed_ro;             //      Bits=13 Factor= 0.020000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t RadarDevice_Speed_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // Speed direction of the radar unit
+  //  3 : "reserved"
+  //  2 : "reverse"
+  //  1 : "forward"
+  //  0 : "standstill"
+  // 
+  uint8_t RadarDevice_SpeedDirection;        //      Bits= 2
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+} SpeedInformation_t;
+
+// Device movement yaw rate
+// def @YawRateInformation CAN Message (833  0x341)
+#define YawRateInformation_IDE (0U)
+#define YawRateInformation_DLC (2U)
+#define YawRateInformation_CANID (0x341)
+// signal: @RadarDevice_YawRate_ro
+#define ARS408_CAN_DATABASE_CH4_RadarDevice_YawRate_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH4_RadarDevice_YawRate_ro_toS(x) ( (uint16_t) (((x) - (-327.680000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH4_RadarDevice_YawRate_ro_fromS(x) ( (((x) * (0.010000)) + (-327.680000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+  uint16_t RadarDevice_YawRate_ro;           //      Bits=16 Offset= -327.680000        Factor= 0.010000        Unit:'deg/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t RadarDevice_YawRate_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#else
+
+  uint16_t RadarDevice_YawRate_ro;           //      Bits=16 Offset= -327.680000        Factor= 0.010000        Unit:'deg/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t RadarDevice_YawRate_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+} YawRateInformation_t;
+
+// Collision detection configuration status
+// def @CollDetState CAN Message (1032 0x408)
+#define CollDetState_IDE (0U)
+#define CollDetState_DLC (4U)
+#define CollDetState_CANID (0x408)
+// signal: @CollDetState_MinDetectTime_ro
+#define ARS408_CAN_DATABASE_CH4_CollDetState_MinDetectTime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH4_CollDetState_MinDetectTime_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH4_CollDetState_MinDetectTime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetState_Active : 1;             //      Bits= 1
+
+  uint8_t CollDetState_NofRegions : 4;         //      Bits= 4
+
+  uint8_t CollDetState_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t CollDetState_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t CollDetState_MeasCounter;           //      Bits=16
+
+#else
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetState_Active;                 //      Bits= 1
+
+  uint8_t CollDetState_NofRegions;             //      Bits= 4
+
+  uint8_t CollDetState_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t CollDetState_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t CollDetState_MeasCounter;           //      Bits=16
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+} CollDetState_t;
+
+// Collision detection configuration
+// def @CollDetCfg CAN Message (1088 0x440)
+#define CollDetCfg_IDE (0U)
+#define CollDetCfg_DLC (2U)
+#define CollDetCfg_CANID (0x440)
+// signal: @CollDetCfg_MinDetectTime_ro
+#define ARS408_CAN_DATABASE_CH4_CollDetCfg_MinDetectTime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH4_CollDetCfg_MinDetectTime_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH4_CollDetCfg_MinDetectTime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+  //  1 : "Warn reset"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_WarningReset : 1;       //      Bits= 1
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetCfg_Activate : 1;           //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetCfg_MinTime_valid : 1;      //      Bits= 1
+
+  //  1 : "Clear all defined regions"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_ClearRegions : 1;       //      Bits= 1
+
+  uint8_t CollDetCfg_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t CollDetCfg_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#else
+
+  //  1 : "Warn reset"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_WarningReset;           //      Bits= 1
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetCfg_Activate;               //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetCfg_MinTime_valid;          //      Bits= 1
+
+  //  1 : "Clear all defined regions"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_ClearRegions;           //      Bits= 1
+
+  uint8_t CollDetCfg_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t CollDetCfg_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+} CollDetCfg_t;
+
+// Collision detection region configuration
+// def @CollDetRegionCfg CAN Message (1089 0x441)
+#define CollDetRegionCfg_IDE (0U)
+#define CollDetRegionCfg_DLC (8U)
+#define CollDetRegionCfg_CANID (0x441)
+// signal: @CollDetRegCfg_Point1X_ro
+#define ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point1X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point1X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point1X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegCfg_Point1Y_ro
+#define ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point1Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point1Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point1Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @CollDetRegCfg_Point2X_ro
+#define ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point2X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point2X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point2X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegCfg_Point2Y_ro
+#define ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point2Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point2Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_CollDetRegCfg_Point2Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetRegCfg_Activate : 1;            //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetRegCfg_Coordinates_valid : 1;   //      Bits= 1
+
+  uint8_t CollDetRegCfg_RegionID : 3;            //      Bits= 3
+
+  uint16_t CollDetRegCfg_Point1X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point1Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#else
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetRegCfg_Activate;                //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetRegCfg_Coordinates_valid;       //      Bits= 1
+
+  uint8_t CollDetRegCfg_RegionID;                //      Bits= 3
+
+  uint16_t CollDetRegCfg_Point1X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point1Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+} CollDetRegionCfg_t;
+
+// Collision detection region configuration and warning status
+// def @CollDetRegionState CAN Message (1090 0x442)
+#define CollDetRegionState_IDE (0U)
+#define CollDetRegionState_DLC (8U)
+#define CollDetRegionState_CANID (0x442)
+// signal: @CollDetRegState_Point1X_ro
+#define ARS408_CAN_DATABASE_CH4_CollDetRegState_Point1X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_CollDetRegState_Point1X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_CollDetRegState_Point1X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegState_Point1Y_ro
+#define ARS408_CAN_DATABASE_CH4_CollDetRegState_Point1Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_CollDetRegState_Point1Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_CollDetRegState_Point1Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @CollDetRegState_Point2X_ro
+#define ARS408_CAN_DATABASE_CH4_CollDetRegState_Point2X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_CollDetRegState_Point2X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_CollDetRegState_Point2X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegState_Point2Y_ro
+#define ARS408_CAN_DATABASE_CH4_CollDetRegState_Point2Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_CollDetRegState_Point2Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_CollDetRegState_Point2Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+  //  3 : "Warning deactivated"
+  //  2 : "Preliminary warning"
+  //  1 : "Object warning"
+  //  0 : "No warning"
+  // 
+  uint8_t CollDetRegState_WarningLevel : 2;   //      Bits= 2
+
+  uint8_t CollDetRegState_RegionID : 3;       //      Bits= 3
+
+  uint16_t CollDetRegState_Point1X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point1Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint8_t CollDetRegState_NofObjects;         //      Bits= 8
+
+#else
+
+  //  3 : "Warning deactivated"
+  //  2 : "Preliminary warning"
+  //  1 : "Object warning"
+  //  0 : "No warning"
+  // 
+  uint8_t CollDetRegState_WarningLevel;       //      Bits= 2
+
+  uint8_t CollDetRegState_RegionID;           //      Bits= 3
+
+  uint16_t CollDetRegState_Point1X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point1Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint8_t CollDetRegState_NofObjects;         //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+} CollDetRegionState_t;
+
+// Status information about Clusters
+// def @Cluster_0_Status CAN Message (1600 0x640)
+#define Cluster_0_Status_IDE (0U)
+#define Cluster_0_Status_DLC (5U)
+#define Cluster_0_Status_CANID (0x640)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+  // Number of valid Clusters in near range scan
+  uint8_t Cluster_NofClustersNear;           //      Bits= 8
+
+  // Number of valid Clusters in far range scan
+  uint8_t Cluster_NofClustersFar;            //      Bits= 8
+
+  // Measurement counter
+  uint16_t Cluster_MeasCounter;              //      Bits=16
+
+  // Cluster CAN Interface Version Number
+  uint8_t Cluster_InterfaceVersion : 4;      //      Bits= 4
+
+#else
+
+  // Number of valid Clusters in near range scan
+  uint8_t Cluster_NofClustersNear;           //      Bits= 8
+
+  // Number of valid Clusters in far range scan
+  uint8_t Cluster_NofClustersFar;            //      Bits= 8
+
+  // Measurement counter
+  uint16_t Cluster_MeasCounter;              //      Bits=16
+
+  // Cluster CAN Interface Version Number
+  uint8_t Cluster_InterfaceVersion;          //      Bits= 4
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+} Cluster_0_Status_t;
+
+// Status information about object
+// def @Obj_0_Status CAN Message (1610 0x64a)
+#define Obj_0_Status_IDE (0U)
+#define Obj_0_Status_DLC (4U)
+#define Obj_0_Status_CANID (0x64a)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+  // Number of Objects sent
+  uint8_t Obj_NofObjects;                    //      Bits= 8
+
+  // Measurement Counter
+  uint16_t Obj_MeasCounter;                  //      Bits=16
+
+  // Object CAN Interface Version Number
+  uint8_t Obj_InterfaceVersion : 4;          //      Bits= 4
+
+#else
+
+  // Number of Objects sent
+  uint8_t Obj_NofObjects;                    //      Bits= 8
+
+  // Measurement Counter
+  uint16_t Obj_MeasCounter;                  //      Bits=16
+
+  // Object CAN Interface Version Number
+  uint8_t Obj_InterfaceVersion;              //      Bits= 4
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+} Obj_0_Status_t;
+
+// General object information
+// def @Obj_1_General CAN Message (1611 0x64b)
+#define Obj_1_General_IDE (0U)
+#define Obj_1_General_DLC (8U)
+#define Obj_1_General_CANID (0x64b)
+// signal: @Obj_DistLong_ro
+#define ARS408_CAN_DATABASE_CH4_Obj_DistLong_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_Obj_DistLong_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_Obj_DistLong_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @Obj_DistLat_ro
+#define ARS408_CAN_DATABASE_CH4_Obj_DistLat_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_Obj_DistLat_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_Obj_DistLat_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @Obj_VrelLong_ro
+#define ARS408_CAN_DATABASE_CH4_Obj_VrelLong_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH4_Obj_VrelLong_ro_toS(x) ( (uint16_t) (((x) - (-128.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH4_Obj_VrelLong_ro_fromS(x) ( (((x) * (0.250000)) + (-128.000000)) )
+// signal: @Obj_VrelLat_ro
+#define ARS408_CAN_DATABASE_CH4_Obj_VrelLat_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH4_Obj_VrelLat_ro_toS(x) ( (uint16_t) (((x) - (-64.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH4_Obj_VrelLat_ro_fromS(x) ( (((x) * (0.250000)) + (-64.000000)) )
+// signal: @Obj_RCS_ro
+#define ARS408_CAN_DATABASE_CH4_Obj_RCS_ro_CovFactor (0.500000)
+#define ARS408_CAN_DATABASE_CH4_Obj_RCS_ro_toS(x) ( (uint8_t) (((x) - (-64.000000)) / (0.500000)) )
+#define ARS408_CAN_DATABASE_CH4_Obj_RCS_ro_fromS(x) ( (((x) * (0.500000)) + (-64.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_DistLong_ro;                  //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Obj_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t Obj_DistLat_ro;                   //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Obj_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLong_ro;                  //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLat_ro;                   //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // Object dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Obj_DynProp : 3;                   //      Bits= 3
+
+  uint8_t Obj_RCS_ro;                        //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Obj_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_DistLong_ro;                  //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Obj_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t Obj_DistLat_ro;                   //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Obj_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLong_ro;                  //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLat_ro;                   //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // Object dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Obj_DynProp;                       //      Bits= 3
+
+  uint8_t Obj_RCS_ro;                        //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Obj_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+} Obj_1_General_t;
+
+// Quality object information
+// def @Obj_2_Quality CAN Message (1612 0x64c)
+#define Obj_2_Quality_IDE (0U)
+#define Obj_2_Quality_DLC (7U)
+#define Obj_2_Quality_CANID (0x64c)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Object lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLat_rms : 5;               //      Bits= 5
+
+  // Object longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLong_rms : 5;              //      Bits= 5
+
+  // Object relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLat_rms : 5;               //      Bits= 5
+
+  // Object relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLong_rms : 5;              //      Bits= 5
+
+  // Object relative longitudinal acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLong_rms : 5;              //      Bits= 5
+
+  // Object orientation angle
+  //  31 : "Invalid"
+  //  30 : "<180.000 deg"
+  //  29 : "<126.881 deg"
+  //  28 : "<89.437 deg"
+  //  27 : "<63.044 deg"
+  //  26 : "<44.439 deg"
+  //  25 : "<31.325 deg"
+  //  24 : "<22.081 deg"
+  //  23 : "<15.565 deg"
+  //  22 : "<10.971 deg"
+  //  21 : "<7.734 deg"
+  //  20 : "<5.451 deg"
+  //  19 : "<3.843 deg"
+  //  18 : "<2.709 deg"
+  //  17 : "<1.909 deg"
+  //  16 : "<1.346 deg"
+  //  15 : "<0.949 deg"
+  //  14 : "<0.669 deg"
+  //  13 : "<0.471 deg"
+  //  12 : "<0.332 deg"
+  //  11 : "<0.234 deg"
+  //  10 : "<0.165 deg"
+  //  9 : "<0.116 deg"
+  //  8 : "<0.082 deg"
+  //  7 : "<0.058 deg"
+  //  6 : "<0.041 deg"
+  //  5 : "<0.029 deg"
+  //  4 : "<0.020 deg"
+  //  3 : "<0.014 deg"
+  //  2 : "<0.010 deg"
+  //  1 : "<0.007 deg"
+  //  0 : "<0.005 deg"
+  // 
+  uint8_t Obj_Orientation_rms : 5;           //      Bits= 5
+
+  // Object relative lateral acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLat_rms : 5;               //      Bits= 5
+
+  // Object measurement status
+  //  5 : "New from merge"
+  //  4 : "Deleted for merge"
+  //  3 : "Predicted"
+  //  2 : "Measured"
+  //  1 : "New"
+  //  0 : "Deleted"
+  // 
+  uint8_t Obj_MeasState : 3;                 //      Bits= 3
+
+  // Object probability of existence
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Obj_ProbOfExist : 3;               //      Bits= 3
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Object lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLat_rms;                   //      Bits= 5
+
+  // Object longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLong_rms;                  //      Bits= 5
+
+  // Object relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLat_rms;                   //      Bits= 5
+
+  // Object relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLong_rms;                  //      Bits= 5
+
+  // Object relative longitudinal acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLong_rms;                  //      Bits= 5
+
+  // Object orientation angle
+  //  31 : "Invalid"
+  //  30 : "<180.000 deg"
+  //  29 : "<126.881 deg"
+  //  28 : "<89.437 deg"
+  //  27 : "<63.044 deg"
+  //  26 : "<44.439 deg"
+  //  25 : "<31.325 deg"
+  //  24 : "<22.081 deg"
+  //  23 : "<15.565 deg"
+  //  22 : "<10.971 deg"
+  //  21 : "<7.734 deg"
+  //  20 : "<5.451 deg"
+  //  19 : "<3.843 deg"
+  //  18 : "<2.709 deg"
+  //  17 : "<1.909 deg"
+  //  16 : "<1.346 deg"
+  //  15 : "<0.949 deg"
+  //  14 : "<0.669 deg"
+  //  13 : "<0.471 deg"
+  //  12 : "<0.332 deg"
+  //  11 : "<0.234 deg"
+  //  10 : "<0.165 deg"
+  //  9 : "<0.116 deg"
+  //  8 : "<0.082 deg"
+  //  7 : "<0.058 deg"
+  //  6 : "<0.041 deg"
+  //  5 : "<0.029 deg"
+  //  4 : "<0.020 deg"
+  //  3 : "<0.014 deg"
+  //  2 : "<0.010 deg"
+  //  1 : "<0.007 deg"
+  //  0 : "<0.005 deg"
+  // 
+  uint8_t Obj_Orientation_rms;               //      Bits= 5
+
+  // Object relative lateral acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLat_rms;                   //      Bits= 5
+
+  // Object measurement status
+  //  5 : "New from merge"
+  //  4 : "Deleted for merge"
+  //  3 : "Predicted"
+  //  2 : "Measured"
+  //  1 : "New"
+  //  0 : "Deleted"
+  // 
+  uint8_t Obj_MeasState;                     //      Bits= 3
+
+  // Object probability of existence
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Obj_ProbOfExist;                   //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+} Obj_2_Quality_t;
+
+// Extended object information
+// def @Obj_3_Extended CAN Message (1613 0x64d)
+#define Obj_3_Extended_IDE (0U)
+#define Obj_3_Extended_DLC (8U)
+#define Obj_3_Extended_CANID (0x64d)
+// signal: @Obj_ArelLong_ro
+#define ARS408_CAN_DATABASE_CH4_Obj_ArelLong_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH4_Obj_ArelLong_ro_toS(x) ( (uint16_t) (((x) - (-10.000000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH4_Obj_ArelLong_ro_fromS(x) ( (((x) * (0.010000)) + (-10.000000)) )
+// signal: @Obj_ArelLat_ro
+#define ARS408_CAN_DATABASE_CH4_Obj_ArelLat_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH4_Obj_ArelLat_ro_toS(x) ( (uint16_t) (((x) - (-2.500000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH4_Obj_ArelLat_ro_fromS(x) ( (((x) * (0.010000)) + (-2.500000)) )
+// signal: @Obj_OrientationAngle_ro
+#define ARS408_CAN_DATABASE_CH4_Obj_OrientationAngle_ro_CovFactor (0.400000)
+#define ARS408_CAN_DATABASE_CH4_Obj_OrientationAngle_ro_toS(x) ( (uint16_t) (((x) - (-180.000000)) / (0.400000)) )
+#define ARS408_CAN_DATABASE_CH4_Obj_OrientationAngle_ro_fromS(x) ( (((x) * (0.400000)) + (-180.000000)) )
+// signal: @Obj_Length_ro
+#define ARS408_CAN_DATABASE_CH4_Obj_Length_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_Obj_Length_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_Obj_Length_ro_fromS(x) ( (((x) * (0.200000)) + (0.000000)) )
+// signal: @Obj_Width_ro
+#define ARS408_CAN_DATABASE_CH4_Obj_Width_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_Obj_Width_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_Obj_Width_ro_fromS(x) ( (((x) * (0.200000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_ArelLong_ro;                  //      Bits=11 Offset= -10.000000         Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t Obj_ArelLat_ro;                   //      Bits= 9 Offset= -2.500000          Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // Object classification
+  //  7 : "Description for the value '0x7'"
+  //  6 : "Wide"
+  //  5 : "Bicycle"
+  //  4 : "Motorcycle"
+  //  3 : "Pedestrian"
+  //  2 : "Truck"
+  //  1 : "Car"
+  //  0 : "Point"
+  // 
+  uint8_t Obj_Class : 3;                     //      Bits= 3
+
+  uint16_t Obj_OrientationAngle_ro;          //      Bits=10 Offset= -180.000000        Factor= 0.400000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Obj_OrientationAngle_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint8_t Obj_Length_ro;                     //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Obj_Length_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint8_t Obj_Width_ro;                      //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Obj_Width_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_ArelLong_ro;                  //      Bits=11 Offset= -10.000000         Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t Obj_ArelLat_ro;                   //      Bits= 9 Offset= -2.500000          Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // Object classification
+  //  7 : "Description for the value '0x7'"
+  //  6 : "Wide"
+  //  5 : "Bicycle"
+  //  4 : "Motorcycle"
+  //  3 : "Pedestrian"
+  //  2 : "Truck"
+  //  1 : "Car"
+  //  0 : "Point"
+  // 
+  uint8_t Obj_Class;                         //      Bits= 3
+
+  uint16_t Obj_OrientationAngle_ro;          //      Bits=10 Offset= -180.000000        Factor= 0.400000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Obj_OrientationAngle_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint8_t Obj_Length_ro;                     //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Obj_Length_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint8_t Obj_Width_ro;                      //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Obj_Width_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+} Obj_3_Extended_t;
+
+// Collision detection warning object information
+// def @Obj_4_Warning CAN Message (1614 0x64e)
+#define Obj_4_Warning_IDE (0U)
+#define Obj_4_Warning_DLC (4U)
+#define Obj_4_Warning_CANID (0x64e)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Region bit field with collision detection
+  uint8_t Obj_CollDetRegionBitfield;         //      Bits= 8
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Region bit field with collision detection
+  uint8_t Obj_CollDetRegionBitfield;         //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+} Obj_4_Warning_t;
+
+// Firmware version
+// def @VersionID CAN Message (1856 0x740)
+#define VersionID_IDE (0U)
+#define VersionID_DLC (4U)
+#define VersionID_CANID (0x740)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+  // Major Release Number
+  uint8_t Version_MajorRelease;              //      Bits= 8
+
+  // Minor Release Number
+  uint8_t Version_MinorRelease;              //      Bits= 8
+
+  // Patch Level
+  uint8_t Version_PatchLevel;                //      Bits= 8
+
+  // 
+  // 
+  //  1 : "Power Reduction is demanded"
+  //  0 : "International Version"
+  // 
+  uint8_t Version_CountryCode : 1;           //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Description for the value '0x1'"
+  //  0 : "Standard Range 196m-260m"
+  // 
+  uint8_t Version_ExtendedRange : 1;         //      Bits= 1
+
+#else
+
+  // Major Release Number
+  uint8_t Version_MajorRelease;              //      Bits= 8
+
+  // Minor Release Number
+  uint8_t Version_MinorRelease;              //      Bits= 8
+
+  // Patch Level
+  uint8_t Version_PatchLevel;                //      Bits= 8
+
+  // 
+  // 
+  //  1 : "Power Reduction is demanded"
+  //  0 : "International Version"
+  // 
+  uint8_t Version_CountryCode;               //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Description for the value '0x1'"
+  //  0 : "Standard Range 196m-260m"
+  // 
+  uint8_t Version_ExtendedRange;             //      Bits= 1
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+} VersionID_t;
+
+// General Cluster information
+// def @Cluster_1_General CAN Message (1857 0x741)
+#define Cluster_1_General_IDE (0U)
+#define Cluster_1_General_DLC (8U)
+#define Cluster_1_General_CANID (0x741)
+// signal: @Cluster_DistLong_ro
+#define ARS408_CAN_DATABASE_CH4_Cluster_DistLong_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_Cluster_DistLong_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_Cluster_DistLong_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @Cluster_DistLat_ro
+#define ARS408_CAN_DATABASE_CH4_Cluster_DistLat_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH4_Cluster_DistLat_ro_toS(x) ( (uint16_t) (((x) - (-102.300000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH4_Cluster_DistLat_ro_fromS(x) ( (((x) * (0.200000)) + (-102.300000)) )
+// signal: @Cluster_VrelLong_ro
+#define ARS408_CAN_DATABASE_CH4_Cluster_VrelLong_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH4_Cluster_VrelLong_ro_toS(x) ( (uint16_t) (((x) - (-128.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH4_Cluster_VrelLong_ro_fromS(x) ( (((x) * (0.250000)) + (-128.000000)) )
+// signal: @Cluster_VrelLat_ro
+#define ARS408_CAN_DATABASE_CH4_Cluster_VrelLat_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH4_Cluster_VrelLat_ro_toS(x) ( (uint16_t) (((x) - (-64.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH4_Cluster_VrelLat_ro_fromS(x) ( (((x) * (0.250000)) + (-64.000000)) )
+// signal: @Cluster_RCS_ro
+#define ARS408_CAN_DATABASE_CH4_Cluster_RCS_ro_CovFactor (0.500000)
+#define ARS408_CAN_DATABASE_CH4_Cluster_RCS_ro_toS(x) ( (uint8_t) (((x) - (-64.000000)) / (0.500000)) )
+#define ARS408_CAN_DATABASE_CH4_Cluster_RCS_ro_fromS(x) ( (((x) * (0.500000)) + (-64.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  uint16_t Cluster_DistLong_ro;              //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t Cluster_DistLat_ro;               //      Bits=10 Offset= -102.300000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLong_ro;              //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLat_ro;               //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // Cluster dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Cluster_DynProp : 3;               //      Bits= 3
+
+  uint8_t Cluster_RCS_ro;                    //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Cluster_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#else
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  uint16_t Cluster_DistLong_ro;              //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t Cluster_DistLat_ro;               //      Bits=10 Offset= -102.300000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLong_ro;              //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLat_ro;               //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+  // Cluster dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Cluster_DynProp;                   //      Bits= 3
+
+  uint8_t Cluster_RCS_ro;                    //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+  sigfloat_t Cluster_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH4_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+} Cluster_1_General_t;
+
+// Quality Cluster information
+// def @Cluster_2_Quality CAN Message (1858 0x742)
+#define Cluster_2_Quality_IDE (0U)
+#define Cluster_2_Quality_DLC (5U)
+#define Cluster_2_Quality_CANID (0x742)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  // Cluster lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLat_rms : 5;           //      Bits= 5 Unit:'m'
+
+  // Cluster longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLong_rms : 5;          //      Bits= 5 Unit:'m'
+
+  // Cluster relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLat_rms : 5;           //      Bits= 5 Unit:'m/s'
+
+  // Cluster relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLong_rms : 5;          //      Bits= 5 Unit:'m/s'
+
+  // Cluster false alarm probability
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Cluster_PdH0 : 3;                  //      Bits= 3
+
+  // Cluster Doppler ambiguity status
+  //  4 : "Stationary candidate"
+  //  3 : "Unambiguous"
+  //  2 : "Staggered ramp"
+  //  1 : "Ambiguous"
+  //  0 : "Invalid"
+  // 
+  uint8_t Cluster_AmbigState : 3;            //      Bits= 3
+
+  // Cluster invalid state
+  //  17 : "Valid suspicious angle"
+  //  16 : "Valid multi-target"
+  //  15 : "Valid near above 95 m"
+  //  14 : "Invalid harmonics "
+  //  13 : "reserved"
+  //  12 : "Valid artefact "
+  //  11 : "Valid but no local maximum"
+  //  10 : "Valid 50 deg artefact"
+  //  9 : "Valid child"
+  //  8 : "Valid with elevation"
+  //  7 : "Invalid outside field of view"
+  //  6 : "Invalid mirror"
+  //  5 : "reserved"
+  //  4 : "Valid with low RCS"
+  //  3 : "Invalid far not confirmed"
+  //  2 : "Invalid nearfield"
+  //  1 : "Invalid with too low RCS"
+  //  0 : "Valid"
+  // 
+  uint8_t Cluster_InvalidState : 5;          //      Bits= 5
+
+#else
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  // Cluster lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLat_rms;               //      Bits= 5 Unit:'m'
+
+  // Cluster longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLong_rms;              //      Bits= 5 Unit:'m'
+
+  // Cluster relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLat_rms;               //      Bits= 5 Unit:'m/s'
+
+  // Cluster relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLong_rms;              //      Bits= 5 Unit:'m/s'
+
+  // Cluster false alarm probability
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Cluster_PdH0;                      //      Bits= 3
+
+  // Cluster Doppler ambiguity status
+  //  4 : "Stationary candidate"
+  //  3 : "Unambiguous"
+  //  2 : "Staggered ramp"
+  //  1 : "Ambiguous"
+  //  0 : "Invalid"
+  // 
+  uint8_t Cluster_AmbigState;                //      Bits= 3
+
+  // Cluster invalid state
+  //  17 : "Valid suspicious angle"
+  //  16 : "Valid multi-target"
+  //  15 : "Valid near above 95 m"
+  //  14 : "Invalid harmonics "
+  //  13 : "reserved"
+  //  12 : "Valid artefact "
+  //  11 : "Valid but no local maximum"
+  //  10 : "Valid 50 deg artefact"
+  //  9 : "Valid child"
+  //  8 : "Valid with elevation"
+  //  7 : "Invalid outside field of view"
+  //  6 : "Invalid mirror"
+  //  5 : "reserved"
+  //  4 : "Valid with low RCS"
+  //  3 : "Invalid far not confirmed"
+  //  2 : "Invalid nearfield"
+  //  1 : "Invalid with too low RCS"
+  //  0 : "Valid"
+  // 
+  uint8_t Cluster_InvalidState;              //      Bits= 5
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH4_USE_DIAG_MONITORS
+
+} Cluster_2_Quality_t;
+
+// Function signatures
+
+uint32_t Unpack_CollDetRelayCtrl_ARS408_can_database_ch4(CollDetRelayCtrl_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch4(CollDetRelayCtrl_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch4(CollDetRelayCtrl_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_RadarConfiguration_ARS408_can_database_ch4(RadarConfiguration_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch4(RadarConfiguration_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch4(RadarConfiguration_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_RadarState_ARS408_can_database_ch4(RadarState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+uint32_t Pack_RadarState_ARS408_can_database_ch4(RadarState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_RadarState_ARS408_can_database_ch4(RadarState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_FilterCfg_ARS408_can_database_ch4(FilterCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+uint32_t Pack_FilterCfg_ARS408_can_database_ch4(FilterCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterCfg_ARS408_can_database_ch4(FilterCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Header_ARS408_can_database_ch4(FilterState_Header_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch4(FilterState_Header_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch4(FilterState_Header_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Cfg_ARS408_can_database_ch4(FilterState_Cfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch4(FilterState_Cfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch4(FilterState_Cfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_SpeedInformation_ARS408_can_database_ch4(SpeedInformation_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch4(SpeedInformation_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch4(SpeedInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_YawRateInformation_ARS408_can_database_ch4(YawRateInformation_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch4(YawRateInformation_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch4(YawRateInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetState_ARS408_can_database_ch4(CollDetState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+uint32_t Pack_CollDetState_ARS408_can_database_ch4(CollDetState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetState_ARS408_can_database_ch4(CollDetState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetCfg_ARS408_can_database_ch4(CollDetCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch4(CollDetCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch4(CollDetCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionCfg_ARS408_can_database_ch4(CollDetRegionCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch4(CollDetRegionCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch4(CollDetRegionCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionState_ARS408_can_database_ch4(CollDetRegionState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch4(CollDetRegionState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch4(CollDetRegionState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_0_Status_ARS408_can_database_ch4(Cluster_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch4(Cluster_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch4(Cluster_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_0_Status_ARS408_can_database_ch4(Obj_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch4(Obj_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch4(Obj_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_1_General_ARS408_can_database_ch4(Obj_1_General_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch4(Obj_1_General_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch4(Obj_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_2_Quality_ARS408_can_database_ch4(Obj_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch4(Obj_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch4(Obj_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_3_Extended_ARS408_can_database_ch4(Obj_3_Extended_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch4(Obj_3_Extended_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch4(Obj_3_Extended_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_4_Warning_ARS408_can_database_ch4(Obj_4_Warning_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch4(Obj_4_Warning_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch4(Obj_4_Warning_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_VersionID_ARS408_can_database_ch4(VersionID_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+uint32_t Pack_VersionID_ARS408_can_database_ch4(VersionID_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_VersionID_ARS408_can_database_ch4(VersionID_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_1_General_ARS408_can_database_ch4(Cluster_1_General_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch4(Cluster_1_General_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch4(Cluster_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_2_Quality_ARS408_can_database_ch4(Cluster_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch4(Cluster_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch4(Cluster_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH4_USE_CANSTRUCT
+
+#ifdef __cplusplus
+}
+#endif

+ 96 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch5-binutil.c

@@ -0,0 +1,96 @@
+#include "ars408_can_database_ch5-binutil.h"
+
+#ifdef __DEF_ARS408_CAN_DATABASE_CH5__
+
+ars408_can_database_ch5_rx_t ars408_can_database_ch5_rx;
+
+#endif // __DEF_ARS408_CAN_DATABASE_CH5__
+
+uint32_t ars408_can_database_ch5_Receive(ars408_can_database_ch5_rx_t* _m, const uint8_t* _d, uint32_t _id, uint8_t dlc_)
+{
+ uint32_t recid = 0;
+ if ((_id >= 0x8U) && (_id < 0x451U)) {
+  if ((_id >= 0x8U) && (_id < 0x254U)) {
+   if ((_id >= 0x8U) && (_id < 0x251U)) {
+    if (_id == 0x8U) {
+     recid = Unpack_CollDetRelayCtrl_ARS408_can_database_ch5(&(_m->CollDetRelayCtrl), _d, dlc_);
+    } else if (_id == 0x250U) {
+     recid = Unpack_RadarConfiguration_ARS408_can_database_ch5(&(_m->RadarConfiguration), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x251U) {
+     recid = Unpack_RadarState_ARS408_can_database_ch5(&(_m->RadarState), _d, dlc_);
+    } else {
+     if (_id == 0x252U) {
+      recid = Unpack_FilterCfg_ARS408_can_database_ch5(&(_m->FilterCfg), _d, dlc_);
+     } else if (_id == 0x253U) {
+      recid = Unpack_FilterState_Header_ARS408_can_database_ch5(&(_m->FilterState_Header), _d, dlc_);
+     }
+    }
+   }
+  } else {
+   if ((_id >= 0x254U) && (_id < 0x351U)) {
+    if (_id == 0x254U) {
+     recid = Unpack_FilterState_Cfg_ARS408_can_database_ch5(&(_m->FilterState_Cfg), _d, dlc_);
+    } else if (_id == 0x350U) {
+     recid = Unpack_SpeedInformation_ARS408_can_database_ch5(&(_m->SpeedInformation), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x351U) {
+     recid = Unpack_YawRateInformation_ARS408_can_database_ch5(&(_m->YawRateInformation), _d, dlc_);
+    } else {
+     if (_id == 0x408U) {
+      recid = Unpack_CollDetState_ARS408_can_database_ch5(&(_m->CollDetState), _d, dlc_);
+     } else if (_id == 0x450U) {
+      recid = Unpack_CollDetCfg_ARS408_can_database_ch5(&(_m->CollDetCfg), _d, dlc_);
+     }
+    }
+   }
+  }
+ } else {
+  if ((_id >= 0x451U) && (_id < 0x65CU)) {
+   if ((_id >= 0x451U) && (_id < 0x650U)) {
+    if (_id == 0x451U) {
+     recid = Unpack_CollDetRegionCfg_ARS408_can_database_ch5(&(_m->CollDetRegionCfg), _d, dlc_);
+    } else if (_id == 0x452U) {
+     recid = Unpack_CollDetRegionState_ARS408_can_database_ch5(&(_m->CollDetRegionState), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x650U) {
+     recid = Unpack_Cluster_0_Status_ARS408_can_database_ch5(&(_m->Cluster_0_Status), _d, dlc_);
+    } else {
+     if (_id == 0x65AU) {
+      recid = Unpack_Obj_0_Status_ARS408_can_database_ch5(&(_m->Obj_0_Status), _d, dlc_);
+     } else if (_id == 0x65BU) {
+      recid = Unpack_Obj_1_General_ARS408_can_database_ch5(&(_m->Obj_1_General), _d, dlc_);
+     }
+    }
+   }
+  } else {
+   if ((_id >= 0x65CU) && (_id < 0x750U)) {
+    if (_id == 0x65CU) {
+     recid = Unpack_Obj_2_Quality_ARS408_can_database_ch5(&(_m->Obj_2_Quality), _d, dlc_);
+    } else {
+     if (_id == 0x65DU) {
+      recid = Unpack_Obj_3_Extended_ARS408_can_database_ch5(&(_m->Obj_3_Extended), _d, dlc_);
+     } else if (_id == 0x65EU) {
+      recid = Unpack_Obj_4_Warning_ARS408_can_database_ch5(&(_m->Obj_4_Warning), _d, dlc_);
+     }
+    }
+   } else {
+    if (_id == 0x750U) {
+     recid = Unpack_VersionID_ARS408_can_database_ch5(&(_m->VersionID), _d, dlc_);
+    } else {
+     if (_id == 0x751U) {
+      recid = Unpack_Cluster_1_General_ARS408_can_database_ch5(&(_m->Cluster_1_General), _d, dlc_);
+     } else if (_id == 0x752U) {
+      recid = Unpack_Cluster_2_Quality_ARS408_can_database_ch5(&(_m->Cluster_2_Quality), _d, dlc_);
+     }
+    }
+   }
+  }
+ }
+
+ return recid;
+}
+

+ 53 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch5-binutil.h

@@ -0,0 +1,53 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "dbccodeconf.h"
+
+#include "ars408_can_database_ch5.h"
+
+// This version definition comes from main driver version and
+// can be compared in user code space for strict compatibility test
+#define VER_ARS408_CAN_DATABASE_CH5_MAJ (0U)
+#define VER_ARS408_CAN_DATABASE_CH5_MIN (0U)
+
+typedef struct
+{
+  CollDetRelayCtrl_t CollDetRelayCtrl;
+  RadarConfiguration_t RadarConfiguration;
+  RadarState_t RadarState;
+  FilterCfg_t FilterCfg;
+  FilterState_Header_t FilterState_Header;
+  FilterState_Cfg_t FilterState_Cfg;
+  SpeedInformation_t SpeedInformation;
+  YawRateInformation_t YawRateInformation;
+  CollDetState_t CollDetState;
+  CollDetCfg_t CollDetCfg;
+  CollDetRegionCfg_t CollDetRegionCfg;
+  CollDetRegionState_t CollDetRegionState;
+  Cluster_0_Status_t Cluster_0_Status;
+  Obj_0_Status_t Obj_0_Status;
+  Obj_1_General_t Obj_1_General;
+  Obj_2_Quality_t Obj_2_Quality;
+  Obj_3_Extended_t Obj_3_Extended;
+  Obj_4_Warning_t Obj_4_Warning;
+  VersionID_t VersionID;
+  Cluster_1_General_t Cluster_1_General;
+  Cluster_2_Quality_t Cluster_2_Quality;
+} ars408_can_database_ch5_rx_t;
+
+// There is no any TX mapped massage.
+
+uint32_t ars408_can_database_ch5_Receive(ars408_can_database_ch5_rx_t* m, const uint8_t* d, uint32_t msgid, uint8_t dlc);
+
+#ifdef __DEF_ARS408_CAN_DATABASE_CH5__
+
+extern ars408_can_database_ch5_rx_t ars408_can_database_ch5_rx;
+
+#endif // __DEF_ARS408_CAN_DATABASE_CH5__
+
+#ifdef __cplusplus
+}
+#endif

+ 109 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch5-config.h

@@ -0,0 +1,109 @@
+#pragma once
+
+/* include common dbccode configurations */
+#include "dbccodeconf.h"
+
+
+/* ------------------------------------------------------------------------- *
+  This define enables using CAN message structs with bit-fielded signals
+  layout.
+
+  Note(!): bit-feild was not tested properly. */
+
+/* #define ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL */
+
+
+/* ------------------------------------------------------------------------- *
+  This macro enables using CAN message descriptive struct packing functions
+  (by default signature of pack function intakes a few simple typed params
+  for loading data, len, etc). To compile you need to define the struct
+  __CoderDbcCanFrame_t__ which must have fields:
+
+    u32 MsgId (CAN Frame message ID)
+    u8 DLC (CAN Frame payload length field)
+    u8 Data[8] (CAN Frame payload data)
+    u8 IDE (CAN Frame Extended (1) / Standard (0) ID type)
+
+  This struct definition have to be placed (or be included) in dbccodeconf.h */
+
+/* #define ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT */
+
+
+/* ------------------------------------------------------------------------- *
+  All the signals which have values of factor != 1 or offset != 0
+  will be named in message struct with posfix '_ro'. Pack to payload
+  operations will be made on this signal value as well as unpack from payload.
+
+  USE_SIGFLOAT macro makes some difference:
+
+  1. All the '_ro' fields will have a pair field with '_phys' postfix.
+  If only offset != 0 is true then the type of '_phys' signal is the same
+  as '_ro' signal. In other case the type will be @sigfloat_t which
+  have to be defined in user dbccodeconf.h
+
+  2. In pack function '_ro' signal will be rewritten by '_phys' signal, which
+  requires from user to use ONLY '_phys' signal for packing frame
+
+  3. In unpack function '_phys' signal will be written by '_ro' signal.
+  User have to use '_phys' signal to read physical value. */
+
+/* #define ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT */
+
+
+/* ------------------------------------------------------------------------- *
+  Note(!) that the "canmonitorutil.h" must be accessed in include path:
+
+  This macro adds:
+
+  - monitor field @mon1 to message struct
+
+  - capture system tick in unpack function and save value to mon1 field
+  to provide to user better missing frame detection code. For this case
+  user must provide function declared in canmonitorutil.h - GetSysTick()
+  which may return 1ms uptime.
+
+  - calling function FMon_***  (from 'fmon' driver) inside unpack function
+  which is empty by default and have to be filled by user if
+  tests for DLC, rolling, checksum are necessary */
+
+/* #define ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS */
+
+
+/* ------------------------------------------------------------------------- *
+  When monitor using is enabled (ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS) and define below
+  uncommented, additional signal will be added to message struct. ***_expt:
+  expected rolling counter, to perform monitoring rolling counter sequence
+  automatically (result may be tested in dedicated Fmon_*** function) */
+
+/* #define ARS408_CAN_DATABASE_CH5_AUTO_ROLL */
+
+
+/* ------------------------------------------------------------------------- *
+  When monitor using is enabled (ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS) and define below
+  uncommented, frame checksum signal may be handled automatically.
+
+  The signal which may be marked as checksum signal must have substring
+  with next format:
+    <Checksum:XOR8:3>
+
+  where:
+
+  - "Checksum": constant marker word
+
+  - "XOR8": type of method, this text will be passed to GetFrameHash
+  (canmonitorutil.h) function as is, the best use case is to define 'enum
+  DbcCanCrcMethods' in canmonitorutil.h file with all possible
+  checksum algorithms (e.g. XOR8, XOR4 etc)
+
+  - "3": optional value that will be passed to GetFrameHash as integer value
+
+  Function GetFrameHash have to be implemented by user
+
+  In pack function checksum signal will be calculated automatically
+  and loaded to payload
+
+  In unpack function checksum signal is checked with calculated.
+  (result may be tested in dedicated Fmon_*** function).
+
+/* #define ARS408_CAN_DATABASE_CH5_AUTO_CSM */
+

+ 115 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch5-fmon.c

@@ -0,0 +1,115 @@
+#include "ars408_can_database_ch5-fmon.h"
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+/*
+Put the monitor function content here, keep in mind -
+next generation will completely clear all manually added code (!)
+*/
+
+void FMon_CollDetRelayCtrl_ars408_can_database_ch5(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_RadarConfiguration_ars408_can_database_ch5(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_RadarState_ars408_can_database_ch5(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterCfg_ars408_can_database_ch5(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterState_Header_ars408_can_database_ch5(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterState_Cfg_ars408_can_database_ch5(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_SpeedInformation_ars408_can_database_ch5(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_YawRateInformation_ars408_can_database_ch5(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetState_ars408_can_database_ch5(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetCfg_ars408_can_database_ch5(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetRegionCfg_ars408_can_database_ch5(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetRegionState_ars408_can_database_ch5(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_0_Status_ars408_can_database_ch5(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_0_Status_ars408_can_database_ch5(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_1_General_ars408_can_database_ch5(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_2_Quality_ars408_can_database_ch5(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_3_Extended_ars408_can_database_ch5(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_4_Warning_ars408_can_database_ch5(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_VersionID_ars408_can_database_ch5(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_1_General_ars408_can_database_ch5(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_2_Quality_ars408_can_database_ch5(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS

+ 49 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch5-fmon.h

@@ -0,0 +1,49 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// DBC file version
+#define VER_ARS408_CAN_DATABASE_CH5_MAJ_FMON (0U)
+#define VER_ARS408_CAN_DATABASE_CH5_MIN_FMON (0U)
+
+#include "ars408_can_database_ch5-config.h"
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+#include "canmonitorutil.h"
+/*
+This file contains the prototypes of all the functions that will be called
+from each Unpack_*name* function to detect DBC related errors
+It is the user responsibility to defined these functions in the
+separated .c file. If it won't be done the linkage error will happen
+*/
+
+void FMon_CollDetRelayCtrl_ars408_can_database_ch5(FrameMonitor_t* _mon);
+void FMon_RadarConfiguration_ars408_can_database_ch5(FrameMonitor_t* _mon);
+void FMon_RadarState_ars408_can_database_ch5(FrameMonitor_t* _mon);
+void FMon_FilterCfg_ars408_can_database_ch5(FrameMonitor_t* _mon);
+void FMon_FilterState_Header_ars408_can_database_ch5(FrameMonitor_t* _mon);
+void FMon_FilterState_Cfg_ars408_can_database_ch5(FrameMonitor_t* _mon);
+void FMon_SpeedInformation_ars408_can_database_ch5(FrameMonitor_t* _mon);
+void FMon_YawRateInformation_ars408_can_database_ch5(FrameMonitor_t* _mon);
+void FMon_CollDetState_ars408_can_database_ch5(FrameMonitor_t* _mon);
+void FMon_CollDetCfg_ars408_can_database_ch5(FrameMonitor_t* _mon);
+void FMon_CollDetRegionCfg_ars408_can_database_ch5(FrameMonitor_t* _mon);
+void FMon_CollDetRegionState_ars408_can_database_ch5(FrameMonitor_t* _mon);
+void FMon_Cluster_0_Status_ars408_can_database_ch5(FrameMonitor_t* _mon);
+void FMon_Obj_0_Status_ars408_can_database_ch5(FrameMonitor_t* _mon);
+void FMon_Obj_1_General_ars408_can_database_ch5(FrameMonitor_t* _mon);
+void FMon_Obj_2_Quality_ars408_can_database_ch5(FrameMonitor_t* _mon);
+void FMon_Obj_3_Extended_ars408_can_database_ch5(FrameMonitor_t* _mon);
+void FMon_Obj_4_Warning_ars408_can_database_ch5(FrameMonitor_t* _mon);
+void FMon_VersionID_ars408_can_database_ch5(FrameMonitor_t* _mon);
+void FMon_Cluster_1_General_ars408_can_database_ch5(FrameMonitor_t* _mon);
+void FMon_Cluster_2_Quality_ars408_can_database_ch5(FrameMonitor_t* _mon);
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+#ifdef __cplusplus
+}
+#endif

+ 1841 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch5.c

@@ -0,0 +1,1841 @@
+#include "ars408_can_database_ch5.h"
+
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+// Function prototypes to be called each time CAN frame is unpacked
+// FMon function may detect RC, CRC or DLC violation 
+#include "ars408_can_database_ch5-fmon.h"
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+
+uint32_t Unpack_CollDetRelayCtrl_ARS408_can_database_ch5(CollDetRelayCtrl_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRelayCtrl_Param = (_d[0] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRelayCtrl_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRelayCtrl_ars408_can_database_ch5(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+ return CollDetRelayCtrl_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch5(CollDetRelayCtrl_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRelayCtrl_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->CollDetRelayCtrl_Param & (0xFFU));
+
+  cframe->MsgId = CollDetRelayCtrl_CANID;
+  cframe->DLC = CollDetRelayCtrl_DLC;
+  cframe->IDE = CollDetRelayCtrl_IDE;
+  return CollDetRelayCtrl_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch5(CollDetRelayCtrl_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRelayCtrl_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->CollDetRelayCtrl_Param & (0xFFU));
+
+  *_len = CollDetRelayCtrl_DLC;
+  *_ide = CollDetRelayCtrl_IDE;
+  return CollDetRelayCtrl_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_RadarConfiguration_ARS408_can_database_ch5(RadarConfiguration_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarCfg_MaxDistance_valid = (_d[0] & (0x01U));
+  _m->RadarCfg_SensorID_valid = ((_d[0] >> 1) & (0x01U));
+  _m->RadarCfg_RadarPower_valid = ((_d[0] >> 2) & (0x01U));
+  _m->RadarCfg_OutputType_valid = ((_d[0] >> 3) & (0x01U));
+  _m->RadarCfg_SendQuality_valid = ((_d[0] >> 4) & (0x01U));
+  _m->RadarCfg_SendExtInfo_valid = ((_d[0] >> 5) & (0x01U));
+  _m->RadarCfg_SortIndex_valid = ((_d[0] >> 6) & (0x01U));
+  _m->RadarCfg_StoreInNVM_valid = ((_d[0] >> 7) & (0x01U));
+  _m->RadarCfg_MaxDistance_ro = ((_d[1] & (0xFFU)) << 2) | ((_d[2] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_phys = ARS408_CAN_DATABASE_CH5_RadarCfg_MaxDistance_ro_fromS(_m->RadarCfg_MaxDistance_ro);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->RadarCfg_SensorID = (_d[4] & (0x07U));
+  _m->RadarCfg_OutputType = ((_d[4] >> 3) & (0x03U));
+  _m->RadarCfg_RadarPower = ((_d[4] >> 5) & (0x07U));
+  _m->RadarCfg_CtrlRelay_valid = (_d[5] & (0x01U));
+  _m->RadarCfg_CtrlRelay = ((_d[5] >> 1) & (0x01U));
+  _m->RadarCfg_SendQuality = ((_d[5] >> 2) & (0x01U));
+  _m->RadarCfg_SendExtInfo = ((_d[5] >> 3) & (0x01U));
+  _m->RadarCfg_SortIndex = ((_d[5] >> 4) & (0x07U));
+  _m->RadarCfg_StoreInNVM = ((_d[5] >> 7) & (0x01U));
+  _m->RadarCfg_RCS_Threshold_Valid = (_d[6] & (0x01U));
+  _m->RadarCfg_RCS_Threshold = ((_d[6] >> 1) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < RadarConfiguration_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_RadarConfiguration_ars408_can_database_ch5(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+ return RadarConfiguration_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch5(RadarConfiguration_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < RadarConfiguration_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_ro = ARS408_CAN_DATABASE_CH5_RadarCfg_MaxDistance_ro_toS(_m->RadarCfg_MaxDistance_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->RadarCfg_MaxDistance_valid & (0x01U)) | ((_m->RadarCfg_SensorID_valid & (0x01U)) << 1) | ((_m->RadarCfg_RadarPower_valid & (0x01U)) << 2) | ((_m->RadarCfg_OutputType_valid & (0x01U)) << 3) | ((_m->RadarCfg_SendQuality_valid & (0x01U)) << 4) | ((_m->RadarCfg_SendExtInfo_valid & (0x01U)) << 5) | ((_m->RadarCfg_SortIndex_valid & (0x01U)) << 6) | ((_m->RadarCfg_StoreInNVM_valid & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->RadarCfg_MaxDistance_ro >> 2) & (0xFFU));
+  cframe->Data[2] |= ((_m->RadarCfg_MaxDistance_ro & (0x03U)) << 6);
+  cframe->Data[4] |= (_m->RadarCfg_SensorID & (0x07U)) | ((_m->RadarCfg_OutputType & (0x03U)) << 3) | ((_m->RadarCfg_RadarPower & (0x07U)) << 5);
+  cframe->Data[5] |= (_m->RadarCfg_CtrlRelay_valid & (0x01U)) | ((_m->RadarCfg_CtrlRelay & (0x01U)) << 1) | ((_m->RadarCfg_SendQuality & (0x01U)) << 2) | ((_m->RadarCfg_SendExtInfo & (0x01U)) << 3) | ((_m->RadarCfg_SortIndex & (0x07U)) << 4) | ((_m->RadarCfg_StoreInNVM & (0x01U)) << 7);
+  cframe->Data[6] |= (_m->RadarCfg_RCS_Threshold_Valid & (0x01U)) | ((_m->RadarCfg_RCS_Threshold & (0x07U)) << 1);
+
+  cframe->MsgId = RadarConfiguration_CANID;
+  cframe->DLC = RadarConfiguration_DLC;
+  cframe->IDE = RadarConfiguration_IDE;
+  return RadarConfiguration_CANID;
+}
+
+#else
+
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch5(RadarConfiguration_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < RadarConfiguration_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_ro = ARS408_CAN_DATABASE_CH5_RadarCfg_MaxDistance_ro_toS(_m->RadarCfg_MaxDistance_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _d[0] |= (_m->RadarCfg_MaxDistance_valid & (0x01U)) | ((_m->RadarCfg_SensorID_valid & (0x01U)) << 1) | ((_m->RadarCfg_RadarPower_valid & (0x01U)) << 2) | ((_m->RadarCfg_OutputType_valid & (0x01U)) << 3) | ((_m->RadarCfg_SendQuality_valid & (0x01U)) << 4) | ((_m->RadarCfg_SendExtInfo_valid & (0x01U)) << 5) | ((_m->RadarCfg_SortIndex_valid & (0x01U)) << 6) | ((_m->RadarCfg_StoreInNVM_valid & (0x01U)) << 7);
+  _d[1] |= ((_m->RadarCfg_MaxDistance_ro >> 2) & (0xFFU));
+  _d[2] |= ((_m->RadarCfg_MaxDistance_ro & (0x03U)) << 6);
+  _d[4] |= (_m->RadarCfg_SensorID & (0x07U)) | ((_m->RadarCfg_OutputType & (0x03U)) << 3) | ((_m->RadarCfg_RadarPower & (0x07U)) << 5);
+  _d[5] |= (_m->RadarCfg_CtrlRelay_valid & (0x01U)) | ((_m->RadarCfg_CtrlRelay & (0x01U)) << 1) | ((_m->RadarCfg_SendQuality & (0x01U)) << 2) | ((_m->RadarCfg_SendExtInfo & (0x01U)) << 3) | ((_m->RadarCfg_SortIndex & (0x07U)) << 4) | ((_m->RadarCfg_StoreInNVM & (0x01U)) << 7);
+  _d[6] |= (_m->RadarCfg_RCS_Threshold_Valid & (0x01U)) | ((_m->RadarCfg_RCS_Threshold & (0x07U)) << 1);
+
+  *_len = RadarConfiguration_DLC;
+  *_ide = RadarConfiguration_IDE;
+  return RadarConfiguration_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_RadarState_ARS408_can_database_ch5(RadarState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarState_NVMReadStatus = ((_d[0] >> 6) & (0x01U));
+  _m->RadarState_NVMwriteStatus = ((_d[0] >> 7) & (0x01U));
+  _m->RadarState_MaxDistanceCfg_ro = ((_d[1] & (0xFFU)) << 2) | ((_d[2] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_phys = ARS408_CAN_DATABASE_CH5_RadarState_MaxDistanceCfg_ro_fromS(_m->RadarState_MaxDistanceCfg_ro);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->RadarState_Voltage_Error = ((_d[2] >> 1) & (0x01U));
+  _m->RadarState_Temporary_Error = ((_d[2] >> 2) & (0x01U));
+  _m->RadarState_Temperature_Error = ((_d[2] >> 3) & (0x01U));
+  _m->RadarState_Interference = ((_d[2] >> 4) & (0x01U));
+  _m->RadarState_Persistent_Error = ((_d[2] >> 5) & (0x01U));
+  _m->RadarState_RadarPowerCfg = ((_d[3] & (0x03U)) << 1) | ((_d[4] >> 7) & (0x01U));
+  _m->RadarState_SensorID = (_d[4] & (0x07U));
+  _m->RadarState_SortIndex = ((_d[4] >> 4) & (0x07U));
+  _m->RadarState_CtrlRelayCfg = ((_d[5] >> 1) & (0x01U));
+  _m->RadarState_OutputTypeCfg = ((_d[5] >> 2) & (0x03U));
+  _m->RadarState_SendQualityCfg = ((_d[5] >> 4) & (0x01U));
+  _m->RadarState_SendExtInfoCfg = ((_d[5] >> 5) & (0x01U));
+  _m->RadarState_MotionRxState = ((_d[5] >> 6) & (0x03U));
+  _m->RadarState_RCS_Threshold = ((_d[7] >> 2) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < RadarState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_RadarState_ars408_can_database_ch5(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+ return RadarState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Pack_RadarState_ARS408_can_database_ch5(RadarState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < RadarState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_ro = ARS408_CAN_DATABASE_CH5_RadarState_MaxDistanceCfg_ro_toS(_m->RadarState_MaxDistanceCfg_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarState_NVMReadStatus & (0x01U)) << 6) | ((_m->RadarState_NVMwriteStatus & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->RadarState_MaxDistanceCfg_ro >> 2) & (0xFFU));
+  cframe->Data[2] |= ((_m->RadarState_MaxDistanceCfg_ro & (0x03U)) << 6) | ((_m->RadarState_Voltage_Error & (0x01U)) << 1) | ((_m->RadarState_Temporary_Error & (0x01U)) << 2) | ((_m->RadarState_Temperature_Error & (0x01U)) << 3) | ((_m->RadarState_Interference & (0x01U)) << 4) | ((_m->RadarState_Persistent_Error & (0x01U)) << 5);
+  cframe->Data[3] |= ((_m->RadarState_RadarPowerCfg >> 1) & (0x03U));
+  cframe->Data[4] |= ((_m->RadarState_RadarPowerCfg & (0x01U)) << 7) | (_m->RadarState_SensorID & (0x07U)) | ((_m->RadarState_SortIndex & (0x07U)) << 4);
+  cframe->Data[5] |= ((_m->RadarState_CtrlRelayCfg & (0x01U)) << 1) | ((_m->RadarState_OutputTypeCfg & (0x03U)) << 2) | ((_m->RadarState_SendQualityCfg & (0x01U)) << 4) | ((_m->RadarState_SendExtInfoCfg & (0x01U)) << 5) | ((_m->RadarState_MotionRxState & (0x03U)) << 6);
+  cframe->Data[7] |= ((_m->RadarState_RCS_Threshold & (0x07U)) << 2);
+
+  cframe->MsgId = RadarState_CANID;
+  cframe->DLC = RadarState_DLC;
+  cframe->IDE = RadarState_IDE;
+  return RadarState_CANID;
+}
+
+#else
+
+uint32_t Pack_RadarState_ARS408_can_database_ch5(RadarState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < RadarState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_ro = ARS408_CAN_DATABASE_CH5_RadarState_MaxDistanceCfg_ro_toS(_m->RadarState_MaxDistanceCfg_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarState_NVMReadStatus & (0x01U)) << 6) | ((_m->RadarState_NVMwriteStatus & (0x01U)) << 7);
+  _d[1] |= ((_m->RadarState_MaxDistanceCfg_ro >> 2) & (0xFFU));
+  _d[2] |= ((_m->RadarState_MaxDistanceCfg_ro & (0x03U)) << 6) | ((_m->RadarState_Voltage_Error & (0x01U)) << 1) | ((_m->RadarState_Temporary_Error & (0x01U)) << 2) | ((_m->RadarState_Temperature_Error & (0x01U)) << 3) | ((_m->RadarState_Interference & (0x01U)) << 4) | ((_m->RadarState_Persistent_Error & (0x01U)) << 5);
+  _d[3] |= ((_m->RadarState_RadarPowerCfg >> 1) & (0x03U));
+  _d[4] |= ((_m->RadarState_RadarPowerCfg & (0x01U)) << 7) | (_m->RadarState_SensorID & (0x07U)) | ((_m->RadarState_SortIndex & (0x07U)) << 4);
+  _d[5] |= ((_m->RadarState_CtrlRelayCfg & (0x01U)) << 1) | ((_m->RadarState_OutputTypeCfg & (0x03U)) << 2) | ((_m->RadarState_SendQualityCfg & (0x01U)) << 4) | ((_m->RadarState_SendExtInfoCfg & (0x01U)) << 5) | ((_m->RadarState_MotionRxState & (0x03U)) << 6);
+  _d[7] |= ((_m->RadarState_RCS_Threshold & (0x07U)) << 2);
+
+  *_len = RadarState_DLC;
+  *_ide = RadarState_IDE;
+  return RadarState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_FilterCfg_ARS408_can_database_ch5(FilterCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterCfg_Valid = ((_d[0] >> 1) & (0x01U));
+  _m->FilterCfg_Active = ((_d[0] >> 2) & (0x01U));
+  _m->FilterCfg_Index = ((_d[0] >> 3) & (0x0FU));
+  _m->FilterCfg_Type = ((_d[0] >> 7) & (0x01U));
+  _m->FilterCfg_Min_NofObj = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterCfg_Min_VrelOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VrelOncome_ro_fromS(_m->FilterCfg_Min_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VrelDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VrelDepart_ro_fromS(_m->FilterCfg_Min_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Size_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Min_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Size_ro_fromS(_m->FilterCfg_Min_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_RCS_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Min_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Min_RCS_ro_fromS(_m->FilterCfg_Min_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_ProbExists = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterCfg_Min_Lifetime_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Min_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Lifetime_ro_fromS(_m->FilterCfg_Min_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Azimuth_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Min_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Azimuth_ro_fromS(_m->FilterCfg_Min_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Distance_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Min_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Distance_ro_fromS(_m->FilterCfg_Min_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VXDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Min_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VXDepart_ro_fromS(_m->FilterCfg_Min_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VXOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Min_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VXOncome_ro_fromS(_m->FilterCfg_Min_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VYLeftRight_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Min_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VYLeftRight_ro_fromS(_m->FilterCfg_Min_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VYRightLeft_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Min_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VYRightLeft_ro_fromS(_m->FilterCfg_Min_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Y_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Min_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Y_ro_fromS(_m->FilterCfg_Min_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_X_ro = ((_d[1] & (0x1FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Min_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Min_X_ro_fromS(_m->FilterCfg_Min_X_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_NofObj = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterCfg_Max_Lifetime_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Max_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Lifetime_ro_fromS(_m->FilterCfg_Max_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Distance_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Max_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Distance_ro_fromS(_m->FilterCfg_Max_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Azimuth_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Max_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Azimuth_ro_fromS(_m->FilterCfg_Max_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_ProbExists = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterCfg_Max_RCS_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Max_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Max_RCS_ro_fromS(_m->FilterCfg_Max_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Size_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Max_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Size_ro_fromS(_m->FilterCfg_Max_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VrelDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Max_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VrelDepart_ro_fromS(_m->FilterCfg_Max_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VrelOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Max_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VrelOncome_ro_fromS(_m->FilterCfg_Max_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VXDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Max_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VXDepart_ro_fromS(_m->FilterCfg_Max_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VYLeftRight_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Max_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VYLeftRight_ro_fromS(_m->FilterCfg_Max_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VXOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Max_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VXOncome_ro_fromS(_m->FilterCfg_Max_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VYRightLeft_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Max_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VYRightLeft_ro_fromS(_m->FilterCfg_Max_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Y_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Max_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Y_ro_fromS(_m->FilterCfg_Max_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_X_ro = ((_d[3] & (0x1FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Max_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterCfg_Max_X_ro_fromS(_m->FilterCfg_Max_X_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterCfg_ars408_can_database_ch5(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+ return FilterCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Pack_FilterCfg_ARS408_can_database_ch5(FilterCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VrelOncome_ro_toS(_m->FilterCfg_Min_VrelOncome_phys);
+  _m->FilterCfg_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VrelDepart_ro_toS(_m->FilterCfg_Min_VrelDepart_phys);
+  _m->FilterCfg_Min_Size_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Size_ro_toS(_m->FilterCfg_Min_Size_phys);
+  _m->FilterCfg_Min_RCS_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_RCS_ro_toS(_m->FilterCfg_Min_RCS_phys);
+  _m->FilterCfg_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Lifetime_ro_toS(_m->FilterCfg_Min_Lifetime_phys);
+  _m->FilterCfg_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Azimuth_ro_toS(_m->FilterCfg_Min_Azimuth_phys);
+  _m->FilterCfg_Min_Distance_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Distance_ro_toS(_m->FilterCfg_Min_Distance_phys);
+  _m->FilterCfg_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VXDepart_ro_toS(_m->FilterCfg_Min_VXDepart_phys);
+  _m->FilterCfg_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VXOncome_ro_toS(_m->FilterCfg_Min_VXOncome_phys);
+  _m->FilterCfg_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VYLeftRight_ro_toS(_m->FilterCfg_Min_VYLeftRight_phys);
+  _m->FilterCfg_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VYRightLeft_ro_toS(_m->FilterCfg_Min_VYRightLeft_phys);
+  _m->FilterCfg_Min_Y_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Y_ro_toS(_m->FilterCfg_Min_Y_phys);
+  _m->FilterCfg_Min_X_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_X_ro_toS(_m->FilterCfg_Min_X_phys);
+  _m->FilterCfg_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Lifetime_ro_toS(_m->FilterCfg_Max_Lifetime_phys);
+  _m->FilterCfg_Max_Distance_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Distance_ro_toS(_m->FilterCfg_Max_Distance_phys);
+  _m->FilterCfg_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Azimuth_ro_toS(_m->FilterCfg_Max_Azimuth_phys);
+  _m->FilterCfg_Max_RCS_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_RCS_ro_toS(_m->FilterCfg_Max_RCS_phys);
+  _m->FilterCfg_Max_Size_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Size_ro_toS(_m->FilterCfg_Max_Size_phys);
+  _m->FilterCfg_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VrelDepart_ro_toS(_m->FilterCfg_Max_VrelDepart_phys);
+  _m->FilterCfg_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VrelOncome_ro_toS(_m->FilterCfg_Max_VrelOncome_phys);
+  _m->FilterCfg_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VXDepart_ro_toS(_m->FilterCfg_Max_VXDepart_phys);
+  _m->FilterCfg_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VYLeftRight_ro_toS(_m->FilterCfg_Max_VYLeftRight_phys);
+  _m->FilterCfg_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VXOncome_ro_toS(_m->FilterCfg_Max_VXOncome_phys);
+  _m->FilterCfg_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VYRightLeft_ro_toS(_m->FilterCfg_Max_VYRightLeft_phys);
+  _m->FilterCfg_Max_Y_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Y_ro_toS(_m->FilterCfg_Max_Y_phys);
+  _m->FilterCfg_Max_X_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_X_ro_toS(_m->FilterCfg_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->FilterCfg_Valid & (0x01U)) << 1) | ((_m->FilterCfg_Active & (0x01U)) << 2) | ((_m->FilterCfg_Index & (0x0FU)) << 3) | ((_m->FilterCfg_Type & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->FilterCfg_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_X_ro >> 8) & (0x1FU));
+  cframe->Data[2] |= (_m->FilterCfg_Min_NofObj & (0xFFU)) | (_m->FilterCfg_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_Size_ro & (0xFFU)) | (_m->FilterCfg_Min_RCS_ro & (0xFFU)) | (_m->FilterCfg_Min_ProbExists & (0xFFU)) | (_m->FilterCfg_Min_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Min_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Min_Distance_ro & (0xFFU)) | (_m->FilterCfg_Min_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Min_Y_ro & (0xFFU)) | (_m->FilterCfg_Min_X_ro & (0xFFU));
+  cframe->Data[3] |= ((_m->FilterCfg_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_X_ro >> 8) & (0x1FU));
+  cframe->Data[4] |= (_m->FilterCfg_Max_NofObj & (0xFFU)) | (_m->FilterCfg_Max_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Max_Distance_ro & (0xFFU)) | (_m->FilterCfg_Max_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Max_ProbExists & (0xFFU)) | (_m->FilterCfg_Max_RCS_ro & (0xFFU)) | (_m->FilterCfg_Max_Size_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Max_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Max_Y_ro & (0xFFU)) | (_m->FilterCfg_Max_X_ro & (0xFFU));
+
+  cframe->MsgId = FilterCfg_CANID;
+  cframe->DLC = FilterCfg_DLC;
+  cframe->IDE = FilterCfg_IDE;
+  return FilterCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterCfg_ARS408_can_database_ch5(FilterCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VrelOncome_ro_toS(_m->FilterCfg_Min_VrelOncome_phys);
+  _m->FilterCfg_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VrelDepart_ro_toS(_m->FilterCfg_Min_VrelDepart_phys);
+  _m->FilterCfg_Min_Size_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Size_ro_toS(_m->FilterCfg_Min_Size_phys);
+  _m->FilterCfg_Min_RCS_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_RCS_ro_toS(_m->FilterCfg_Min_RCS_phys);
+  _m->FilterCfg_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Lifetime_ro_toS(_m->FilterCfg_Min_Lifetime_phys);
+  _m->FilterCfg_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Azimuth_ro_toS(_m->FilterCfg_Min_Azimuth_phys);
+  _m->FilterCfg_Min_Distance_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Distance_ro_toS(_m->FilterCfg_Min_Distance_phys);
+  _m->FilterCfg_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VXDepart_ro_toS(_m->FilterCfg_Min_VXDepart_phys);
+  _m->FilterCfg_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VXOncome_ro_toS(_m->FilterCfg_Min_VXOncome_phys);
+  _m->FilterCfg_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VYLeftRight_ro_toS(_m->FilterCfg_Min_VYLeftRight_phys);
+  _m->FilterCfg_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VYRightLeft_ro_toS(_m->FilterCfg_Min_VYRightLeft_phys);
+  _m->FilterCfg_Min_Y_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Y_ro_toS(_m->FilterCfg_Min_Y_phys);
+  _m->FilterCfg_Min_X_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Min_X_ro_toS(_m->FilterCfg_Min_X_phys);
+  _m->FilterCfg_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Lifetime_ro_toS(_m->FilterCfg_Max_Lifetime_phys);
+  _m->FilterCfg_Max_Distance_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Distance_ro_toS(_m->FilterCfg_Max_Distance_phys);
+  _m->FilterCfg_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Azimuth_ro_toS(_m->FilterCfg_Max_Azimuth_phys);
+  _m->FilterCfg_Max_RCS_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_RCS_ro_toS(_m->FilterCfg_Max_RCS_phys);
+  _m->FilterCfg_Max_Size_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Size_ro_toS(_m->FilterCfg_Max_Size_phys);
+  _m->FilterCfg_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VrelDepart_ro_toS(_m->FilterCfg_Max_VrelDepart_phys);
+  _m->FilterCfg_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VrelOncome_ro_toS(_m->FilterCfg_Max_VrelOncome_phys);
+  _m->FilterCfg_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VXDepart_ro_toS(_m->FilterCfg_Max_VXDepart_phys);
+  _m->FilterCfg_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VYLeftRight_ro_toS(_m->FilterCfg_Max_VYLeftRight_phys);
+  _m->FilterCfg_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VXOncome_ro_toS(_m->FilterCfg_Max_VXOncome_phys);
+  _m->FilterCfg_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VYRightLeft_ro_toS(_m->FilterCfg_Max_VYRightLeft_phys);
+  _m->FilterCfg_Max_Y_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Y_ro_toS(_m->FilterCfg_Max_Y_phys);
+  _m->FilterCfg_Max_X_ro = ARS408_CAN_DATABASE_CH5_FilterCfg_Max_X_ro_toS(_m->FilterCfg_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _d[0] |= ((_m->FilterCfg_Valid & (0x01U)) << 1) | ((_m->FilterCfg_Active & (0x01U)) << 2) | ((_m->FilterCfg_Index & (0x0FU)) << 3) | ((_m->FilterCfg_Type & (0x01U)) << 7);
+  _d[1] |= ((_m->FilterCfg_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_X_ro >> 8) & (0x1FU));
+  _d[2] |= (_m->FilterCfg_Min_NofObj & (0xFFU)) | (_m->FilterCfg_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_Size_ro & (0xFFU)) | (_m->FilterCfg_Min_RCS_ro & (0xFFU)) | (_m->FilterCfg_Min_ProbExists & (0xFFU)) | (_m->FilterCfg_Min_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Min_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Min_Distance_ro & (0xFFU)) | (_m->FilterCfg_Min_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Min_Y_ro & (0xFFU)) | (_m->FilterCfg_Min_X_ro & (0xFFU));
+  _d[3] |= ((_m->FilterCfg_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_X_ro >> 8) & (0x1FU));
+  _d[4] |= (_m->FilterCfg_Max_NofObj & (0xFFU)) | (_m->FilterCfg_Max_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Max_Distance_ro & (0xFFU)) | (_m->FilterCfg_Max_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Max_ProbExists & (0xFFU)) | (_m->FilterCfg_Max_RCS_ro & (0xFFU)) | (_m->FilterCfg_Max_Size_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Max_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Max_Y_ro & (0xFFU)) | (_m->FilterCfg_Max_X_ro & (0xFFU));
+
+  *_len = FilterCfg_DLC;
+  *_ide = FilterCfg_IDE;
+  return FilterCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Header_ARS408_can_database_ch5(FilterState_Header_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterState_NofClusterFilterCfg = ((_d[0] >> 3) & (0x1FU));
+  _m->FilterState_NofObjectFilterCfg = ((_d[1] >> 3) & (0x1FU));
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterState_Header_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterState_Header_ars408_can_database_ch5(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+ return FilterState_Header_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch5(FilterState_Header_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Header_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= ((_m->FilterState_NofClusterFilterCfg & (0x1FU)) << 3);
+  cframe->Data[1] |= ((_m->FilterState_NofObjectFilterCfg & (0x1FU)) << 3);
+
+  cframe->MsgId = FilterState_Header_CANID;
+  cframe->DLC = FilterState_Header_DLC;
+  cframe->IDE = FilterState_Header_IDE;
+  return FilterState_Header_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch5(FilterState_Header_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Header_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= ((_m->FilterState_NofClusterFilterCfg & (0x1FU)) << 3);
+  _d[1] |= ((_m->FilterState_NofObjectFilterCfg & (0x1FU)) << 3);
+
+  *_len = FilterState_Header_DLC;
+  *_ide = FilterState_Header_IDE;
+  return FilterState_Header_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Cfg_ARS408_can_database_ch5(FilterState_Cfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterState_Active = ((_d[0] >> 2) & (0x01U));
+  _m->FilterState_Index = ((_d[0] >> 3) & (0x0FU));
+  _m->FilterState_Type = ((_d[0] >> 7) & (0x01U));
+  _m->FilterState_Min_RCS_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Min_RCS_ro_fromS(_m->FilterState_Min_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Min_Azimuth_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Min_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Min_Azimuth_ro_fromS(_m->FilterState_Min_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Min_Distance_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Min_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Min_Distance_ro_fromS(_m->FilterState_Min_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Min_Lifetime_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Min_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Min_Lifetime_ro_fromS(_m->FilterState_Min_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Min_NofObj = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterState_Min_ProbExists = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterState_Min_Y_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Min_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Min_Y_ro_fromS(_m->FilterState_Min_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Min_Size_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Min_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Min_Size_ro_fromS(_m->FilterState_Min_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Min_VrelDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Min_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Min_VrelDepart_ro_fromS(_m->FilterState_Min_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Min_VrelOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Min_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Min_VrelOncome_ro_fromS(_m->FilterState_Min_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Min_VYRightLeft_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Min_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Min_VYRightLeft_ro_fromS(_m->FilterState_Min_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Min_VXDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Min_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Min_VXDepart_ro_fromS(_m->FilterState_Min_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Min_VXOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Min_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Min_VXOncome_ro_fromS(_m->FilterState_Min_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Min_VYLeftRight_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Min_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Min_VYLeftRight_ro_fromS(_m->FilterState_Min_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Min_X_ro = ((_d[1] & (0x1FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Min_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Min_X_ro_fromS(_m->FilterState_Min_X_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Max_VrelDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Max_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Max_VrelDepart_ro_fromS(_m->FilterState_Max_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Max_Azimuth_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Max_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Max_Azimuth_ro_fromS(_m->FilterState_Max_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Max_Distance_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Max_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Max_Distance_ro_fromS(_m->FilterState_Max_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Max_Lifetime_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Max_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Max_Lifetime_ro_fromS(_m->FilterState_Max_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Max_NofObj = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterState_Max_ProbExists = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterState_Max_RCS_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Max_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Max_RCS_ro_fromS(_m->FilterState_Max_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Max_Size_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Max_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Max_Size_ro_fromS(_m->FilterState_Max_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Max_VXDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Max_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Max_VXDepart_ro_fromS(_m->FilterState_Max_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Max_VrelOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Max_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Max_VrelOncome_ro_fromS(_m->FilterState_Max_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Max_Y_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Max_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Max_Y_ro_fromS(_m->FilterState_Max_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Max_VYRightLeft_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Max_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Max_VYRightLeft_ro_fromS(_m->FilterState_Max_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Max_VYLeftRight_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Max_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Max_VYLeftRight_ro_fromS(_m->FilterState_Max_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Max_VXOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Max_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Max_VXOncome_ro_fromS(_m->FilterState_Max_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->FilterState_Max_X_ro = ((_d[3] & (0x1FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Max_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_FilterState_Max_X_ro_fromS(_m->FilterState_Max_X_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterState_Cfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterState_Cfg_ars408_can_database_ch5(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+ return FilterState_Cfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch5(FilterState_Cfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Cfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_RCS_ro_toS(_m->FilterState_Min_RCS_phys);
+  _m->FilterState_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_Azimuth_ro_toS(_m->FilterState_Min_Azimuth_phys);
+  _m->FilterState_Min_Distance_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_Distance_ro_toS(_m->FilterState_Min_Distance_phys);
+  _m->FilterState_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_Lifetime_ro_toS(_m->FilterState_Min_Lifetime_phys);
+  _m->FilterState_Min_Y_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_Y_ro_toS(_m->FilterState_Min_Y_phys);
+  _m->FilterState_Min_Size_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_Size_ro_toS(_m->FilterState_Min_Size_phys);
+  _m->FilterState_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_VrelDepart_ro_toS(_m->FilterState_Min_VrelDepart_phys);
+  _m->FilterState_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_VrelOncome_ro_toS(_m->FilterState_Min_VrelOncome_phys);
+  _m->FilterState_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_VYRightLeft_ro_toS(_m->FilterState_Min_VYRightLeft_phys);
+  _m->FilterState_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_VXDepart_ro_toS(_m->FilterState_Min_VXDepart_phys);
+  _m->FilterState_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_VXOncome_ro_toS(_m->FilterState_Min_VXOncome_phys);
+  _m->FilterState_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_VYLeftRight_ro_toS(_m->FilterState_Min_VYLeftRight_phys);
+  _m->FilterState_Min_X_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_X_ro_toS(_m->FilterState_Min_X_phys);
+  _m->FilterState_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_VrelDepart_ro_toS(_m->FilterState_Max_VrelDepart_phys);
+  _m->FilterState_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_Azimuth_ro_toS(_m->FilterState_Max_Azimuth_phys);
+  _m->FilterState_Max_Distance_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_Distance_ro_toS(_m->FilterState_Max_Distance_phys);
+  _m->FilterState_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_Lifetime_ro_toS(_m->FilterState_Max_Lifetime_phys);
+  _m->FilterState_Max_RCS_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_RCS_ro_toS(_m->FilterState_Max_RCS_phys);
+  _m->FilterState_Max_Size_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_Size_ro_toS(_m->FilterState_Max_Size_phys);
+  _m->FilterState_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_VXDepart_ro_toS(_m->FilterState_Max_VXDepart_phys);
+  _m->FilterState_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_VrelOncome_ro_toS(_m->FilterState_Max_VrelOncome_phys);
+  _m->FilterState_Max_Y_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_Y_ro_toS(_m->FilterState_Max_Y_phys);
+  _m->FilterState_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_VYRightLeft_ro_toS(_m->FilterState_Max_VYRightLeft_phys);
+  _m->FilterState_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_VYLeftRight_ro_toS(_m->FilterState_Max_VYLeftRight_phys);
+  _m->FilterState_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_VXOncome_ro_toS(_m->FilterState_Max_VXOncome_phys);
+  _m->FilterState_Max_X_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_X_ro_toS(_m->FilterState_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->FilterState_Active & (0x01U)) << 2) | ((_m->FilterState_Index & (0x0FU)) << 3) | ((_m->FilterState_Type & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->FilterState_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_X_ro >> 8) & (0x1FU));
+  cframe->Data[2] |= (_m->FilterState_Min_RCS_ro & (0xFFU)) | (_m->FilterState_Min_Azimuth_ro & (0xFFU)) | (_m->FilterState_Min_Distance_ro & (0xFFU)) | (_m->FilterState_Min_Lifetime_ro & (0xFFU)) | (_m->FilterState_Min_NofObj & (0xFFU)) | (_m->FilterState_Min_ProbExists & (0xFFU)) | (_m->FilterState_Min_Y_ro & (0xFFU)) | (_m->FilterState_Min_Size_ro & (0xFFU)) | (_m->FilterState_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Min_VXDepart_ro & (0xFFU)) | (_m->FilterState_Min_VXOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Min_X_ro & (0xFFU));
+  cframe->Data[3] |= ((_m->FilterState_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_X_ro >> 8) & (0x1FU));
+  cframe->Data[4] |= (_m->FilterState_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Max_Azimuth_ro & (0xFFU)) | (_m->FilterState_Max_Distance_ro & (0xFFU)) | (_m->FilterState_Max_Lifetime_ro & (0xFFU)) | (_m->FilterState_Max_NofObj & (0xFFU)) | (_m->FilterState_Max_ProbExists & (0xFFU)) | (_m->FilterState_Max_RCS_ro & (0xFFU)) | (_m->FilterState_Max_Size_ro & (0xFFU)) | (_m->FilterState_Max_VXDepart_ro & (0xFFU)) | (_m->FilterState_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Max_Y_ro & (0xFFU)) | (_m->FilterState_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Max_VXOncome_ro & (0xFFU)) | (_m->FilterState_Max_X_ro & (0xFFU));
+
+  cframe->MsgId = FilterState_Cfg_CANID;
+  cframe->DLC = FilterState_Cfg_DLC;
+  cframe->IDE = FilterState_Cfg_IDE;
+  return FilterState_Cfg_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch5(FilterState_Cfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Cfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_RCS_ro_toS(_m->FilterState_Min_RCS_phys);
+  _m->FilterState_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_Azimuth_ro_toS(_m->FilterState_Min_Azimuth_phys);
+  _m->FilterState_Min_Distance_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_Distance_ro_toS(_m->FilterState_Min_Distance_phys);
+  _m->FilterState_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_Lifetime_ro_toS(_m->FilterState_Min_Lifetime_phys);
+  _m->FilterState_Min_Y_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_Y_ro_toS(_m->FilterState_Min_Y_phys);
+  _m->FilterState_Min_Size_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_Size_ro_toS(_m->FilterState_Min_Size_phys);
+  _m->FilterState_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_VrelDepart_ro_toS(_m->FilterState_Min_VrelDepart_phys);
+  _m->FilterState_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_VrelOncome_ro_toS(_m->FilterState_Min_VrelOncome_phys);
+  _m->FilterState_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_VYRightLeft_ro_toS(_m->FilterState_Min_VYRightLeft_phys);
+  _m->FilterState_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_VXDepart_ro_toS(_m->FilterState_Min_VXDepart_phys);
+  _m->FilterState_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_VXOncome_ro_toS(_m->FilterState_Min_VXOncome_phys);
+  _m->FilterState_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_VYLeftRight_ro_toS(_m->FilterState_Min_VYLeftRight_phys);
+  _m->FilterState_Min_X_ro = ARS408_CAN_DATABASE_CH5_FilterState_Min_X_ro_toS(_m->FilterState_Min_X_phys);
+  _m->FilterState_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_VrelDepart_ro_toS(_m->FilterState_Max_VrelDepart_phys);
+  _m->FilterState_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_Azimuth_ro_toS(_m->FilterState_Max_Azimuth_phys);
+  _m->FilterState_Max_Distance_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_Distance_ro_toS(_m->FilterState_Max_Distance_phys);
+  _m->FilterState_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_Lifetime_ro_toS(_m->FilterState_Max_Lifetime_phys);
+  _m->FilterState_Max_RCS_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_RCS_ro_toS(_m->FilterState_Max_RCS_phys);
+  _m->FilterState_Max_Size_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_Size_ro_toS(_m->FilterState_Max_Size_phys);
+  _m->FilterState_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_VXDepart_ro_toS(_m->FilterState_Max_VXDepart_phys);
+  _m->FilterState_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_VrelOncome_ro_toS(_m->FilterState_Max_VrelOncome_phys);
+  _m->FilterState_Max_Y_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_Y_ro_toS(_m->FilterState_Max_Y_phys);
+  _m->FilterState_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_VYRightLeft_ro_toS(_m->FilterState_Max_VYRightLeft_phys);
+  _m->FilterState_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_VYLeftRight_ro_toS(_m->FilterState_Max_VYLeftRight_phys);
+  _m->FilterState_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_VXOncome_ro_toS(_m->FilterState_Max_VXOncome_phys);
+  _m->FilterState_Max_X_ro = ARS408_CAN_DATABASE_CH5_FilterState_Max_X_ro_toS(_m->FilterState_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _d[0] |= ((_m->FilterState_Active & (0x01U)) << 2) | ((_m->FilterState_Index & (0x0FU)) << 3) | ((_m->FilterState_Type & (0x01U)) << 7);
+  _d[1] |= ((_m->FilterState_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_X_ro >> 8) & (0x1FU));
+  _d[2] |= (_m->FilterState_Min_RCS_ro & (0xFFU)) | (_m->FilterState_Min_Azimuth_ro & (0xFFU)) | (_m->FilterState_Min_Distance_ro & (0xFFU)) | (_m->FilterState_Min_Lifetime_ro & (0xFFU)) | (_m->FilterState_Min_NofObj & (0xFFU)) | (_m->FilterState_Min_ProbExists & (0xFFU)) | (_m->FilterState_Min_Y_ro & (0xFFU)) | (_m->FilterState_Min_Size_ro & (0xFFU)) | (_m->FilterState_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Min_VXDepart_ro & (0xFFU)) | (_m->FilterState_Min_VXOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Min_X_ro & (0xFFU));
+  _d[3] |= ((_m->FilterState_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_X_ro >> 8) & (0x1FU));
+  _d[4] |= (_m->FilterState_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Max_Azimuth_ro & (0xFFU)) | (_m->FilterState_Max_Distance_ro & (0xFFU)) | (_m->FilterState_Max_Lifetime_ro & (0xFFU)) | (_m->FilterState_Max_NofObj & (0xFFU)) | (_m->FilterState_Max_ProbExists & (0xFFU)) | (_m->FilterState_Max_RCS_ro & (0xFFU)) | (_m->FilterState_Max_Size_ro & (0xFFU)) | (_m->FilterState_Max_VXDepart_ro & (0xFFU)) | (_m->FilterState_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Max_Y_ro & (0xFFU)) | (_m->FilterState_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Max_VXOncome_ro & (0xFFU)) | (_m->FilterState_Max_X_ro & (0xFFU));
+
+  *_len = FilterState_Cfg_DLC;
+  *_ide = FilterState_Cfg_IDE;
+  return FilterState_Cfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_SpeedInformation_ARS408_can_database_ch5(SpeedInformation_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarDevice_Speed_ro = ((_d[0] & (0x1FU)) << 8) | (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->RadarDevice_Speed_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_RadarDevice_Speed_ro_fromS(_m->RadarDevice_Speed_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->RadarDevice_SpeedDirection = ((_d[0] >> 6) & (0x03U));
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < SpeedInformation_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_SpeedInformation_ars408_can_database_ch5(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+ return SpeedInformation_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch5(SpeedInformation_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < SpeedInformation_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->RadarDevice_Speed_ro = ARS408_CAN_DATABASE_CH5_RadarDevice_Speed_ro_toS(_m->RadarDevice_Speed_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarDevice_Speed_ro >> 8) & (0x1FU)) | ((_m->RadarDevice_SpeedDirection & (0x03U)) << 6);
+  cframe->Data[1] |= (_m->RadarDevice_Speed_ro & (0xFFU));
+
+  cframe->MsgId = SpeedInformation_CANID;
+  cframe->DLC = SpeedInformation_DLC;
+  cframe->IDE = SpeedInformation_IDE;
+  return SpeedInformation_CANID;
+}
+
+#else
+
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch5(SpeedInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < SpeedInformation_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->RadarDevice_Speed_ro = ARS408_CAN_DATABASE_CH5_RadarDevice_Speed_ro_toS(_m->RadarDevice_Speed_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarDevice_Speed_ro >> 8) & (0x1FU)) | ((_m->RadarDevice_SpeedDirection & (0x03U)) << 6);
+  _d[1] |= (_m->RadarDevice_Speed_ro & (0xFFU));
+
+  *_len = SpeedInformation_DLC;
+  *_ide = SpeedInformation_IDE;
+  return SpeedInformation_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_YawRateInformation_ARS408_can_database_ch5(YawRateInformation_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarDevice_YawRate_ro = ((_d[0] & (0xFFU)) << 8) | (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_RadarDevice_YawRate_ro_fromS(_m->RadarDevice_YawRate_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < YawRateInformation_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_YawRateInformation_ars408_can_database_ch5(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+ return YawRateInformation_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch5(YawRateInformation_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < YawRateInformation_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_ro = ARS408_CAN_DATABASE_CH5_RadarDevice_YawRate_ro_toS(_m->RadarDevice_YawRate_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarDevice_YawRate_ro >> 8) & (0xFFU));
+  cframe->Data[1] |= (_m->RadarDevice_YawRate_ro & (0xFFU));
+
+  cframe->MsgId = YawRateInformation_CANID;
+  cframe->DLC = YawRateInformation_DLC;
+  cframe->IDE = YawRateInformation_IDE;
+  return YawRateInformation_CANID;
+}
+
+#else
+
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch5(YawRateInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < YawRateInformation_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_ro = ARS408_CAN_DATABASE_CH5_RadarDevice_YawRate_ro_toS(_m->RadarDevice_YawRate_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarDevice_YawRate_ro >> 8) & (0xFFU));
+  _d[1] |= (_m->RadarDevice_YawRate_ro & (0xFFU));
+
+  *_len = YawRateInformation_DLC;
+  *_ide = YawRateInformation_IDE;
+  return YawRateInformation_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetState_ARS408_can_database_ch5(CollDetState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetState_Active = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetState_NofRegions = ((_d[0] >> 4) & (0x0FU));
+  _m->CollDetState_MinDetectTime_ro = (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_CollDetState_MinDetectTime_ro_fromS(_m->CollDetState_MinDetectTime_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->CollDetState_MeasCounter = ((_d[2] & (0xFFU)) << 8) | (_d[3] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetState_ars408_can_database_ch5(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+ return CollDetState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Pack_CollDetState_ARS408_can_database_ch5(CollDetState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_ro = ARS408_CAN_DATABASE_CH5_CollDetState_MinDetectTime_ro_toS(_m->CollDetState_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetState_Active & (0x01U)) << 1) | ((_m->CollDetState_NofRegions & (0x0FU)) << 4);
+  cframe->Data[1] |= (_m->CollDetState_MinDetectTime_ro & (0xFFU));
+  cframe->Data[2] |= ((_m->CollDetState_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[3] |= (_m->CollDetState_MeasCounter & (0xFFU));
+
+  cframe->MsgId = CollDetState_CANID;
+  cframe->DLC = CollDetState_DLC;
+  cframe->IDE = CollDetState_IDE;
+  return CollDetState_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetState_ARS408_can_database_ch5(CollDetState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_ro = ARS408_CAN_DATABASE_CH5_CollDetState_MinDetectTime_ro_toS(_m->CollDetState_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetState_Active & (0x01U)) << 1) | ((_m->CollDetState_NofRegions & (0x0FU)) << 4);
+  _d[1] |= (_m->CollDetState_MinDetectTime_ro & (0xFFU));
+  _d[2] |= ((_m->CollDetState_MeasCounter >> 8) & (0xFFU));
+  _d[3] |= (_m->CollDetState_MeasCounter & (0xFFU));
+
+  *_len = CollDetState_DLC;
+  *_ide = CollDetState_IDE;
+  return CollDetState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetCfg_ARS408_can_database_ch5(CollDetCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetCfg_WarningReset = (_d[0] & (0x01U));
+  _m->CollDetCfg_Activate = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetCfg_MinTime_valid = ((_d[0] >> 3) & (0x01U));
+  _m->CollDetCfg_ClearRegions = ((_d[0] >> 7) & (0x01U));
+  _m->CollDetCfg_MinDetectTime_ro = (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_CollDetCfg_MinDetectTime_ro_fromS(_m->CollDetCfg_MinDetectTime_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetCfg_ars408_can_database_ch5(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+ return CollDetCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch5(CollDetCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_ro = ARS408_CAN_DATABASE_CH5_CollDetCfg_MinDetectTime_ro_toS(_m->CollDetCfg_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->CollDetCfg_WarningReset & (0x01U)) | ((_m->CollDetCfg_Activate & (0x01U)) << 1) | ((_m->CollDetCfg_MinTime_valid & (0x01U)) << 3) | ((_m->CollDetCfg_ClearRegions & (0x01U)) << 7);
+  cframe->Data[1] |= (_m->CollDetCfg_MinDetectTime_ro & (0xFFU));
+
+  cframe->MsgId = CollDetCfg_CANID;
+  cframe->DLC = CollDetCfg_DLC;
+  cframe->IDE = CollDetCfg_IDE;
+  return CollDetCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch5(CollDetCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_ro = ARS408_CAN_DATABASE_CH5_CollDetCfg_MinDetectTime_ro_toS(_m->CollDetCfg_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _d[0] |= (_m->CollDetCfg_WarningReset & (0x01U)) | ((_m->CollDetCfg_Activate & (0x01U)) << 1) | ((_m->CollDetCfg_MinTime_valid & (0x01U)) << 3) | ((_m->CollDetCfg_ClearRegions & (0x01U)) << 7);
+  _d[1] |= (_m->CollDetCfg_MinDetectTime_ro & (0xFFU));
+
+  *_len = CollDetCfg_DLC;
+  *_ide = CollDetCfg_IDE;
+  return CollDetCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionCfg_ARS408_can_database_ch5(CollDetRegionCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRegCfg_Activate = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetRegCfg_Coordinates_valid = ((_d[0] >> 2) & (0x01U));
+  _m->CollDetRegCfg_RegionID = (_d[1] & (0x07U));
+  _m->CollDetRegCfg_Point1X_ro = ((_d[2] & (0xFFU)) << 5) | ((_d[3] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point1X_ro_fromS(_m->CollDetRegCfg_Point1X_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point1Y_ro = ((_d[3] & (0x07U)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point1Y_ro_fromS(_m->CollDetRegCfg_Point1Y_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point2X_ro = ((_d[5] & (0xFFU)) << 5) | ((_d[6] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point2X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point2X_ro_fromS(_m->CollDetRegCfg_Point2X_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point2Y_ro = ((_d[6] & (0x07U)) << 8) | (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point2Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point2Y_ro_fromS(_m->CollDetRegCfg_Point2Y_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRegionCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRegionCfg_ars408_can_database_ch5(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+ return CollDetRegionCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch5(CollDetRegionCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_ro = ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point1X_ro_toS(_m->CollDetRegCfg_Point1X_phys);
+  _m->CollDetRegCfg_Point1Y_ro = ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point1Y_ro_toS(_m->CollDetRegCfg_Point1Y_phys);
+  _m->CollDetRegCfg_Point2X_ro = ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point2X_ro_toS(_m->CollDetRegCfg_Point2X_phys);
+  _m->CollDetRegCfg_Point2Y_ro = ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point2Y_ro_toS(_m->CollDetRegCfg_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetRegCfg_Activate & (0x01U)) << 1) | ((_m->CollDetRegCfg_Coordinates_valid & (0x01U)) << 2);
+  cframe->Data[1] |= (_m->CollDetRegCfg_RegionID & (0x07U));
+  cframe->Data[2] |= ((_m->CollDetRegCfg_Point1X_ro >> 5) & (0xFFU));
+  cframe->Data[3] |= ((_m->CollDetRegCfg_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point1Y_ro >> 8) & (0x07U));
+  cframe->Data[4] |= (_m->CollDetRegCfg_Point1Y_ro & (0xFFU));
+  cframe->Data[5] |= ((_m->CollDetRegCfg_Point2X_ro >> 5) & (0xFFU));
+  cframe->Data[6] |= ((_m->CollDetRegCfg_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point2Y_ro >> 8) & (0x07U));
+  cframe->Data[7] |= (_m->CollDetRegCfg_Point2Y_ro & (0xFFU));
+
+  cframe->MsgId = CollDetRegionCfg_CANID;
+  cframe->DLC = CollDetRegionCfg_DLC;
+  cframe->IDE = CollDetRegionCfg_IDE;
+  return CollDetRegionCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch5(CollDetRegionCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_ro = ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point1X_ro_toS(_m->CollDetRegCfg_Point1X_phys);
+  _m->CollDetRegCfg_Point1Y_ro = ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point1Y_ro_toS(_m->CollDetRegCfg_Point1Y_phys);
+  _m->CollDetRegCfg_Point2X_ro = ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point2X_ro_toS(_m->CollDetRegCfg_Point2X_phys);
+  _m->CollDetRegCfg_Point2Y_ro = ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point2Y_ro_toS(_m->CollDetRegCfg_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetRegCfg_Activate & (0x01U)) << 1) | ((_m->CollDetRegCfg_Coordinates_valid & (0x01U)) << 2);
+  _d[1] |= (_m->CollDetRegCfg_RegionID & (0x07U));
+  _d[2] |= ((_m->CollDetRegCfg_Point1X_ro >> 5) & (0xFFU));
+  _d[3] |= ((_m->CollDetRegCfg_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point1Y_ro >> 8) & (0x07U));
+  _d[4] |= (_m->CollDetRegCfg_Point1Y_ro & (0xFFU));
+  _d[5] |= ((_m->CollDetRegCfg_Point2X_ro >> 5) & (0xFFU));
+  _d[6] |= ((_m->CollDetRegCfg_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point2Y_ro >> 8) & (0x07U));
+  _d[7] |= (_m->CollDetRegCfg_Point2Y_ro & (0xFFU));
+
+  *_len = CollDetRegionCfg_DLC;
+  *_ide = CollDetRegionCfg_IDE;
+  return CollDetRegionCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionState_ARS408_can_database_ch5(CollDetRegionState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRegState_WarningLevel = ((_d[0] >> 3) & (0x03U));
+  _m->CollDetRegState_RegionID = ((_d[0] >> 5) & (0x07U));
+  _m->CollDetRegState_Point1X_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_CollDetRegState_Point1X_ro_fromS(_m->CollDetRegState_Point1X_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point1Y_ro = ((_d[2] & (0x07U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->CollDetRegState_Point1Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_CollDetRegState_Point1Y_ro_fromS(_m->CollDetRegState_Point1Y_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point2X_ro = ((_d[4] & (0xFFU)) << 5) | ((_d[5] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->CollDetRegState_Point2X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_CollDetRegState_Point2X_ro_fromS(_m->CollDetRegState_Point2X_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point2Y_ro = ((_d[5] & (0x07U)) << 8) | (_d[6] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->CollDetRegState_Point2Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_CollDetRegState_Point2Y_ro_fromS(_m->CollDetRegState_Point2Y_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->CollDetRegState_NofObjects = (_d[7] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRegionState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRegionState_ars408_can_database_ch5(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+ return CollDetRegionState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch5(CollDetRegionState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_ro = ARS408_CAN_DATABASE_CH5_CollDetRegState_Point1X_ro_toS(_m->CollDetRegState_Point1X_phys);
+  _m->CollDetRegState_Point1Y_ro = ARS408_CAN_DATABASE_CH5_CollDetRegState_Point1Y_ro_toS(_m->CollDetRegState_Point1Y_phys);
+  _m->CollDetRegState_Point2X_ro = ARS408_CAN_DATABASE_CH5_CollDetRegState_Point2X_ro_toS(_m->CollDetRegState_Point2X_phys);
+  _m->CollDetRegState_Point2Y_ro = ARS408_CAN_DATABASE_CH5_CollDetRegState_Point2Y_ro_toS(_m->CollDetRegState_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetRegState_WarningLevel & (0x03U)) << 3) | ((_m->CollDetRegState_RegionID & (0x07U)) << 5);
+  cframe->Data[1] |= ((_m->CollDetRegState_Point1X_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->CollDetRegState_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point1Y_ro >> 8) & (0x07U));
+  cframe->Data[3] |= (_m->CollDetRegState_Point1Y_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->CollDetRegState_Point2X_ro >> 5) & (0xFFU));
+  cframe->Data[5] |= ((_m->CollDetRegState_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point2Y_ro >> 8) & (0x07U));
+  cframe->Data[6] |= (_m->CollDetRegState_Point2Y_ro & (0xFFU));
+  cframe->Data[7] |= (_m->CollDetRegState_NofObjects & (0xFFU));
+
+  cframe->MsgId = CollDetRegionState_CANID;
+  cframe->DLC = CollDetRegionState_DLC;
+  cframe->IDE = CollDetRegionState_IDE;
+  return CollDetRegionState_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch5(CollDetRegionState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_ro = ARS408_CAN_DATABASE_CH5_CollDetRegState_Point1X_ro_toS(_m->CollDetRegState_Point1X_phys);
+  _m->CollDetRegState_Point1Y_ro = ARS408_CAN_DATABASE_CH5_CollDetRegState_Point1Y_ro_toS(_m->CollDetRegState_Point1Y_phys);
+  _m->CollDetRegState_Point2X_ro = ARS408_CAN_DATABASE_CH5_CollDetRegState_Point2X_ro_toS(_m->CollDetRegState_Point2X_phys);
+  _m->CollDetRegState_Point2Y_ro = ARS408_CAN_DATABASE_CH5_CollDetRegState_Point2Y_ro_toS(_m->CollDetRegState_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetRegState_WarningLevel & (0x03U)) << 3) | ((_m->CollDetRegState_RegionID & (0x07U)) << 5);
+  _d[1] |= ((_m->CollDetRegState_Point1X_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->CollDetRegState_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point1Y_ro >> 8) & (0x07U));
+  _d[3] |= (_m->CollDetRegState_Point1Y_ro & (0xFFU));
+  _d[4] |= ((_m->CollDetRegState_Point2X_ro >> 5) & (0xFFU));
+  _d[5] |= ((_m->CollDetRegState_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point2Y_ro >> 8) & (0x07U));
+  _d[6] |= (_m->CollDetRegState_Point2Y_ro & (0xFFU));
+  _d[7] |= (_m->CollDetRegState_NofObjects & (0xFFU));
+
+  *_len = CollDetRegionState_DLC;
+  *_ide = CollDetRegionState_IDE;
+  return CollDetRegionState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_0_Status_ARS408_can_database_ch5(Cluster_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_NofClustersNear = (_d[0] & (0xFFU));
+  _m->Cluster_NofClustersFar = (_d[1] & (0xFFU));
+  _m->Cluster_MeasCounter = ((_d[2] & (0xFFU)) << 8) | (_d[3] & (0xFFU));
+  _m->Cluster_InterfaceVersion = ((_d[4] >> 4) & (0x0FU));
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_0_Status_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_0_Status_ars408_can_database_ch5(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+ return Cluster_0_Status_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch5(Cluster_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_0_Status_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Cluster_NofClustersNear & (0xFFU));
+  cframe->Data[1] |= (_m->Cluster_NofClustersFar & (0xFFU));
+  cframe->Data[2] |= ((_m->Cluster_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[3] |= (_m->Cluster_MeasCounter & (0xFFU));
+  cframe->Data[4] |= ((_m->Cluster_InterfaceVersion & (0x0FU)) << 4);
+
+  cframe->MsgId = Cluster_0_Status_CANID;
+  cframe->DLC = Cluster_0_Status_DLC;
+  cframe->IDE = Cluster_0_Status_IDE;
+  return Cluster_0_Status_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch5(Cluster_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_0_Status_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Cluster_NofClustersNear & (0xFFU));
+  _d[1] |= (_m->Cluster_NofClustersFar & (0xFFU));
+  _d[2] |= ((_m->Cluster_MeasCounter >> 8) & (0xFFU));
+  _d[3] |= (_m->Cluster_MeasCounter & (0xFFU));
+  _d[4] |= ((_m->Cluster_InterfaceVersion & (0x0FU)) << 4);
+
+  *_len = Cluster_0_Status_DLC;
+  *_ide = Cluster_0_Status_IDE;
+  return Cluster_0_Status_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_0_Status_ARS408_can_database_ch5(Obj_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_NofObjects = (_d[0] & (0xFFU));
+  _m->Obj_MeasCounter = ((_d[1] & (0xFFU)) << 8) | (_d[2] & (0xFFU));
+  _m->Obj_InterfaceVersion = ((_d[3] >> 4) & (0x0FU));
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_0_Status_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_0_Status_ars408_can_database_ch5(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+ return Obj_0_Status_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch5(Obj_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_0_Status_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_NofObjects & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[2] |= (_m->Obj_MeasCounter & (0xFFU));
+  cframe->Data[3] |= ((_m->Obj_InterfaceVersion & (0x0FU)) << 4);
+
+  cframe->MsgId = Obj_0_Status_CANID;
+  cframe->DLC = Obj_0_Status_DLC;
+  cframe->IDE = Obj_0_Status_IDE;
+  return Obj_0_Status_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch5(Obj_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_0_Status_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_NofObjects & (0xFFU));
+  _d[1] |= ((_m->Obj_MeasCounter >> 8) & (0xFFU));
+  _d[2] |= (_m->Obj_MeasCounter & (0xFFU));
+  _d[3] |= ((_m->Obj_InterfaceVersion & (0x0FU)) << 4);
+
+  *_len = Obj_0_Status_DLC;
+  *_ide = Obj_0_Status_IDE;
+  return Obj_0_Status_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_1_General_ARS408_can_database_ch5(Obj_1_General_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_DistLong_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->Obj_DistLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_Obj_DistLong_ro_fromS(_m->Obj_DistLong_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->Obj_DistLat_ro = ((_d[2] & (0x07U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->Obj_DistLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_Obj_DistLat_ro_fromS(_m->Obj_DistLat_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->Obj_VrelLong_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->Obj_VrelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_Obj_VrelLong_ro_fromS(_m->Obj_VrelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->Obj_VrelLat_ro = ((_d[5] & (0x3FU)) << 3) | ((_d[6] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->Obj_VrelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_Obj_VrelLat_ro_fromS(_m->Obj_VrelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->Obj_DynProp = (_d[6] & (0x07U));
+  _m->Obj_RCS_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->Obj_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_Obj_RCS_ro_fromS(_m->Obj_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_1_General_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_1_General_ars408_can_database_ch5(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+ return Obj_1_General_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch5(Obj_1_General_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_1_General_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->Obj_DistLong_ro = ARS408_CAN_DATABASE_CH5_Obj_DistLong_ro_toS(_m->Obj_DistLong_phys);
+  _m->Obj_DistLat_ro = ARS408_CAN_DATABASE_CH5_Obj_DistLat_ro_toS(_m->Obj_DistLat_phys);
+  _m->Obj_VrelLong_ro = ARS408_CAN_DATABASE_CH5_Obj_VrelLong_ro_toS(_m->Obj_VrelLong_phys);
+  _m->Obj_VrelLat_ro = ARS408_CAN_DATABASE_CH5_Obj_VrelLat_ro_toS(_m->Obj_VrelLat_phys);
+  _m->Obj_RCS_ro = ARS408_CAN_DATABASE_CH5_Obj_RCS_ro_toS(_m->Obj_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_DistLong_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->Obj_DistLong_ro & (0x1FU)) << 3) | ((_m->Obj_DistLat_ro >> 8) & (0x07U));
+  cframe->Data[3] |= (_m->Obj_DistLat_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->Obj_VrelLong_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Obj_VrelLong_ro & (0x03U)) << 6) | ((_m->Obj_VrelLat_ro >> 3) & (0x3FU));
+  cframe->Data[6] |= ((_m->Obj_VrelLat_ro & (0x07U)) << 5) | (_m->Obj_DynProp & (0x07U));
+  cframe->Data[7] |= (_m->Obj_RCS_ro & (0xFFU));
+
+  cframe->MsgId = Obj_1_General_CANID;
+  cframe->DLC = Obj_1_General_DLC;
+  cframe->IDE = Obj_1_General_IDE;
+  return Obj_1_General_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch5(Obj_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_1_General_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->Obj_DistLong_ro = ARS408_CAN_DATABASE_CH5_Obj_DistLong_ro_toS(_m->Obj_DistLong_phys);
+  _m->Obj_DistLat_ro = ARS408_CAN_DATABASE_CH5_Obj_DistLat_ro_toS(_m->Obj_DistLat_phys);
+  _m->Obj_VrelLong_ro = ARS408_CAN_DATABASE_CH5_Obj_VrelLong_ro_toS(_m->Obj_VrelLong_phys);
+  _m->Obj_VrelLat_ro = ARS408_CAN_DATABASE_CH5_Obj_VrelLat_ro_toS(_m->Obj_VrelLat_phys);
+  _m->Obj_RCS_ro = ARS408_CAN_DATABASE_CH5_Obj_RCS_ro_toS(_m->Obj_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_DistLong_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->Obj_DistLong_ro & (0x1FU)) << 3) | ((_m->Obj_DistLat_ro >> 8) & (0x07U));
+  _d[3] |= (_m->Obj_DistLat_ro & (0xFFU));
+  _d[4] |= ((_m->Obj_VrelLong_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Obj_VrelLong_ro & (0x03U)) << 6) | ((_m->Obj_VrelLat_ro >> 3) & (0x3FU));
+  _d[6] |= ((_m->Obj_VrelLat_ro & (0x07U)) << 5) | (_m->Obj_DynProp & (0x07U));
+  _d[7] |= (_m->Obj_RCS_ro & (0xFFU));
+
+  *_len = Obj_1_General_DLC;
+  *_ide = Obj_1_General_IDE;
+  return Obj_1_General_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_2_Quality_ARS408_can_database_ch5(Obj_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_DistLat_rms = ((_d[1] & (0x07U)) << 2) | ((_d[2] >> 6) & (0x03U));
+  _m->Obj_DistLong_rms = ((_d[1] >> 3) & (0x1FU));
+  _m->Obj_VrelLat_rms = ((_d[2] & (0x01U)) << 4) | ((_d[3] >> 4) & (0x0FU));
+  _m->Obj_VrelLong_rms = ((_d[2] >> 1) & (0x1FU));
+  _m->Obj_ArelLong_rms = ((_d[3] & (0x0FU)) << 1) | ((_d[4] >> 7) & (0x01U));
+  _m->Obj_Orientation_rms = ((_d[4] & (0x03U)) << 3) | ((_d[5] >> 5) & (0x07U));
+  _m->Obj_ArelLat_rms = ((_d[4] >> 2) & (0x1FU));
+  _m->Obj_MeasState = ((_d[6] >> 2) & (0x07U));
+  _m->Obj_ProbOfExist = ((_d[6] >> 5) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_2_Quality_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_2_Quality_ars408_can_database_ch5(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+ return Obj_2_Quality_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch5(Obj_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_2_Quality_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_DistLat_rms >> 2) & (0x07U)) | ((_m->Obj_DistLong_rms & (0x1FU)) << 3);
+  cframe->Data[2] |= ((_m->Obj_DistLat_rms & (0x03U)) << 6) | ((_m->Obj_VrelLat_rms >> 4) & (0x01U)) | ((_m->Obj_VrelLong_rms & (0x1FU)) << 1);
+  cframe->Data[3] |= ((_m->Obj_VrelLat_rms & (0x0FU)) << 4) | ((_m->Obj_ArelLong_rms >> 1) & (0x0FU));
+  cframe->Data[4] |= ((_m->Obj_ArelLong_rms & (0x01U)) << 7) | ((_m->Obj_Orientation_rms >> 3) & (0x03U)) | ((_m->Obj_ArelLat_rms & (0x1FU)) << 2);
+  cframe->Data[5] |= ((_m->Obj_Orientation_rms & (0x07U)) << 5);
+  cframe->Data[6] |= ((_m->Obj_MeasState & (0x07U)) << 2) | ((_m->Obj_ProbOfExist & (0x07U)) << 5);
+
+  cframe->MsgId = Obj_2_Quality_CANID;
+  cframe->DLC = Obj_2_Quality_DLC;
+  cframe->IDE = Obj_2_Quality_IDE;
+  return Obj_2_Quality_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch5(Obj_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_2_Quality_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_DistLat_rms >> 2) & (0x07U)) | ((_m->Obj_DistLong_rms & (0x1FU)) << 3);
+  _d[2] |= ((_m->Obj_DistLat_rms & (0x03U)) << 6) | ((_m->Obj_VrelLat_rms >> 4) & (0x01U)) | ((_m->Obj_VrelLong_rms & (0x1FU)) << 1);
+  _d[3] |= ((_m->Obj_VrelLat_rms & (0x0FU)) << 4) | ((_m->Obj_ArelLong_rms >> 1) & (0x0FU));
+  _d[4] |= ((_m->Obj_ArelLong_rms & (0x01U)) << 7) | ((_m->Obj_Orientation_rms >> 3) & (0x03U)) | ((_m->Obj_ArelLat_rms & (0x1FU)) << 2);
+  _d[5] |= ((_m->Obj_Orientation_rms & (0x07U)) << 5);
+  _d[6] |= ((_m->Obj_MeasState & (0x07U)) << 2) | ((_m->Obj_ProbOfExist & (0x07U)) << 5);
+
+  *_len = Obj_2_Quality_DLC;
+  *_ide = Obj_2_Quality_IDE;
+  return Obj_2_Quality_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_3_Extended_ARS408_can_database_ch5(Obj_3_Extended_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_ArelLong_ro = ((_d[1] & (0xFFU)) << 3) | ((_d[2] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->Obj_ArelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_Obj_ArelLong_ro_fromS(_m->Obj_ArelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->Obj_ArelLat_ro = ((_d[2] & (0x1FU)) << 4) | ((_d[3] >> 4) & (0x0FU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->Obj_ArelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_Obj_ArelLat_ro_fromS(_m->Obj_ArelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->Obj_Class = (_d[3] & (0x07U));
+  _m->Obj_OrientationAngle_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->Obj_OrientationAngle_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_Obj_OrientationAngle_ro_fromS(_m->Obj_OrientationAngle_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->Obj_Length_ro = (_d[6] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->Obj_Length_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_Obj_Length_ro_fromS(_m->Obj_Length_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->Obj_Width_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->Obj_Width_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_Obj_Width_ro_fromS(_m->Obj_Width_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_3_Extended_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_3_Extended_ars408_can_database_ch5(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+ return Obj_3_Extended_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch5(Obj_3_Extended_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_3_Extended_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->Obj_ArelLong_ro = ARS408_CAN_DATABASE_CH5_Obj_ArelLong_ro_toS(_m->Obj_ArelLong_phys);
+  _m->Obj_ArelLat_ro = ARS408_CAN_DATABASE_CH5_Obj_ArelLat_ro_toS(_m->Obj_ArelLat_phys);
+  _m->Obj_OrientationAngle_ro = ARS408_CAN_DATABASE_CH5_Obj_OrientationAngle_ro_toS(_m->Obj_OrientationAngle_phys);
+  _m->Obj_Length_ro = ARS408_CAN_DATABASE_CH5_Obj_Length_ro_toS(_m->Obj_Length_phys);
+  _m->Obj_Width_ro = ARS408_CAN_DATABASE_CH5_Obj_Width_ro_toS(_m->Obj_Width_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_ArelLong_ro >> 3) & (0xFFU));
+  cframe->Data[2] |= ((_m->Obj_ArelLong_ro & (0x07U)) << 5) | ((_m->Obj_ArelLat_ro >> 4) & (0x1FU));
+  cframe->Data[3] |= ((_m->Obj_ArelLat_ro & (0x0FU)) << 4) | (_m->Obj_Class & (0x07U));
+  cframe->Data[4] |= ((_m->Obj_OrientationAngle_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Obj_OrientationAngle_ro & (0x03U)) << 6);
+  cframe->Data[6] |= (_m->Obj_Length_ro & (0xFFU));
+  cframe->Data[7] |= (_m->Obj_Width_ro & (0xFFU));
+
+  cframe->MsgId = Obj_3_Extended_CANID;
+  cframe->DLC = Obj_3_Extended_DLC;
+  cframe->IDE = Obj_3_Extended_IDE;
+  return Obj_3_Extended_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch5(Obj_3_Extended_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_3_Extended_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->Obj_ArelLong_ro = ARS408_CAN_DATABASE_CH5_Obj_ArelLong_ro_toS(_m->Obj_ArelLong_phys);
+  _m->Obj_ArelLat_ro = ARS408_CAN_DATABASE_CH5_Obj_ArelLat_ro_toS(_m->Obj_ArelLat_phys);
+  _m->Obj_OrientationAngle_ro = ARS408_CAN_DATABASE_CH5_Obj_OrientationAngle_ro_toS(_m->Obj_OrientationAngle_phys);
+  _m->Obj_Length_ro = ARS408_CAN_DATABASE_CH5_Obj_Length_ro_toS(_m->Obj_Length_phys);
+  _m->Obj_Width_ro = ARS408_CAN_DATABASE_CH5_Obj_Width_ro_toS(_m->Obj_Width_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_ArelLong_ro >> 3) & (0xFFU));
+  _d[2] |= ((_m->Obj_ArelLong_ro & (0x07U)) << 5) | ((_m->Obj_ArelLat_ro >> 4) & (0x1FU));
+  _d[3] |= ((_m->Obj_ArelLat_ro & (0x0FU)) << 4) | (_m->Obj_Class & (0x07U));
+  _d[4] |= ((_m->Obj_OrientationAngle_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Obj_OrientationAngle_ro & (0x03U)) << 6);
+  _d[6] |= (_m->Obj_Length_ro & (0xFFU));
+  _d[7] |= (_m->Obj_Width_ro & (0xFFU));
+
+  *_len = Obj_3_Extended_DLC;
+  *_ide = Obj_3_Extended_IDE;
+  return Obj_3_Extended_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_4_Warning_ARS408_can_database_ch5(Obj_4_Warning_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_CollDetRegionBitfield = (_d[1] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_4_Warning_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_4_Warning_ars408_can_database_ch5(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+ return Obj_4_Warning_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch5(Obj_4_Warning_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_4_Warning_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= (_m->Obj_CollDetRegionBitfield & (0xFFU));
+
+  cframe->MsgId = Obj_4_Warning_CANID;
+  cframe->DLC = Obj_4_Warning_DLC;
+  cframe->IDE = Obj_4_Warning_IDE;
+  return Obj_4_Warning_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch5(Obj_4_Warning_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_4_Warning_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= (_m->Obj_CollDetRegionBitfield & (0xFFU));
+
+  *_len = Obj_4_Warning_DLC;
+  *_ide = Obj_4_Warning_IDE;
+  return Obj_4_Warning_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_VersionID_ARS408_can_database_ch5(VersionID_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Version_MajorRelease = (_d[0] & (0xFFU));
+  _m->Version_MinorRelease = (_d[1] & (0xFFU));
+  _m->Version_PatchLevel = (_d[2] & (0xFFU));
+  _m->Version_CountryCode = (_d[3] & (0x01U));
+  _m->Version_ExtendedRange = ((_d[3] >> 1) & (0x01U));
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < VersionID_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_VersionID_ars408_can_database_ch5(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+ return VersionID_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Pack_VersionID_ARS408_can_database_ch5(VersionID_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < VersionID_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Version_MajorRelease & (0xFFU));
+  cframe->Data[1] |= (_m->Version_MinorRelease & (0xFFU));
+  cframe->Data[2] |= (_m->Version_PatchLevel & (0xFFU));
+  cframe->Data[3] |= (_m->Version_CountryCode & (0x01U)) | ((_m->Version_ExtendedRange & (0x01U)) << 1);
+
+  cframe->MsgId = VersionID_CANID;
+  cframe->DLC = VersionID_DLC;
+  cframe->IDE = VersionID_IDE;
+  return VersionID_CANID;
+}
+
+#else
+
+uint32_t Pack_VersionID_ARS408_can_database_ch5(VersionID_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < VersionID_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Version_MajorRelease & (0xFFU));
+  _d[1] |= (_m->Version_MinorRelease & (0xFFU));
+  _d[2] |= (_m->Version_PatchLevel & (0xFFU));
+  _d[3] |= (_m->Version_CountryCode & (0x01U)) | ((_m->Version_ExtendedRange & (0x01U)) << 1);
+
+  *_len = VersionID_DLC;
+  *_ide = VersionID_IDE;
+  return VersionID_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_1_General_ARS408_can_database_ch5(Cluster_1_General_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_ID = (_d[0] & (0xFFU));
+  _m->Cluster_DistLong_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->Cluster_DistLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_Cluster_DistLong_ro_fromS(_m->Cluster_DistLong_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->Cluster_DistLat_ro = ((_d[2] & (0x03U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->Cluster_DistLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_Cluster_DistLat_ro_fromS(_m->Cluster_DistLat_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->Cluster_VrelLong_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->Cluster_VrelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_Cluster_VrelLong_ro_fromS(_m->Cluster_VrelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->Cluster_VrelLat_ro = ((_d[5] & (0x3FU)) << 3) | ((_d[6] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->Cluster_VrelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_Cluster_VrelLat_ro_fromS(_m->Cluster_VrelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _m->Cluster_DynProp = (_d[6] & (0x07U));
+  _m->Cluster_RCS_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->Cluster_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH5_Cluster_RCS_ro_fromS(_m->Cluster_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_1_General_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_1_General_ars408_can_database_ch5(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+ return Cluster_1_General_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch5(Cluster_1_General_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_1_General_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->Cluster_DistLong_ro = ARS408_CAN_DATABASE_CH5_Cluster_DistLong_ro_toS(_m->Cluster_DistLong_phys);
+  _m->Cluster_DistLat_ro = ARS408_CAN_DATABASE_CH5_Cluster_DistLat_ro_toS(_m->Cluster_DistLat_phys);
+  _m->Cluster_VrelLong_ro = ARS408_CAN_DATABASE_CH5_Cluster_VrelLong_ro_toS(_m->Cluster_VrelLong_phys);
+  _m->Cluster_VrelLat_ro = ARS408_CAN_DATABASE_CH5_Cluster_VrelLat_ro_toS(_m->Cluster_VrelLat_phys);
+  _m->Cluster_RCS_ro = ARS408_CAN_DATABASE_CH5_Cluster_RCS_ro_toS(_m->Cluster_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Cluster_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Cluster_DistLong_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->Cluster_DistLong_ro & (0x1FU)) << 3) | ((_m->Cluster_DistLat_ro >> 8) & (0x03U));
+  cframe->Data[3] |= (_m->Cluster_DistLat_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->Cluster_VrelLong_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Cluster_VrelLong_ro & (0x03U)) << 6) | ((_m->Cluster_VrelLat_ro >> 3) & (0x3FU));
+  cframe->Data[6] |= ((_m->Cluster_VrelLat_ro & (0x07U)) << 5) | (_m->Cluster_DynProp & (0x07U));
+  cframe->Data[7] |= (_m->Cluster_RCS_ro & (0xFFU));
+
+  cframe->MsgId = Cluster_1_General_CANID;
+  cframe->DLC = Cluster_1_General_DLC;
+  cframe->IDE = Cluster_1_General_IDE;
+  return Cluster_1_General_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch5(Cluster_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_1_General_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  _m->Cluster_DistLong_ro = ARS408_CAN_DATABASE_CH5_Cluster_DistLong_ro_toS(_m->Cluster_DistLong_phys);
+  _m->Cluster_DistLat_ro = ARS408_CAN_DATABASE_CH5_Cluster_DistLat_ro_toS(_m->Cluster_DistLat_phys);
+  _m->Cluster_VrelLong_ro = ARS408_CAN_DATABASE_CH5_Cluster_VrelLong_ro_toS(_m->Cluster_VrelLong_phys);
+  _m->Cluster_VrelLat_ro = ARS408_CAN_DATABASE_CH5_Cluster_VrelLat_ro_toS(_m->Cluster_VrelLat_phys);
+  _m->Cluster_RCS_ro = ARS408_CAN_DATABASE_CH5_Cluster_RCS_ro_toS(_m->Cluster_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  _d[0] |= (_m->Cluster_ID & (0xFFU));
+  _d[1] |= ((_m->Cluster_DistLong_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->Cluster_DistLong_ro & (0x1FU)) << 3) | ((_m->Cluster_DistLat_ro >> 8) & (0x03U));
+  _d[3] |= (_m->Cluster_DistLat_ro & (0xFFU));
+  _d[4] |= ((_m->Cluster_VrelLong_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Cluster_VrelLong_ro & (0x03U)) << 6) | ((_m->Cluster_VrelLat_ro >> 3) & (0x3FU));
+  _d[6] |= ((_m->Cluster_VrelLat_ro & (0x07U)) << 5) | (_m->Cluster_DynProp & (0x07U));
+  _d[7] |= (_m->Cluster_RCS_ro & (0xFFU));
+
+  *_len = Cluster_1_General_DLC;
+  *_ide = Cluster_1_General_IDE;
+  return Cluster_1_General_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_2_Quality_ARS408_can_database_ch5(Cluster_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_ID = (_d[0] & (0xFFU));
+  _m->Cluster_DistLat_rms = ((_d[1] & (0x07U)) << 2) | ((_d[2] >> 6) & (0x03U));
+  _m->Cluster_DistLong_rms = ((_d[1] >> 3) & (0x1FU));
+  _m->Cluster_VrelLat_rms = ((_d[2] & (0x01U)) << 4) | ((_d[3] >> 4) & (0x0FU));
+  _m->Cluster_VrelLong_rms = ((_d[2] >> 1) & (0x1FU));
+  _m->Cluster_PdH0 = (_d[3] & (0x07U));
+  _m->Cluster_AmbigState = (_d[4] & (0x07U));
+  _m->Cluster_InvalidState = ((_d[4] >> 3) & (0x1FU));
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_2_Quality_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_2_Quality_ars408_can_database_ch5(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+ return Cluster_2_Quality_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch5(Cluster_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_2_Quality_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Cluster_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Cluster_DistLat_rms >> 2) & (0x07U)) | ((_m->Cluster_DistLong_rms & (0x1FU)) << 3);
+  cframe->Data[2] |= ((_m->Cluster_DistLat_rms & (0x03U)) << 6) | ((_m->Cluster_VrelLat_rms >> 4) & (0x01U)) | ((_m->Cluster_VrelLong_rms & (0x1FU)) << 1);
+  cframe->Data[3] |= ((_m->Cluster_VrelLat_rms & (0x0FU)) << 4) | (_m->Cluster_PdH0 & (0x07U));
+  cframe->Data[4] |= (_m->Cluster_AmbigState & (0x07U)) | ((_m->Cluster_InvalidState & (0x1FU)) << 3);
+
+  cframe->MsgId = Cluster_2_Quality_CANID;
+  cframe->DLC = Cluster_2_Quality_DLC;
+  cframe->IDE = Cluster_2_Quality_IDE;
+  return Cluster_2_Quality_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch5(Cluster_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_2_Quality_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Cluster_ID & (0xFFU));
+  _d[1] |= ((_m->Cluster_DistLat_rms >> 2) & (0x07U)) | ((_m->Cluster_DistLong_rms & (0x1FU)) << 3);
+  _d[2] |= ((_m->Cluster_DistLat_rms & (0x03U)) << 6) | ((_m->Cluster_VrelLat_rms >> 4) & (0x01U)) | ((_m->Cluster_VrelLong_rms & (0x1FU)) << 1);
+  _d[3] |= ((_m->Cluster_VrelLat_rms & (0x0FU)) << 4) | (_m->Cluster_PdH0 & (0x07U));
+  _d[4] |= (_m->Cluster_AmbigState & (0x07U)) | ((_m->Cluster_InvalidState & (0x1FU)) << 3);
+
+  *_len = Cluster_2_Quality_DLC;
+  *_ide = Cluster_2_Quality_IDE;
+  return Cluster_2_Quality_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+

+ 4044 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch5.h

@@ -0,0 +1,4044 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+// DBC file version
+#define VER_ARS408_CAN_DATABASE_CH5_MAJ (0U)
+#define VER_ARS408_CAN_DATABASE_CH5_MIN (0U)
+
+// include current dbc-driver compilation config
+#include "ars408_can_database_ch5-config.h"
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+// This file must define:
+// base monitor struct
+// function signature for HASH calculation: (@GetFrameHash)
+// function signature for getting system tick value: (@GetSystemTick)
+#include "canmonitorutil.h"
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+
+// Control message for relay to display collision detection
+// def @CollDetRelayCtrl CAN Message (8    0x8)
+#define CollDetRelayCtrl_IDE (0U)
+#define CollDetRelayCtrl_DLC (1U)
+#define CollDetRelayCtrl_CANID (0x8)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+  // Region bit field for control relay
+  uint8_t CollDetRelayCtrl_Param;            //      Bits= 8
+
+#else
+
+  // Region bit field for control relay
+  uint8_t CollDetRelayCtrl_Param;            //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+} CollDetRelayCtrl_t;
+
+// Radar configuration
+// def @RadarConfiguration CAN Message (592  0x250)
+#define RadarConfiguration_IDE (0U)
+#define RadarConfiguration_DLC (8U)
+#define RadarConfiguration_CANID (0x250)
+// signal: @RadarCfg_MaxDistance_ro
+#define ARS408_CAN_DATABASE_CH5_RadarCfg_MaxDistance_ro_CovFactor (2)
+#define ARS408_CAN_DATABASE_CH5_RadarCfg_MaxDistance_ro_toS(x) ( (uint16_t) ((x) / (2)) )
+#define ARS408_CAN_DATABASE_CH5_RadarCfg_MaxDistance_ro_fromS(x) ( ((x) * (2)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+  // Allows changing the MaxDistance parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_MaxDistance_valid : 1;     //      Bits= 1
+
+  // Allows changing the SensorId parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SensorID_valid : 1;        //      Bits= 1
+
+  // Allows changing the RadarPower parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RadarPower_valid : 1;      //      Bits= 1
+
+  // Allows changing the OutputType parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_OutputType_valid : 1;      //      Bits= 1
+
+  // Allows changing the SendQuality parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendQuality_valid : 1;     //      Bits= 1
+
+  // Allows changing the SendExtInfo parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendExtInfo_valid : 1;     //      Bits= 1
+
+  // Allows changing the SortIndex parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SortIndex_valid : 1;       //      Bits= 1
+
+  // Allows changing the StoreInNvm parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_StoreInNVM_valid : 1;      //      Bits= 1
+
+  uint16_t RadarCfg_MaxDistance_ro;           //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  uint16_t RadarCfg_MaxDistance_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // Sensor ID (0 to 7)
+  uint8_t RadarCfg_SensorID : 3;              //      Bits= 3
+
+  // Data output type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarCfg_OutputType : 2;            //      Bits= 2
+
+  // Radar Tx output power reduction (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RadarPower : 3;            //      Bits= 3
+
+  // Allows changing the CtrlRelay parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_CtrlRelay_valid : 1;       //      Bits= 1
+
+  // Enables output of CtrlRelay message if CollDet is active
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_CtrlRelay : 1;             //      Bits= 1
+
+  // Enables output of quality message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendQuality : 1;           //      Bits= 1
+
+  // Enables output of extended message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendExtInfo : 1;           //      Bits= 1
+
+  // Object sort index
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarCfg_SortIndex : 3;             //      Bits= 3
+
+  // Store configuration in Nvm
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_StoreInNVM : 1;            //      Bits= 1
+
+  // Allows changing the RCS_Threshold parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RCS_Threshold_Valid : 1;   //      Bits= 1
+
+  // Standard or high sensitivity for cluster list output
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RCS_Threshold : 3;         //      Bits= 3
+
+#else
+
+  // Allows changing the MaxDistance parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_MaxDistance_valid;         //      Bits= 1
+
+  // Allows changing the SensorId parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SensorID_valid;            //      Bits= 1
+
+  // Allows changing the RadarPower parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RadarPower_valid;          //      Bits= 1
+
+  // Allows changing the OutputType parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_OutputType_valid;          //      Bits= 1
+
+  // Allows changing the SendQuality parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendQuality_valid;         //      Bits= 1
+
+  // Allows changing the SendExtInfo parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendExtInfo_valid;         //      Bits= 1
+
+  // Allows changing the SortIndex parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SortIndex_valid;           //      Bits= 1
+
+  // Allows changing the StoreInNvm parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_StoreInNVM_valid;          //      Bits= 1
+
+  uint16_t RadarCfg_MaxDistance_ro;           //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  uint16_t RadarCfg_MaxDistance_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // Sensor ID (0 to 7)
+  uint8_t RadarCfg_SensorID;                  //      Bits= 3
+
+  // Data output type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarCfg_OutputType;                //      Bits= 2
+
+  // Radar Tx output power reduction (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RadarPower;                //      Bits= 3
+
+  // Allows changing the CtrlRelay parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_CtrlRelay_valid;           //      Bits= 1
+
+  // Enables output of CtrlRelay message if CollDet is active
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_CtrlRelay;                 //      Bits= 1
+
+  // Enables output of quality message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendQuality;               //      Bits= 1
+
+  // Enables output of extended message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendExtInfo;               //      Bits= 1
+
+  // Object sort index
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarCfg_SortIndex;                 //      Bits= 3
+
+  // Store configuration in Nvm
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_StoreInNVM;                //      Bits= 1
+
+  // Allows changing the RCS_Threshold parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RCS_Threshold_Valid;       //      Bits= 1
+
+  // Standard or high sensitivity for cluster list output
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RCS_Threshold;             //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+} RadarConfiguration_t;
+
+// Radar configuration status
+// def @RadarState CAN Message (593  0x251)
+#define RadarState_IDE (0U)
+#define RadarState_DLC (8U)
+#define RadarState_CANID (0x251)
+#define RadarState_CYC (50U)
+// signal: @RadarState_MaxDistanceCfg_ro
+#define ARS408_CAN_DATABASE_CH5_RadarState_MaxDistanceCfg_ro_CovFactor (2)
+#define ARS408_CAN_DATABASE_CH5_RadarState_MaxDistanceCfg_ro_toS(x) ( (uint16_t) ((x) / (2)) )
+#define ARS408_CAN_DATABASE_CH5_RadarState_MaxDistanceCfg_ro_fromS(x) ( ((x) * (2)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+  // Gives the status of reading the radar configuration from EEPROM
+  //  1 : "successful"
+  //  0 : "pending"
+  // 
+  uint8_t RadarState_NVMReadStatus : 1;       //      Bits= 1
+
+  // Gives the status of writing the radar configuration from EEPROM
+  // 
+  uint8_t RadarState_NVMwriteStatus : 1;      //      Bits= 1
+
+  uint16_t RadarState_MaxDistanceCfg_ro;      //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  uint16_t RadarState_MaxDistanceCfg_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // 
+  // 
+  //  1 : "Voltage error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Voltage_Error : 1;       //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temporary error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temporary_Error : 1;     //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temperature error  active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temperature_Error : 1;   //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Interference detected"
+  //  0 : "No interference"
+  // 
+  uint8_t RadarState_Interference : 1;        //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Persistent error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Persistent_Error : 1;    //      Bits= 1
+
+  // Radar Tx output level (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RadarPowerCfg : 3;       //      Bits= 3
+
+  // Sensor ID (0 to 7)
+  //  7 : "ID 7"
+  //  6 : "ID 6"
+  //  5 : "ID 5"
+  //  4 : "ID 4"
+  //  3 : "ID 3"
+  //  2 : "ID 2"
+  //  1 : "ID 1"
+  //  0 : "ID 0"
+  // 
+  uint8_t RadarState_SensorID : 3;            //      Bits= 3
+
+  // Current sorting of object list
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarState_SortIndex : 3;           //      Bits= 3
+
+  // Status of control relay message output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_CtrlRelayCfg : 1;        //      Bits= 1
+
+  // Current output list type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarState_OutputTypeCfg : 2;       //      Bits= 2
+
+  // Status of quality information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendQualityCfg : 1;      //      Bits= 1
+
+  // Status of extended information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendExtInfoCfg : 1;      //      Bits= 1
+
+  // Status of motion input signals
+  //  3 : "Speed and yaw rate missing"
+  //  2 : "Yaw rate missing"
+  //  1 : "Speed missing"
+  //  0 : "Input ok"
+  // 
+  uint8_t RadarState_MotionRxState : 2;       //      Bits= 2
+
+  // Current sensitivity mode
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RCS_Threshold : 3;       //      Bits= 3
+
+#else
+
+  // Gives the status of reading the radar configuration from EEPROM
+  //  1 : "successful"
+  //  0 : "pending"
+  // 
+  uint8_t RadarState_NVMReadStatus;           //      Bits= 1
+
+  // Gives the status of writing the radar configuration from EEPROM
+  // 
+  uint8_t RadarState_NVMwriteStatus;          //      Bits= 1
+
+  uint16_t RadarState_MaxDistanceCfg_ro;      //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  uint16_t RadarState_MaxDistanceCfg_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // 
+  // 
+  //  1 : "Voltage error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Voltage_Error;           //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temporary error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temporary_Error;         //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temperature error  active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temperature_Error;       //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Interference detected"
+  //  0 : "No interference"
+  // 
+  uint8_t RadarState_Interference;            //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Persistent error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Persistent_Error;        //      Bits= 1
+
+  // Radar Tx output level (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RadarPowerCfg;           //      Bits= 3
+
+  // Sensor ID (0 to 7)
+  //  7 : "ID 7"
+  //  6 : "ID 6"
+  //  5 : "ID 5"
+  //  4 : "ID 4"
+  //  3 : "ID 3"
+  //  2 : "ID 2"
+  //  1 : "ID 1"
+  //  0 : "ID 0"
+  // 
+  uint8_t RadarState_SensorID;                //      Bits= 3
+
+  // Current sorting of object list
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarState_SortIndex;               //      Bits= 3
+
+  // Status of control relay message output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_CtrlRelayCfg;            //      Bits= 1
+
+  // Current output list type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarState_OutputTypeCfg;           //      Bits= 2
+
+  // Status of quality information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendQualityCfg;          //      Bits= 1
+
+  // Status of extended information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendExtInfoCfg;          //      Bits= 1
+
+  // Status of motion input signals
+  //  3 : "Speed and yaw rate missing"
+  //  2 : "Yaw rate missing"
+  //  1 : "Speed missing"
+  //  0 : "Input ok"
+  // 
+  uint8_t RadarState_MotionRxState;           //      Bits= 2
+
+  // Current sensitivity mode
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RCS_Threshold;           //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+} RadarState_t;
+
+// Filter configuration
+// def @FilterCfg CAN Message (594  0x252)
+#define FilterCfg_IDE (0U)
+#define FilterCfg_DLC (5U)
+#define FilterCfg_CANID (0x252)
+// signal: @FilterCfg_Min_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_Size_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterCfg_Min_RCS_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Min_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Min_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Min_Distance_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Min_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_Y_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterCfg_Min_X_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Min_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @FilterCfg_Max_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Max_Distance_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Max_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Max_RCS_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Max_Size_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterCfg_Max_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_Y_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterCfg_Max_X_ro
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterCfg_Max_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+  //  1 : "valid"
+  //  0 : "invalid"
+  // 
+  uint8_t FilterCfg_Valid : 1;                //      Bits= 1
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterCfg_Active : 1;               //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterCfg_Index : 4;                //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterCfg_Type : 1;                 //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#else
+
+  //  1 : "valid"
+  //  0 : "invalid"
+  // 
+  uint8_t FilterCfg_Valid;                    //      Bits= 1
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterCfg_Active;                   //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterCfg_Index;                    //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterCfg_Type;                     //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+} FilterCfg_t;
+
+// Header of filter configuration state
+// def @FilterState_Header CAN Message (595  0x253)
+#define FilterState_Header_IDE (0U)
+#define FilterState_Header_DLC (2U)
+#define FilterState_Header_CANID (0x253)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+  uint8_t FilterState_NofClusterFilterCfg : 5;   //      Bits= 5
+
+  uint8_t FilterState_NofObjectFilterCfg : 5;    //      Bits= 5
+
+#else
+
+  uint8_t FilterState_NofClusterFilterCfg;       //      Bits= 5
+
+  uint8_t FilterState_NofObjectFilterCfg;        //      Bits= 5
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+} FilterState_Header_t;
+
+// Filter configuration status
+// def @FilterState_Cfg CAN Message (596  0x254)
+#define FilterState_Cfg_IDE (0U)
+#define FilterState_Cfg_DLC (5U)
+#define FilterState_Cfg_CANID (0x254)
+// signal: @FilterState_Min_RCS_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Min_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Min_Distance_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Min_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Min_Y_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterState_Min_Size_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterState_Min_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_X_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Min_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @FilterState_Max_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Max_Distance_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Max_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Max_RCS_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Max_Size_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterState_Max_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_Y_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterState_Max_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_X_ro
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_FilterState_Max_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterState_Active : 1;               //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterState_Index : 4;                //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterState_Type : 1;                 //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterState_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_NofObj;              //      Bits=12
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_NofObj;              //      Bits=12
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#else
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterState_Active;                   //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterState_Index;                    //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterState_Type;                     //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterState_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_NofObj;              //      Bits=12
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_NofObj;              //      Bits=12
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+} FilterState_Cfg_t;
+
+// Device movement speed
+// def @SpeedInformation CAN Message (848  0x350)
+#define SpeedInformation_IDE (0U)
+#define SpeedInformation_DLC (2U)
+#define SpeedInformation_CANID (0x350)
+// signal: @RadarDevice_Speed_ro
+#define ARS408_CAN_DATABASE_CH5_RadarDevice_Speed_ro_CovFactor (0.020000)
+#define ARS408_CAN_DATABASE_CH5_RadarDevice_Speed_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.020000)) )
+#define ARS408_CAN_DATABASE_CH5_RadarDevice_Speed_ro_fromS(x) ( (((x) * (0.020000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+  uint16_t RadarDevice_Speed_ro;             //      Bits=13 Factor= 0.020000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t RadarDevice_Speed_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // Speed direction of the radar unit
+  //  3 : "reserved"
+  //  2 : "reverse"
+  //  1 : "forward"
+  //  0 : "standstill"
+  // 
+  uint8_t RadarDevice_SpeedDirection : 2;    //      Bits= 2
+
+#else
+
+  uint16_t RadarDevice_Speed_ro;             //      Bits=13 Factor= 0.020000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t RadarDevice_Speed_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // Speed direction of the radar unit
+  //  3 : "reserved"
+  //  2 : "reverse"
+  //  1 : "forward"
+  //  0 : "standstill"
+  // 
+  uint8_t RadarDevice_SpeedDirection;        //      Bits= 2
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+} SpeedInformation_t;
+
+// Device movement yaw rate
+// def @YawRateInformation CAN Message (849  0x351)
+#define YawRateInformation_IDE (0U)
+#define YawRateInformation_DLC (2U)
+#define YawRateInformation_CANID (0x351)
+// signal: @RadarDevice_YawRate_ro
+#define ARS408_CAN_DATABASE_CH5_RadarDevice_YawRate_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH5_RadarDevice_YawRate_ro_toS(x) ( (uint16_t) (((x) - (-327.680000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH5_RadarDevice_YawRate_ro_fromS(x) ( (((x) * (0.010000)) + (-327.680000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+  uint16_t RadarDevice_YawRate_ro;           //      Bits=16 Offset= -327.680000        Factor= 0.010000        Unit:'deg/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t RadarDevice_YawRate_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#else
+
+  uint16_t RadarDevice_YawRate_ro;           //      Bits=16 Offset= -327.680000        Factor= 0.010000        Unit:'deg/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t RadarDevice_YawRate_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+} YawRateInformation_t;
+
+// Collision detection configuration status
+// def @CollDetState CAN Message (1032 0x408)
+#define CollDetState_IDE (0U)
+#define CollDetState_DLC (4U)
+#define CollDetState_CANID (0x408)
+// signal: @CollDetState_MinDetectTime_ro
+#define ARS408_CAN_DATABASE_CH5_CollDetState_MinDetectTime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH5_CollDetState_MinDetectTime_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH5_CollDetState_MinDetectTime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetState_Active : 1;             //      Bits= 1
+
+  uint8_t CollDetState_NofRegions : 4;         //      Bits= 4
+
+  uint8_t CollDetState_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t CollDetState_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t CollDetState_MeasCounter;           //      Bits=16
+
+#else
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetState_Active;                 //      Bits= 1
+
+  uint8_t CollDetState_NofRegions;             //      Bits= 4
+
+  uint8_t CollDetState_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t CollDetState_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t CollDetState_MeasCounter;           //      Bits=16
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+} CollDetState_t;
+
+// Collision detection configuration
+// def @CollDetCfg CAN Message (1104 0x450)
+#define CollDetCfg_IDE (0U)
+#define CollDetCfg_DLC (2U)
+#define CollDetCfg_CANID (0x450)
+// signal: @CollDetCfg_MinDetectTime_ro
+#define ARS408_CAN_DATABASE_CH5_CollDetCfg_MinDetectTime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH5_CollDetCfg_MinDetectTime_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH5_CollDetCfg_MinDetectTime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+  //  1 : "Warn reset"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_WarningReset : 1;       //      Bits= 1
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetCfg_Activate : 1;           //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetCfg_MinTime_valid : 1;      //      Bits= 1
+
+  //  1 : "Clear all defined regions"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_ClearRegions : 1;       //      Bits= 1
+
+  uint8_t CollDetCfg_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t CollDetCfg_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#else
+
+  //  1 : "Warn reset"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_WarningReset;           //      Bits= 1
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetCfg_Activate;               //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetCfg_MinTime_valid;          //      Bits= 1
+
+  //  1 : "Clear all defined regions"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_ClearRegions;           //      Bits= 1
+
+  uint8_t CollDetCfg_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t CollDetCfg_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+} CollDetCfg_t;
+
+// Collision detection region configuration
+// def @CollDetRegionCfg CAN Message (1105 0x451)
+#define CollDetRegionCfg_IDE (0U)
+#define CollDetRegionCfg_DLC (8U)
+#define CollDetRegionCfg_CANID (0x451)
+// signal: @CollDetRegCfg_Point1X_ro
+#define ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point1X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point1X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point1X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegCfg_Point1Y_ro
+#define ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point1Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point1Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point1Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @CollDetRegCfg_Point2X_ro
+#define ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point2X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point2X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point2X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegCfg_Point2Y_ro
+#define ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point2Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point2Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_CollDetRegCfg_Point2Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetRegCfg_Activate : 1;            //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetRegCfg_Coordinates_valid : 1;   //      Bits= 1
+
+  uint8_t CollDetRegCfg_RegionID : 3;            //      Bits= 3
+
+  uint16_t CollDetRegCfg_Point1X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point1Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#else
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetRegCfg_Activate;                //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetRegCfg_Coordinates_valid;       //      Bits= 1
+
+  uint8_t CollDetRegCfg_RegionID;                //      Bits= 3
+
+  uint16_t CollDetRegCfg_Point1X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point1Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+} CollDetRegionCfg_t;
+
+// Collision detection region configuration and warning status
+// def @CollDetRegionState CAN Message (1106 0x452)
+#define CollDetRegionState_IDE (0U)
+#define CollDetRegionState_DLC (8U)
+#define CollDetRegionState_CANID (0x452)
+// signal: @CollDetRegState_Point1X_ro
+#define ARS408_CAN_DATABASE_CH5_CollDetRegState_Point1X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_CollDetRegState_Point1X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_CollDetRegState_Point1X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegState_Point1Y_ro
+#define ARS408_CAN_DATABASE_CH5_CollDetRegState_Point1Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_CollDetRegState_Point1Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_CollDetRegState_Point1Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @CollDetRegState_Point2X_ro
+#define ARS408_CAN_DATABASE_CH5_CollDetRegState_Point2X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_CollDetRegState_Point2X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_CollDetRegState_Point2X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegState_Point2Y_ro
+#define ARS408_CAN_DATABASE_CH5_CollDetRegState_Point2Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_CollDetRegState_Point2Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_CollDetRegState_Point2Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+  //  3 : "Warning deactivated"
+  //  2 : "Preliminary warning"
+  //  1 : "Object warning"
+  //  0 : "No warning"
+  // 
+  uint8_t CollDetRegState_WarningLevel : 2;   //      Bits= 2
+
+  uint8_t CollDetRegState_RegionID : 3;       //      Bits= 3
+
+  uint16_t CollDetRegState_Point1X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point1Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint8_t CollDetRegState_NofObjects;         //      Bits= 8
+
+#else
+
+  //  3 : "Warning deactivated"
+  //  2 : "Preliminary warning"
+  //  1 : "Object warning"
+  //  0 : "No warning"
+  // 
+  uint8_t CollDetRegState_WarningLevel;       //      Bits= 2
+
+  uint8_t CollDetRegState_RegionID;           //      Bits= 3
+
+  uint16_t CollDetRegState_Point1X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point1Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint8_t CollDetRegState_NofObjects;         //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+} CollDetRegionState_t;
+
+// Status information about Clusters
+// def @Cluster_0_Status CAN Message (1616 0x650)
+#define Cluster_0_Status_IDE (0U)
+#define Cluster_0_Status_DLC (5U)
+#define Cluster_0_Status_CANID (0x650)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+  // Number of valid Clusters in near range scan
+  uint8_t Cluster_NofClustersNear;           //      Bits= 8
+
+  // Number of valid Clusters in far range scan
+  uint8_t Cluster_NofClustersFar;            //      Bits= 8
+
+  // Measurement counter
+  uint16_t Cluster_MeasCounter;              //      Bits=16
+
+  // Cluster CAN Interface Version Number
+  uint8_t Cluster_InterfaceVersion : 4;      //      Bits= 4
+
+#else
+
+  // Number of valid Clusters in near range scan
+  uint8_t Cluster_NofClustersNear;           //      Bits= 8
+
+  // Number of valid Clusters in far range scan
+  uint8_t Cluster_NofClustersFar;            //      Bits= 8
+
+  // Measurement counter
+  uint16_t Cluster_MeasCounter;              //      Bits=16
+
+  // Cluster CAN Interface Version Number
+  uint8_t Cluster_InterfaceVersion;          //      Bits= 4
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+} Cluster_0_Status_t;
+
+// Status information about object
+// def @Obj_0_Status CAN Message (1626 0x65a)
+#define Obj_0_Status_IDE (0U)
+#define Obj_0_Status_DLC (4U)
+#define Obj_0_Status_CANID (0x65a)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+  // Number of Objects sent
+  uint8_t Obj_NofObjects;                    //      Bits= 8
+
+  // Measurement Counter
+  uint16_t Obj_MeasCounter;                  //      Bits=16
+
+  // Object CAN Interface Version Number
+  uint8_t Obj_InterfaceVersion : 4;          //      Bits= 4
+
+#else
+
+  // Number of Objects sent
+  uint8_t Obj_NofObjects;                    //      Bits= 8
+
+  // Measurement Counter
+  uint16_t Obj_MeasCounter;                  //      Bits=16
+
+  // Object CAN Interface Version Number
+  uint8_t Obj_InterfaceVersion;              //      Bits= 4
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+} Obj_0_Status_t;
+
+// General object information
+// def @Obj_1_General CAN Message (1627 0x65b)
+#define Obj_1_General_IDE (0U)
+#define Obj_1_General_DLC (8U)
+#define Obj_1_General_CANID (0x65b)
+// signal: @Obj_DistLong_ro
+#define ARS408_CAN_DATABASE_CH5_Obj_DistLong_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_Obj_DistLong_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_Obj_DistLong_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @Obj_DistLat_ro
+#define ARS408_CAN_DATABASE_CH5_Obj_DistLat_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_Obj_DistLat_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_Obj_DistLat_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @Obj_VrelLong_ro
+#define ARS408_CAN_DATABASE_CH5_Obj_VrelLong_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH5_Obj_VrelLong_ro_toS(x) ( (uint16_t) (((x) - (-128.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH5_Obj_VrelLong_ro_fromS(x) ( (((x) * (0.250000)) + (-128.000000)) )
+// signal: @Obj_VrelLat_ro
+#define ARS408_CAN_DATABASE_CH5_Obj_VrelLat_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH5_Obj_VrelLat_ro_toS(x) ( (uint16_t) (((x) - (-64.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH5_Obj_VrelLat_ro_fromS(x) ( (((x) * (0.250000)) + (-64.000000)) )
+// signal: @Obj_RCS_ro
+#define ARS408_CAN_DATABASE_CH5_Obj_RCS_ro_CovFactor (0.500000)
+#define ARS408_CAN_DATABASE_CH5_Obj_RCS_ro_toS(x) ( (uint8_t) (((x) - (-64.000000)) / (0.500000)) )
+#define ARS408_CAN_DATABASE_CH5_Obj_RCS_ro_fromS(x) ( (((x) * (0.500000)) + (-64.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_DistLong_ro;                  //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Obj_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t Obj_DistLat_ro;                   //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Obj_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLong_ro;                  //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLat_ro;                   //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // Object dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Obj_DynProp : 3;                   //      Bits= 3
+
+  uint8_t Obj_RCS_ro;                        //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Obj_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_DistLong_ro;                  //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Obj_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t Obj_DistLat_ro;                   //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Obj_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLong_ro;                  //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLat_ro;                   //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // Object dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Obj_DynProp;                       //      Bits= 3
+
+  uint8_t Obj_RCS_ro;                        //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Obj_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+} Obj_1_General_t;
+
+// Quality object information
+// def @Obj_2_Quality CAN Message (1628 0x65c)
+#define Obj_2_Quality_IDE (0U)
+#define Obj_2_Quality_DLC (7U)
+#define Obj_2_Quality_CANID (0x65c)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Object lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLat_rms : 5;               //      Bits= 5
+
+  // Object longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLong_rms : 5;              //      Bits= 5
+
+  // Object relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLat_rms : 5;               //      Bits= 5
+
+  // Object relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLong_rms : 5;              //      Bits= 5
+
+  // Object relative longitudinal acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLong_rms : 5;              //      Bits= 5
+
+  // Object orientation angle
+  //  31 : "Invalid"
+  //  30 : "<180.000 deg"
+  //  29 : "<126.881 deg"
+  //  28 : "<89.437 deg"
+  //  27 : "<63.044 deg"
+  //  26 : "<44.439 deg"
+  //  25 : "<31.325 deg"
+  //  24 : "<22.081 deg"
+  //  23 : "<15.565 deg"
+  //  22 : "<10.971 deg"
+  //  21 : "<7.734 deg"
+  //  20 : "<5.451 deg"
+  //  19 : "<3.843 deg"
+  //  18 : "<2.709 deg"
+  //  17 : "<1.909 deg"
+  //  16 : "<1.346 deg"
+  //  15 : "<0.949 deg"
+  //  14 : "<0.669 deg"
+  //  13 : "<0.471 deg"
+  //  12 : "<0.332 deg"
+  //  11 : "<0.234 deg"
+  //  10 : "<0.165 deg"
+  //  9 : "<0.116 deg"
+  //  8 : "<0.082 deg"
+  //  7 : "<0.058 deg"
+  //  6 : "<0.041 deg"
+  //  5 : "<0.029 deg"
+  //  4 : "<0.020 deg"
+  //  3 : "<0.014 deg"
+  //  2 : "<0.010 deg"
+  //  1 : "<0.007 deg"
+  //  0 : "<0.005 deg"
+  // 
+  uint8_t Obj_Orientation_rms : 5;           //      Bits= 5
+
+  // Object relative lateral acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLat_rms : 5;               //      Bits= 5
+
+  // Object measurement status
+  //  5 : "New from merge"
+  //  4 : "Deleted for merge"
+  //  3 : "Predicted"
+  //  2 : "Measured"
+  //  1 : "New"
+  //  0 : "Deleted"
+  // 
+  uint8_t Obj_MeasState : 3;                 //      Bits= 3
+
+  // Object probability of existence
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Obj_ProbOfExist : 3;               //      Bits= 3
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Object lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLat_rms;                   //      Bits= 5
+
+  // Object longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLong_rms;                  //      Bits= 5
+
+  // Object relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLat_rms;                   //      Bits= 5
+
+  // Object relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLong_rms;                  //      Bits= 5
+
+  // Object relative longitudinal acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLong_rms;                  //      Bits= 5
+
+  // Object orientation angle
+  //  31 : "Invalid"
+  //  30 : "<180.000 deg"
+  //  29 : "<126.881 deg"
+  //  28 : "<89.437 deg"
+  //  27 : "<63.044 deg"
+  //  26 : "<44.439 deg"
+  //  25 : "<31.325 deg"
+  //  24 : "<22.081 deg"
+  //  23 : "<15.565 deg"
+  //  22 : "<10.971 deg"
+  //  21 : "<7.734 deg"
+  //  20 : "<5.451 deg"
+  //  19 : "<3.843 deg"
+  //  18 : "<2.709 deg"
+  //  17 : "<1.909 deg"
+  //  16 : "<1.346 deg"
+  //  15 : "<0.949 deg"
+  //  14 : "<0.669 deg"
+  //  13 : "<0.471 deg"
+  //  12 : "<0.332 deg"
+  //  11 : "<0.234 deg"
+  //  10 : "<0.165 deg"
+  //  9 : "<0.116 deg"
+  //  8 : "<0.082 deg"
+  //  7 : "<0.058 deg"
+  //  6 : "<0.041 deg"
+  //  5 : "<0.029 deg"
+  //  4 : "<0.020 deg"
+  //  3 : "<0.014 deg"
+  //  2 : "<0.010 deg"
+  //  1 : "<0.007 deg"
+  //  0 : "<0.005 deg"
+  // 
+  uint8_t Obj_Orientation_rms;               //      Bits= 5
+
+  // Object relative lateral acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLat_rms;                   //      Bits= 5
+
+  // Object measurement status
+  //  5 : "New from merge"
+  //  4 : "Deleted for merge"
+  //  3 : "Predicted"
+  //  2 : "Measured"
+  //  1 : "New"
+  //  0 : "Deleted"
+  // 
+  uint8_t Obj_MeasState;                     //      Bits= 3
+
+  // Object probability of existence
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Obj_ProbOfExist;                   //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+} Obj_2_Quality_t;
+
+// Extended object information
+// def @Obj_3_Extended CAN Message (1629 0x65d)
+#define Obj_3_Extended_IDE (0U)
+#define Obj_3_Extended_DLC (8U)
+#define Obj_3_Extended_CANID (0x65d)
+// signal: @Obj_ArelLong_ro
+#define ARS408_CAN_DATABASE_CH5_Obj_ArelLong_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH5_Obj_ArelLong_ro_toS(x) ( (uint16_t) (((x) - (-10.000000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH5_Obj_ArelLong_ro_fromS(x) ( (((x) * (0.010000)) + (-10.000000)) )
+// signal: @Obj_ArelLat_ro
+#define ARS408_CAN_DATABASE_CH5_Obj_ArelLat_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH5_Obj_ArelLat_ro_toS(x) ( (uint16_t) (((x) - (-2.500000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH5_Obj_ArelLat_ro_fromS(x) ( (((x) * (0.010000)) + (-2.500000)) )
+// signal: @Obj_OrientationAngle_ro
+#define ARS408_CAN_DATABASE_CH5_Obj_OrientationAngle_ro_CovFactor (0.400000)
+#define ARS408_CAN_DATABASE_CH5_Obj_OrientationAngle_ro_toS(x) ( (uint16_t) (((x) - (-180.000000)) / (0.400000)) )
+#define ARS408_CAN_DATABASE_CH5_Obj_OrientationAngle_ro_fromS(x) ( (((x) * (0.400000)) + (-180.000000)) )
+// signal: @Obj_Length_ro
+#define ARS408_CAN_DATABASE_CH5_Obj_Length_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_Obj_Length_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_Obj_Length_ro_fromS(x) ( (((x) * (0.200000)) + (0.000000)) )
+// signal: @Obj_Width_ro
+#define ARS408_CAN_DATABASE_CH5_Obj_Width_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_Obj_Width_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_Obj_Width_ro_fromS(x) ( (((x) * (0.200000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_ArelLong_ro;                  //      Bits=11 Offset= -10.000000         Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t Obj_ArelLat_ro;                   //      Bits= 9 Offset= -2.500000          Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // Object classification
+  //  7 : "Description for the value '0x7'"
+  //  6 : "Wide"
+  //  5 : "Bicycle"
+  //  4 : "Motorcycle"
+  //  3 : "Pedestrian"
+  //  2 : "Truck"
+  //  1 : "Car"
+  //  0 : "Point"
+  // 
+  uint8_t Obj_Class : 3;                     //      Bits= 3
+
+  uint16_t Obj_OrientationAngle_ro;          //      Bits=10 Offset= -180.000000        Factor= 0.400000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Obj_OrientationAngle_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint8_t Obj_Length_ro;                     //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Obj_Length_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint8_t Obj_Width_ro;                      //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Obj_Width_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_ArelLong_ro;                  //      Bits=11 Offset= -10.000000         Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t Obj_ArelLat_ro;                   //      Bits= 9 Offset= -2.500000          Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // Object classification
+  //  7 : "Description for the value '0x7'"
+  //  6 : "Wide"
+  //  5 : "Bicycle"
+  //  4 : "Motorcycle"
+  //  3 : "Pedestrian"
+  //  2 : "Truck"
+  //  1 : "Car"
+  //  0 : "Point"
+  // 
+  uint8_t Obj_Class;                         //      Bits= 3
+
+  uint16_t Obj_OrientationAngle_ro;          //      Bits=10 Offset= -180.000000        Factor= 0.400000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Obj_OrientationAngle_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint8_t Obj_Length_ro;                     //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Obj_Length_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint8_t Obj_Width_ro;                      //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Obj_Width_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+} Obj_3_Extended_t;
+
+// Collision detection warning object information
+// def @Obj_4_Warning CAN Message (1630 0x65e)
+#define Obj_4_Warning_IDE (0U)
+#define Obj_4_Warning_DLC (4U)
+#define Obj_4_Warning_CANID (0x65e)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Region bit field with collision detection
+  uint8_t Obj_CollDetRegionBitfield;         //      Bits= 8
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Region bit field with collision detection
+  uint8_t Obj_CollDetRegionBitfield;         //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+} Obj_4_Warning_t;
+
+// Firmware version
+// def @VersionID CAN Message (1872 0x750)
+#define VersionID_IDE (0U)
+#define VersionID_DLC (4U)
+#define VersionID_CANID (0x750)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+  // Major Release Number
+  uint8_t Version_MajorRelease;              //      Bits= 8
+
+  // Minor Release Number
+  uint8_t Version_MinorRelease;              //      Bits= 8
+
+  // Patch Level
+  uint8_t Version_PatchLevel;                //      Bits= 8
+
+  // 
+  // 
+  //  1 : "Power Reduction is demanded"
+  //  0 : "International Version"
+  // 
+  uint8_t Version_CountryCode : 1;           //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Description for the value '0x1'"
+  //  0 : "Standard Range 196m-260m"
+  // 
+  uint8_t Version_ExtendedRange : 1;         //      Bits= 1
+
+#else
+
+  // Major Release Number
+  uint8_t Version_MajorRelease;              //      Bits= 8
+
+  // Minor Release Number
+  uint8_t Version_MinorRelease;              //      Bits= 8
+
+  // Patch Level
+  uint8_t Version_PatchLevel;                //      Bits= 8
+
+  // 
+  // 
+  //  1 : "Power Reduction is demanded"
+  //  0 : "International Version"
+  // 
+  uint8_t Version_CountryCode;               //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Description for the value '0x1'"
+  //  0 : "Standard Range 196m-260m"
+  // 
+  uint8_t Version_ExtendedRange;             //      Bits= 1
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+} VersionID_t;
+
+// General Cluster information
+// def @Cluster_1_General CAN Message (1873 0x751)
+#define Cluster_1_General_IDE (0U)
+#define Cluster_1_General_DLC (8U)
+#define Cluster_1_General_CANID (0x751)
+// signal: @Cluster_DistLong_ro
+#define ARS408_CAN_DATABASE_CH5_Cluster_DistLong_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_Cluster_DistLong_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_Cluster_DistLong_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @Cluster_DistLat_ro
+#define ARS408_CAN_DATABASE_CH5_Cluster_DistLat_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH5_Cluster_DistLat_ro_toS(x) ( (uint16_t) (((x) - (-102.300000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH5_Cluster_DistLat_ro_fromS(x) ( (((x) * (0.200000)) + (-102.300000)) )
+// signal: @Cluster_VrelLong_ro
+#define ARS408_CAN_DATABASE_CH5_Cluster_VrelLong_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH5_Cluster_VrelLong_ro_toS(x) ( (uint16_t) (((x) - (-128.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH5_Cluster_VrelLong_ro_fromS(x) ( (((x) * (0.250000)) + (-128.000000)) )
+// signal: @Cluster_VrelLat_ro
+#define ARS408_CAN_DATABASE_CH5_Cluster_VrelLat_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH5_Cluster_VrelLat_ro_toS(x) ( (uint16_t) (((x) - (-64.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH5_Cluster_VrelLat_ro_fromS(x) ( (((x) * (0.250000)) + (-64.000000)) )
+// signal: @Cluster_RCS_ro
+#define ARS408_CAN_DATABASE_CH5_Cluster_RCS_ro_CovFactor (0.500000)
+#define ARS408_CAN_DATABASE_CH5_Cluster_RCS_ro_toS(x) ( (uint8_t) (((x) - (-64.000000)) / (0.500000)) )
+#define ARS408_CAN_DATABASE_CH5_Cluster_RCS_ro_fromS(x) ( (((x) * (0.500000)) + (-64.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  uint16_t Cluster_DistLong_ro;              //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t Cluster_DistLat_ro;               //      Bits=10 Offset= -102.300000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLong_ro;              //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLat_ro;               //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // Cluster dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Cluster_DynProp : 3;               //      Bits= 3
+
+  uint8_t Cluster_RCS_ro;                    //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Cluster_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#else
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  uint16_t Cluster_DistLong_ro;              //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t Cluster_DistLat_ro;               //      Bits=10 Offset= -102.300000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLong_ro;              //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLat_ro;               //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+  // Cluster dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Cluster_DynProp;                   //      Bits= 3
+
+  uint8_t Cluster_RCS_ro;                    //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+  sigfloat_t Cluster_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH5_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+} Cluster_1_General_t;
+
+// Quality Cluster information
+// def @Cluster_2_Quality CAN Message (1874 0x752)
+#define Cluster_2_Quality_IDE (0U)
+#define Cluster_2_Quality_DLC (5U)
+#define Cluster_2_Quality_CANID (0x752)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  // Cluster lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLat_rms : 5;           //      Bits= 5 Unit:'m'
+
+  // Cluster longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLong_rms : 5;          //      Bits= 5 Unit:'m'
+
+  // Cluster relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLat_rms : 5;           //      Bits= 5 Unit:'m/s'
+
+  // Cluster relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLong_rms : 5;          //      Bits= 5 Unit:'m/s'
+
+  // Cluster false alarm probability
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Cluster_PdH0 : 3;                  //      Bits= 3
+
+  // Cluster Doppler ambiguity status
+  //  4 : "Stationary candidate"
+  //  3 : "Unambiguous"
+  //  2 : "Staggered ramp"
+  //  1 : "Ambiguous"
+  //  0 : "Invalid"
+  // 
+  uint8_t Cluster_AmbigState : 3;            //      Bits= 3
+
+  // Cluster invalid state
+  //  17 : "Valid suspicious angle"
+  //  16 : "Valid multi-target"
+  //  15 : "Valid near above 95 m"
+  //  14 : "Invalid harmonics "
+  //  13 : "reserved"
+  //  12 : "Valid artefact "
+  //  11 : "Valid but no local maximum"
+  //  10 : "Valid 50 deg artefact"
+  //  9 : "Valid child"
+  //  8 : "Valid with elevation"
+  //  7 : "Invalid outside field of view"
+  //  6 : "Invalid mirror"
+  //  5 : "reserved"
+  //  4 : "Valid with low RCS"
+  //  3 : "Invalid far not confirmed"
+  //  2 : "Invalid nearfield"
+  //  1 : "Invalid with too low RCS"
+  //  0 : "Valid"
+  // 
+  uint8_t Cluster_InvalidState : 5;          //      Bits= 5
+
+#else
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  // Cluster lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLat_rms;               //      Bits= 5 Unit:'m'
+
+  // Cluster longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLong_rms;              //      Bits= 5 Unit:'m'
+
+  // Cluster relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLat_rms;               //      Bits= 5 Unit:'m/s'
+
+  // Cluster relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLong_rms;              //      Bits= 5 Unit:'m/s'
+
+  // Cluster false alarm probability
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Cluster_PdH0;                      //      Bits= 3
+
+  // Cluster Doppler ambiguity status
+  //  4 : "Stationary candidate"
+  //  3 : "Unambiguous"
+  //  2 : "Staggered ramp"
+  //  1 : "Ambiguous"
+  //  0 : "Invalid"
+  // 
+  uint8_t Cluster_AmbigState;                //      Bits= 3
+
+  // Cluster invalid state
+  //  17 : "Valid suspicious angle"
+  //  16 : "Valid multi-target"
+  //  15 : "Valid near above 95 m"
+  //  14 : "Invalid harmonics "
+  //  13 : "reserved"
+  //  12 : "Valid artefact "
+  //  11 : "Valid but no local maximum"
+  //  10 : "Valid 50 deg artefact"
+  //  9 : "Valid child"
+  //  8 : "Valid with elevation"
+  //  7 : "Invalid outside field of view"
+  //  6 : "Invalid mirror"
+  //  5 : "reserved"
+  //  4 : "Valid with low RCS"
+  //  3 : "Invalid far not confirmed"
+  //  2 : "Invalid nearfield"
+  //  1 : "Invalid with too low RCS"
+  //  0 : "Valid"
+  // 
+  uint8_t Cluster_InvalidState;              //      Bits= 5
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH5_USE_DIAG_MONITORS
+
+} Cluster_2_Quality_t;
+
+// Function signatures
+
+uint32_t Unpack_CollDetRelayCtrl_ARS408_can_database_ch5(CollDetRelayCtrl_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch5(CollDetRelayCtrl_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch5(CollDetRelayCtrl_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_RadarConfiguration_ARS408_can_database_ch5(RadarConfiguration_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch5(RadarConfiguration_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch5(RadarConfiguration_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_RadarState_ARS408_can_database_ch5(RadarState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+uint32_t Pack_RadarState_ARS408_can_database_ch5(RadarState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_RadarState_ARS408_can_database_ch5(RadarState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_FilterCfg_ARS408_can_database_ch5(FilterCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+uint32_t Pack_FilterCfg_ARS408_can_database_ch5(FilterCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterCfg_ARS408_can_database_ch5(FilterCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Header_ARS408_can_database_ch5(FilterState_Header_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch5(FilterState_Header_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch5(FilterState_Header_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Cfg_ARS408_can_database_ch5(FilterState_Cfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch5(FilterState_Cfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch5(FilterState_Cfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_SpeedInformation_ARS408_can_database_ch5(SpeedInformation_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch5(SpeedInformation_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch5(SpeedInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_YawRateInformation_ARS408_can_database_ch5(YawRateInformation_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch5(YawRateInformation_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch5(YawRateInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetState_ARS408_can_database_ch5(CollDetState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+uint32_t Pack_CollDetState_ARS408_can_database_ch5(CollDetState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetState_ARS408_can_database_ch5(CollDetState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetCfg_ARS408_can_database_ch5(CollDetCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch5(CollDetCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch5(CollDetCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionCfg_ARS408_can_database_ch5(CollDetRegionCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch5(CollDetRegionCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch5(CollDetRegionCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionState_ARS408_can_database_ch5(CollDetRegionState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch5(CollDetRegionState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch5(CollDetRegionState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_0_Status_ARS408_can_database_ch5(Cluster_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch5(Cluster_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch5(Cluster_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_0_Status_ARS408_can_database_ch5(Obj_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch5(Obj_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch5(Obj_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_1_General_ARS408_can_database_ch5(Obj_1_General_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch5(Obj_1_General_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch5(Obj_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_2_Quality_ARS408_can_database_ch5(Obj_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch5(Obj_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch5(Obj_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_3_Extended_ARS408_can_database_ch5(Obj_3_Extended_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch5(Obj_3_Extended_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch5(Obj_3_Extended_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_4_Warning_ARS408_can_database_ch5(Obj_4_Warning_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch5(Obj_4_Warning_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch5(Obj_4_Warning_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_VersionID_ARS408_can_database_ch5(VersionID_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+uint32_t Pack_VersionID_ARS408_can_database_ch5(VersionID_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_VersionID_ARS408_can_database_ch5(VersionID_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_1_General_ARS408_can_database_ch5(Cluster_1_General_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch5(Cluster_1_General_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch5(Cluster_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_2_Quality_ARS408_can_database_ch5(Cluster_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch5(Cluster_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch5(Cluster_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH5_USE_CANSTRUCT
+
+#ifdef __cplusplus
+}
+#endif

+ 96 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch6-binutil.c

@@ -0,0 +1,96 @@
+#include "ars408_can_database_ch6-binutil.h"
+
+#ifdef __DEF_ARS408_CAN_DATABASE_CH6__
+
+ars408_can_database_ch6_rx_t ars408_can_database_ch6_rx;
+
+#endif // __DEF_ARS408_CAN_DATABASE_CH6__
+
+uint32_t ars408_can_database_ch6_Receive(ars408_can_database_ch6_rx_t* _m, const uint8_t* _d, uint32_t _id, uint8_t dlc_)
+{
+ uint32_t recid = 0;
+ if ((_id >= 0x8U) && (_id < 0x461U)) {
+  if ((_id >= 0x8U) && (_id < 0x264U)) {
+   if ((_id >= 0x8U) && (_id < 0x261U)) {
+    if (_id == 0x8U) {
+     recid = Unpack_CollDetRelayCtrl_ARS408_can_database_ch6(&(_m->CollDetRelayCtrl), _d, dlc_);
+    } else if (_id == 0x260U) {
+     recid = Unpack_RadarConfiguration_ARS408_can_database_ch6(&(_m->RadarConfiguration), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x261U) {
+     recid = Unpack_RadarState_ARS408_can_database_ch6(&(_m->RadarState), _d, dlc_);
+    } else {
+     if (_id == 0x262U) {
+      recid = Unpack_FilterCfg_ARS408_can_database_ch6(&(_m->FilterCfg), _d, dlc_);
+     } else if (_id == 0x263U) {
+      recid = Unpack_FilterState_Header_ARS408_can_database_ch6(&(_m->FilterState_Header), _d, dlc_);
+     }
+    }
+   }
+  } else {
+   if ((_id >= 0x264U) && (_id < 0x361U)) {
+    if (_id == 0x264U) {
+     recid = Unpack_FilterState_Cfg_ARS408_can_database_ch6(&(_m->FilterState_Cfg), _d, dlc_);
+    } else if (_id == 0x360U) {
+     recid = Unpack_SpeedInformation_ARS408_can_database_ch6(&(_m->SpeedInformation), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x361U) {
+     recid = Unpack_YawRateInformation_ARS408_can_database_ch6(&(_m->YawRateInformation), _d, dlc_);
+    } else {
+     if (_id == 0x408U) {
+      recid = Unpack_CollDetState_ARS408_can_database_ch6(&(_m->CollDetState), _d, dlc_);
+     } else if (_id == 0x460U) {
+      recid = Unpack_CollDetCfg_ARS408_can_database_ch6(&(_m->CollDetCfg), _d, dlc_);
+     }
+    }
+   }
+  }
+ } else {
+  if ((_id >= 0x461U) && (_id < 0x66CU)) {
+   if ((_id >= 0x461U) && (_id < 0x660U)) {
+    if (_id == 0x461U) {
+     recid = Unpack_CollDetRegionCfg_ARS408_can_database_ch6(&(_m->CollDetRegionCfg), _d, dlc_);
+    } else if (_id == 0x462U) {
+     recid = Unpack_CollDetRegionState_ARS408_can_database_ch6(&(_m->CollDetRegionState), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x660U) {
+     recid = Unpack_Cluster_0_Status_ARS408_can_database_ch6(&(_m->Cluster_0_Status), _d, dlc_);
+    } else {
+     if (_id == 0x66AU) {
+      recid = Unpack_Obj_0_Status_ARS408_can_database_ch6(&(_m->Obj_0_Status), _d, dlc_);
+     } else if (_id == 0x66BU) {
+      recid = Unpack_Obj_1_General_ARS408_can_database_ch6(&(_m->Obj_1_General), _d, dlc_);
+     }
+    }
+   }
+  } else {
+   if ((_id >= 0x66CU) && (_id < 0x760U)) {
+    if (_id == 0x66CU) {
+     recid = Unpack_Obj_2_Quality_ARS408_can_database_ch6(&(_m->Obj_2_Quality), _d, dlc_);
+    } else {
+     if (_id == 0x66DU) {
+      recid = Unpack_Obj_3_Extended_ARS408_can_database_ch6(&(_m->Obj_3_Extended), _d, dlc_);
+     } else if (_id == 0x66EU) {
+      recid = Unpack_Obj_4_Warning_ARS408_can_database_ch6(&(_m->Obj_4_Warning), _d, dlc_);
+     }
+    }
+   } else {
+    if (_id == 0x760U) {
+     recid = Unpack_VersionID_ARS408_can_database_ch6(&(_m->VersionID), _d, dlc_);
+    } else {
+     if (_id == 0x761U) {
+      recid = Unpack_Cluster_1_General_ARS408_can_database_ch6(&(_m->Cluster_1_General), _d, dlc_);
+     } else if (_id == 0x762U) {
+      recid = Unpack_Cluster_2_Quality_ARS408_can_database_ch6(&(_m->Cluster_2_Quality), _d, dlc_);
+     }
+    }
+   }
+  }
+ }
+
+ return recid;
+}
+

+ 53 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch6-binutil.h

@@ -0,0 +1,53 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "dbccodeconf.h"
+
+#include "ars408_can_database_ch6.h"
+
+// This version definition comes from main driver version and
+// can be compared in user code space for strict compatibility test
+#define VER_ARS408_CAN_DATABASE_CH6_MAJ (0U)
+#define VER_ARS408_CAN_DATABASE_CH6_MIN (0U)
+
+typedef struct
+{
+  CollDetRelayCtrl_t CollDetRelayCtrl;
+  RadarConfiguration_t RadarConfiguration;
+  RadarState_t RadarState;
+  FilterCfg_t FilterCfg;
+  FilterState_Header_t FilterState_Header;
+  FilterState_Cfg_t FilterState_Cfg;
+  SpeedInformation_t SpeedInformation;
+  YawRateInformation_t YawRateInformation;
+  CollDetState_t CollDetState;
+  CollDetCfg_t CollDetCfg;
+  CollDetRegionCfg_t CollDetRegionCfg;
+  CollDetRegionState_t CollDetRegionState;
+  Cluster_0_Status_t Cluster_0_Status;
+  Obj_0_Status_t Obj_0_Status;
+  Obj_1_General_t Obj_1_General;
+  Obj_2_Quality_t Obj_2_Quality;
+  Obj_3_Extended_t Obj_3_Extended;
+  Obj_4_Warning_t Obj_4_Warning;
+  VersionID_t VersionID;
+  Cluster_1_General_t Cluster_1_General;
+  Cluster_2_Quality_t Cluster_2_Quality;
+} ars408_can_database_ch6_rx_t;
+
+// There is no any TX mapped massage.
+
+uint32_t ars408_can_database_ch6_Receive(ars408_can_database_ch6_rx_t* m, const uint8_t* d, uint32_t msgid, uint8_t dlc);
+
+#ifdef __DEF_ARS408_CAN_DATABASE_CH6__
+
+extern ars408_can_database_ch6_rx_t ars408_can_database_ch6_rx;
+
+#endif // __DEF_ARS408_CAN_DATABASE_CH6__
+
+#ifdef __cplusplus
+}
+#endif

+ 109 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch6-config.h

@@ -0,0 +1,109 @@
+#pragma once
+
+/* include common dbccode configurations */
+#include "dbccodeconf.h"
+
+
+/* ------------------------------------------------------------------------- *
+  This define enables using CAN message structs with bit-fielded signals
+  layout.
+
+  Note(!): bit-feild was not tested properly. */
+
+/* #define ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL */
+
+
+/* ------------------------------------------------------------------------- *
+  This macro enables using CAN message descriptive struct packing functions
+  (by default signature of pack function intakes a few simple typed params
+  for loading data, len, etc). To compile you need to define the struct
+  __CoderDbcCanFrame_t__ which must have fields:
+
+    u32 MsgId (CAN Frame message ID)
+    u8 DLC (CAN Frame payload length field)
+    u8 Data[8] (CAN Frame payload data)
+    u8 IDE (CAN Frame Extended (1) / Standard (0) ID type)
+
+  This struct definition have to be placed (or be included) in dbccodeconf.h */
+
+/* #define ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT */
+
+
+/* ------------------------------------------------------------------------- *
+  All the signals which have values of factor != 1 or offset != 0
+  will be named in message struct with posfix '_ro'. Pack to payload
+  operations will be made on this signal value as well as unpack from payload.
+
+  USE_SIGFLOAT macro makes some difference:
+
+  1. All the '_ro' fields will have a pair field with '_phys' postfix.
+  If only offset != 0 is true then the type of '_phys' signal is the same
+  as '_ro' signal. In other case the type will be @sigfloat_t which
+  have to be defined in user dbccodeconf.h
+
+  2. In pack function '_ro' signal will be rewritten by '_phys' signal, which
+  requires from user to use ONLY '_phys' signal for packing frame
+
+  3. In unpack function '_phys' signal will be written by '_ro' signal.
+  User have to use '_phys' signal to read physical value. */
+
+/* #define ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT */
+
+
+/* ------------------------------------------------------------------------- *
+  Note(!) that the "canmonitorutil.h" must be accessed in include path:
+
+  This macro adds:
+
+  - monitor field @mon1 to message struct
+
+  - capture system tick in unpack function and save value to mon1 field
+  to provide to user better missing frame detection code. For this case
+  user must provide function declared in canmonitorutil.h - GetSysTick()
+  which may return 1ms uptime.
+
+  - calling function FMon_***  (from 'fmon' driver) inside unpack function
+  which is empty by default and have to be filled by user if
+  tests for DLC, rolling, checksum are necessary */
+
+/* #define ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS */
+
+
+/* ------------------------------------------------------------------------- *
+  When monitor using is enabled (ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS) and define below
+  uncommented, additional signal will be added to message struct. ***_expt:
+  expected rolling counter, to perform monitoring rolling counter sequence
+  automatically (result may be tested in dedicated Fmon_*** function) */
+
+/* #define ARS408_CAN_DATABASE_CH6_AUTO_ROLL */
+
+
+/* ------------------------------------------------------------------------- *
+  When monitor using is enabled (ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS) and define below
+  uncommented, frame checksum signal may be handled automatically.
+
+  The signal which may be marked as checksum signal must have substring
+  with next format:
+    <Checksum:XOR8:3>
+
+  where:
+
+  - "Checksum": constant marker word
+
+  - "XOR8": type of method, this text will be passed to GetFrameHash
+  (canmonitorutil.h) function as is, the best use case is to define 'enum
+  DbcCanCrcMethods' in canmonitorutil.h file with all possible
+  checksum algorithms (e.g. XOR8, XOR4 etc)
+
+  - "3": optional value that will be passed to GetFrameHash as integer value
+
+  Function GetFrameHash have to be implemented by user
+
+  In pack function checksum signal will be calculated automatically
+  and loaded to payload
+
+  In unpack function checksum signal is checked with calculated.
+  (result may be tested in dedicated Fmon_*** function).
+
+/* #define ARS408_CAN_DATABASE_CH6_AUTO_CSM */
+

+ 115 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch6-fmon.c

@@ -0,0 +1,115 @@
+#include "ars408_can_database_ch6-fmon.h"
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+/*
+Put the monitor function content here, keep in mind -
+next generation will completely clear all manually added code (!)
+*/
+
+void FMon_CollDetRelayCtrl_ars408_can_database_ch6(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_RadarConfiguration_ars408_can_database_ch6(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_RadarState_ars408_can_database_ch6(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterCfg_ars408_can_database_ch6(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterState_Header_ars408_can_database_ch6(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterState_Cfg_ars408_can_database_ch6(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_SpeedInformation_ars408_can_database_ch6(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_YawRateInformation_ars408_can_database_ch6(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetState_ars408_can_database_ch6(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetCfg_ars408_can_database_ch6(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetRegionCfg_ars408_can_database_ch6(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetRegionState_ars408_can_database_ch6(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_0_Status_ars408_can_database_ch6(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_0_Status_ars408_can_database_ch6(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_1_General_ars408_can_database_ch6(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_2_Quality_ars408_can_database_ch6(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_3_Extended_ars408_can_database_ch6(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_4_Warning_ars408_can_database_ch6(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_VersionID_ars408_can_database_ch6(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_1_General_ars408_can_database_ch6(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_2_Quality_ars408_can_database_ch6(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS

+ 49 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch6-fmon.h

@@ -0,0 +1,49 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// DBC file version
+#define VER_ARS408_CAN_DATABASE_CH6_MAJ_FMON (0U)
+#define VER_ARS408_CAN_DATABASE_CH6_MIN_FMON (0U)
+
+#include "ars408_can_database_ch6-config.h"
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+#include "canmonitorutil.h"
+/*
+This file contains the prototypes of all the functions that will be called
+from each Unpack_*name* function to detect DBC related errors
+It is the user responsibility to defined these functions in the
+separated .c file. If it won't be done the linkage error will happen
+*/
+
+void FMon_CollDetRelayCtrl_ars408_can_database_ch6(FrameMonitor_t* _mon);
+void FMon_RadarConfiguration_ars408_can_database_ch6(FrameMonitor_t* _mon);
+void FMon_RadarState_ars408_can_database_ch6(FrameMonitor_t* _mon);
+void FMon_FilterCfg_ars408_can_database_ch6(FrameMonitor_t* _mon);
+void FMon_FilterState_Header_ars408_can_database_ch6(FrameMonitor_t* _mon);
+void FMon_FilterState_Cfg_ars408_can_database_ch6(FrameMonitor_t* _mon);
+void FMon_SpeedInformation_ars408_can_database_ch6(FrameMonitor_t* _mon);
+void FMon_YawRateInformation_ars408_can_database_ch6(FrameMonitor_t* _mon);
+void FMon_CollDetState_ars408_can_database_ch6(FrameMonitor_t* _mon);
+void FMon_CollDetCfg_ars408_can_database_ch6(FrameMonitor_t* _mon);
+void FMon_CollDetRegionCfg_ars408_can_database_ch6(FrameMonitor_t* _mon);
+void FMon_CollDetRegionState_ars408_can_database_ch6(FrameMonitor_t* _mon);
+void FMon_Cluster_0_Status_ars408_can_database_ch6(FrameMonitor_t* _mon);
+void FMon_Obj_0_Status_ars408_can_database_ch6(FrameMonitor_t* _mon);
+void FMon_Obj_1_General_ars408_can_database_ch6(FrameMonitor_t* _mon);
+void FMon_Obj_2_Quality_ars408_can_database_ch6(FrameMonitor_t* _mon);
+void FMon_Obj_3_Extended_ars408_can_database_ch6(FrameMonitor_t* _mon);
+void FMon_Obj_4_Warning_ars408_can_database_ch6(FrameMonitor_t* _mon);
+void FMon_VersionID_ars408_can_database_ch6(FrameMonitor_t* _mon);
+void FMon_Cluster_1_General_ars408_can_database_ch6(FrameMonitor_t* _mon);
+void FMon_Cluster_2_Quality_ars408_can_database_ch6(FrameMonitor_t* _mon);
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+#ifdef __cplusplus
+}
+#endif

+ 1841 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch6.c

@@ -0,0 +1,1841 @@
+#include "ars408_can_database_ch6.h"
+
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+// Function prototypes to be called each time CAN frame is unpacked
+// FMon function may detect RC, CRC or DLC violation 
+#include "ars408_can_database_ch6-fmon.h"
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+
+uint32_t Unpack_CollDetRelayCtrl_ARS408_can_database_ch6(CollDetRelayCtrl_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRelayCtrl_Param = (_d[0] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRelayCtrl_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRelayCtrl_ars408_can_database_ch6(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+ return CollDetRelayCtrl_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch6(CollDetRelayCtrl_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRelayCtrl_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->CollDetRelayCtrl_Param & (0xFFU));
+
+  cframe->MsgId = CollDetRelayCtrl_CANID;
+  cframe->DLC = CollDetRelayCtrl_DLC;
+  cframe->IDE = CollDetRelayCtrl_IDE;
+  return CollDetRelayCtrl_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch6(CollDetRelayCtrl_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRelayCtrl_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->CollDetRelayCtrl_Param & (0xFFU));
+
+  *_len = CollDetRelayCtrl_DLC;
+  *_ide = CollDetRelayCtrl_IDE;
+  return CollDetRelayCtrl_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_RadarConfiguration_ARS408_can_database_ch6(RadarConfiguration_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarCfg_MaxDistance_valid = (_d[0] & (0x01U));
+  _m->RadarCfg_SensorID_valid = ((_d[0] >> 1) & (0x01U));
+  _m->RadarCfg_RadarPower_valid = ((_d[0] >> 2) & (0x01U));
+  _m->RadarCfg_OutputType_valid = ((_d[0] >> 3) & (0x01U));
+  _m->RadarCfg_SendQuality_valid = ((_d[0] >> 4) & (0x01U));
+  _m->RadarCfg_SendExtInfo_valid = ((_d[0] >> 5) & (0x01U));
+  _m->RadarCfg_SortIndex_valid = ((_d[0] >> 6) & (0x01U));
+  _m->RadarCfg_StoreInNVM_valid = ((_d[0] >> 7) & (0x01U));
+  _m->RadarCfg_MaxDistance_ro = ((_d[1] & (0xFFU)) << 2) | ((_d[2] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_phys = ARS408_CAN_DATABASE_CH6_RadarCfg_MaxDistance_ro_fromS(_m->RadarCfg_MaxDistance_ro);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->RadarCfg_SensorID = (_d[4] & (0x07U));
+  _m->RadarCfg_OutputType = ((_d[4] >> 3) & (0x03U));
+  _m->RadarCfg_RadarPower = ((_d[4] >> 5) & (0x07U));
+  _m->RadarCfg_CtrlRelay_valid = (_d[5] & (0x01U));
+  _m->RadarCfg_CtrlRelay = ((_d[5] >> 1) & (0x01U));
+  _m->RadarCfg_SendQuality = ((_d[5] >> 2) & (0x01U));
+  _m->RadarCfg_SendExtInfo = ((_d[5] >> 3) & (0x01U));
+  _m->RadarCfg_SortIndex = ((_d[5] >> 4) & (0x07U));
+  _m->RadarCfg_StoreInNVM = ((_d[5] >> 7) & (0x01U));
+  _m->RadarCfg_RCS_Threshold_Valid = (_d[6] & (0x01U));
+  _m->RadarCfg_RCS_Threshold = ((_d[6] >> 1) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < RadarConfiguration_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_RadarConfiguration_ars408_can_database_ch6(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+ return RadarConfiguration_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch6(RadarConfiguration_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < RadarConfiguration_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_ro = ARS408_CAN_DATABASE_CH6_RadarCfg_MaxDistance_ro_toS(_m->RadarCfg_MaxDistance_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->RadarCfg_MaxDistance_valid & (0x01U)) | ((_m->RadarCfg_SensorID_valid & (0x01U)) << 1) | ((_m->RadarCfg_RadarPower_valid & (0x01U)) << 2) | ((_m->RadarCfg_OutputType_valid & (0x01U)) << 3) | ((_m->RadarCfg_SendQuality_valid & (0x01U)) << 4) | ((_m->RadarCfg_SendExtInfo_valid & (0x01U)) << 5) | ((_m->RadarCfg_SortIndex_valid & (0x01U)) << 6) | ((_m->RadarCfg_StoreInNVM_valid & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->RadarCfg_MaxDistance_ro >> 2) & (0xFFU));
+  cframe->Data[2] |= ((_m->RadarCfg_MaxDistance_ro & (0x03U)) << 6);
+  cframe->Data[4] |= (_m->RadarCfg_SensorID & (0x07U)) | ((_m->RadarCfg_OutputType & (0x03U)) << 3) | ((_m->RadarCfg_RadarPower & (0x07U)) << 5);
+  cframe->Data[5] |= (_m->RadarCfg_CtrlRelay_valid & (0x01U)) | ((_m->RadarCfg_CtrlRelay & (0x01U)) << 1) | ((_m->RadarCfg_SendQuality & (0x01U)) << 2) | ((_m->RadarCfg_SendExtInfo & (0x01U)) << 3) | ((_m->RadarCfg_SortIndex & (0x07U)) << 4) | ((_m->RadarCfg_StoreInNVM & (0x01U)) << 7);
+  cframe->Data[6] |= (_m->RadarCfg_RCS_Threshold_Valid & (0x01U)) | ((_m->RadarCfg_RCS_Threshold & (0x07U)) << 1);
+
+  cframe->MsgId = RadarConfiguration_CANID;
+  cframe->DLC = RadarConfiguration_DLC;
+  cframe->IDE = RadarConfiguration_IDE;
+  return RadarConfiguration_CANID;
+}
+
+#else
+
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch6(RadarConfiguration_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < RadarConfiguration_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_ro = ARS408_CAN_DATABASE_CH6_RadarCfg_MaxDistance_ro_toS(_m->RadarCfg_MaxDistance_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _d[0] |= (_m->RadarCfg_MaxDistance_valid & (0x01U)) | ((_m->RadarCfg_SensorID_valid & (0x01U)) << 1) | ((_m->RadarCfg_RadarPower_valid & (0x01U)) << 2) | ((_m->RadarCfg_OutputType_valid & (0x01U)) << 3) | ((_m->RadarCfg_SendQuality_valid & (0x01U)) << 4) | ((_m->RadarCfg_SendExtInfo_valid & (0x01U)) << 5) | ((_m->RadarCfg_SortIndex_valid & (0x01U)) << 6) | ((_m->RadarCfg_StoreInNVM_valid & (0x01U)) << 7);
+  _d[1] |= ((_m->RadarCfg_MaxDistance_ro >> 2) & (0xFFU));
+  _d[2] |= ((_m->RadarCfg_MaxDistance_ro & (0x03U)) << 6);
+  _d[4] |= (_m->RadarCfg_SensorID & (0x07U)) | ((_m->RadarCfg_OutputType & (0x03U)) << 3) | ((_m->RadarCfg_RadarPower & (0x07U)) << 5);
+  _d[5] |= (_m->RadarCfg_CtrlRelay_valid & (0x01U)) | ((_m->RadarCfg_CtrlRelay & (0x01U)) << 1) | ((_m->RadarCfg_SendQuality & (0x01U)) << 2) | ((_m->RadarCfg_SendExtInfo & (0x01U)) << 3) | ((_m->RadarCfg_SortIndex & (0x07U)) << 4) | ((_m->RadarCfg_StoreInNVM & (0x01U)) << 7);
+  _d[6] |= (_m->RadarCfg_RCS_Threshold_Valid & (0x01U)) | ((_m->RadarCfg_RCS_Threshold & (0x07U)) << 1);
+
+  *_len = RadarConfiguration_DLC;
+  *_ide = RadarConfiguration_IDE;
+  return RadarConfiguration_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_RadarState_ARS408_can_database_ch6(RadarState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarState_NVMReadStatus = ((_d[0] >> 6) & (0x01U));
+  _m->RadarState_NVMwriteStatus = ((_d[0] >> 7) & (0x01U));
+  _m->RadarState_MaxDistanceCfg_ro = ((_d[1] & (0xFFU)) << 2) | ((_d[2] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_phys = ARS408_CAN_DATABASE_CH6_RadarState_MaxDistanceCfg_ro_fromS(_m->RadarState_MaxDistanceCfg_ro);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->RadarState_Voltage_Error = ((_d[2] >> 1) & (0x01U));
+  _m->RadarState_Temporary_Error = ((_d[2] >> 2) & (0x01U));
+  _m->RadarState_Temperature_Error = ((_d[2] >> 3) & (0x01U));
+  _m->RadarState_Interference = ((_d[2] >> 4) & (0x01U));
+  _m->RadarState_Persistent_Error = ((_d[2] >> 5) & (0x01U));
+  _m->RadarState_RadarPowerCfg = ((_d[3] & (0x03U)) << 1) | ((_d[4] >> 7) & (0x01U));
+  _m->RadarState_SensorID = (_d[4] & (0x07U));
+  _m->RadarState_SortIndex = ((_d[4] >> 4) & (0x07U));
+  _m->RadarState_CtrlRelayCfg = ((_d[5] >> 1) & (0x01U));
+  _m->RadarState_OutputTypeCfg = ((_d[5] >> 2) & (0x03U));
+  _m->RadarState_SendQualityCfg = ((_d[5] >> 4) & (0x01U));
+  _m->RadarState_SendExtInfoCfg = ((_d[5] >> 5) & (0x01U));
+  _m->RadarState_MotionRxState = ((_d[5] >> 6) & (0x03U));
+  _m->RadarState_RCS_Threshold = ((_d[7] >> 2) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < RadarState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_RadarState_ars408_can_database_ch6(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+ return RadarState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Pack_RadarState_ARS408_can_database_ch6(RadarState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < RadarState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_ro = ARS408_CAN_DATABASE_CH6_RadarState_MaxDistanceCfg_ro_toS(_m->RadarState_MaxDistanceCfg_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarState_NVMReadStatus & (0x01U)) << 6) | ((_m->RadarState_NVMwriteStatus & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->RadarState_MaxDistanceCfg_ro >> 2) & (0xFFU));
+  cframe->Data[2] |= ((_m->RadarState_MaxDistanceCfg_ro & (0x03U)) << 6) | ((_m->RadarState_Voltage_Error & (0x01U)) << 1) | ((_m->RadarState_Temporary_Error & (0x01U)) << 2) | ((_m->RadarState_Temperature_Error & (0x01U)) << 3) | ((_m->RadarState_Interference & (0x01U)) << 4) | ((_m->RadarState_Persistent_Error & (0x01U)) << 5);
+  cframe->Data[3] |= ((_m->RadarState_RadarPowerCfg >> 1) & (0x03U));
+  cframe->Data[4] |= ((_m->RadarState_RadarPowerCfg & (0x01U)) << 7) | (_m->RadarState_SensorID & (0x07U)) | ((_m->RadarState_SortIndex & (0x07U)) << 4);
+  cframe->Data[5] |= ((_m->RadarState_CtrlRelayCfg & (0x01U)) << 1) | ((_m->RadarState_OutputTypeCfg & (0x03U)) << 2) | ((_m->RadarState_SendQualityCfg & (0x01U)) << 4) | ((_m->RadarState_SendExtInfoCfg & (0x01U)) << 5) | ((_m->RadarState_MotionRxState & (0x03U)) << 6);
+  cframe->Data[7] |= ((_m->RadarState_RCS_Threshold & (0x07U)) << 2);
+
+  cframe->MsgId = RadarState_CANID;
+  cframe->DLC = RadarState_DLC;
+  cframe->IDE = RadarState_IDE;
+  return RadarState_CANID;
+}
+
+#else
+
+uint32_t Pack_RadarState_ARS408_can_database_ch6(RadarState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < RadarState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_ro = ARS408_CAN_DATABASE_CH6_RadarState_MaxDistanceCfg_ro_toS(_m->RadarState_MaxDistanceCfg_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarState_NVMReadStatus & (0x01U)) << 6) | ((_m->RadarState_NVMwriteStatus & (0x01U)) << 7);
+  _d[1] |= ((_m->RadarState_MaxDistanceCfg_ro >> 2) & (0xFFU));
+  _d[2] |= ((_m->RadarState_MaxDistanceCfg_ro & (0x03U)) << 6) | ((_m->RadarState_Voltage_Error & (0x01U)) << 1) | ((_m->RadarState_Temporary_Error & (0x01U)) << 2) | ((_m->RadarState_Temperature_Error & (0x01U)) << 3) | ((_m->RadarState_Interference & (0x01U)) << 4) | ((_m->RadarState_Persistent_Error & (0x01U)) << 5);
+  _d[3] |= ((_m->RadarState_RadarPowerCfg >> 1) & (0x03U));
+  _d[4] |= ((_m->RadarState_RadarPowerCfg & (0x01U)) << 7) | (_m->RadarState_SensorID & (0x07U)) | ((_m->RadarState_SortIndex & (0x07U)) << 4);
+  _d[5] |= ((_m->RadarState_CtrlRelayCfg & (0x01U)) << 1) | ((_m->RadarState_OutputTypeCfg & (0x03U)) << 2) | ((_m->RadarState_SendQualityCfg & (0x01U)) << 4) | ((_m->RadarState_SendExtInfoCfg & (0x01U)) << 5) | ((_m->RadarState_MotionRxState & (0x03U)) << 6);
+  _d[7] |= ((_m->RadarState_RCS_Threshold & (0x07U)) << 2);
+
+  *_len = RadarState_DLC;
+  *_ide = RadarState_IDE;
+  return RadarState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_FilterCfg_ARS408_can_database_ch6(FilterCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterCfg_Valid = ((_d[0] >> 1) & (0x01U));
+  _m->FilterCfg_Active = ((_d[0] >> 2) & (0x01U));
+  _m->FilterCfg_Index = ((_d[0] >> 3) & (0x0FU));
+  _m->FilterCfg_Type = ((_d[0] >> 7) & (0x01U));
+  _m->FilterCfg_Min_NofObj = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterCfg_Min_VrelOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VrelOncome_ro_fromS(_m->FilterCfg_Min_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VrelDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VrelDepart_ro_fromS(_m->FilterCfg_Min_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Size_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Min_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Size_ro_fromS(_m->FilterCfg_Min_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_RCS_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Min_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Min_RCS_ro_fromS(_m->FilterCfg_Min_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_ProbExists = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterCfg_Min_Lifetime_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Min_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Lifetime_ro_fromS(_m->FilterCfg_Min_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Azimuth_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Min_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Azimuth_ro_fromS(_m->FilterCfg_Min_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Distance_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Min_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Distance_ro_fromS(_m->FilterCfg_Min_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VXDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Min_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VXDepart_ro_fromS(_m->FilterCfg_Min_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VXOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Min_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VXOncome_ro_fromS(_m->FilterCfg_Min_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VYLeftRight_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Min_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VYLeftRight_ro_fromS(_m->FilterCfg_Min_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VYRightLeft_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Min_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VYRightLeft_ro_fromS(_m->FilterCfg_Min_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Y_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Min_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Y_ro_fromS(_m->FilterCfg_Min_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_X_ro = ((_d[1] & (0x1FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Min_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Min_X_ro_fromS(_m->FilterCfg_Min_X_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_NofObj = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterCfg_Max_Lifetime_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Max_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Lifetime_ro_fromS(_m->FilterCfg_Max_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Distance_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Max_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Distance_ro_fromS(_m->FilterCfg_Max_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Azimuth_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Max_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Azimuth_ro_fromS(_m->FilterCfg_Max_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_ProbExists = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterCfg_Max_RCS_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Max_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Max_RCS_ro_fromS(_m->FilterCfg_Max_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Size_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Max_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Size_ro_fromS(_m->FilterCfg_Max_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VrelDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Max_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VrelDepart_ro_fromS(_m->FilterCfg_Max_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VrelOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Max_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VrelOncome_ro_fromS(_m->FilterCfg_Max_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VXDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Max_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VXDepart_ro_fromS(_m->FilterCfg_Max_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VYLeftRight_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Max_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VYLeftRight_ro_fromS(_m->FilterCfg_Max_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VXOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Max_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VXOncome_ro_fromS(_m->FilterCfg_Max_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VYRightLeft_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Max_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VYRightLeft_ro_fromS(_m->FilterCfg_Max_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Y_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Max_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Y_ro_fromS(_m->FilterCfg_Max_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_X_ro = ((_d[3] & (0x1FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Max_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterCfg_Max_X_ro_fromS(_m->FilterCfg_Max_X_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterCfg_ars408_can_database_ch6(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+ return FilterCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Pack_FilterCfg_ARS408_can_database_ch6(FilterCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VrelOncome_ro_toS(_m->FilterCfg_Min_VrelOncome_phys);
+  _m->FilterCfg_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VrelDepart_ro_toS(_m->FilterCfg_Min_VrelDepart_phys);
+  _m->FilterCfg_Min_Size_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Size_ro_toS(_m->FilterCfg_Min_Size_phys);
+  _m->FilterCfg_Min_RCS_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_RCS_ro_toS(_m->FilterCfg_Min_RCS_phys);
+  _m->FilterCfg_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Lifetime_ro_toS(_m->FilterCfg_Min_Lifetime_phys);
+  _m->FilterCfg_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Azimuth_ro_toS(_m->FilterCfg_Min_Azimuth_phys);
+  _m->FilterCfg_Min_Distance_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Distance_ro_toS(_m->FilterCfg_Min_Distance_phys);
+  _m->FilterCfg_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VXDepart_ro_toS(_m->FilterCfg_Min_VXDepart_phys);
+  _m->FilterCfg_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VXOncome_ro_toS(_m->FilterCfg_Min_VXOncome_phys);
+  _m->FilterCfg_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VYLeftRight_ro_toS(_m->FilterCfg_Min_VYLeftRight_phys);
+  _m->FilterCfg_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VYRightLeft_ro_toS(_m->FilterCfg_Min_VYRightLeft_phys);
+  _m->FilterCfg_Min_Y_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Y_ro_toS(_m->FilterCfg_Min_Y_phys);
+  _m->FilterCfg_Min_X_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_X_ro_toS(_m->FilterCfg_Min_X_phys);
+  _m->FilterCfg_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Lifetime_ro_toS(_m->FilterCfg_Max_Lifetime_phys);
+  _m->FilterCfg_Max_Distance_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Distance_ro_toS(_m->FilterCfg_Max_Distance_phys);
+  _m->FilterCfg_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Azimuth_ro_toS(_m->FilterCfg_Max_Azimuth_phys);
+  _m->FilterCfg_Max_RCS_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_RCS_ro_toS(_m->FilterCfg_Max_RCS_phys);
+  _m->FilterCfg_Max_Size_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Size_ro_toS(_m->FilterCfg_Max_Size_phys);
+  _m->FilterCfg_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VrelDepart_ro_toS(_m->FilterCfg_Max_VrelDepart_phys);
+  _m->FilterCfg_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VrelOncome_ro_toS(_m->FilterCfg_Max_VrelOncome_phys);
+  _m->FilterCfg_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VXDepart_ro_toS(_m->FilterCfg_Max_VXDepart_phys);
+  _m->FilterCfg_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VYLeftRight_ro_toS(_m->FilterCfg_Max_VYLeftRight_phys);
+  _m->FilterCfg_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VXOncome_ro_toS(_m->FilterCfg_Max_VXOncome_phys);
+  _m->FilterCfg_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VYRightLeft_ro_toS(_m->FilterCfg_Max_VYRightLeft_phys);
+  _m->FilterCfg_Max_Y_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Y_ro_toS(_m->FilterCfg_Max_Y_phys);
+  _m->FilterCfg_Max_X_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_X_ro_toS(_m->FilterCfg_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->FilterCfg_Valid & (0x01U)) << 1) | ((_m->FilterCfg_Active & (0x01U)) << 2) | ((_m->FilterCfg_Index & (0x0FU)) << 3) | ((_m->FilterCfg_Type & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->FilterCfg_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_X_ro >> 8) & (0x1FU));
+  cframe->Data[2] |= (_m->FilterCfg_Min_NofObj & (0xFFU)) | (_m->FilterCfg_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_Size_ro & (0xFFU)) | (_m->FilterCfg_Min_RCS_ro & (0xFFU)) | (_m->FilterCfg_Min_ProbExists & (0xFFU)) | (_m->FilterCfg_Min_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Min_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Min_Distance_ro & (0xFFU)) | (_m->FilterCfg_Min_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Min_Y_ro & (0xFFU)) | (_m->FilterCfg_Min_X_ro & (0xFFU));
+  cframe->Data[3] |= ((_m->FilterCfg_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_X_ro >> 8) & (0x1FU));
+  cframe->Data[4] |= (_m->FilterCfg_Max_NofObj & (0xFFU)) | (_m->FilterCfg_Max_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Max_Distance_ro & (0xFFU)) | (_m->FilterCfg_Max_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Max_ProbExists & (0xFFU)) | (_m->FilterCfg_Max_RCS_ro & (0xFFU)) | (_m->FilterCfg_Max_Size_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Max_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Max_Y_ro & (0xFFU)) | (_m->FilterCfg_Max_X_ro & (0xFFU));
+
+  cframe->MsgId = FilterCfg_CANID;
+  cframe->DLC = FilterCfg_DLC;
+  cframe->IDE = FilterCfg_IDE;
+  return FilterCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterCfg_ARS408_can_database_ch6(FilterCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VrelOncome_ro_toS(_m->FilterCfg_Min_VrelOncome_phys);
+  _m->FilterCfg_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VrelDepart_ro_toS(_m->FilterCfg_Min_VrelDepart_phys);
+  _m->FilterCfg_Min_Size_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Size_ro_toS(_m->FilterCfg_Min_Size_phys);
+  _m->FilterCfg_Min_RCS_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_RCS_ro_toS(_m->FilterCfg_Min_RCS_phys);
+  _m->FilterCfg_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Lifetime_ro_toS(_m->FilterCfg_Min_Lifetime_phys);
+  _m->FilterCfg_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Azimuth_ro_toS(_m->FilterCfg_Min_Azimuth_phys);
+  _m->FilterCfg_Min_Distance_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Distance_ro_toS(_m->FilterCfg_Min_Distance_phys);
+  _m->FilterCfg_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VXDepart_ro_toS(_m->FilterCfg_Min_VXDepart_phys);
+  _m->FilterCfg_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VXOncome_ro_toS(_m->FilterCfg_Min_VXOncome_phys);
+  _m->FilterCfg_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VYLeftRight_ro_toS(_m->FilterCfg_Min_VYLeftRight_phys);
+  _m->FilterCfg_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VYRightLeft_ro_toS(_m->FilterCfg_Min_VYRightLeft_phys);
+  _m->FilterCfg_Min_Y_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Y_ro_toS(_m->FilterCfg_Min_Y_phys);
+  _m->FilterCfg_Min_X_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Min_X_ro_toS(_m->FilterCfg_Min_X_phys);
+  _m->FilterCfg_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Lifetime_ro_toS(_m->FilterCfg_Max_Lifetime_phys);
+  _m->FilterCfg_Max_Distance_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Distance_ro_toS(_m->FilterCfg_Max_Distance_phys);
+  _m->FilterCfg_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Azimuth_ro_toS(_m->FilterCfg_Max_Azimuth_phys);
+  _m->FilterCfg_Max_RCS_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_RCS_ro_toS(_m->FilterCfg_Max_RCS_phys);
+  _m->FilterCfg_Max_Size_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Size_ro_toS(_m->FilterCfg_Max_Size_phys);
+  _m->FilterCfg_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VrelDepart_ro_toS(_m->FilterCfg_Max_VrelDepart_phys);
+  _m->FilterCfg_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VrelOncome_ro_toS(_m->FilterCfg_Max_VrelOncome_phys);
+  _m->FilterCfg_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VXDepart_ro_toS(_m->FilterCfg_Max_VXDepart_phys);
+  _m->FilterCfg_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VYLeftRight_ro_toS(_m->FilterCfg_Max_VYLeftRight_phys);
+  _m->FilterCfg_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VXOncome_ro_toS(_m->FilterCfg_Max_VXOncome_phys);
+  _m->FilterCfg_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VYRightLeft_ro_toS(_m->FilterCfg_Max_VYRightLeft_phys);
+  _m->FilterCfg_Max_Y_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Y_ro_toS(_m->FilterCfg_Max_Y_phys);
+  _m->FilterCfg_Max_X_ro = ARS408_CAN_DATABASE_CH6_FilterCfg_Max_X_ro_toS(_m->FilterCfg_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _d[0] |= ((_m->FilterCfg_Valid & (0x01U)) << 1) | ((_m->FilterCfg_Active & (0x01U)) << 2) | ((_m->FilterCfg_Index & (0x0FU)) << 3) | ((_m->FilterCfg_Type & (0x01U)) << 7);
+  _d[1] |= ((_m->FilterCfg_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_X_ro >> 8) & (0x1FU));
+  _d[2] |= (_m->FilterCfg_Min_NofObj & (0xFFU)) | (_m->FilterCfg_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_Size_ro & (0xFFU)) | (_m->FilterCfg_Min_RCS_ro & (0xFFU)) | (_m->FilterCfg_Min_ProbExists & (0xFFU)) | (_m->FilterCfg_Min_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Min_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Min_Distance_ro & (0xFFU)) | (_m->FilterCfg_Min_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Min_Y_ro & (0xFFU)) | (_m->FilterCfg_Min_X_ro & (0xFFU));
+  _d[3] |= ((_m->FilterCfg_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_X_ro >> 8) & (0x1FU));
+  _d[4] |= (_m->FilterCfg_Max_NofObj & (0xFFU)) | (_m->FilterCfg_Max_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Max_Distance_ro & (0xFFU)) | (_m->FilterCfg_Max_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Max_ProbExists & (0xFFU)) | (_m->FilterCfg_Max_RCS_ro & (0xFFU)) | (_m->FilterCfg_Max_Size_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Max_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Max_Y_ro & (0xFFU)) | (_m->FilterCfg_Max_X_ro & (0xFFU));
+
+  *_len = FilterCfg_DLC;
+  *_ide = FilterCfg_IDE;
+  return FilterCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Header_ARS408_can_database_ch6(FilterState_Header_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterState_NofClusterFilterCfg = ((_d[0] >> 3) & (0x1FU));
+  _m->FilterState_NofObjectFilterCfg = ((_d[1] >> 3) & (0x1FU));
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterState_Header_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterState_Header_ars408_can_database_ch6(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+ return FilterState_Header_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch6(FilterState_Header_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Header_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= ((_m->FilterState_NofClusterFilterCfg & (0x1FU)) << 3);
+  cframe->Data[1] |= ((_m->FilterState_NofObjectFilterCfg & (0x1FU)) << 3);
+
+  cframe->MsgId = FilterState_Header_CANID;
+  cframe->DLC = FilterState_Header_DLC;
+  cframe->IDE = FilterState_Header_IDE;
+  return FilterState_Header_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch6(FilterState_Header_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Header_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= ((_m->FilterState_NofClusterFilterCfg & (0x1FU)) << 3);
+  _d[1] |= ((_m->FilterState_NofObjectFilterCfg & (0x1FU)) << 3);
+
+  *_len = FilterState_Header_DLC;
+  *_ide = FilterState_Header_IDE;
+  return FilterState_Header_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Cfg_ARS408_can_database_ch6(FilterState_Cfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterState_Active = ((_d[0] >> 2) & (0x01U));
+  _m->FilterState_Index = ((_d[0] >> 3) & (0x0FU));
+  _m->FilterState_Type = ((_d[0] >> 7) & (0x01U));
+  _m->FilterState_Min_RCS_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Min_RCS_ro_fromS(_m->FilterState_Min_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Min_Azimuth_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Min_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Min_Azimuth_ro_fromS(_m->FilterState_Min_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Min_Distance_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Min_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Min_Distance_ro_fromS(_m->FilterState_Min_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Min_Lifetime_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Min_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Min_Lifetime_ro_fromS(_m->FilterState_Min_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Min_NofObj = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterState_Min_ProbExists = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterState_Min_Y_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Min_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Min_Y_ro_fromS(_m->FilterState_Min_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Min_Size_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Min_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Min_Size_ro_fromS(_m->FilterState_Min_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Min_VrelDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Min_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Min_VrelDepart_ro_fromS(_m->FilterState_Min_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Min_VrelOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Min_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Min_VrelOncome_ro_fromS(_m->FilterState_Min_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Min_VYRightLeft_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Min_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Min_VYRightLeft_ro_fromS(_m->FilterState_Min_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Min_VXDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Min_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Min_VXDepart_ro_fromS(_m->FilterState_Min_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Min_VXOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Min_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Min_VXOncome_ro_fromS(_m->FilterState_Min_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Min_VYLeftRight_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Min_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Min_VYLeftRight_ro_fromS(_m->FilterState_Min_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Min_X_ro = ((_d[1] & (0x1FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Min_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Min_X_ro_fromS(_m->FilterState_Min_X_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Max_VrelDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Max_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Max_VrelDepart_ro_fromS(_m->FilterState_Max_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Max_Azimuth_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Max_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Max_Azimuth_ro_fromS(_m->FilterState_Max_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Max_Distance_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Max_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Max_Distance_ro_fromS(_m->FilterState_Max_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Max_Lifetime_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Max_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Max_Lifetime_ro_fromS(_m->FilterState_Max_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Max_NofObj = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterState_Max_ProbExists = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterState_Max_RCS_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Max_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Max_RCS_ro_fromS(_m->FilterState_Max_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Max_Size_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Max_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Max_Size_ro_fromS(_m->FilterState_Max_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Max_VXDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Max_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Max_VXDepart_ro_fromS(_m->FilterState_Max_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Max_VrelOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Max_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Max_VrelOncome_ro_fromS(_m->FilterState_Max_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Max_Y_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Max_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Max_Y_ro_fromS(_m->FilterState_Max_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Max_VYRightLeft_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Max_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Max_VYRightLeft_ro_fromS(_m->FilterState_Max_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Max_VYLeftRight_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Max_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Max_VYLeftRight_ro_fromS(_m->FilterState_Max_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Max_VXOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Max_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Max_VXOncome_ro_fromS(_m->FilterState_Max_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->FilterState_Max_X_ro = ((_d[3] & (0x1FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Max_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_FilterState_Max_X_ro_fromS(_m->FilterState_Max_X_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterState_Cfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterState_Cfg_ars408_can_database_ch6(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+ return FilterState_Cfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch6(FilterState_Cfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Cfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_RCS_ro_toS(_m->FilterState_Min_RCS_phys);
+  _m->FilterState_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_Azimuth_ro_toS(_m->FilterState_Min_Azimuth_phys);
+  _m->FilterState_Min_Distance_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_Distance_ro_toS(_m->FilterState_Min_Distance_phys);
+  _m->FilterState_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_Lifetime_ro_toS(_m->FilterState_Min_Lifetime_phys);
+  _m->FilterState_Min_Y_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_Y_ro_toS(_m->FilterState_Min_Y_phys);
+  _m->FilterState_Min_Size_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_Size_ro_toS(_m->FilterState_Min_Size_phys);
+  _m->FilterState_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_VrelDepart_ro_toS(_m->FilterState_Min_VrelDepart_phys);
+  _m->FilterState_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_VrelOncome_ro_toS(_m->FilterState_Min_VrelOncome_phys);
+  _m->FilterState_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_VYRightLeft_ro_toS(_m->FilterState_Min_VYRightLeft_phys);
+  _m->FilterState_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_VXDepart_ro_toS(_m->FilterState_Min_VXDepart_phys);
+  _m->FilterState_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_VXOncome_ro_toS(_m->FilterState_Min_VXOncome_phys);
+  _m->FilterState_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_VYLeftRight_ro_toS(_m->FilterState_Min_VYLeftRight_phys);
+  _m->FilterState_Min_X_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_X_ro_toS(_m->FilterState_Min_X_phys);
+  _m->FilterState_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_VrelDepart_ro_toS(_m->FilterState_Max_VrelDepart_phys);
+  _m->FilterState_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_Azimuth_ro_toS(_m->FilterState_Max_Azimuth_phys);
+  _m->FilterState_Max_Distance_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_Distance_ro_toS(_m->FilterState_Max_Distance_phys);
+  _m->FilterState_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_Lifetime_ro_toS(_m->FilterState_Max_Lifetime_phys);
+  _m->FilterState_Max_RCS_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_RCS_ro_toS(_m->FilterState_Max_RCS_phys);
+  _m->FilterState_Max_Size_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_Size_ro_toS(_m->FilterState_Max_Size_phys);
+  _m->FilterState_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_VXDepart_ro_toS(_m->FilterState_Max_VXDepart_phys);
+  _m->FilterState_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_VrelOncome_ro_toS(_m->FilterState_Max_VrelOncome_phys);
+  _m->FilterState_Max_Y_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_Y_ro_toS(_m->FilterState_Max_Y_phys);
+  _m->FilterState_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_VYRightLeft_ro_toS(_m->FilterState_Max_VYRightLeft_phys);
+  _m->FilterState_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_VYLeftRight_ro_toS(_m->FilterState_Max_VYLeftRight_phys);
+  _m->FilterState_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_VXOncome_ro_toS(_m->FilterState_Max_VXOncome_phys);
+  _m->FilterState_Max_X_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_X_ro_toS(_m->FilterState_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->FilterState_Active & (0x01U)) << 2) | ((_m->FilterState_Index & (0x0FU)) << 3) | ((_m->FilterState_Type & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->FilterState_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_X_ro >> 8) & (0x1FU));
+  cframe->Data[2] |= (_m->FilterState_Min_RCS_ro & (0xFFU)) | (_m->FilterState_Min_Azimuth_ro & (0xFFU)) | (_m->FilterState_Min_Distance_ro & (0xFFU)) | (_m->FilterState_Min_Lifetime_ro & (0xFFU)) | (_m->FilterState_Min_NofObj & (0xFFU)) | (_m->FilterState_Min_ProbExists & (0xFFU)) | (_m->FilterState_Min_Y_ro & (0xFFU)) | (_m->FilterState_Min_Size_ro & (0xFFU)) | (_m->FilterState_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Min_VXDepart_ro & (0xFFU)) | (_m->FilterState_Min_VXOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Min_X_ro & (0xFFU));
+  cframe->Data[3] |= ((_m->FilterState_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_X_ro >> 8) & (0x1FU));
+  cframe->Data[4] |= (_m->FilterState_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Max_Azimuth_ro & (0xFFU)) | (_m->FilterState_Max_Distance_ro & (0xFFU)) | (_m->FilterState_Max_Lifetime_ro & (0xFFU)) | (_m->FilterState_Max_NofObj & (0xFFU)) | (_m->FilterState_Max_ProbExists & (0xFFU)) | (_m->FilterState_Max_RCS_ro & (0xFFU)) | (_m->FilterState_Max_Size_ro & (0xFFU)) | (_m->FilterState_Max_VXDepart_ro & (0xFFU)) | (_m->FilterState_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Max_Y_ro & (0xFFU)) | (_m->FilterState_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Max_VXOncome_ro & (0xFFU)) | (_m->FilterState_Max_X_ro & (0xFFU));
+
+  cframe->MsgId = FilterState_Cfg_CANID;
+  cframe->DLC = FilterState_Cfg_DLC;
+  cframe->IDE = FilterState_Cfg_IDE;
+  return FilterState_Cfg_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch6(FilterState_Cfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Cfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_RCS_ro_toS(_m->FilterState_Min_RCS_phys);
+  _m->FilterState_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_Azimuth_ro_toS(_m->FilterState_Min_Azimuth_phys);
+  _m->FilterState_Min_Distance_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_Distance_ro_toS(_m->FilterState_Min_Distance_phys);
+  _m->FilterState_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_Lifetime_ro_toS(_m->FilterState_Min_Lifetime_phys);
+  _m->FilterState_Min_Y_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_Y_ro_toS(_m->FilterState_Min_Y_phys);
+  _m->FilterState_Min_Size_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_Size_ro_toS(_m->FilterState_Min_Size_phys);
+  _m->FilterState_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_VrelDepart_ro_toS(_m->FilterState_Min_VrelDepart_phys);
+  _m->FilterState_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_VrelOncome_ro_toS(_m->FilterState_Min_VrelOncome_phys);
+  _m->FilterState_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_VYRightLeft_ro_toS(_m->FilterState_Min_VYRightLeft_phys);
+  _m->FilterState_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_VXDepart_ro_toS(_m->FilterState_Min_VXDepart_phys);
+  _m->FilterState_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_VXOncome_ro_toS(_m->FilterState_Min_VXOncome_phys);
+  _m->FilterState_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_VYLeftRight_ro_toS(_m->FilterState_Min_VYLeftRight_phys);
+  _m->FilterState_Min_X_ro = ARS408_CAN_DATABASE_CH6_FilterState_Min_X_ro_toS(_m->FilterState_Min_X_phys);
+  _m->FilterState_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_VrelDepart_ro_toS(_m->FilterState_Max_VrelDepart_phys);
+  _m->FilterState_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_Azimuth_ro_toS(_m->FilterState_Max_Azimuth_phys);
+  _m->FilterState_Max_Distance_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_Distance_ro_toS(_m->FilterState_Max_Distance_phys);
+  _m->FilterState_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_Lifetime_ro_toS(_m->FilterState_Max_Lifetime_phys);
+  _m->FilterState_Max_RCS_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_RCS_ro_toS(_m->FilterState_Max_RCS_phys);
+  _m->FilterState_Max_Size_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_Size_ro_toS(_m->FilterState_Max_Size_phys);
+  _m->FilterState_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_VXDepart_ro_toS(_m->FilterState_Max_VXDepart_phys);
+  _m->FilterState_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_VrelOncome_ro_toS(_m->FilterState_Max_VrelOncome_phys);
+  _m->FilterState_Max_Y_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_Y_ro_toS(_m->FilterState_Max_Y_phys);
+  _m->FilterState_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_VYRightLeft_ro_toS(_m->FilterState_Max_VYRightLeft_phys);
+  _m->FilterState_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_VYLeftRight_ro_toS(_m->FilterState_Max_VYLeftRight_phys);
+  _m->FilterState_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_VXOncome_ro_toS(_m->FilterState_Max_VXOncome_phys);
+  _m->FilterState_Max_X_ro = ARS408_CAN_DATABASE_CH6_FilterState_Max_X_ro_toS(_m->FilterState_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _d[0] |= ((_m->FilterState_Active & (0x01U)) << 2) | ((_m->FilterState_Index & (0x0FU)) << 3) | ((_m->FilterState_Type & (0x01U)) << 7);
+  _d[1] |= ((_m->FilterState_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_X_ro >> 8) & (0x1FU));
+  _d[2] |= (_m->FilterState_Min_RCS_ro & (0xFFU)) | (_m->FilterState_Min_Azimuth_ro & (0xFFU)) | (_m->FilterState_Min_Distance_ro & (0xFFU)) | (_m->FilterState_Min_Lifetime_ro & (0xFFU)) | (_m->FilterState_Min_NofObj & (0xFFU)) | (_m->FilterState_Min_ProbExists & (0xFFU)) | (_m->FilterState_Min_Y_ro & (0xFFU)) | (_m->FilterState_Min_Size_ro & (0xFFU)) | (_m->FilterState_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Min_VXDepart_ro & (0xFFU)) | (_m->FilterState_Min_VXOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Min_X_ro & (0xFFU));
+  _d[3] |= ((_m->FilterState_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_X_ro >> 8) & (0x1FU));
+  _d[4] |= (_m->FilterState_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Max_Azimuth_ro & (0xFFU)) | (_m->FilterState_Max_Distance_ro & (0xFFU)) | (_m->FilterState_Max_Lifetime_ro & (0xFFU)) | (_m->FilterState_Max_NofObj & (0xFFU)) | (_m->FilterState_Max_ProbExists & (0xFFU)) | (_m->FilterState_Max_RCS_ro & (0xFFU)) | (_m->FilterState_Max_Size_ro & (0xFFU)) | (_m->FilterState_Max_VXDepart_ro & (0xFFU)) | (_m->FilterState_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Max_Y_ro & (0xFFU)) | (_m->FilterState_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Max_VXOncome_ro & (0xFFU)) | (_m->FilterState_Max_X_ro & (0xFFU));
+
+  *_len = FilterState_Cfg_DLC;
+  *_ide = FilterState_Cfg_IDE;
+  return FilterState_Cfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_SpeedInformation_ARS408_can_database_ch6(SpeedInformation_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarDevice_Speed_ro = ((_d[0] & (0x1FU)) << 8) | (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->RadarDevice_Speed_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_RadarDevice_Speed_ro_fromS(_m->RadarDevice_Speed_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->RadarDevice_SpeedDirection = ((_d[0] >> 6) & (0x03U));
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < SpeedInformation_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_SpeedInformation_ars408_can_database_ch6(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+ return SpeedInformation_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch6(SpeedInformation_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < SpeedInformation_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->RadarDevice_Speed_ro = ARS408_CAN_DATABASE_CH6_RadarDevice_Speed_ro_toS(_m->RadarDevice_Speed_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarDevice_Speed_ro >> 8) & (0x1FU)) | ((_m->RadarDevice_SpeedDirection & (0x03U)) << 6);
+  cframe->Data[1] |= (_m->RadarDevice_Speed_ro & (0xFFU));
+
+  cframe->MsgId = SpeedInformation_CANID;
+  cframe->DLC = SpeedInformation_DLC;
+  cframe->IDE = SpeedInformation_IDE;
+  return SpeedInformation_CANID;
+}
+
+#else
+
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch6(SpeedInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < SpeedInformation_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->RadarDevice_Speed_ro = ARS408_CAN_DATABASE_CH6_RadarDevice_Speed_ro_toS(_m->RadarDevice_Speed_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarDevice_Speed_ro >> 8) & (0x1FU)) | ((_m->RadarDevice_SpeedDirection & (0x03U)) << 6);
+  _d[1] |= (_m->RadarDevice_Speed_ro & (0xFFU));
+
+  *_len = SpeedInformation_DLC;
+  *_ide = SpeedInformation_IDE;
+  return SpeedInformation_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_YawRateInformation_ARS408_can_database_ch6(YawRateInformation_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarDevice_YawRate_ro = ((_d[0] & (0xFFU)) << 8) | (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_RadarDevice_YawRate_ro_fromS(_m->RadarDevice_YawRate_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < YawRateInformation_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_YawRateInformation_ars408_can_database_ch6(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+ return YawRateInformation_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch6(YawRateInformation_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < YawRateInformation_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_ro = ARS408_CAN_DATABASE_CH6_RadarDevice_YawRate_ro_toS(_m->RadarDevice_YawRate_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarDevice_YawRate_ro >> 8) & (0xFFU));
+  cframe->Data[1] |= (_m->RadarDevice_YawRate_ro & (0xFFU));
+
+  cframe->MsgId = YawRateInformation_CANID;
+  cframe->DLC = YawRateInformation_DLC;
+  cframe->IDE = YawRateInformation_IDE;
+  return YawRateInformation_CANID;
+}
+
+#else
+
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch6(YawRateInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < YawRateInformation_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_ro = ARS408_CAN_DATABASE_CH6_RadarDevice_YawRate_ro_toS(_m->RadarDevice_YawRate_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarDevice_YawRate_ro >> 8) & (0xFFU));
+  _d[1] |= (_m->RadarDevice_YawRate_ro & (0xFFU));
+
+  *_len = YawRateInformation_DLC;
+  *_ide = YawRateInformation_IDE;
+  return YawRateInformation_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetState_ARS408_can_database_ch6(CollDetState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetState_Active = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetState_NofRegions = ((_d[0] >> 4) & (0x0FU));
+  _m->CollDetState_MinDetectTime_ro = (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_CollDetState_MinDetectTime_ro_fromS(_m->CollDetState_MinDetectTime_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->CollDetState_MeasCounter = ((_d[2] & (0xFFU)) << 8) | (_d[3] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetState_ars408_can_database_ch6(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+ return CollDetState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Pack_CollDetState_ARS408_can_database_ch6(CollDetState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_ro = ARS408_CAN_DATABASE_CH6_CollDetState_MinDetectTime_ro_toS(_m->CollDetState_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetState_Active & (0x01U)) << 1) | ((_m->CollDetState_NofRegions & (0x0FU)) << 4);
+  cframe->Data[1] |= (_m->CollDetState_MinDetectTime_ro & (0xFFU));
+  cframe->Data[2] |= ((_m->CollDetState_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[3] |= (_m->CollDetState_MeasCounter & (0xFFU));
+
+  cframe->MsgId = CollDetState_CANID;
+  cframe->DLC = CollDetState_DLC;
+  cframe->IDE = CollDetState_IDE;
+  return CollDetState_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetState_ARS408_can_database_ch6(CollDetState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_ro = ARS408_CAN_DATABASE_CH6_CollDetState_MinDetectTime_ro_toS(_m->CollDetState_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetState_Active & (0x01U)) << 1) | ((_m->CollDetState_NofRegions & (0x0FU)) << 4);
+  _d[1] |= (_m->CollDetState_MinDetectTime_ro & (0xFFU));
+  _d[2] |= ((_m->CollDetState_MeasCounter >> 8) & (0xFFU));
+  _d[3] |= (_m->CollDetState_MeasCounter & (0xFFU));
+
+  *_len = CollDetState_DLC;
+  *_ide = CollDetState_IDE;
+  return CollDetState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetCfg_ARS408_can_database_ch6(CollDetCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetCfg_WarningReset = (_d[0] & (0x01U));
+  _m->CollDetCfg_Activate = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetCfg_MinTime_valid = ((_d[0] >> 3) & (0x01U));
+  _m->CollDetCfg_ClearRegions = ((_d[0] >> 7) & (0x01U));
+  _m->CollDetCfg_MinDetectTime_ro = (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_CollDetCfg_MinDetectTime_ro_fromS(_m->CollDetCfg_MinDetectTime_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetCfg_ars408_can_database_ch6(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+ return CollDetCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch6(CollDetCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_ro = ARS408_CAN_DATABASE_CH6_CollDetCfg_MinDetectTime_ro_toS(_m->CollDetCfg_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->CollDetCfg_WarningReset & (0x01U)) | ((_m->CollDetCfg_Activate & (0x01U)) << 1) | ((_m->CollDetCfg_MinTime_valid & (0x01U)) << 3) | ((_m->CollDetCfg_ClearRegions & (0x01U)) << 7);
+  cframe->Data[1] |= (_m->CollDetCfg_MinDetectTime_ro & (0xFFU));
+
+  cframe->MsgId = CollDetCfg_CANID;
+  cframe->DLC = CollDetCfg_DLC;
+  cframe->IDE = CollDetCfg_IDE;
+  return CollDetCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch6(CollDetCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_ro = ARS408_CAN_DATABASE_CH6_CollDetCfg_MinDetectTime_ro_toS(_m->CollDetCfg_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _d[0] |= (_m->CollDetCfg_WarningReset & (0x01U)) | ((_m->CollDetCfg_Activate & (0x01U)) << 1) | ((_m->CollDetCfg_MinTime_valid & (0x01U)) << 3) | ((_m->CollDetCfg_ClearRegions & (0x01U)) << 7);
+  _d[1] |= (_m->CollDetCfg_MinDetectTime_ro & (0xFFU));
+
+  *_len = CollDetCfg_DLC;
+  *_ide = CollDetCfg_IDE;
+  return CollDetCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionCfg_ARS408_can_database_ch6(CollDetRegionCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRegCfg_Activate = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetRegCfg_Coordinates_valid = ((_d[0] >> 2) & (0x01U));
+  _m->CollDetRegCfg_RegionID = (_d[1] & (0x07U));
+  _m->CollDetRegCfg_Point1X_ro = ((_d[2] & (0xFFU)) << 5) | ((_d[3] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point1X_ro_fromS(_m->CollDetRegCfg_Point1X_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point1Y_ro = ((_d[3] & (0x07U)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point1Y_ro_fromS(_m->CollDetRegCfg_Point1Y_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point2X_ro = ((_d[5] & (0xFFU)) << 5) | ((_d[6] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point2X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point2X_ro_fromS(_m->CollDetRegCfg_Point2X_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point2Y_ro = ((_d[6] & (0x07U)) << 8) | (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point2Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point2Y_ro_fromS(_m->CollDetRegCfg_Point2Y_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRegionCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRegionCfg_ars408_can_database_ch6(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+ return CollDetRegionCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch6(CollDetRegionCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_ro = ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point1X_ro_toS(_m->CollDetRegCfg_Point1X_phys);
+  _m->CollDetRegCfg_Point1Y_ro = ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point1Y_ro_toS(_m->CollDetRegCfg_Point1Y_phys);
+  _m->CollDetRegCfg_Point2X_ro = ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point2X_ro_toS(_m->CollDetRegCfg_Point2X_phys);
+  _m->CollDetRegCfg_Point2Y_ro = ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point2Y_ro_toS(_m->CollDetRegCfg_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetRegCfg_Activate & (0x01U)) << 1) | ((_m->CollDetRegCfg_Coordinates_valid & (0x01U)) << 2);
+  cframe->Data[1] |= (_m->CollDetRegCfg_RegionID & (0x07U));
+  cframe->Data[2] |= ((_m->CollDetRegCfg_Point1X_ro >> 5) & (0xFFU));
+  cframe->Data[3] |= ((_m->CollDetRegCfg_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point1Y_ro >> 8) & (0x07U));
+  cframe->Data[4] |= (_m->CollDetRegCfg_Point1Y_ro & (0xFFU));
+  cframe->Data[5] |= ((_m->CollDetRegCfg_Point2X_ro >> 5) & (0xFFU));
+  cframe->Data[6] |= ((_m->CollDetRegCfg_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point2Y_ro >> 8) & (0x07U));
+  cframe->Data[7] |= (_m->CollDetRegCfg_Point2Y_ro & (0xFFU));
+
+  cframe->MsgId = CollDetRegionCfg_CANID;
+  cframe->DLC = CollDetRegionCfg_DLC;
+  cframe->IDE = CollDetRegionCfg_IDE;
+  return CollDetRegionCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch6(CollDetRegionCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_ro = ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point1X_ro_toS(_m->CollDetRegCfg_Point1X_phys);
+  _m->CollDetRegCfg_Point1Y_ro = ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point1Y_ro_toS(_m->CollDetRegCfg_Point1Y_phys);
+  _m->CollDetRegCfg_Point2X_ro = ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point2X_ro_toS(_m->CollDetRegCfg_Point2X_phys);
+  _m->CollDetRegCfg_Point2Y_ro = ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point2Y_ro_toS(_m->CollDetRegCfg_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetRegCfg_Activate & (0x01U)) << 1) | ((_m->CollDetRegCfg_Coordinates_valid & (0x01U)) << 2);
+  _d[1] |= (_m->CollDetRegCfg_RegionID & (0x07U));
+  _d[2] |= ((_m->CollDetRegCfg_Point1X_ro >> 5) & (0xFFU));
+  _d[3] |= ((_m->CollDetRegCfg_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point1Y_ro >> 8) & (0x07U));
+  _d[4] |= (_m->CollDetRegCfg_Point1Y_ro & (0xFFU));
+  _d[5] |= ((_m->CollDetRegCfg_Point2X_ro >> 5) & (0xFFU));
+  _d[6] |= ((_m->CollDetRegCfg_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point2Y_ro >> 8) & (0x07U));
+  _d[7] |= (_m->CollDetRegCfg_Point2Y_ro & (0xFFU));
+
+  *_len = CollDetRegionCfg_DLC;
+  *_ide = CollDetRegionCfg_IDE;
+  return CollDetRegionCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionState_ARS408_can_database_ch6(CollDetRegionState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRegState_WarningLevel = ((_d[0] >> 3) & (0x03U));
+  _m->CollDetRegState_RegionID = ((_d[0] >> 5) & (0x07U));
+  _m->CollDetRegState_Point1X_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_CollDetRegState_Point1X_ro_fromS(_m->CollDetRegState_Point1X_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point1Y_ro = ((_d[2] & (0x07U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->CollDetRegState_Point1Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_CollDetRegState_Point1Y_ro_fromS(_m->CollDetRegState_Point1Y_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point2X_ro = ((_d[4] & (0xFFU)) << 5) | ((_d[5] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->CollDetRegState_Point2X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_CollDetRegState_Point2X_ro_fromS(_m->CollDetRegState_Point2X_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point2Y_ro = ((_d[5] & (0x07U)) << 8) | (_d[6] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->CollDetRegState_Point2Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_CollDetRegState_Point2Y_ro_fromS(_m->CollDetRegState_Point2Y_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->CollDetRegState_NofObjects = (_d[7] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRegionState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRegionState_ars408_can_database_ch6(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+ return CollDetRegionState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch6(CollDetRegionState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_ro = ARS408_CAN_DATABASE_CH6_CollDetRegState_Point1X_ro_toS(_m->CollDetRegState_Point1X_phys);
+  _m->CollDetRegState_Point1Y_ro = ARS408_CAN_DATABASE_CH6_CollDetRegState_Point1Y_ro_toS(_m->CollDetRegState_Point1Y_phys);
+  _m->CollDetRegState_Point2X_ro = ARS408_CAN_DATABASE_CH6_CollDetRegState_Point2X_ro_toS(_m->CollDetRegState_Point2X_phys);
+  _m->CollDetRegState_Point2Y_ro = ARS408_CAN_DATABASE_CH6_CollDetRegState_Point2Y_ro_toS(_m->CollDetRegState_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetRegState_WarningLevel & (0x03U)) << 3) | ((_m->CollDetRegState_RegionID & (0x07U)) << 5);
+  cframe->Data[1] |= ((_m->CollDetRegState_Point1X_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->CollDetRegState_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point1Y_ro >> 8) & (0x07U));
+  cframe->Data[3] |= (_m->CollDetRegState_Point1Y_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->CollDetRegState_Point2X_ro >> 5) & (0xFFU));
+  cframe->Data[5] |= ((_m->CollDetRegState_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point2Y_ro >> 8) & (0x07U));
+  cframe->Data[6] |= (_m->CollDetRegState_Point2Y_ro & (0xFFU));
+  cframe->Data[7] |= (_m->CollDetRegState_NofObjects & (0xFFU));
+
+  cframe->MsgId = CollDetRegionState_CANID;
+  cframe->DLC = CollDetRegionState_DLC;
+  cframe->IDE = CollDetRegionState_IDE;
+  return CollDetRegionState_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch6(CollDetRegionState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_ro = ARS408_CAN_DATABASE_CH6_CollDetRegState_Point1X_ro_toS(_m->CollDetRegState_Point1X_phys);
+  _m->CollDetRegState_Point1Y_ro = ARS408_CAN_DATABASE_CH6_CollDetRegState_Point1Y_ro_toS(_m->CollDetRegState_Point1Y_phys);
+  _m->CollDetRegState_Point2X_ro = ARS408_CAN_DATABASE_CH6_CollDetRegState_Point2X_ro_toS(_m->CollDetRegState_Point2X_phys);
+  _m->CollDetRegState_Point2Y_ro = ARS408_CAN_DATABASE_CH6_CollDetRegState_Point2Y_ro_toS(_m->CollDetRegState_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetRegState_WarningLevel & (0x03U)) << 3) | ((_m->CollDetRegState_RegionID & (0x07U)) << 5);
+  _d[1] |= ((_m->CollDetRegState_Point1X_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->CollDetRegState_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point1Y_ro >> 8) & (0x07U));
+  _d[3] |= (_m->CollDetRegState_Point1Y_ro & (0xFFU));
+  _d[4] |= ((_m->CollDetRegState_Point2X_ro >> 5) & (0xFFU));
+  _d[5] |= ((_m->CollDetRegState_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point2Y_ro >> 8) & (0x07U));
+  _d[6] |= (_m->CollDetRegState_Point2Y_ro & (0xFFU));
+  _d[7] |= (_m->CollDetRegState_NofObjects & (0xFFU));
+
+  *_len = CollDetRegionState_DLC;
+  *_ide = CollDetRegionState_IDE;
+  return CollDetRegionState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_0_Status_ARS408_can_database_ch6(Cluster_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_NofClustersNear = (_d[0] & (0xFFU));
+  _m->Cluster_NofClustersFar = (_d[1] & (0xFFU));
+  _m->Cluster_MeasCounter = ((_d[2] & (0xFFU)) << 8) | (_d[3] & (0xFFU));
+  _m->Cluster_InterfaceVersion = ((_d[4] >> 4) & (0x0FU));
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_0_Status_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_0_Status_ars408_can_database_ch6(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+ return Cluster_0_Status_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch6(Cluster_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_0_Status_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Cluster_NofClustersNear & (0xFFU));
+  cframe->Data[1] |= (_m->Cluster_NofClustersFar & (0xFFU));
+  cframe->Data[2] |= ((_m->Cluster_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[3] |= (_m->Cluster_MeasCounter & (0xFFU));
+  cframe->Data[4] |= ((_m->Cluster_InterfaceVersion & (0x0FU)) << 4);
+
+  cframe->MsgId = Cluster_0_Status_CANID;
+  cframe->DLC = Cluster_0_Status_DLC;
+  cframe->IDE = Cluster_0_Status_IDE;
+  return Cluster_0_Status_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch6(Cluster_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_0_Status_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Cluster_NofClustersNear & (0xFFU));
+  _d[1] |= (_m->Cluster_NofClustersFar & (0xFFU));
+  _d[2] |= ((_m->Cluster_MeasCounter >> 8) & (0xFFU));
+  _d[3] |= (_m->Cluster_MeasCounter & (0xFFU));
+  _d[4] |= ((_m->Cluster_InterfaceVersion & (0x0FU)) << 4);
+
+  *_len = Cluster_0_Status_DLC;
+  *_ide = Cluster_0_Status_IDE;
+  return Cluster_0_Status_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_0_Status_ARS408_can_database_ch6(Obj_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_NofObjects = (_d[0] & (0xFFU));
+  _m->Obj_MeasCounter = ((_d[1] & (0xFFU)) << 8) | (_d[2] & (0xFFU));
+  _m->Obj_InterfaceVersion = ((_d[3] >> 4) & (0x0FU));
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_0_Status_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_0_Status_ars408_can_database_ch6(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+ return Obj_0_Status_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch6(Obj_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_0_Status_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_NofObjects & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[2] |= (_m->Obj_MeasCounter & (0xFFU));
+  cframe->Data[3] |= ((_m->Obj_InterfaceVersion & (0x0FU)) << 4);
+
+  cframe->MsgId = Obj_0_Status_CANID;
+  cframe->DLC = Obj_0_Status_DLC;
+  cframe->IDE = Obj_0_Status_IDE;
+  return Obj_0_Status_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch6(Obj_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_0_Status_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_NofObjects & (0xFFU));
+  _d[1] |= ((_m->Obj_MeasCounter >> 8) & (0xFFU));
+  _d[2] |= (_m->Obj_MeasCounter & (0xFFU));
+  _d[3] |= ((_m->Obj_InterfaceVersion & (0x0FU)) << 4);
+
+  *_len = Obj_0_Status_DLC;
+  *_ide = Obj_0_Status_IDE;
+  return Obj_0_Status_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_1_General_ARS408_can_database_ch6(Obj_1_General_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_DistLong_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->Obj_DistLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_Obj_DistLong_ro_fromS(_m->Obj_DistLong_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->Obj_DistLat_ro = ((_d[2] & (0x07U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->Obj_DistLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_Obj_DistLat_ro_fromS(_m->Obj_DistLat_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->Obj_VrelLong_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->Obj_VrelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_Obj_VrelLong_ro_fromS(_m->Obj_VrelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->Obj_VrelLat_ro = ((_d[5] & (0x3FU)) << 3) | ((_d[6] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->Obj_VrelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_Obj_VrelLat_ro_fromS(_m->Obj_VrelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->Obj_DynProp = (_d[6] & (0x07U));
+  _m->Obj_RCS_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->Obj_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_Obj_RCS_ro_fromS(_m->Obj_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_1_General_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_1_General_ars408_can_database_ch6(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+ return Obj_1_General_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch6(Obj_1_General_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_1_General_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->Obj_DistLong_ro = ARS408_CAN_DATABASE_CH6_Obj_DistLong_ro_toS(_m->Obj_DistLong_phys);
+  _m->Obj_DistLat_ro = ARS408_CAN_DATABASE_CH6_Obj_DistLat_ro_toS(_m->Obj_DistLat_phys);
+  _m->Obj_VrelLong_ro = ARS408_CAN_DATABASE_CH6_Obj_VrelLong_ro_toS(_m->Obj_VrelLong_phys);
+  _m->Obj_VrelLat_ro = ARS408_CAN_DATABASE_CH6_Obj_VrelLat_ro_toS(_m->Obj_VrelLat_phys);
+  _m->Obj_RCS_ro = ARS408_CAN_DATABASE_CH6_Obj_RCS_ro_toS(_m->Obj_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_DistLong_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->Obj_DistLong_ro & (0x1FU)) << 3) | ((_m->Obj_DistLat_ro >> 8) & (0x07U));
+  cframe->Data[3] |= (_m->Obj_DistLat_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->Obj_VrelLong_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Obj_VrelLong_ro & (0x03U)) << 6) | ((_m->Obj_VrelLat_ro >> 3) & (0x3FU));
+  cframe->Data[6] |= ((_m->Obj_VrelLat_ro & (0x07U)) << 5) | (_m->Obj_DynProp & (0x07U));
+  cframe->Data[7] |= (_m->Obj_RCS_ro & (0xFFU));
+
+  cframe->MsgId = Obj_1_General_CANID;
+  cframe->DLC = Obj_1_General_DLC;
+  cframe->IDE = Obj_1_General_IDE;
+  return Obj_1_General_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch6(Obj_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_1_General_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->Obj_DistLong_ro = ARS408_CAN_DATABASE_CH6_Obj_DistLong_ro_toS(_m->Obj_DistLong_phys);
+  _m->Obj_DistLat_ro = ARS408_CAN_DATABASE_CH6_Obj_DistLat_ro_toS(_m->Obj_DistLat_phys);
+  _m->Obj_VrelLong_ro = ARS408_CAN_DATABASE_CH6_Obj_VrelLong_ro_toS(_m->Obj_VrelLong_phys);
+  _m->Obj_VrelLat_ro = ARS408_CAN_DATABASE_CH6_Obj_VrelLat_ro_toS(_m->Obj_VrelLat_phys);
+  _m->Obj_RCS_ro = ARS408_CAN_DATABASE_CH6_Obj_RCS_ro_toS(_m->Obj_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_DistLong_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->Obj_DistLong_ro & (0x1FU)) << 3) | ((_m->Obj_DistLat_ro >> 8) & (0x07U));
+  _d[3] |= (_m->Obj_DistLat_ro & (0xFFU));
+  _d[4] |= ((_m->Obj_VrelLong_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Obj_VrelLong_ro & (0x03U)) << 6) | ((_m->Obj_VrelLat_ro >> 3) & (0x3FU));
+  _d[6] |= ((_m->Obj_VrelLat_ro & (0x07U)) << 5) | (_m->Obj_DynProp & (0x07U));
+  _d[7] |= (_m->Obj_RCS_ro & (0xFFU));
+
+  *_len = Obj_1_General_DLC;
+  *_ide = Obj_1_General_IDE;
+  return Obj_1_General_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_2_Quality_ARS408_can_database_ch6(Obj_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_DistLat_rms = ((_d[1] & (0x07U)) << 2) | ((_d[2] >> 6) & (0x03U));
+  _m->Obj_DistLong_rms = ((_d[1] >> 3) & (0x1FU));
+  _m->Obj_VrelLat_rms = ((_d[2] & (0x01U)) << 4) | ((_d[3] >> 4) & (0x0FU));
+  _m->Obj_VrelLong_rms = ((_d[2] >> 1) & (0x1FU));
+  _m->Obj_ArelLong_rms = ((_d[3] & (0x0FU)) << 1) | ((_d[4] >> 7) & (0x01U));
+  _m->Obj_Orientation_rms = ((_d[4] & (0x03U)) << 3) | ((_d[5] >> 5) & (0x07U));
+  _m->Obj_ArelLat_rms = ((_d[4] >> 2) & (0x1FU));
+  _m->Obj_MeasState = ((_d[6] >> 2) & (0x07U));
+  _m->Obj_ProbOfExist = ((_d[6] >> 5) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_2_Quality_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_2_Quality_ars408_can_database_ch6(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+ return Obj_2_Quality_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch6(Obj_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_2_Quality_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_DistLat_rms >> 2) & (0x07U)) | ((_m->Obj_DistLong_rms & (0x1FU)) << 3);
+  cframe->Data[2] |= ((_m->Obj_DistLat_rms & (0x03U)) << 6) | ((_m->Obj_VrelLat_rms >> 4) & (0x01U)) | ((_m->Obj_VrelLong_rms & (0x1FU)) << 1);
+  cframe->Data[3] |= ((_m->Obj_VrelLat_rms & (0x0FU)) << 4) | ((_m->Obj_ArelLong_rms >> 1) & (0x0FU));
+  cframe->Data[4] |= ((_m->Obj_ArelLong_rms & (0x01U)) << 7) | ((_m->Obj_Orientation_rms >> 3) & (0x03U)) | ((_m->Obj_ArelLat_rms & (0x1FU)) << 2);
+  cframe->Data[5] |= ((_m->Obj_Orientation_rms & (0x07U)) << 5);
+  cframe->Data[6] |= ((_m->Obj_MeasState & (0x07U)) << 2) | ((_m->Obj_ProbOfExist & (0x07U)) << 5);
+
+  cframe->MsgId = Obj_2_Quality_CANID;
+  cframe->DLC = Obj_2_Quality_DLC;
+  cframe->IDE = Obj_2_Quality_IDE;
+  return Obj_2_Quality_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch6(Obj_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_2_Quality_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_DistLat_rms >> 2) & (0x07U)) | ((_m->Obj_DistLong_rms & (0x1FU)) << 3);
+  _d[2] |= ((_m->Obj_DistLat_rms & (0x03U)) << 6) | ((_m->Obj_VrelLat_rms >> 4) & (0x01U)) | ((_m->Obj_VrelLong_rms & (0x1FU)) << 1);
+  _d[3] |= ((_m->Obj_VrelLat_rms & (0x0FU)) << 4) | ((_m->Obj_ArelLong_rms >> 1) & (0x0FU));
+  _d[4] |= ((_m->Obj_ArelLong_rms & (0x01U)) << 7) | ((_m->Obj_Orientation_rms >> 3) & (0x03U)) | ((_m->Obj_ArelLat_rms & (0x1FU)) << 2);
+  _d[5] |= ((_m->Obj_Orientation_rms & (0x07U)) << 5);
+  _d[6] |= ((_m->Obj_MeasState & (0x07U)) << 2) | ((_m->Obj_ProbOfExist & (0x07U)) << 5);
+
+  *_len = Obj_2_Quality_DLC;
+  *_ide = Obj_2_Quality_IDE;
+  return Obj_2_Quality_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_3_Extended_ARS408_can_database_ch6(Obj_3_Extended_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_ArelLong_ro = ((_d[1] & (0xFFU)) << 3) | ((_d[2] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->Obj_ArelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_Obj_ArelLong_ro_fromS(_m->Obj_ArelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->Obj_ArelLat_ro = ((_d[2] & (0x1FU)) << 4) | ((_d[3] >> 4) & (0x0FU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->Obj_ArelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_Obj_ArelLat_ro_fromS(_m->Obj_ArelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->Obj_Class = (_d[3] & (0x07U));
+  _m->Obj_OrientationAngle_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->Obj_OrientationAngle_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_Obj_OrientationAngle_ro_fromS(_m->Obj_OrientationAngle_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->Obj_Length_ro = (_d[6] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->Obj_Length_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_Obj_Length_ro_fromS(_m->Obj_Length_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->Obj_Width_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->Obj_Width_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_Obj_Width_ro_fromS(_m->Obj_Width_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_3_Extended_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_3_Extended_ars408_can_database_ch6(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+ return Obj_3_Extended_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch6(Obj_3_Extended_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_3_Extended_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->Obj_ArelLong_ro = ARS408_CAN_DATABASE_CH6_Obj_ArelLong_ro_toS(_m->Obj_ArelLong_phys);
+  _m->Obj_ArelLat_ro = ARS408_CAN_DATABASE_CH6_Obj_ArelLat_ro_toS(_m->Obj_ArelLat_phys);
+  _m->Obj_OrientationAngle_ro = ARS408_CAN_DATABASE_CH6_Obj_OrientationAngle_ro_toS(_m->Obj_OrientationAngle_phys);
+  _m->Obj_Length_ro = ARS408_CAN_DATABASE_CH6_Obj_Length_ro_toS(_m->Obj_Length_phys);
+  _m->Obj_Width_ro = ARS408_CAN_DATABASE_CH6_Obj_Width_ro_toS(_m->Obj_Width_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_ArelLong_ro >> 3) & (0xFFU));
+  cframe->Data[2] |= ((_m->Obj_ArelLong_ro & (0x07U)) << 5) | ((_m->Obj_ArelLat_ro >> 4) & (0x1FU));
+  cframe->Data[3] |= ((_m->Obj_ArelLat_ro & (0x0FU)) << 4) | (_m->Obj_Class & (0x07U));
+  cframe->Data[4] |= ((_m->Obj_OrientationAngle_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Obj_OrientationAngle_ro & (0x03U)) << 6);
+  cframe->Data[6] |= (_m->Obj_Length_ro & (0xFFU));
+  cframe->Data[7] |= (_m->Obj_Width_ro & (0xFFU));
+
+  cframe->MsgId = Obj_3_Extended_CANID;
+  cframe->DLC = Obj_3_Extended_DLC;
+  cframe->IDE = Obj_3_Extended_IDE;
+  return Obj_3_Extended_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch6(Obj_3_Extended_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_3_Extended_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->Obj_ArelLong_ro = ARS408_CAN_DATABASE_CH6_Obj_ArelLong_ro_toS(_m->Obj_ArelLong_phys);
+  _m->Obj_ArelLat_ro = ARS408_CAN_DATABASE_CH6_Obj_ArelLat_ro_toS(_m->Obj_ArelLat_phys);
+  _m->Obj_OrientationAngle_ro = ARS408_CAN_DATABASE_CH6_Obj_OrientationAngle_ro_toS(_m->Obj_OrientationAngle_phys);
+  _m->Obj_Length_ro = ARS408_CAN_DATABASE_CH6_Obj_Length_ro_toS(_m->Obj_Length_phys);
+  _m->Obj_Width_ro = ARS408_CAN_DATABASE_CH6_Obj_Width_ro_toS(_m->Obj_Width_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_ArelLong_ro >> 3) & (0xFFU));
+  _d[2] |= ((_m->Obj_ArelLong_ro & (0x07U)) << 5) | ((_m->Obj_ArelLat_ro >> 4) & (0x1FU));
+  _d[3] |= ((_m->Obj_ArelLat_ro & (0x0FU)) << 4) | (_m->Obj_Class & (0x07U));
+  _d[4] |= ((_m->Obj_OrientationAngle_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Obj_OrientationAngle_ro & (0x03U)) << 6);
+  _d[6] |= (_m->Obj_Length_ro & (0xFFU));
+  _d[7] |= (_m->Obj_Width_ro & (0xFFU));
+
+  *_len = Obj_3_Extended_DLC;
+  *_ide = Obj_3_Extended_IDE;
+  return Obj_3_Extended_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_4_Warning_ARS408_can_database_ch6(Obj_4_Warning_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_CollDetRegionBitfield = (_d[1] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_4_Warning_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_4_Warning_ars408_can_database_ch6(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+ return Obj_4_Warning_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch6(Obj_4_Warning_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_4_Warning_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= (_m->Obj_CollDetRegionBitfield & (0xFFU));
+
+  cframe->MsgId = Obj_4_Warning_CANID;
+  cframe->DLC = Obj_4_Warning_DLC;
+  cframe->IDE = Obj_4_Warning_IDE;
+  return Obj_4_Warning_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch6(Obj_4_Warning_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_4_Warning_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= (_m->Obj_CollDetRegionBitfield & (0xFFU));
+
+  *_len = Obj_4_Warning_DLC;
+  *_ide = Obj_4_Warning_IDE;
+  return Obj_4_Warning_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_VersionID_ARS408_can_database_ch6(VersionID_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Version_MajorRelease = (_d[0] & (0xFFU));
+  _m->Version_MinorRelease = (_d[1] & (0xFFU));
+  _m->Version_PatchLevel = (_d[2] & (0xFFU));
+  _m->Version_CountryCode = (_d[3] & (0x01U));
+  _m->Version_ExtendedRange = ((_d[3] >> 1) & (0x01U));
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < VersionID_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_VersionID_ars408_can_database_ch6(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+ return VersionID_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Pack_VersionID_ARS408_can_database_ch6(VersionID_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < VersionID_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Version_MajorRelease & (0xFFU));
+  cframe->Data[1] |= (_m->Version_MinorRelease & (0xFFU));
+  cframe->Data[2] |= (_m->Version_PatchLevel & (0xFFU));
+  cframe->Data[3] |= (_m->Version_CountryCode & (0x01U)) | ((_m->Version_ExtendedRange & (0x01U)) << 1);
+
+  cframe->MsgId = VersionID_CANID;
+  cframe->DLC = VersionID_DLC;
+  cframe->IDE = VersionID_IDE;
+  return VersionID_CANID;
+}
+
+#else
+
+uint32_t Pack_VersionID_ARS408_can_database_ch6(VersionID_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < VersionID_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Version_MajorRelease & (0xFFU));
+  _d[1] |= (_m->Version_MinorRelease & (0xFFU));
+  _d[2] |= (_m->Version_PatchLevel & (0xFFU));
+  _d[3] |= (_m->Version_CountryCode & (0x01U)) | ((_m->Version_ExtendedRange & (0x01U)) << 1);
+
+  *_len = VersionID_DLC;
+  *_ide = VersionID_IDE;
+  return VersionID_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_1_General_ARS408_can_database_ch6(Cluster_1_General_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_ID = (_d[0] & (0xFFU));
+  _m->Cluster_DistLong_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->Cluster_DistLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_Cluster_DistLong_ro_fromS(_m->Cluster_DistLong_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->Cluster_DistLat_ro = ((_d[2] & (0x03U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->Cluster_DistLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_Cluster_DistLat_ro_fromS(_m->Cluster_DistLat_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->Cluster_VrelLong_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->Cluster_VrelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_Cluster_VrelLong_ro_fromS(_m->Cluster_VrelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->Cluster_VrelLat_ro = ((_d[5] & (0x3FU)) << 3) | ((_d[6] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->Cluster_VrelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_Cluster_VrelLat_ro_fromS(_m->Cluster_VrelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _m->Cluster_DynProp = (_d[6] & (0x07U));
+  _m->Cluster_RCS_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->Cluster_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH6_Cluster_RCS_ro_fromS(_m->Cluster_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_1_General_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_1_General_ars408_can_database_ch6(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+ return Cluster_1_General_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch6(Cluster_1_General_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_1_General_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->Cluster_DistLong_ro = ARS408_CAN_DATABASE_CH6_Cluster_DistLong_ro_toS(_m->Cluster_DistLong_phys);
+  _m->Cluster_DistLat_ro = ARS408_CAN_DATABASE_CH6_Cluster_DistLat_ro_toS(_m->Cluster_DistLat_phys);
+  _m->Cluster_VrelLong_ro = ARS408_CAN_DATABASE_CH6_Cluster_VrelLong_ro_toS(_m->Cluster_VrelLong_phys);
+  _m->Cluster_VrelLat_ro = ARS408_CAN_DATABASE_CH6_Cluster_VrelLat_ro_toS(_m->Cluster_VrelLat_phys);
+  _m->Cluster_RCS_ro = ARS408_CAN_DATABASE_CH6_Cluster_RCS_ro_toS(_m->Cluster_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Cluster_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Cluster_DistLong_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->Cluster_DistLong_ro & (0x1FU)) << 3) | ((_m->Cluster_DistLat_ro >> 8) & (0x03U));
+  cframe->Data[3] |= (_m->Cluster_DistLat_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->Cluster_VrelLong_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Cluster_VrelLong_ro & (0x03U)) << 6) | ((_m->Cluster_VrelLat_ro >> 3) & (0x3FU));
+  cframe->Data[6] |= ((_m->Cluster_VrelLat_ro & (0x07U)) << 5) | (_m->Cluster_DynProp & (0x07U));
+  cframe->Data[7] |= (_m->Cluster_RCS_ro & (0xFFU));
+
+  cframe->MsgId = Cluster_1_General_CANID;
+  cframe->DLC = Cluster_1_General_DLC;
+  cframe->IDE = Cluster_1_General_IDE;
+  return Cluster_1_General_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch6(Cluster_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_1_General_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  _m->Cluster_DistLong_ro = ARS408_CAN_DATABASE_CH6_Cluster_DistLong_ro_toS(_m->Cluster_DistLong_phys);
+  _m->Cluster_DistLat_ro = ARS408_CAN_DATABASE_CH6_Cluster_DistLat_ro_toS(_m->Cluster_DistLat_phys);
+  _m->Cluster_VrelLong_ro = ARS408_CAN_DATABASE_CH6_Cluster_VrelLong_ro_toS(_m->Cluster_VrelLong_phys);
+  _m->Cluster_VrelLat_ro = ARS408_CAN_DATABASE_CH6_Cluster_VrelLat_ro_toS(_m->Cluster_VrelLat_phys);
+  _m->Cluster_RCS_ro = ARS408_CAN_DATABASE_CH6_Cluster_RCS_ro_toS(_m->Cluster_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  _d[0] |= (_m->Cluster_ID & (0xFFU));
+  _d[1] |= ((_m->Cluster_DistLong_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->Cluster_DistLong_ro & (0x1FU)) << 3) | ((_m->Cluster_DistLat_ro >> 8) & (0x03U));
+  _d[3] |= (_m->Cluster_DistLat_ro & (0xFFU));
+  _d[4] |= ((_m->Cluster_VrelLong_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Cluster_VrelLong_ro & (0x03U)) << 6) | ((_m->Cluster_VrelLat_ro >> 3) & (0x3FU));
+  _d[6] |= ((_m->Cluster_VrelLat_ro & (0x07U)) << 5) | (_m->Cluster_DynProp & (0x07U));
+  _d[7] |= (_m->Cluster_RCS_ro & (0xFFU));
+
+  *_len = Cluster_1_General_DLC;
+  *_ide = Cluster_1_General_IDE;
+  return Cluster_1_General_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_2_Quality_ARS408_can_database_ch6(Cluster_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_ID = (_d[0] & (0xFFU));
+  _m->Cluster_DistLat_rms = ((_d[1] & (0x07U)) << 2) | ((_d[2] >> 6) & (0x03U));
+  _m->Cluster_DistLong_rms = ((_d[1] >> 3) & (0x1FU));
+  _m->Cluster_VrelLat_rms = ((_d[2] & (0x01U)) << 4) | ((_d[3] >> 4) & (0x0FU));
+  _m->Cluster_VrelLong_rms = ((_d[2] >> 1) & (0x1FU));
+  _m->Cluster_PdH0 = (_d[3] & (0x07U));
+  _m->Cluster_AmbigState = (_d[4] & (0x07U));
+  _m->Cluster_InvalidState = ((_d[4] >> 3) & (0x1FU));
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_2_Quality_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_2_Quality_ars408_can_database_ch6(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+ return Cluster_2_Quality_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch6(Cluster_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_2_Quality_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Cluster_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Cluster_DistLat_rms >> 2) & (0x07U)) | ((_m->Cluster_DistLong_rms & (0x1FU)) << 3);
+  cframe->Data[2] |= ((_m->Cluster_DistLat_rms & (0x03U)) << 6) | ((_m->Cluster_VrelLat_rms >> 4) & (0x01U)) | ((_m->Cluster_VrelLong_rms & (0x1FU)) << 1);
+  cframe->Data[3] |= ((_m->Cluster_VrelLat_rms & (0x0FU)) << 4) | (_m->Cluster_PdH0 & (0x07U));
+  cframe->Data[4] |= (_m->Cluster_AmbigState & (0x07U)) | ((_m->Cluster_InvalidState & (0x1FU)) << 3);
+
+  cframe->MsgId = Cluster_2_Quality_CANID;
+  cframe->DLC = Cluster_2_Quality_DLC;
+  cframe->IDE = Cluster_2_Quality_IDE;
+  return Cluster_2_Quality_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch6(Cluster_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_2_Quality_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Cluster_ID & (0xFFU));
+  _d[1] |= ((_m->Cluster_DistLat_rms >> 2) & (0x07U)) | ((_m->Cluster_DistLong_rms & (0x1FU)) << 3);
+  _d[2] |= ((_m->Cluster_DistLat_rms & (0x03U)) << 6) | ((_m->Cluster_VrelLat_rms >> 4) & (0x01U)) | ((_m->Cluster_VrelLong_rms & (0x1FU)) << 1);
+  _d[3] |= ((_m->Cluster_VrelLat_rms & (0x0FU)) << 4) | (_m->Cluster_PdH0 & (0x07U));
+  _d[4] |= (_m->Cluster_AmbigState & (0x07U)) | ((_m->Cluster_InvalidState & (0x1FU)) << 3);
+
+  *_len = Cluster_2_Quality_DLC;
+  *_ide = Cluster_2_Quality_IDE;
+  return Cluster_2_Quality_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+

+ 4044 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch6.h

@@ -0,0 +1,4044 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+// DBC file version
+#define VER_ARS408_CAN_DATABASE_CH6_MAJ (0U)
+#define VER_ARS408_CAN_DATABASE_CH6_MIN (0U)
+
+// include current dbc-driver compilation config
+#include "ars408_can_database_ch6-config.h"
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+// This file must define:
+// base monitor struct
+// function signature for HASH calculation: (@GetFrameHash)
+// function signature for getting system tick value: (@GetSystemTick)
+#include "canmonitorutil.h"
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+
+// Control message for relay to display collision detection
+// def @CollDetRelayCtrl CAN Message (8    0x8)
+#define CollDetRelayCtrl_IDE (0U)
+#define CollDetRelayCtrl_DLC (1U)
+#define CollDetRelayCtrl_CANID (0x8)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+  // Region bit field for control relay
+  uint8_t CollDetRelayCtrl_Param;            //      Bits= 8
+
+#else
+
+  // Region bit field for control relay
+  uint8_t CollDetRelayCtrl_Param;            //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+} CollDetRelayCtrl_t;
+
+// Radar configuration
+// def @RadarConfiguration CAN Message (608  0x260)
+#define RadarConfiguration_IDE (0U)
+#define RadarConfiguration_DLC (8U)
+#define RadarConfiguration_CANID (0x260)
+// signal: @RadarCfg_MaxDistance_ro
+#define ARS408_CAN_DATABASE_CH6_RadarCfg_MaxDistance_ro_CovFactor (2)
+#define ARS408_CAN_DATABASE_CH6_RadarCfg_MaxDistance_ro_toS(x) ( (uint16_t) ((x) / (2)) )
+#define ARS408_CAN_DATABASE_CH6_RadarCfg_MaxDistance_ro_fromS(x) ( ((x) * (2)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+  // Allows changing the MaxDistance parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_MaxDistance_valid : 1;     //      Bits= 1
+
+  // Allows changing the SensorId parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SensorID_valid : 1;        //      Bits= 1
+
+  // Allows changing the RadarPower parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RadarPower_valid : 1;      //      Bits= 1
+
+  // Allows changing the OutputType parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_OutputType_valid : 1;      //      Bits= 1
+
+  // Allows changing the SendQuality parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendQuality_valid : 1;     //      Bits= 1
+
+  // Allows changing the SendExtInfo parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendExtInfo_valid : 1;     //      Bits= 1
+
+  // Allows changing the SortIndex parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SortIndex_valid : 1;       //      Bits= 1
+
+  // Allows changing the StoreInNvm parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_StoreInNVM_valid : 1;      //      Bits= 1
+
+  uint16_t RadarCfg_MaxDistance_ro;           //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  uint16_t RadarCfg_MaxDistance_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // Sensor ID (0 to 7)
+  uint8_t RadarCfg_SensorID : 3;              //      Bits= 3
+
+  // Data output type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarCfg_OutputType : 2;            //      Bits= 2
+
+  // Radar Tx output power reduction (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RadarPower : 3;            //      Bits= 3
+
+  // Allows changing the CtrlRelay parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_CtrlRelay_valid : 1;       //      Bits= 1
+
+  // Enables output of CtrlRelay message if CollDet is active
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_CtrlRelay : 1;             //      Bits= 1
+
+  // Enables output of quality message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendQuality : 1;           //      Bits= 1
+
+  // Enables output of extended message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendExtInfo : 1;           //      Bits= 1
+
+  // Object sort index
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarCfg_SortIndex : 3;             //      Bits= 3
+
+  // Store configuration in Nvm
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_StoreInNVM : 1;            //      Bits= 1
+
+  // Allows changing the RCS_Threshold parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RCS_Threshold_Valid : 1;   //      Bits= 1
+
+  // Standard or high sensitivity for cluster list output
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RCS_Threshold : 3;         //      Bits= 3
+
+#else
+
+  // Allows changing the MaxDistance parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_MaxDistance_valid;         //      Bits= 1
+
+  // Allows changing the SensorId parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SensorID_valid;            //      Bits= 1
+
+  // Allows changing the RadarPower parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RadarPower_valid;          //      Bits= 1
+
+  // Allows changing the OutputType parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_OutputType_valid;          //      Bits= 1
+
+  // Allows changing the SendQuality parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendQuality_valid;         //      Bits= 1
+
+  // Allows changing the SendExtInfo parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendExtInfo_valid;         //      Bits= 1
+
+  // Allows changing the SortIndex parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SortIndex_valid;           //      Bits= 1
+
+  // Allows changing the StoreInNvm parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_StoreInNVM_valid;          //      Bits= 1
+
+  uint16_t RadarCfg_MaxDistance_ro;           //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  uint16_t RadarCfg_MaxDistance_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // Sensor ID (0 to 7)
+  uint8_t RadarCfg_SensorID;                  //      Bits= 3
+
+  // Data output type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarCfg_OutputType;                //      Bits= 2
+
+  // Radar Tx output power reduction (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RadarPower;                //      Bits= 3
+
+  // Allows changing the CtrlRelay parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_CtrlRelay_valid;           //      Bits= 1
+
+  // Enables output of CtrlRelay message if CollDet is active
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_CtrlRelay;                 //      Bits= 1
+
+  // Enables output of quality message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendQuality;               //      Bits= 1
+
+  // Enables output of extended message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendExtInfo;               //      Bits= 1
+
+  // Object sort index
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarCfg_SortIndex;                 //      Bits= 3
+
+  // Store configuration in Nvm
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_StoreInNVM;                //      Bits= 1
+
+  // Allows changing the RCS_Threshold parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RCS_Threshold_Valid;       //      Bits= 1
+
+  // Standard or high sensitivity for cluster list output
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RCS_Threshold;             //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+} RadarConfiguration_t;
+
+// Radar configuration status
+// def @RadarState CAN Message (609  0x261)
+#define RadarState_IDE (0U)
+#define RadarState_DLC (8U)
+#define RadarState_CANID (0x261)
+#define RadarState_CYC (50U)
+// signal: @RadarState_MaxDistanceCfg_ro
+#define ARS408_CAN_DATABASE_CH6_RadarState_MaxDistanceCfg_ro_CovFactor (2)
+#define ARS408_CAN_DATABASE_CH6_RadarState_MaxDistanceCfg_ro_toS(x) ( (uint16_t) ((x) / (2)) )
+#define ARS408_CAN_DATABASE_CH6_RadarState_MaxDistanceCfg_ro_fromS(x) ( ((x) * (2)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+  // Gives the status of reading the radar configuration from EEPROM
+  //  1 : "successful"
+  //  0 : "pending"
+  // 
+  uint8_t RadarState_NVMReadStatus : 1;       //      Bits= 1
+
+  // Gives the status of writing the radar configuration from EEPROM
+  // 
+  uint8_t RadarState_NVMwriteStatus : 1;      //      Bits= 1
+
+  uint16_t RadarState_MaxDistanceCfg_ro;      //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  uint16_t RadarState_MaxDistanceCfg_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // 
+  // 
+  //  1 : "Voltage error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Voltage_Error : 1;       //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temporary error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temporary_Error : 1;     //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temperature error  active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temperature_Error : 1;   //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Interference detected"
+  //  0 : "No interference"
+  // 
+  uint8_t RadarState_Interference : 1;        //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Persistent error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Persistent_Error : 1;    //      Bits= 1
+
+  // Radar Tx output level (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RadarPowerCfg : 3;       //      Bits= 3
+
+  // Sensor ID (0 to 7)
+  //  7 : "ID 7"
+  //  6 : "ID 6"
+  //  5 : "ID 5"
+  //  4 : "ID 4"
+  //  3 : "ID 3"
+  //  2 : "ID 2"
+  //  1 : "ID 1"
+  //  0 : "ID 0"
+  // 
+  uint8_t RadarState_SensorID : 3;            //      Bits= 3
+
+  // Current sorting of object list
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarState_SortIndex : 3;           //      Bits= 3
+
+  // Status of control relay message output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_CtrlRelayCfg : 1;        //      Bits= 1
+
+  // Current output list type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarState_OutputTypeCfg : 2;       //      Bits= 2
+
+  // Status of quality information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendQualityCfg : 1;      //      Bits= 1
+
+  // Status of extended information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendExtInfoCfg : 1;      //      Bits= 1
+
+  // Status of motion input signals
+  //  3 : "Speed and yaw rate missing"
+  //  2 : "Yaw rate missing"
+  //  1 : "Speed missing"
+  //  0 : "Input ok"
+  // 
+  uint8_t RadarState_MotionRxState : 2;       //      Bits= 2
+
+  // Current sensitivity mode
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RCS_Threshold : 3;       //      Bits= 3
+
+#else
+
+  // Gives the status of reading the radar configuration from EEPROM
+  //  1 : "successful"
+  //  0 : "pending"
+  // 
+  uint8_t RadarState_NVMReadStatus;           //      Bits= 1
+
+  // Gives the status of writing the radar configuration from EEPROM
+  // 
+  uint8_t RadarState_NVMwriteStatus;          //      Bits= 1
+
+  uint16_t RadarState_MaxDistanceCfg_ro;      //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  uint16_t RadarState_MaxDistanceCfg_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // 
+  // 
+  //  1 : "Voltage error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Voltage_Error;           //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temporary error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temporary_Error;         //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temperature error  active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temperature_Error;       //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Interference detected"
+  //  0 : "No interference"
+  // 
+  uint8_t RadarState_Interference;            //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Persistent error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Persistent_Error;        //      Bits= 1
+
+  // Radar Tx output level (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RadarPowerCfg;           //      Bits= 3
+
+  // Sensor ID (0 to 7)
+  //  7 : "ID 7"
+  //  6 : "ID 6"
+  //  5 : "ID 5"
+  //  4 : "ID 4"
+  //  3 : "ID 3"
+  //  2 : "ID 2"
+  //  1 : "ID 1"
+  //  0 : "ID 0"
+  // 
+  uint8_t RadarState_SensorID;                //      Bits= 3
+
+  // Current sorting of object list
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarState_SortIndex;               //      Bits= 3
+
+  // Status of control relay message output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_CtrlRelayCfg;            //      Bits= 1
+
+  // Current output list type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarState_OutputTypeCfg;           //      Bits= 2
+
+  // Status of quality information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendQualityCfg;          //      Bits= 1
+
+  // Status of extended information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendExtInfoCfg;          //      Bits= 1
+
+  // Status of motion input signals
+  //  3 : "Speed and yaw rate missing"
+  //  2 : "Yaw rate missing"
+  //  1 : "Speed missing"
+  //  0 : "Input ok"
+  // 
+  uint8_t RadarState_MotionRxState;           //      Bits= 2
+
+  // Current sensitivity mode
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RCS_Threshold;           //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+} RadarState_t;
+
+// Filter configuration
+// def @FilterCfg CAN Message (610  0x262)
+#define FilterCfg_IDE (0U)
+#define FilterCfg_DLC (5U)
+#define FilterCfg_CANID (0x262)
+// signal: @FilterCfg_Min_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_Size_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterCfg_Min_RCS_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Min_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Min_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Min_Distance_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Min_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_Y_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterCfg_Min_X_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Min_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @FilterCfg_Max_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Max_Distance_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Max_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Max_RCS_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Max_Size_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterCfg_Max_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_Y_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterCfg_Max_X_ro
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterCfg_Max_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+  //  1 : "valid"
+  //  0 : "invalid"
+  // 
+  uint8_t FilterCfg_Valid : 1;                //      Bits= 1
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterCfg_Active : 1;               //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterCfg_Index : 4;                //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterCfg_Type : 1;                 //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#else
+
+  //  1 : "valid"
+  //  0 : "invalid"
+  // 
+  uint8_t FilterCfg_Valid;                    //      Bits= 1
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterCfg_Active;                   //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterCfg_Index;                    //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterCfg_Type;                     //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+} FilterCfg_t;
+
+// Header of filter configuration state
+// def @FilterState_Header CAN Message (611  0x263)
+#define FilterState_Header_IDE (0U)
+#define FilterState_Header_DLC (2U)
+#define FilterState_Header_CANID (0x263)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+  uint8_t FilterState_NofClusterFilterCfg : 5;   //      Bits= 5
+
+  uint8_t FilterState_NofObjectFilterCfg : 5;    //      Bits= 5
+
+#else
+
+  uint8_t FilterState_NofClusterFilterCfg;       //      Bits= 5
+
+  uint8_t FilterState_NofObjectFilterCfg;        //      Bits= 5
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+} FilterState_Header_t;
+
+// Filter configuration status
+// def @FilterState_Cfg CAN Message (612  0x264)
+#define FilterState_Cfg_IDE (0U)
+#define FilterState_Cfg_DLC (5U)
+#define FilterState_Cfg_CANID (0x264)
+// signal: @FilterState_Min_RCS_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Min_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Min_Distance_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Min_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Min_Y_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterState_Min_Size_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterState_Min_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_X_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Min_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @FilterState_Max_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Max_Distance_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Max_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Max_RCS_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Max_Size_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterState_Max_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_Y_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterState_Max_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_X_ro
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_FilterState_Max_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterState_Active : 1;               //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterState_Index : 4;                //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterState_Type : 1;                 //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterState_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_NofObj;              //      Bits=12
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_NofObj;              //      Bits=12
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#else
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterState_Active;                   //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterState_Index;                    //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterState_Type;                     //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterState_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_NofObj;              //      Bits=12
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_NofObj;              //      Bits=12
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+} FilterState_Cfg_t;
+
+// Device movement speed
+// def @SpeedInformation CAN Message (864  0x360)
+#define SpeedInformation_IDE (0U)
+#define SpeedInformation_DLC (2U)
+#define SpeedInformation_CANID (0x360)
+// signal: @RadarDevice_Speed_ro
+#define ARS408_CAN_DATABASE_CH6_RadarDevice_Speed_ro_CovFactor (0.020000)
+#define ARS408_CAN_DATABASE_CH6_RadarDevice_Speed_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.020000)) )
+#define ARS408_CAN_DATABASE_CH6_RadarDevice_Speed_ro_fromS(x) ( (((x) * (0.020000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+  uint16_t RadarDevice_Speed_ro;             //      Bits=13 Factor= 0.020000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t RadarDevice_Speed_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // Speed direction of the radar unit
+  //  3 : "reserved"
+  //  2 : "reverse"
+  //  1 : "forward"
+  //  0 : "standstill"
+  // 
+  uint8_t RadarDevice_SpeedDirection : 2;    //      Bits= 2
+
+#else
+
+  uint16_t RadarDevice_Speed_ro;             //      Bits=13 Factor= 0.020000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t RadarDevice_Speed_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // Speed direction of the radar unit
+  //  3 : "reserved"
+  //  2 : "reverse"
+  //  1 : "forward"
+  //  0 : "standstill"
+  // 
+  uint8_t RadarDevice_SpeedDirection;        //      Bits= 2
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+} SpeedInformation_t;
+
+// Device movement yaw rate
+// def @YawRateInformation CAN Message (865  0x361)
+#define YawRateInformation_IDE (0U)
+#define YawRateInformation_DLC (2U)
+#define YawRateInformation_CANID (0x361)
+// signal: @RadarDevice_YawRate_ro
+#define ARS408_CAN_DATABASE_CH6_RadarDevice_YawRate_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH6_RadarDevice_YawRate_ro_toS(x) ( (uint16_t) (((x) - (-327.680000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH6_RadarDevice_YawRate_ro_fromS(x) ( (((x) * (0.010000)) + (-327.680000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+  uint16_t RadarDevice_YawRate_ro;           //      Bits=16 Offset= -327.680000        Factor= 0.010000        Unit:'deg/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t RadarDevice_YawRate_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#else
+
+  uint16_t RadarDevice_YawRate_ro;           //      Bits=16 Offset= -327.680000        Factor= 0.010000        Unit:'deg/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t RadarDevice_YawRate_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+} YawRateInformation_t;
+
+// Collision detection configuration status
+// def @CollDetState CAN Message (1032 0x408)
+#define CollDetState_IDE (0U)
+#define CollDetState_DLC (4U)
+#define CollDetState_CANID (0x408)
+// signal: @CollDetState_MinDetectTime_ro
+#define ARS408_CAN_DATABASE_CH6_CollDetState_MinDetectTime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH6_CollDetState_MinDetectTime_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH6_CollDetState_MinDetectTime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetState_Active : 1;             //      Bits= 1
+
+  uint8_t CollDetState_NofRegions : 4;         //      Bits= 4
+
+  uint8_t CollDetState_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t CollDetState_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t CollDetState_MeasCounter;           //      Bits=16
+
+#else
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetState_Active;                 //      Bits= 1
+
+  uint8_t CollDetState_NofRegions;             //      Bits= 4
+
+  uint8_t CollDetState_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t CollDetState_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t CollDetState_MeasCounter;           //      Bits=16
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+} CollDetState_t;
+
+// Collision detection configuration
+// def @CollDetCfg CAN Message (1120 0x460)
+#define CollDetCfg_IDE (0U)
+#define CollDetCfg_DLC (2U)
+#define CollDetCfg_CANID (0x460)
+// signal: @CollDetCfg_MinDetectTime_ro
+#define ARS408_CAN_DATABASE_CH6_CollDetCfg_MinDetectTime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH6_CollDetCfg_MinDetectTime_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH6_CollDetCfg_MinDetectTime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+  //  1 : "Warn reset"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_WarningReset : 1;       //      Bits= 1
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetCfg_Activate : 1;           //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetCfg_MinTime_valid : 1;      //      Bits= 1
+
+  //  1 : "Clear all defined regions"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_ClearRegions : 1;       //      Bits= 1
+
+  uint8_t CollDetCfg_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t CollDetCfg_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#else
+
+  //  1 : "Warn reset"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_WarningReset;           //      Bits= 1
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetCfg_Activate;               //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetCfg_MinTime_valid;          //      Bits= 1
+
+  //  1 : "Clear all defined regions"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_ClearRegions;           //      Bits= 1
+
+  uint8_t CollDetCfg_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t CollDetCfg_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+} CollDetCfg_t;
+
+// Collision detection region configuration
+// def @CollDetRegionCfg CAN Message (1121 0x461)
+#define CollDetRegionCfg_IDE (0U)
+#define CollDetRegionCfg_DLC (8U)
+#define CollDetRegionCfg_CANID (0x461)
+// signal: @CollDetRegCfg_Point1X_ro
+#define ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point1X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point1X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point1X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegCfg_Point1Y_ro
+#define ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point1Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point1Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point1Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @CollDetRegCfg_Point2X_ro
+#define ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point2X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point2X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point2X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegCfg_Point2Y_ro
+#define ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point2Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point2Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_CollDetRegCfg_Point2Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetRegCfg_Activate : 1;            //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetRegCfg_Coordinates_valid : 1;   //      Bits= 1
+
+  uint8_t CollDetRegCfg_RegionID : 3;            //      Bits= 3
+
+  uint16_t CollDetRegCfg_Point1X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point1Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#else
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetRegCfg_Activate;                //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetRegCfg_Coordinates_valid;       //      Bits= 1
+
+  uint8_t CollDetRegCfg_RegionID;                //      Bits= 3
+
+  uint16_t CollDetRegCfg_Point1X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point1Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+} CollDetRegionCfg_t;
+
+// Collision detection region configuration and warning status
+// def @CollDetRegionState CAN Message (1122 0x462)
+#define CollDetRegionState_IDE (0U)
+#define CollDetRegionState_DLC (8U)
+#define CollDetRegionState_CANID (0x462)
+// signal: @CollDetRegState_Point1X_ro
+#define ARS408_CAN_DATABASE_CH6_CollDetRegState_Point1X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_CollDetRegState_Point1X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_CollDetRegState_Point1X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegState_Point1Y_ro
+#define ARS408_CAN_DATABASE_CH6_CollDetRegState_Point1Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_CollDetRegState_Point1Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_CollDetRegState_Point1Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @CollDetRegState_Point2X_ro
+#define ARS408_CAN_DATABASE_CH6_CollDetRegState_Point2X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_CollDetRegState_Point2X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_CollDetRegState_Point2X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegState_Point2Y_ro
+#define ARS408_CAN_DATABASE_CH6_CollDetRegState_Point2Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_CollDetRegState_Point2Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_CollDetRegState_Point2Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+  //  3 : "Warning deactivated"
+  //  2 : "Preliminary warning"
+  //  1 : "Object warning"
+  //  0 : "No warning"
+  // 
+  uint8_t CollDetRegState_WarningLevel : 2;   //      Bits= 2
+
+  uint8_t CollDetRegState_RegionID : 3;       //      Bits= 3
+
+  uint16_t CollDetRegState_Point1X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point1Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint8_t CollDetRegState_NofObjects;         //      Bits= 8
+
+#else
+
+  //  3 : "Warning deactivated"
+  //  2 : "Preliminary warning"
+  //  1 : "Object warning"
+  //  0 : "No warning"
+  // 
+  uint8_t CollDetRegState_WarningLevel;       //      Bits= 2
+
+  uint8_t CollDetRegState_RegionID;           //      Bits= 3
+
+  uint16_t CollDetRegState_Point1X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point1Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint8_t CollDetRegState_NofObjects;         //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+} CollDetRegionState_t;
+
+// Status information about Clusters
+// def @Cluster_0_Status CAN Message (1632 0x660)
+#define Cluster_0_Status_IDE (0U)
+#define Cluster_0_Status_DLC (5U)
+#define Cluster_0_Status_CANID (0x660)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+  // Number of valid Clusters in near range scan
+  uint8_t Cluster_NofClustersNear;           //      Bits= 8
+
+  // Number of valid Clusters in far range scan
+  uint8_t Cluster_NofClustersFar;            //      Bits= 8
+
+  // Measurement counter
+  uint16_t Cluster_MeasCounter;              //      Bits=16
+
+  // Cluster CAN Interface Version Number
+  uint8_t Cluster_InterfaceVersion : 4;      //      Bits= 4
+
+#else
+
+  // Number of valid Clusters in near range scan
+  uint8_t Cluster_NofClustersNear;           //      Bits= 8
+
+  // Number of valid Clusters in far range scan
+  uint8_t Cluster_NofClustersFar;            //      Bits= 8
+
+  // Measurement counter
+  uint16_t Cluster_MeasCounter;              //      Bits=16
+
+  // Cluster CAN Interface Version Number
+  uint8_t Cluster_InterfaceVersion;          //      Bits= 4
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+} Cluster_0_Status_t;
+
+// Status information about object
+// def @Obj_0_Status CAN Message (1642 0x66a)
+#define Obj_0_Status_IDE (0U)
+#define Obj_0_Status_DLC (4U)
+#define Obj_0_Status_CANID (0x66a)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+  // Number of Objects sent
+  uint8_t Obj_NofObjects;                    //      Bits= 8
+
+  // Measurement Counter
+  uint16_t Obj_MeasCounter;                  //      Bits=16
+
+  // Object CAN Interface Version Number
+  uint8_t Obj_InterfaceVersion : 4;          //      Bits= 4
+
+#else
+
+  // Number of Objects sent
+  uint8_t Obj_NofObjects;                    //      Bits= 8
+
+  // Measurement Counter
+  uint16_t Obj_MeasCounter;                  //      Bits=16
+
+  // Object CAN Interface Version Number
+  uint8_t Obj_InterfaceVersion;              //      Bits= 4
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+} Obj_0_Status_t;
+
+// General object information
+// def @Obj_1_General CAN Message (1643 0x66b)
+#define Obj_1_General_IDE (0U)
+#define Obj_1_General_DLC (8U)
+#define Obj_1_General_CANID (0x66b)
+// signal: @Obj_DistLong_ro
+#define ARS408_CAN_DATABASE_CH6_Obj_DistLong_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_Obj_DistLong_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_Obj_DistLong_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @Obj_DistLat_ro
+#define ARS408_CAN_DATABASE_CH6_Obj_DistLat_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_Obj_DistLat_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_Obj_DistLat_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @Obj_VrelLong_ro
+#define ARS408_CAN_DATABASE_CH6_Obj_VrelLong_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH6_Obj_VrelLong_ro_toS(x) ( (uint16_t) (((x) - (-128.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH6_Obj_VrelLong_ro_fromS(x) ( (((x) * (0.250000)) + (-128.000000)) )
+// signal: @Obj_VrelLat_ro
+#define ARS408_CAN_DATABASE_CH6_Obj_VrelLat_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH6_Obj_VrelLat_ro_toS(x) ( (uint16_t) (((x) - (-64.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH6_Obj_VrelLat_ro_fromS(x) ( (((x) * (0.250000)) + (-64.000000)) )
+// signal: @Obj_RCS_ro
+#define ARS408_CAN_DATABASE_CH6_Obj_RCS_ro_CovFactor (0.500000)
+#define ARS408_CAN_DATABASE_CH6_Obj_RCS_ro_toS(x) ( (uint8_t) (((x) - (-64.000000)) / (0.500000)) )
+#define ARS408_CAN_DATABASE_CH6_Obj_RCS_ro_fromS(x) ( (((x) * (0.500000)) + (-64.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_DistLong_ro;                  //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Obj_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t Obj_DistLat_ro;                   //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Obj_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLong_ro;                  //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLat_ro;                   //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // Object dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Obj_DynProp : 3;                   //      Bits= 3
+
+  uint8_t Obj_RCS_ro;                        //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Obj_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_DistLong_ro;                  //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Obj_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t Obj_DistLat_ro;                   //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Obj_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLong_ro;                  //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLat_ro;                   //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // Object dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Obj_DynProp;                       //      Bits= 3
+
+  uint8_t Obj_RCS_ro;                        //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Obj_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+} Obj_1_General_t;
+
+// Quality object information
+// def @Obj_2_Quality CAN Message (1644 0x66c)
+#define Obj_2_Quality_IDE (0U)
+#define Obj_2_Quality_DLC (7U)
+#define Obj_2_Quality_CANID (0x66c)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Object lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLat_rms : 5;               //      Bits= 5
+
+  // Object longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLong_rms : 5;              //      Bits= 5
+
+  // Object relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLat_rms : 5;               //      Bits= 5
+
+  // Object relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLong_rms : 5;              //      Bits= 5
+
+  // Object relative longitudinal acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLong_rms : 5;              //      Bits= 5
+
+  // Object orientation angle
+  //  31 : "Invalid"
+  //  30 : "<180.000 deg"
+  //  29 : "<126.881 deg"
+  //  28 : "<89.437 deg"
+  //  27 : "<63.044 deg"
+  //  26 : "<44.439 deg"
+  //  25 : "<31.325 deg"
+  //  24 : "<22.081 deg"
+  //  23 : "<15.565 deg"
+  //  22 : "<10.971 deg"
+  //  21 : "<7.734 deg"
+  //  20 : "<5.451 deg"
+  //  19 : "<3.843 deg"
+  //  18 : "<2.709 deg"
+  //  17 : "<1.909 deg"
+  //  16 : "<1.346 deg"
+  //  15 : "<0.949 deg"
+  //  14 : "<0.669 deg"
+  //  13 : "<0.471 deg"
+  //  12 : "<0.332 deg"
+  //  11 : "<0.234 deg"
+  //  10 : "<0.165 deg"
+  //  9 : "<0.116 deg"
+  //  8 : "<0.082 deg"
+  //  7 : "<0.058 deg"
+  //  6 : "<0.041 deg"
+  //  5 : "<0.029 deg"
+  //  4 : "<0.020 deg"
+  //  3 : "<0.014 deg"
+  //  2 : "<0.010 deg"
+  //  1 : "<0.007 deg"
+  //  0 : "<0.005 deg"
+  // 
+  uint8_t Obj_Orientation_rms : 5;           //      Bits= 5
+
+  // Object relative lateral acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLat_rms : 5;               //      Bits= 5
+
+  // Object measurement status
+  //  5 : "New from merge"
+  //  4 : "Deleted for merge"
+  //  3 : "Predicted"
+  //  2 : "Measured"
+  //  1 : "New"
+  //  0 : "Deleted"
+  // 
+  uint8_t Obj_MeasState : 3;                 //      Bits= 3
+
+  // Object probability of existence
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Obj_ProbOfExist : 3;               //      Bits= 3
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Object lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLat_rms;                   //      Bits= 5
+
+  // Object longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLong_rms;                  //      Bits= 5
+
+  // Object relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLat_rms;                   //      Bits= 5
+
+  // Object relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLong_rms;                  //      Bits= 5
+
+  // Object relative longitudinal acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLong_rms;                  //      Bits= 5
+
+  // Object orientation angle
+  //  31 : "Invalid"
+  //  30 : "<180.000 deg"
+  //  29 : "<126.881 deg"
+  //  28 : "<89.437 deg"
+  //  27 : "<63.044 deg"
+  //  26 : "<44.439 deg"
+  //  25 : "<31.325 deg"
+  //  24 : "<22.081 deg"
+  //  23 : "<15.565 deg"
+  //  22 : "<10.971 deg"
+  //  21 : "<7.734 deg"
+  //  20 : "<5.451 deg"
+  //  19 : "<3.843 deg"
+  //  18 : "<2.709 deg"
+  //  17 : "<1.909 deg"
+  //  16 : "<1.346 deg"
+  //  15 : "<0.949 deg"
+  //  14 : "<0.669 deg"
+  //  13 : "<0.471 deg"
+  //  12 : "<0.332 deg"
+  //  11 : "<0.234 deg"
+  //  10 : "<0.165 deg"
+  //  9 : "<0.116 deg"
+  //  8 : "<0.082 deg"
+  //  7 : "<0.058 deg"
+  //  6 : "<0.041 deg"
+  //  5 : "<0.029 deg"
+  //  4 : "<0.020 deg"
+  //  3 : "<0.014 deg"
+  //  2 : "<0.010 deg"
+  //  1 : "<0.007 deg"
+  //  0 : "<0.005 deg"
+  // 
+  uint8_t Obj_Orientation_rms;               //      Bits= 5
+
+  // Object relative lateral acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLat_rms;                   //      Bits= 5
+
+  // Object measurement status
+  //  5 : "New from merge"
+  //  4 : "Deleted for merge"
+  //  3 : "Predicted"
+  //  2 : "Measured"
+  //  1 : "New"
+  //  0 : "Deleted"
+  // 
+  uint8_t Obj_MeasState;                     //      Bits= 3
+
+  // Object probability of existence
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Obj_ProbOfExist;                   //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+} Obj_2_Quality_t;
+
+// Extended object information
+// def @Obj_3_Extended CAN Message (1645 0x66d)
+#define Obj_3_Extended_IDE (0U)
+#define Obj_3_Extended_DLC (8U)
+#define Obj_3_Extended_CANID (0x66d)
+// signal: @Obj_ArelLong_ro
+#define ARS408_CAN_DATABASE_CH6_Obj_ArelLong_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH6_Obj_ArelLong_ro_toS(x) ( (uint16_t) (((x) - (-10.000000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH6_Obj_ArelLong_ro_fromS(x) ( (((x) * (0.010000)) + (-10.000000)) )
+// signal: @Obj_ArelLat_ro
+#define ARS408_CAN_DATABASE_CH6_Obj_ArelLat_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH6_Obj_ArelLat_ro_toS(x) ( (uint16_t) (((x) - (-2.500000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH6_Obj_ArelLat_ro_fromS(x) ( (((x) * (0.010000)) + (-2.500000)) )
+// signal: @Obj_OrientationAngle_ro
+#define ARS408_CAN_DATABASE_CH6_Obj_OrientationAngle_ro_CovFactor (0.400000)
+#define ARS408_CAN_DATABASE_CH6_Obj_OrientationAngle_ro_toS(x) ( (uint16_t) (((x) - (-180.000000)) / (0.400000)) )
+#define ARS408_CAN_DATABASE_CH6_Obj_OrientationAngle_ro_fromS(x) ( (((x) * (0.400000)) + (-180.000000)) )
+// signal: @Obj_Length_ro
+#define ARS408_CAN_DATABASE_CH6_Obj_Length_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_Obj_Length_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_Obj_Length_ro_fromS(x) ( (((x) * (0.200000)) + (0.000000)) )
+// signal: @Obj_Width_ro
+#define ARS408_CAN_DATABASE_CH6_Obj_Width_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_Obj_Width_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_Obj_Width_ro_fromS(x) ( (((x) * (0.200000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_ArelLong_ro;                  //      Bits=11 Offset= -10.000000         Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t Obj_ArelLat_ro;                   //      Bits= 9 Offset= -2.500000          Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // Object classification
+  //  7 : "Description for the value '0x7'"
+  //  6 : "Wide"
+  //  5 : "Bicycle"
+  //  4 : "Motorcycle"
+  //  3 : "Pedestrian"
+  //  2 : "Truck"
+  //  1 : "Car"
+  //  0 : "Point"
+  // 
+  uint8_t Obj_Class : 3;                     //      Bits= 3
+
+  uint16_t Obj_OrientationAngle_ro;          //      Bits=10 Offset= -180.000000        Factor= 0.400000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Obj_OrientationAngle_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint8_t Obj_Length_ro;                     //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Obj_Length_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint8_t Obj_Width_ro;                      //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Obj_Width_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_ArelLong_ro;                  //      Bits=11 Offset= -10.000000         Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t Obj_ArelLat_ro;                   //      Bits= 9 Offset= -2.500000          Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // Object classification
+  //  7 : "Description for the value '0x7'"
+  //  6 : "Wide"
+  //  5 : "Bicycle"
+  //  4 : "Motorcycle"
+  //  3 : "Pedestrian"
+  //  2 : "Truck"
+  //  1 : "Car"
+  //  0 : "Point"
+  // 
+  uint8_t Obj_Class;                         //      Bits= 3
+
+  uint16_t Obj_OrientationAngle_ro;          //      Bits=10 Offset= -180.000000        Factor= 0.400000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Obj_OrientationAngle_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint8_t Obj_Length_ro;                     //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Obj_Length_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint8_t Obj_Width_ro;                      //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Obj_Width_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+} Obj_3_Extended_t;
+
+// Collision detection warning object information
+// def @Obj_4_Warning CAN Message (1646 0x66e)
+#define Obj_4_Warning_IDE (0U)
+#define Obj_4_Warning_DLC (4U)
+#define Obj_4_Warning_CANID (0x66e)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Region bit field with collision detection
+  uint8_t Obj_CollDetRegionBitfield;         //      Bits= 8
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Region bit field with collision detection
+  uint8_t Obj_CollDetRegionBitfield;         //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+} Obj_4_Warning_t;
+
+// Firmware version
+// def @VersionID CAN Message (1888 0x760)
+#define VersionID_IDE (0U)
+#define VersionID_DLC (4U)
+#define VersionID_CANID (0x760)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+  // Major Release Number
+  uint8_t Version_MajorRelease;              //      Bits= 8
+
+  // Minor Release Number
+  uint8_t Version_MinorRelease;              //      Bits= 8
+
+  // Patch Level
+  uint8_t Version_PatchLevel;                //      Bits= 8
+
+  // 
+  // 
+  //  1 : "Power Reduction is demanded"
+  //  0 : "International Version"
+  // 
+  uint8_t Version_CountryCode : 1;           //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Description for the value '0x1'"
+  //  0 : "Standard Range 196m-260m"
+  // 
+  uint8_t Version_ExtendedRange : 1;         //      Bits= 1
+
+#else
+
+  // Major Release Number
+  uint8_t Version_MajorRelease;              //      Bits= 8
+
+  // Minor Release Number
+  uint8_t Version_MinorRelease;              //      Bits= 8
+
+  // Patch Level
+  uint8_t Version_PatchLevel;                //      Bits= 8
+
+  // 
+  // 
+  //  1 : "Power Reduction is demanded"
+  //  0 : "International Version"
+  // 
+  uint8_t Version_CountryCode;               //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Description for the value '0x1'"
+  //  0 : "Standard Range 196m-260m"
+  // 
+  uint8_t Version_ExtendedRange;             //      Bits= 1
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+} VersionID_t;
+
+// General Cluster information
+// def @Cluster_1_General CAN Message (1889 0x761)
+#define Cluster_1_General_IDE (0U)
+#define Cluster_1_General_DLC (8U)
+#define Cluster_1_General_CANID (0x761)
+// signal: @Cluster_DistLong_ro
+#define ARS408_CAN_DATABASE_CH6_Cluster_DistLong_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_Cluster_DistLong_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_Cluster_DistLong_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @Cluster_DistLat_ro
+#define ARS408_CAN_DATABASE_CH6_Cluster_DistLat_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH6_Cluster_DistLat_ro_toS(x) ( (uint16_t) (((x) - (-102.300000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH6_Cluster_DistLat_ro_fromS(x) ( (((x) * (0.200000)) + (-102.300000)) )
+// signal: @Cluster_VrelLong_ro
+#define ARS408_CAN_DATABASE_CH6_Cluster_VrelLong_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH6_Cluster_VrelLong_ro_toS(x) ( (uint16_t) (((x) - (-128.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH6_Cluster_VrelLong_ro_fromS(x) ( (((x) * (0.250000)) + (-128.000000)) )
+// signal: @Cluster_VrelLat_ro
+#define ARS408_CAN_DATABASE_CH6_Cluster_VrelLat_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH6_Cluster_VrelLat_ro_toS(x) ( (uint16_t) (((x) - (-64.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH6_Cluster_VrelLat_ro_fromS(x) ( (((x) * (0.250000)) + (-64.000000)) )
+// signal: @Cluster_RCS_ro
+#define ARS408_CAN_DATABASE_CH6_Cluster_RCS_ro_CovFactor (0.500000)
+#define ARS408_CAN_DATABASE_CH6_Cluster_RCS_ro_toS(x) ( (uint8_t) (((x) - (-64.000000)) / (0.500000)) )
+#define ARS408_CAN_DATABASE_CH6_Cluster_RCS_ro_fromS(x) ( (((x) * (0.500000)) + (-64.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  uint16_t Cluster_DistLong_ro;              //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t Cluster_DistLat_ro;               //      Bits=10 Offset= -102.300000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLong_ro;              //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLat_ro;               //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // Cluster dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Cluster_DynProp : 3;               //      Bits= 3
+
+  uint8_t Cluster_RCS_ro;                    //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Cluster_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#else
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  uint16_t Cluster_DistLong_ro;              //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t Cluster_DistLat_ro;               //      Bits=10 Offset= -102.300000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLong_ro;              //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLat_ro;               //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+  // Cluster dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Cluster_DynProp;                   //      Bits= 3
+
+  uint8_t Cluster_RCS_ro;                    //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+  sigfloat_t Cluster_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH6_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+} Cluster_1_General_t;
+
+// Quality Cluster information
+// def @Cluster_2_Quality CAN Message (1890 0x762)
+#define Cluster_2_Quality_IDE (0U)
+#define Cluster_2_Quality_DLC (5U)
+#define Cluster_2_Quality_CANID (0x762)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  // Cluster lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLat_rms : 5;           //      Bits= 5 Unit:'m'
+
+  // Cluster longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLong_rms : 5;          //      Bits= 5 Unit:'m'
+
+  // Cluster relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLat_rms : 5;           //      Bits= 5 Unit:'m/s'
+
+  // Cluster relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLong_rms : 5;          //      Bits= 5 Unit:'m/s'
+
+  // Cluster false alarm probability
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Cluster_PdH0 : 3;                  //      Bits= 3
+
+  // Cluster Doppler ambiguity status
+  //  4 : "Stationary candidate"
+  //  3 : "Unambiguous"
+  //  2 : "Staggered ramp"
+  //  1 : "Ambiguous"
+  //  0 : "Invalid"
+  // 
+  uint8_t Cluster_AmbigState : 3;            //      Bits= 3
+
+  // Cluster invalid state
+  //  17 : "Valid suspicious angle"
+  //  16 : "Valid multi-target"
+  //  15 : "Valid near above 95 m"
+  //  14 : "Invalid harmonics "
+  //  13 : "reserved"
+  //  12 : "Valid artefact "
+  //  11 : "Valid but no local maximum"
+  //  10 : "Valid 50 deg artefact"
+  //  9 : "Valid child"
+  //  8 : "Valid with elevation"
+  //  7 : "Invalid outside field of view"
+  //  6 : "Invalid mirror"
+  //  5 : "reserved"
+  //  4 : "Valid with low RCS"
+  //  3 : "Invalid far not confirmed"
+  //  2 : "Invalid nearfield"
+  //  1 : "Invalid with too low RCS"
+  //  0 : "Valid"
+  // 
+  uint8_t Cluster_InvalidState : 5;          //      Bits= 5
+
+#else
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  // Cluster lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLat_rms;               //      Bits= 5 Unit:'m'
+
+  // Cluster longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLong_rms;              //      Bits= 5 Unit:'m'
+
+  // Cluster relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLat_rms;               //      Bits= 5 Unit:'m/s'
+
+  // Cluster relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLong_rms;              //      Bits= 5 Unit:'m/s'
+
+  // Cluster false alarm probability
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Cluster_PdH0;                      //      Bits= 3
+
+  // Cluster Doppler ambiguity status
+  //  4 : "Stationary candidate"
+  //  3 : "Unambiguous"
+  //  2 : "Staggered ramp"
+  //  1 : "Ambiguous"
+  //  0 : "Invalid"
+  // 
+  uint8_t Cluster_AmbigState;                //      Bits= 3
+
+  // Cluster invalid state
+  //  17 : "Valid suspicious angle"
+  //  16 : "Valid multi-target"
+  //  15 : "Valid near above 95 m"
+  //  14 : "Invalid harmonics "
+  //  13 : "reserved"
+  //  12 : "Valid artefact "
+  //  11 : "Valid but no local maximum"
+  //  10 : "Valid 50 deg artefact"
+  //  9 : "Valid child"
+  //  8 : "Valid with elevation"
+  //  7 : "Invalid outside field of view"
+  //  6 : "Invalid mirror"
+  //  5 : "reserved"
+  //  4 : "Valid with low RCS"
+  //  3 : "Invalid far not confirmed"
+  //  2 : "Invalid nearfield"
+  //  1 : "Invalid with too low RCS"
+  //  0 : "Valid"
+  // 
+  uint8_t Cluster_InvalidState;              //      Bits= 5
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH6_USE_DIAG_MONITORS
+
+} Cluster_2_Quality_t;
+
+// Function signatures
+
+uint32_t Unpack_CollDetRelayCtrl_ARS408_can_database_ch6(CollDetRelayCtrl_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch6(CollDetRelayCtrl_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch6(CollDetRelayCtrl_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_RadarConfiguration_ARS408_can_database_ch6(RadarConfiguration_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch6(RadarConfiguration_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch6(RadarConfiguration_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_RadarState_ARS408_can_database_ch6(RadarState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+uint32_t Pack_RadarState_ARS408_can_database_ch6(RadarState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_RadarState_ARS408_can_database_ch6(RadarState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_FilterCfg_ARS408_can_database_ch6(FilterCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+uint32_t Pack_FilterCfg_ARS408_can_database_ch6(FilterCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterCfg_ARS408_can_database_ch6(FilterCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Header_ARS408_can_database_ch6(FilterState_Header_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch6(FilterState_Header_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch6(FilterState_Header_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Cfg_ARS408_can_database_ch6(FilterState_Cfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch6(FilterState_Cfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch6(FilterState_Cfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_SpeedInformation_ARS408_can_database_ch6(SpeedInformation_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch6(SpeedInformation_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch6(SpeedInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_YawRateInformation_ARS408_can_database_ch6(YawRateInformation_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch6(YawRateInformation_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch6(YawRateInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetState_ARS408_can_database_ch6(CollDetState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+uint32_t Pack_CollDetState_ARS408_can_database_ch6(CollDetState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetState_ARS408_can_database_ch6(CollDetState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetCfg_ARS408_can_database_ch6(CollDetCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch6(CollDetCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch6(CollDetCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionCfg_ARS408_can_database_ch6(CollDetRegionCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch6(CollDetRegionCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch6(CollDetRegionCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionState_ARS408_can_database_ch6(CollDetRegionState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch6(CollDetRegionState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch6(CollDetRegionState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_0_Status_ARS408_can_database_ch6(Cluster_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch6(Cluster_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch6(Cluster_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_0_Status_ARS408_can_database_ch6(Obj_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch6(Obj_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch6(Obj_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_1_General_ARS408_can_database_ch6(Obj_1_General_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch6(Obj_1_General_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch6(Obj_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_2_Quality_ARS408_can_database_ch6(Obj_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch6(Obj_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch6(Obj_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_3_Extended_ARS408_can_database_ch6(Obj_3_Extended_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch6(Obj_3_Extended_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch6(Obj_3_Extended_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_4_Warning_ARS408_can_database_ch6(Obj_4_Warning_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch6(Obj_4_Warning_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch6(Obj_4_Warning_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_VersionID_ARS408_can_database_ch6(VersionID_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+uint32_t Pack_VersionID_ARS408_can_database_ch6(VersionID_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_VersionID_ARS408_can_database_ch6(VersionID_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_1_General_ARS408_can_database_ch6(Cluster_1_General_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch6(Cluster_1_General_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch6(Cluster_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_2_Quality_ARS408_can_database_ch6(Cluster_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch6(Cluster_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch6(Cluster_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH6_USE_CANSTRUCT
+
+#ifdef __cplusplus
+}
+#endif

+ 96 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch7-binutil.c

@@ -0,0 +1,96 @@
+#include "ars408_can_database_ch7-binutil.h"
+
+#ifdef __DEF_ARS408_CAN_DATABASE_CH7__
+
+ars408_can_database_ch7_rx_t ars408_can_database_ch7_rx;
+
+#endif // __DEF_ARS408_CAN_DATABASE_CH7__
+
+uint32_t ars408_can_database_ch7_Receive(ars408_can_database_ch7_rx_t* _m, const uint8_t* _d, uint32_t _id, uint8_t dlc_)
+{
+ uint32_t recid = 0;
+ if ((_id >= 0x8U) && (_id < 0x471U)) {
+  if ((_id >= 0x8U) && (_id < 0x274U)) {
+   if ((_id >= 0x8U) && (_id < 0x271U)) {
+    if (_id == 0x8U) {
+     recid = Unpack_CollDetRelayCtrl_ARS408_can_database_ch7(&(_m->CollDetRelayCtrl), _d, dlc_);
+    } else if (_id == 0x270U) {
+     recid = Unpack_RadarConfiguration_ARS408_can_database_ch7(&(_m->RadarConfiguration), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x271U) {
+     recid = Unpack_RadarState_ARS408_can_database_ch7(&(_m->RadarState), _d, dlc_);
+    } else {
+     if (_id == 0x272U) {
+      recid = Unpack_FilterCfg_ARS408_can_database_ch7(&(_m->FilterCfg), _d, dlc_);
+     } else if (_id == 0x273U) {
+      recid = Unpack_FilterState_Header_ARS408_can_database_ch7(&(_m->FilterState_Header), _d, dlc_);
+     }
+    }
+   }
+  } else {
+   if ((_id >= 0x274U) && (_id < 0x371U)) {
+    if (_id == 0x274U) {
+     recid = Unpack_FilterState_Cfg_ARS408_can_database_ch7(&(_m->FilterState_Cfg), _d, dlc_);
+    } else if (_id == 0x370U) {
+     recid = Unpack_SpeedInformation_ARS408_can_database_ch7(&(_m->SpeedInformation), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x371U) {
+     recid = Unpack_YawRateInformation_ARS408_can_database_ch7(&(_m->YawRateInformation), _d, dlc_);
+    } else {
+     if (_id == 0x408U) {
+      recid = Unpack_CollDetState_ARS408_can_database_ch7(&(_m->CollDetState), _d, dlc_);
+     } else if (_id == 0x470U) {
+      recid = Unpack_CollDetCfg_ARS408_can_database_ch7(&(_m->CollDetCfg), _d, dlc_);
+     }
+    }
+   }
+  }
+ } else {
+  if ((_id >= 0x471U) && (_id < 0x67CU)) {
+   if ((_id >= 0x471U) && (_id < 0x670U)) {
+    if (_id == 0x471U) {
+     recid = Unpack_CollDetRegionCfg_ARS408_can_database_ch7(&(_m->CollDetRegionCfg), _d, dlc_);
+    } else if (_id == 0x472U) {
+     recid = Unpack_CollDetRegionState_ARS408_can_database_ch7(&(_m->CollDetRegionState), _d, dlc_);
+    }
+   } else {
+    if (_id == 0x670U) {
+     recid = Unpack_Cluster_0_Status_ARS408_can_database_ch7(&(_m->Cluster_0_Status), _d, dlc_);
+    } else {
+     if (_id == 0x67AU) {
+      recid = Unpack_Obj_0_Status_ARS408_can_database_ch7(&(_m->Obj_0_Status), _d, dlc_);
+     } else if (_id == 0x67BU) {
+      recid = Unpack_Obj_1_General_ARS408_can_database_ch7(&(_m->Obj_1_General), _d, dlc_);
+     }
+    }
+   }
+  } else {
+   if ((_id >= 0x67CU) && (_id < 0x770U)) {
+    if (_id == 0x67CU) {
+     recid = Unpack_Obj_2_Quality_ARS408_can_database_ch7(&(_m->Obj_2_Quality), _d, dlc_);
+    } else {
+     if (_id == 0x67DU) {
+      recid = Unpack_Obj_3_Extended_ARS408_can_database_ch7(&(_m->Obj_3_Extended), _d, dlc_);
+     } else if (_id == 0x67EU) {
+      recid = Unpack_Obj_4_Warning_ARS408_can_database_ch7(&(_m->Obj_4_Warning), _d, dlc_);
+     }
+    }
+   } else {
+    if (_id == 0x770U) {
+     recid = Unpack_VersionID_ARS408_can_database_ch7(&(_m->VersionID), _d, dlc_);
+    } else {
+     if (_id == 0x771U) {
+      recid = Unpack_Cluster_1_General_ARS408_can_database_ch7(&(_m->Cluster_1_General), _d, dlc_);
+     } else if (_id == 0x772U) {
+      recid = Unpack_Cluster_2_Quality_ARS408_can_database_ch7(&(_m->Cluster_2_Quality), _d, dlc_);
+     }
+    }
+   }
+  }
+ }
+
+ return recid;
+}
+

+ 53 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch7-binutil.h

@@ -0,0 +1,53 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "dbccodeconf.h"
+
+#include "ars408_can_database_ch7.h"
+
+// This version definition comes from main driver version and
+// can be compared in user code space for strict compatibility test
+#define VER_ARS408_CAN_DATABASE_CH7_MAJ (0U)
+#define VER_ARS408_CAN_DATABASE_CH7_MIN (0U)
+
+typedef struct
+{
+  CollDetRelayCtrl_t CollDetRelayCtrl;
+  RadarConfiguration_t RadarConfiguration;
+  RadarState_t RadarState;
+  FilterCfg_t FilterCfg;
+  FilterState_Header_t FilterState_Header;
+  FilterState_Cfg_t FilterState_Cfg;
+  SpeedInformation_t SpeedInformation;
+  YawRateInformation_t YawRateInformation;
+  CollDetState_t CollDetState;
+  CollDetCfg_t CollDetCfg;
+  CollDetRegionCfg_t CollDetRegionCfg;
+  CollDetRegionState_t CollDetRegionState;
+  Cluster_0_Status_t Cluster_0_Status;
+  Obj_0_Status_t Obj_0_Status;
+  Obj_1_General_t Obj_1_General;
+  Obj_2_Quality_t Obj_2_Quality;
+  Obj_3_Extended_t Obj_3_Extended;
+  Obj_4_Warning_t Obj_4_Warning;
+  VersionID_t VersionID;
+  Cluster_1_General_t Cluster_1_General;
+  Cluster_2_Quality_t Cluster_2_Quality;
+} ars408_can_database_ch7_rx_t;
+
+// There is no any TX mapped massage.
+
+uint32_t ars408_can_database_ch7_Receive(ars408_can_database_ch7_rx_t* m, const uint8_t* d, uint32_t msgid, uint8_t dlc);
+
+#ifdef __DEF_ARS408_CAN_DATABASE_CH7__
+
+extern ars408_can_database_ch7_rx_t ars408_can_database_ch7_rx;
+
+#endif // __DEF_ARS408_CAN_DATABASE_CH7__
+
+#ifdef __cplusplus
+}
+#endif

+ 109 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch7-config.h

@@ -0,0 +1,109 @@
+#pragma once
+
+/* include common dbccode configurations */
+#include "dbccodeconf.h"
+
+
+/* ------------------------------------------------------------------------- *
+  This define enables using CAN message structs with bit-fielded signals
+  layout.
+
+  Note(!): bit-feild was not tested properly. */
+
+/* #define ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL */
+
+
+/* ------------------------------------------------------------------------- *
+  This macro enables using CAN message descriptive struct packing functions
+  (by default signature of pack function intakes a few simple typed params
+  for loading data, len, etc). To compile you need to define the struct
+  __CoderDbcCanFrame_t__ which must have fields:
+
+    u32 MsgId (CAN Frame message ID)
+    u8 DLC (CAN Frame payload length field)
+    u8 Data[8] (CAN Frame payload data)
+    u8 IDE (CAN Frame Extended (1) / Standard (0) ID type)
+
+  This struct definition have to be placed (or be included) in dbccodeconf.h */
+
+/* #define ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT */
+
+
+/* ------------------------------------------------------------------------- *
+  All the signals which have values of factor != 1 or offset != 0
+  will be named in message struct with posfix '_ro'. Pack to payload
+  operations will be made on this signal value as well as unpack from payload.
+
+  USE_SIGFLOAT macro makes some difference:
+
+  1. All the '_ro' fields will have a pair field with '_phys' postfix.
+  If only offset != 0 is true then the type of '_phys' signal is the same
+  as '_ro' signal. In other case the type will be @sigfloat_t which
+  have to be defined in user dbccodeconf.h
+
+  2. In pack function '_ro' signal will be rewritten by '_phys' signal, which
+  requires from user to use ONLY '_phys' signal for packing frame
+
+  3. In unpack function '_phys' signal will be written by '_ro' signal.
+  User have to use '_phys' signal to read physical value. */
+
+/* #define ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT */
+
+
+/* ------------------------------------------------------------------------- *
+  Note(!) that the "canmonitorutil.h" must be accessed in include path:
+
+  This macro adds:
+
+  - monitor field @mon1 to message struct
+
+  - capture system tick in unpack function and save value to mon1 field
+  to provide to user better missing frame detection code. For this case
+  user must provide function declared in canmonitorutil.h - GetSysTick()
+  which may return 1ms uptime.
+
+  - calling function FMon_***  (from 'fmon' driver) inside unpack function
+  which is empty by default and have to be filled by user if
+  tests for DLC, rolling, checksum are necessary */
+
+/* #define ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS */
+
+
+/* ------------------------------------------------------------------------- *
+  When monitor using is enabled (ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS) and define below
+  uncommented, additional signal will be added to message struct. ***_expt:
+  expected rolling counter, to perform monitoring rolling counter sequence
+  automatically (result may be tested in dedicated Fmon_*** function) */
+
+/* #define ARS408_CAN_DATABASE_CH7_AUTO_ROLL */
+
+
+/* ------------------------------------------------------------------------- *
+  When monitor using is enabled (ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS) and define below
+  uncommented, frame checksum signal may be handled automatically.
+
+  The signal which may be marked as checksum signal must have substring
+  with next format:
+    <Checksum:XOR8:3>
+
+  where:
+
+  - "Checksum": constant marker word
+
+  - "XOR8": type of method, this text will be passed to GetFrameHash
+  (canmonitorutil.h) function as is, the best use case is to define 'enum
+  DbcCanCrcMethods' in canmonitorutil.h file with all possible
+  checksum algorithms (e.g. XOR8, XOR4 etc)
+
+  - "3": optional value that will be passed to GetFrameHash as integer value
+
+  Function GetFrameHash have to be implemented by user
+
+  In pack function checksum signal will be calculated automatically
+  and loaded to payload
+
+  In unpack function checksum signal is checked with calculated.
+  (result may be tested in dedicated Fmon_*** function).
+
+/* #define ARS408_CAN_DATABASE_CH7_AUTO_CSM */
+

+ 115 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch7-fmon.c

@@ -0,0 +1,115 @@
+#include "ars408_can_database_ch7-fmon.h"
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+/*
+Put the monitor function content here, keep in mind -
+next generation will completely clear all manually added code (!)
+*/
+
+void FMon_CollDetRelayCtrl_ars408_can_database_ch7(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_RadarConfiguration_ars408_can_database_ch7(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_RadarState_ars408_can_database_ch7(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterCfg_ars408_can_database_ch7(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterState_Header_ars408_can_database_ch7(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_FilterState_Cfg_ars408_can_database_ch7(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_SpeedInformation_ars408_can_database_ch7(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_YawRateInformation_ars408_can_database_ch7(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetState_ars408_can_database_ch7(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetCfg_ars408_can_database_ch7(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetRegionCfg_ars408_can_database_ch7(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_CollDetRegionState_ars408_can_database_ch7(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_0_Status_ars408_can_database_ch7(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_0_Status_ars408_can_database_ch7(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_1_General_ars408_can_database_ch7(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_2_Quality_ars408_can_database_ch7(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_3_Extended_ars408_can_database_ch7(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Obj_4_Warning_ars408_can_database_ch7(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_VersionID_ars408_can_database_ch7(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_1_General_ars408_can_database_ch7(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+void FMon_Cluster_2_Quality_ars408_can_database_ch7(FrameMonitor_t* _mon)
+{
+  (void)_mon;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS

+ 49 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch7-fmon.h

@@ -0,0 +1,49 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// DBC file version
+#define VER_ARS408_CAN_DATABASE_CH7_MAJ_FMON (0U)
+#define VER_ARS408_CAN_DATABASE_CH7_MIN_FMON (0U)
+
+#include "ars408_can_database_ch7-config.h"
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+#include "canmonitorutil.h"
+/*
+This file contains the prototypes of all the functions that will be called
+from each Unpack_*name* function to detect DBC related errors
+It is the user responsibility to defined these functions in the
+separated .c file. If it won't be done the linkage error will happen
+*/
+
+void FMon_CollDetRelayCtrl_ars408_can_database_ch7(FrameMonitor_t* _mon);
+void FMon_RadarConfiguration_ars408_can_database_ch7(FrameMonitor_t* _mon);
+void FMon_RadarState_ars408_can_database_ch7(FrameMonitor_t* _mon);
+void FMon_FilterCfg_ars408_can_database_ch7(FrameMonitor_t* _mon);
+void FMon_FilterState_Header_ars408_can_database_ch7(FrameMonitor_t* _mon);
+void FMon_FilterState_Cfg_ars408_can_database_ch7(FrameMonitor_t* _mon);
+void FMon_SpeedInformation_ars408_can_database_ch7(FrameMonitor_t* _mon);
+void FMon_YawRateInformation_ars408_can_database_ch7(FrameMonitor_t* _mon);
+void FMon_CollDetState_ars408_can_database_ch7(FrameMonitor_t* _mon);
+void FMon_CollDetCfg_ars408_can_database_ch7(FrameMonitor_t* _mon);
+void FMon_CollDetRegionCfg_ars408_can_database_ch7(FrameMonitor_t* _mon);
+void FMon_CollDetRegionState_ars408_can_database_ch7(FrameMonitor_t* _mon);
+void FMon_Cluster_0_Status_ars408_can_database_ch7(FrameMonitor_t* _mon);
+void FMon_Obj_0_Status_ars408_can_database_ch7(FrameMonitor_t* _mon);
+void FMon_Obj_1_General_ars408_can_database_ch7(FrameMonitor_t* _mon);
+void FMon_Obj_2_Quality_ars408_can_database_ch7(FrameMonitor_t* _mon);
+void FMon_Obj_3_Extended_ars408_can_database_ch7(FrameMonitor_t* _mon);
+void FMon_Obj_4_Warning_ars408_can_database_ch7(FrameMonitor_t* _mon);
+void FMon_VersionID_ars408_can_database_ch7(FrameMonitor_t* _mon);
+void FMon_Cluster_1_General_ars408_can_database_ch7(FrameMonitor_t* _mon);
+void FMon_Cluster_2_Quality_ars408_can_database_ch7(FrameMonitor_t* _mon);
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+#ifdef __cplusplus
+}
+#endif

+ 1841 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch7.c

@@ -0,0 +1,1841 @@
+#include "ars408_can_database_ch7.h"
+
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+// Function prototypes to be called each time CAN frame is unpacked
+// FMon function may detect RC, CRC or DLC violation 
+#include "ars408_can_database_ch7-fmon.h"
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+
+uint32_t Unpack_CollDetRelayCtrl_ARS408_can_database_ch7(CollDetRelayCtrl_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRelayCtrl_Param = (_d[0] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRelayCtrl_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRelayCtrl_ars408_can_database_ch7(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+ return CollDetRelayCtrl_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch7(CollDetRelayCtrl_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRelayCtrl_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->CollDetRelayCtrl_Param & (0xFFU));
+
+  cframe->MsgId = CollDetRelayCtrl_CANID;
+  cframe->DLC = CollDetRelayCtrl_DLC;
+  cframe->IDE = CollDetRelayCtrl_IDE;
+  return CollDetRelayCtrl_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch7(CollDetRelayCtrl_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRelayCtrl_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->CollDetRelayCtrl_Param & (0xFFU));
+
+  *_len = CollDetRelayCtrl_DLC;
+  *_ide = CollDetRelayCtrl_IDE;
+  return CollDetRelayCtrl_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_RadarConfiguration_ARS408_can_database_ch7(RadarConfiguration_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarCfg_MaxDistance_valid = (_d[0] & (0x01U));
+  _m->RadarCfg_SensorID_valid = ((_d[0] >> 1) & (0x01U));
+  _m->RadarCfg_RadarPower_valid = ((_d[0] >> 2) & (0x01U));
+  _m->RadarCfg_OutputType_valid = ((_d[0] >> 3) & (0x01U));
+  _m->RadarCfg_SendQuality_valid = ((_d[0] >> 4) & (0x01U));
+  _m->RadarCfg_SendExtInfo_valid = ((_d[0] >> 5) & (0x01U));
+  _m->RadarCfg_SortIndex_valid = ((_d[0] >> 6) & (0x01U));
+  _m->RadarCfg_StoreInNVM_valid = ((_d[0] >> 7) & (0x01U));
+  _m->RadarCfg_MaxDistance_ro = ((_d[1] & (0xFFU)) << 2) | ((_d[2] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_phys = ARS408_CAN_DATABASE_CH7_RadarCfg_MaxDistance_ro_fromS(_m->RadarCfg_MaxDistance_ro);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->RadarCfg_SensorID = (_d[4] & (0x07U));
+  _m->RadarCfg_OutputType = ((_d[4] >> 3) & (0x03U));
+  _m->RadarCfg_RadarPower = ((_d[4] >> 5) & (0x07U));
+  _m->RadarCfg_CtrlRelay_valid = (_d[5] & (0x01U));
+  _m->RadarCfg_CtrlRelay = ((_d[5] >> 1) & (0x01U));
+  _m->RadarCfg_SendQuality = ((_d[5] >> 2) & (0x01U));
+  _m->RadarCfg_SendExtInfo = ((_d[5] >> 3) & (0x01U));
+  _m->RadarCfg_SortIndex = ((_d[5] >> 4) & (0x07U));
+  _m->RadarCfg_StoreInNVM = ((_d[5] >> 7) & (0x01U));
+  _m->RadarCfg_RCS_Threshold_Valid = (_d[6] & (0x01U));
+  _m->RadarCfg_RCS_Threshold = ((_d[6] >> 1) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < RadarConfiguration_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_RadarConfiguration_ars408_can_database_ch7(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+ return RadarConfiguration_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch7(RadarConfiguration_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < RadarConfiguration_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_ro = ARS408_CAN_DATABASE_CH7_RadarCfg_MaxDistance_ro_toS(_m->RadarCfg_MaxDistance_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->RadarCfg_MaxDistance_valid & (0x01U)) | ((_m->RadarCfg_SensorID_valid & (0x01U)) << 1) | ((_m->RadarCfg_RadarPower_valid & (0x01U)) << 2) | ((_m->RadarCfg_OutputType_valid & (0x01U)) << 3) | ((_m->RadarCfg_SendQuality_valid & (0x01U)) << 4) | ((_m->RadarCfg_SendExtInfo_valid & (0x01U)) << 5) | ((_m->RadarCfg_SortIndex_valid & (0x01U)) << 6) | ((_m->RadarCfg_StoreInNVM_valid & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->RadarCfg_MaxDistance_ro >> 2) & (0xFFU));
+  cframe->Data[2] |= ((_m->RadarCfg_MaxDistance_ro & (0x03U)) << 6);
+  cframe->Data[4] |= (_m->RadarCfg_SensorID & (0x07U)) | ((_m->RadarCfg_OutputType & (0x03U)) << 3) | ((_m->RadarCfg_RadarPower & (0x07U)) << 5);
+  cframe->Data[5] |= (_m->RadarCfg_CtrlRelay_valid & (0x01U)) | ((_m->RadarCfg_CtrlRelay & (0x01U)) << 1) | ((_m->RadarCfg_SendQuality & (0x01U)) << 2) | ((_m->RadarCfg_SendExtInfo & (0x01U)) << 3) | ((_m->RadarCfg_SortIndex & (0x07U)) << 4) | ((_m->RadarCfg_StoreInNVM & (0x01U)) << 7);
+  cframe->Data[6] |= (_m->RadarCfg_RCS_Threshold_Valid & (0x01U)) | ((_m->RadarCfg_RCS_Threshold & (0x07U)) << 1);
+
+  cframe->MsgId = RadarConfiguration_CANID;
+  cframe->DLC = RadarConfiguration_DLC;
+  cframe->IDE = RadarConfiguration_IDE;
+  return RadarConfiguration_CANID;
+}
+
+#else
+
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch7(RadarConfiguration_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < RadarConfiguration_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->RadarCfg_MaxDistance_ro = ARS408_CAN_DATABASE_CH7_RadarCfg_MaxDistance_ro_toS(_m->RadarCfg_MaxDistance_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _d[0] |= (_m->RadarCfg_MaxDistance_valid & (0x01U)) | ((_m->RadarCfg_SensorID_valid & (0x01U)) << 1) | ((_m->RadarCfg_RadarPower_valid & (0x01U)) << 2) | ((_m->RadarCfg_OutputType_valid & (0x01U)) << 3) | ((_m->RadarCfg_SendQuality_valid & (0x01U)) << 4) | ((_m->RadarCfg_SendExtInfo_valid & (0x01U)) << 5) | ((_m->RadarCfg_SortIndex_valid & (0x01U)) << 6) | ((_m->RadarCfg_StoreInNVM_valid & (0x01U)) << 7);
+  _d[1] |= ((_m->RadarCfg_MaxDistance_ro >> 2) & (0xFFU));
+  _d[2] |= ((_m->RadarCfg_MaxDistance_ro & (0x03U)) << 6);
+  _d[4] |= (_m->RadarCfg_SensorID & (0x07U)) | ((_m->RadarCfg_OutputType & (0x03U)) << 3) | ((_m->RadarCfg_RadarPower & (0x07U)) << 5);
+  _d[5] |= (_m->RadarCfg_CtrlRelay_valid & (0x01U)) | ((_m->RadarCfg_CtrlRelay & (0x01U)) << 1) | ((_m->RadarCfg_SendQuality & (0x01U)) << 2) | ((_m->RadarCfg_SendExtInfo & (0x01U)) << 3) | ((_m->RadarCfg_SortIndex & (0x07U)) << 4) | ((_m->RadarCfg_StoreInNVM & (0x01U)) << 7);
+  _d[6] |= (_m->RadarCfg_RCS_Threshold_Valid & (0x01U)) | ((_m->RadarCfg_RCS_Threshold & (0x07U)) << 1);
+
+  *_len = RadarConfiguration_DLC;
+  *_ide = RadarConfiguration_IDE;
+  return RadarConfiguration_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_RadarState_ARS408_can_database_ch7(RadarState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarState_NVMReadStatus = ((_d[0] >> 6) & (0x01U));
+  _m->RadarState_NVMwriteStatus = ((_d[0] >> 7) & (0x01U));
+  _m->RadarState_MaxDistanceCfg_ro = ((_d[1] & (0xFFU)) << 2) | ((_d[2] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_phys = ARS408_CAN_DATABASE_CH7_RadarState_MaxDistanceCfg_ro_fromS(_m->RadarState_MaxDistanceCfg_ro);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->RadarState_Voltage_Error = ((_d[2] >> 1) & (0x01U));
+  _m->RadarState_Temporary_Error = ((_d[2] >> 2) & (0x01U));
+  _m->RadarState_Temperature_Error = ((_d[2] >> 3) & (0x01U));
+  _m->RadarState_Interference = ((_d[2] >> 4) & (0x01U));
+  _m->RadarState_Persistent_Error = ((_d[2] >> 5) & (0x01U));
+  _m->RadarState_RadarPowerCfg = ((_d[3] & (0x03U)) << 1) | ((_d[4] >> 7) & (0x01U));
+  _m->RadarState_SensorID = (_d[4] & (0x07U));
+  _m->RadarState_SortIndex = ((_d[4] >> 4) & (0x07U));
+  _m->RadarState_CtrlRelayCfg = ((_d[5] >> 1) & (0x01U));
+  _m->RadarState_OutputTypeCfg = ((_d[5] >> 2) & (0x03U));
+  _m->RadarState_SendQualityCfg = ((_d[5] >> 4) & (0x01U));
+  _m->RadarState_SendExtInfoCfg = ((_d[5] >> 5) & (0x01U));
+  _m->RadarState_MotionRxState = ((_d[5] >> 6) & (0x03U));
+  _m->RadarState_RCS_Threshold = ((_d[7] >> 2) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < RadarState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_RadarState_ars408_can_database_ch7(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+ return RadarState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Pack_RadarState_ARS408_can_database_ch7(RadarState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < RadarState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_ro = ARS408_CAN_DATABASE_CH7_RadarState_MaxDistanceCfg_ro_toS(_m->RadarState_MaxDistanceCfg_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarState_NVMReadStatus & (0x01U)) << 6) | ((_m->RadarState_NVMwriteStatus & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->RadarState_MaxDistanceCfg_ro >> 2) & (0xFFU));
+  cframe->Data[2] |= ((_m->RadarState_MaxDistanceCfg_ro & (0x03U)) << 6) | ((_m->RadarState_Voltage_Error & (0x01U)) << 1) | ((_m->RadarState_Temporary_Error & (0x01U)) << 2) | ((_m->RadarState_Temperature_Error & (0x01U)) << 3) | ((_m->RadarState_Interference & (0x01U)) << 4) | ((_m->RadarState_Persistent_Error & (0x01U)) << 5);
+  cframe->Data[3] |= ((_m->RadarState_RadarPowerCfg >> 1) & (0x03U));
+  cframe->Data[4] |= ((_m->RadarState_RadarPowerCfg & (0x01U)) << 7) | (_m->RadarState_SensorID & (0x07U)) | ((_m->RadarState_SortIndex & (0x07U)) << 4);
+  cframe->Data[5] |= ((_m->RadarState_CtrlRelayCfg & (0x01U)) << 1) | ((_m->RadarState_OutputTypeCfg & (0x03U)) << 2) | ((_m->RadarState_SendQualityCfg & (0x01U)) << 4) | ((_m->RadarState_SendExtInfoCfg & (0x01U)) << 5) | ((_m->RadarState_MotionRxState & (0x03U)) << 6);
+  cframe->Data[7] |= ((_m->RadarState_RCS_Threshold & (0x07U)) << 2);
+
+  cframe->MsgId = RadarState_CANID;
+  cframe->DLC = RadarState_DLC;
+  cframe->IDE = RadarState_IDE;
+  return RadarState_CANID;
+}
+
+#else
+
+uint32_t Pack_RadarState_ARS408_can_database_ch7(RadarState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < RadarState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->RadarState_MaxDistanceCfg_ro = ARS408_CAN_DATABASE_CH7_RadarState_MaxDistanceCfg_ro_toS(_m->RadarState_MaxDistanceCfg_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarState_NVMReadStatus & (0x01U)) << 6) | ((_m->RadarState_NVMwriteStatus & (0x01U)) << 7);
+  _d[1] |= ((_m->RadarState_MaxDistanceCfg_ro >> 2) & (0xFFU));
+  _d[2] |= ((_m->RadarState_MaxDistanceCfg_ro & (0x03U)) << 6) | ((_m->RadarState_Voltage_Error & (0x01U)) << 1) | ((_m->RadarState_Temporary_Error & (0x01U)) << 2) | ((_m->RadarState_Temperature_Error & (0x01U)) << 3) | ((_m->RadarState_Interference & (0x01U)) << 4) | ((_m->RadarState_Persistent_Error & (0x01U)) << 5);
+  _d[3] |= ((_m->RadarState_RadarPowerCfg >> 1) & (0x03U));
+  _d[4] |= ((_m->RadarState_RadarPowerCfg & (0x01U)) << 7) | (_m->RadarState_SensorID & (0x07U)) | ((_m->RadarState_SortIndex & (0x07U)) << 4);
+  _d[5] |= ((_m->RadarState_CtrlRelayCfg & (0x01U)) << 1) | ((_m->RadarState_OutputTypeCfg & (0x03U)) << 2) | ((_m->RadarState_SendQualityCfg & (0x01U)) << 4) | ((_m->RadarState_SendExtInfoCfg & (0x01U)) << 5) | ((_m->RadarState_MotionRxState & (0x03U)) << 6);
+  _d[7] |= ((_m->RadarState_RCS_Threshold & (0x07U)) << 2);
+
+  *_len = RadarState_DLC;
+  *_ide = RadarState_IDE;
+  return RadarState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_FilterCfg_ARS408_can_database_ch7(FilterCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterCfg_Valid = ((_d[0] >> 1) & (0x01U));
+  _m->FilterCfg_Active = ((_d[0] >> 2) & (0x01U));
+  _m->FilterCfg_Index = ((_d[0] >> 3) & (0x0FU));
+  _m->FilterCfg_Type = ((_d[0] >> 7) & (0x01U));
+  _m->FilterCfg_Min_NofObj = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterCfg_Min_VrelOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VrelOncome_ro_fromS(_m->FilterCfg_Min_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VrelDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VrelDepart_ro_fromS(_m->FilterCfg_Min_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Size_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Min_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Size_ro_fromS(_m->FilterCfg_Min_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_RCS_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Min_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Min_RCS_ro_fromS(_m->FilterCfg_Min_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_ProbExists = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterCfg_Min_Lifetime_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Min_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Lifetime_ro_fromS(_m->FilterCfg_Min_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Azimuth_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Min_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Azimuth_ro_fromS(_m->FilterCfg_Min_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Distance_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Min_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Distance_ro_fromS(_m->FilterCfg_Min_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VXDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Min_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VXDepart_ro_fromS(_m->FilterCfg_Min_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VXOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Min_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VXOncome_ro_fromS(_m->FilterCfg_Min_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VYLeftRight_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Min_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VYLeftRight_ro_fromS(_m->FilterCfg_Min_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_VYRightLeft_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Min_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VYRightLeft_ro_fromS(_m->FilterCfg_Min_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_Y_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Min_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Y_ro_fromS(_m->FilterCfg_Min_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Min_X_ro = ((_d[1] & (0x1FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Min_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Min_X_ro_fromS(_m->FilterCfg_Min_X_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_NofObj = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterCfg_Max_Lifetime_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Max_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Lifetime_ro_fromS(_m->FilterCfg_Max_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Distance_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Max_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Distance_ro_fromS(_m->FilterCfg_Max_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Azimuth_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Max_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Azimuth_ro_fromS(_m->FilterCfg_Max_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_ProbExists = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterCfg_Max_RCS_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Max_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Max_RCS_ro_fromS(_m->FilterCfg_Max_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Size_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Max_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Size_ro_fromS(_m->FilterCfg_Max_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VrelDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Max_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VrelDepart_ro_fromS(_m->FilterCfg_Max_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VrelOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Max_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VrelOncome_ro_fromS(_m->FilterCfg_Max_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VXDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Max_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VXDepart_ro_fromS(_m->FilterCfg_Max_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VYLeftRight_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Max_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VYLeftRight_ro_fromS(_m->FilterCfg_Max_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VXOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Max_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VXOncome_ro_fromS(_m->FilterCfg_Max_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_VYRightLeft_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Max_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VYRightLeft_ro_fromS(_m->FilterCfg_Max_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_Y_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Max_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Y_ro_fromS(_m->FilterCfg_Max_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterCfg_Max_X_ro = ((_d[3] & (0x1FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Max_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterCfg_Max_X_ro_fromS(_m->FilterCfg_Max_X_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterCfg_ars408_can_database_ch7(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+ return FilterCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Pack_FilterCfg_ARS408_can_database_ch7(FilterCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VrelOncome_ro_toS(_m->FilterCfg_Min_VrelOncome_phys);
+  _m->FilterCfg_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VrelDepart_ro_toS(_m->FilterCfg_Min_VrelDepart_phys);
+  _m->FilterCfg_Min_Size_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Size_ro_toS(_m->FilterCfg_Min_Size_phys);
+  _m->FilterCfg_Min_RCS_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_RCS_ro_toS(_m->FilterCfg_Min_RCS_phys);
+  _m->FilterCfg_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Lifetime_ro_toS(_m->FilterCfg_Min_Lifetime_phys);
+  _m->FilterCfg_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Azimuth_ro_toS(_m->FilterCfg_Min_Azimuth_phys);
+  _m->FilterCfg_Min_Distance_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Distance_ro_toS(_m->FilterCfg_Min_Distance_phys);
+  _m->FilterCfg_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VXDepart_ro_toS(_m->FilterCfg_Min_VXDepart_phys);
+  _m->FilterCfg_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VXOncome_ro_toS(_m->FilterCfg_Min_VXOncome_phys);
+  _m->FilterCfg_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VYLeftRight_ro_toS(_m->FilterCfg_Min_VYLeftRight_phys);
+  _m->FilterCfg_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VYRightLeft_ro_toS(_m->FilterCfg_Min_VYRightLeft_phys);
+  _m->FilterCfg_Min_Y_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Y_ro_toS(_m->FilterCfg_Min_Y_phys);
+  _m->FilterCfg_Min_X_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_X_ro_toS(_m->FilterCfg_Min_X_phys);
+  _m->FilterCfg_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Lifetime_ro_toS(_m->FilterCfg_Max_Lifetime_phys);
+  _m->FilterCfg_Max_Distance_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Distance_ro_toS(_m->FilterCfg_Max_Distance_phys);
+  _m->FilterCfg_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Azimuth_ro_toS(_m->FilterCfg_Max_Azimuth_phys);
+  _m->FilterCfg_Max_RCS_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_RCS_ro_toS(_m->FilterCfg_Max_RCS_phys);
+  _m->FilterCfg_Max_Size_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Size_ro_toS(_m->FilterCfg_Max_Size_phys);
+  _m->FilterCfg_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VrelDepart_ro_toS(_m->FilterCfg_Max_VrelDepart_phys);
+  _m->FilterCfg_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VrelOncome_ro_toS(_m->FilterCfg_Max_VrelOncome_phys);
+  _m->FilterCfg_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VXDepart_ro_toS(_m->FilterCfg_Max_VXDepart_phys);
+  _m->FilterCfg_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VYLeftRight_ro_toS(_m->FilterCfg_Max_VYLeftRight_phys);
+  _m->FilterCfg_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VXOncome_ro_toS(_m->FilterCfg_Max_VXOncome_phys);
+  _m->FilterCfg_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VYRightLeft_ro_toS(_m->FilterCfg_Max_VYRightLeft_phys);
+  _m->FilterCfg_Max_Y_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Y_ro_toS(_m->FilterCfg_Max_Y_phys);
+  _m->FilterCfg_Max_X_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_X_ro_toS(_m->FilterCfg_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->FilterCfg_Valid & (0x01U)) << 1) | ((_m->FilterCfg_Active & (0x01U)) << 2) | ((_m->FilterCfg_Index & (0x0FU)) << 3) | ((_m->FilterCfg_Type & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->FilterCfg_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_X_ro >> 8) & (0x1FU));
+  cframe->Data[2] |= (_m->FilterCfg_Min_NofObj & (0xFFU)) | (_m->FilterCfg_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_Size_ro & (0xFFU)) | (_m->FilterCfg_Min_RCS_ro & (0xFFU)) | (_m->FilterCfg_Min_ProbExists & (0xFFU)) | (_m->FilterCfg_Min_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Min_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Min_Distance_ro & (0xFFU)) | (_m->FilterCfg_Min_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Min_Y_ro & (0xFFU)) | (_m->FilterCfg_Min_X_ro & (0xFFU));
+  cframe->Data[3] |= ((_m->FilterCfg_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_X_ro >> 8) & (0x1FU));
+  cframe->Data[4] |= (_m->FilterCfg_Max_NofObj & (0xFFU)) | (_m->FilterCfg_Max_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Max_Distance_ro & (0xFFU)) | (_m->FilterCfg_Max_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Max_ProbExists & (0xFFU)) | (_m->FilterCfg_Max_RCS_ro & (0xFFU)) | (_m->FilterCfg_Max_Size_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Max_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Max_Y_ro & (0xFFU)) | (_m->FilterCfg_Max_X_ro & (0xFFU));
+
+  cframe->MsgId = FilterCfg_CANID;
+  cframe->DLC = FilterCfg_DLC;
+  cframe->IDE = FilterCfg_IDE;
+  return FilterCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterCfg_ARS408_can_database_ch7(FilterCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterCfg_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VrelOncome_ro_toS(_m->FilterCfg_Min_VrelOncome_phys);
+  _m->FilterCfg_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VrelDepart_ro_toS(_m->FilterCfg_Min_VrelDepart_phys);
+  _m->FilterCfg_Min_Size_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Size_ro_toS(_m->FilterCfg_Min_Size_phys);
+  _m->FilterCfg_Min_RCS_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_RCS_ro_toS(_m->FilterCfg_Min_RCS_phys);
+  _m->FilterCfg_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Lifetime_ro_toS(_m->FilterCfg_Min_Lifetime_phys);
+  _m->FilterCfg_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Azimuth_ro_toS(_m->FilterCfg_Min_Azimuth_phys);
+  _m->FilterCfg_Min_Distance_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Distance_ro_toS(_m->FilterCfg_Min_Distance_phys);
+  _m->FilterCfg_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VXDepart_ro_toS(_m->FilterCfg_Min_VXDepart_phys);
+  _m->FilterCfg_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VXOncome_ro_toS(_m->FilterCfg_Min_VXOncome_phys);
+  _m->FilterCfg_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VYLeftRight_ro_toS(_m->FilterCfg_Min_VYLeftRight_phys);
+  _m->FilterCfg_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VYRightLeft_ro_toS(_m->FilterCfg_Min_VYRightLeft_phys);
+  _m->FilterCfg_Min_Y_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Y_ro_toS(_m->FilterCfg_Min_Y_phys);
+  _m->FilterCfg_Min_X_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Min_X_ro_toS(_m->FilterCfg_Min_X_phys);
+  _m->FilterCfg_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Lifetime_ro_toS(_m->FilterCfg_Max_Lifetime_phys);
+  _m->FilterCfg_Max_Distance_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Distance_ro_toS(_m->FilterCfg_Max_Distance_phys);
+  _m->FilterCfg_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Azimuth_ro_toS(_m->FilterCfg_Max_Azimuth_phys);
+  _m->FilterCfg_Max_RCS_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_RCS_ro_toS(_m->FilterCfg_Max_RCS_phys);
+  _m->FilterCfg_Max_Size_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Size_ro_toS(_m->FilterCfg_Max_Size_phys);
+  _m->FilterCfg_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VrelDepart_ro_toS(_m->FilterCfg_Max_VrelDepart_phys);
+  _m->FilterCfg_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VrelOncome_ro_toS(_m->FilterCfg_Max_VrelOncome_phys);
+  _m->FilterCfg_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VXDepart_ro_toS(_m->FilterCfg_Max_VXDepart_phys);
+  _m->FilterCfg_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VYLeftRight_ro_toS(_m->FilterCfg_Max_VYLeftRight_phys);
+  _m->FilterCfg_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VXOncome_ro_toS(_m->FilterCfg_Max_VXOncome_phys);
+  _m->FilterCfg_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VYRightLeft_ro_toS(_m->FilterCfg_Max_VYRightLeft_phys);
+  _m->FilterCfg_Max_Y_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Y_ro_toS(_m->FilterCfg_Max_Y_phys);
+  _m->FilterCfg_Max_X_ro = ARS408_CAN_DATABASE_CH7_FilterCfg_Max_X_ro_toS(_m->FilterCfg_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _d[0] |= ((_m->FilterCfg_Valid & (0x01U)) << 1) | ((_m->FilterCfg_Active & (0x01U)) << 2) | ((_m->FilterCfg_Index & (0x0FU)) << 3) | ((_m->FilterCfg_Type & (0x01U)) << 7);
+  _d[1] |= ((_m->FilterCfg_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Min_X_ro >> 8) & (0x1FU));
+  _d[2] |= (_m->FilterCfg_Min_NofObj & (0xFFU)) | (_m->FilterCfg_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_Size_ro & (0xFFU)) | (_m->FilterCfg_Min_RCS_ro & (0xFFU)) | (_m->FilterCfg_Min_ProbExists & (0xFFU)) | (_m->FilterCfg_Min_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Min_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Min_Distance_ro & (0xFFU)) | (_m->FilterCfg_Min_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Min_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Min_Y_ro & (0xFFU)) | (_m->FilterCfg_Min_X_ro & (0xFFU));
+  _d[3] |= ((_m->FilterCfg_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterCfg_Max_X_ro >> 8) & (0x1FU));
+  _d[4] |= (_m->FilterCfg_Max_NofObj & (0xFFU)) | (_m->FilterCfg_Max_Lifetime_ro & (0xFFU)) | (_m->FilterCfg_Max_Distance_ro & (0xFFU)) | (_m->FilterCfg_Max_Azimuth_ro & (0xFFU)) | (_m->FilterCfg_Max_ProbExists & (0xFFU)) | (_m->FilterCfg_Max_RCS_ro & (0xFFU)) | (_m->FilterCfg_Max_Size_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VXDepart_ro & (0xFFU)) | (_m->FilterCfg_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterCfg_Max_VXOncome_ro & (0xFFU)) | (_m->FilterCfg_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterCfg_Max_Y_ro & (0xFFU)) | (_m->FilterCfg_Max_X_ro & (0xFFU));
+
+  *_len = FilterCfg_DLC;
+  *_ide = FilterCfg_IDE;
+  return FilterCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Header_ARS408_can_database_ch7(FilterState_Header_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterState_NofClusterFilterCfg = ((_d[0] >> 3) & (0x1FU));
+  _m->FilterState_NofObjectFilterCfg = ((_d[1] >> 3) & (0x1FU));
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterState_Header_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterState_Header_ars408_can_database_ch7(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+ return FilterState_Header_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch7(FilterState_Header_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Header_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= ((_m->FilterState_NofClusterFilterCfg & (0x1FU)) << 3);
+  cframe->Data[1] |= ((_m->FilterState_NofObjectFilterCfg & (0x1FU)) << 3);
+
+  cframe->MsgId = FilterState_Header_CANID;
+  cframe->DLC = FilterState_Header_DLC;
+  cframe->IDE = FilterState_Header_IDE;
+  return FilterState_Header_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch7(FilterState_Header_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Header_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= ((_m->FilterState_NofClusterFilterCfg & (0x1FU)) << 3);
+  _d[1] |= ((_m->FilterState_NofObjectFilterCfg & (0x1FU)) << 3);
+
+  *_len = FilterState_Header_DLC;
+  *_ide = FilterState_Header_IDE;
+  return FilterState_Header_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Cfg_ARS408_can_database_ch7(FilterState_Cfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->FilterState_Active = ((_d[0] >> 2) & (0x01U));
+  _m->FilterState_Index = ((_d[0] >> 3) & (0x0FU));
+  _m->FilterState_Type = ((_d[0] >> 7) & (0x01U));
+  _m->FilterState_Min_RCS_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Min_RCS_ro_fromS(_m->FilterState_Min_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Min_Azimuth_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Min_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Min_Azimuth_ro_fromS(_m->FilterState_Min_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Min_Distance_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Min_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Min_Distance_ro_fromS(_m->FilterState_Min_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Min_Lifetime_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Min_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Min_Lifetime_ro_fromS(_m->FilterState_Min_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Min_NofObj = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterState_Min_ProbExists = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+  _m->FilterState_Min_Y_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Min_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Min_Y_ro_fromS(_m->FilterState_Min_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Min_Size_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Min_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Min_Size_ro_fromS(_m->FilterState_Min_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Min_VrelDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Min_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Min_VrelDepart_ro_fromS(_m->FilterState_Min_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Min_VrelOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Min_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Min_VrelOncome_ro_fromS(_m->FilterState_Min_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Min_VYRightLeft_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Min_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Min_VYRightLeft_ro_fromS(_m->FilterState_Min_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Min_VXDepart_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Min_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Min_VXDepart_ro_fromS(_m->FilterState_Min_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Min_VXOncome_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Min_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Min_VXOncome_ro_fromS(_m->FilterState_Min_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Min_VYLeftRight_ro = ((_d[1] & (0x0FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Min_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Min_VYLeftRight_ro_fromS(_m->FilterState_Min_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Min_X_ro = ((_d[1] & (0x1FU)) << 8) | (_d[2] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Min_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Min_X_ro_fromS(_m->FilterState_Min_X_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Max_VrelDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Max_VrelDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Max_VrelDepart_ro_fromS(_m->FilterState_Max_VrelDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Max_Azimuth_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Max_Azimuth_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Max_Azimuth_ro_fromS(_m->FilterState_Max_Azimuth_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Max_Distance_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Max_Distance_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Max_Distance_ro_fromS(_m->FilterState_Max_Distance_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Max_Lifetime_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Max_Lifetime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Max_Lifetime_ro_fromS(_m->FilterState_Max_Lifetime_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Max_NofObj = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterState_Max_ProbExists = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+  _m->FilterState_Max_RCS_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Max_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Max_RCS_ro_fromS(_m->FilterState_Max_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Max_Size_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Max_Size_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Max_Size_ro_fromS(_m->FilterState_Max_Size_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Max_VXDepart_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Max_VXDepart_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Max_VXDepart_ro_fromS(_m->FilterState_Max_VXDepart_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Max_VrelOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Max_VrelOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Max_VrelOncome_ro_fromS(_m->FilterState_Max_VrelOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Max_Y_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Max_Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Max_Y_ro_fromS(_m->FilterState_Max_Y_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Max_VYRightLeft_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Max_VYRightLeft_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Max_VYRightLeft_ro_fromS(_m->FilterState_Max_VYRightLeft_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Max_VYLeftRight_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Max_VYLeftRight_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Max_VYLeftRight_ro_fromS(_m->FilterState_Max_VYLeftRight_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Max_VXOncome_ro = ((_d[3] & (0x0FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Max_VXOncome_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Max_VXOncome_ro_fromS(_m->FilterState_Max_VXOncome_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->FilterState_Max_X_ro = ((_d[3] & (0x1FU)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Max_X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_FilterState_Max_X_ro_fromS(_m->FilterState_Max_X_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < FilterState_Cfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_FilterState_Cfg_ars408_can_database_ch7(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+ return FilterState_Cfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch7(FilterState_Cfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Cfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_RCS_ro_toS(_m->FilterState_Min_RCS_phys);
+  _m->FilterState_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_Azimuth_ro_toS(_m->FilterState_Min_Azimuth_phys);
+  _m->FilterState_Min_Distance_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_Distance_ro_toS(_m->FilterState_Min_Distance_phys);
+  _m->FilterState_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_Lifetime_ro_toS(_m->FilterState_Min_Lifetime_phys);
+  _m->FilterState_Min_Y_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_Y_ro_toS(_m->FilterState_Min_Y_phys);
+  _m->FilterState_Min_Size_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_Size_ro_toS(_m->FilterState_Min_Size_phys);
+  _m->FilterState_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_VrelDepart_ro_toS(_m->FilterState_Min_VrelDepart_phys);
+  _m->FilterState_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_VrelOncome_ro_toS(_m->FilterState_Min_VrelOncome_phys);
+  _m->FilterState_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_VYRightLeft_ro_toS(_m->FilterState_Min_VYRightLeft_phys);
+  _m->FilterState_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_VXDepart_ro_toS(_m->FilterState_Min_VXDepart_phys);
+  _m->FilterState_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_VXOncome_ro_toS(_m->FilterState_Min_VXOncome_phys);
+  _m->FilterState_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_VYLeftRight_ro_toS(_m->FilterState_Min_VYLeftRight_phys);
+  _m->FilterState_Min_X_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_X_ro_toS(_m->FilterState_Min_X_phys);
+  _m->FilterState_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_VrelDepart_ro_toS(_m->FilterState_Max_VrelDepart_phys);
+  _m->FilterState_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_Azimuth_ro_toS(_m->FilterState_Max_Azimuth_phys);
+  _m->FilterState_Max_Distance_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_Distance_ro_toS(_m->FilterState_Max_Distance_phys);
+  _m->FilterState_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_Lifetime_ro_toS(_m->FilterState_Max_Lifetime_phys);
+  _m->FilterState_Max_RCS_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_RCS_ro_toS(_m->FilterState_Max_RCS_phys);
+  _m->FilterState_Max_Size_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_Size_ro_toS(_m->FilterState_Max_Size_phys);
+  _m->FilterState_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_VXDepart_ro_toS(_m->FilterState_Max_VXDepart_phys);
+  _m->FilterState_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_VrelOncome_ro_toS(_m->FilterState_Max_VrelOncome_phys);
+  _m->FilterState_Max_Y_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_Y_ro_toS(_m->FilterState_Max_Y_phys);
+  _m->FilterState_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_VYRightLeft_ro_toS(_m->FilterState_Max_VYRightLeft_phys);
+  _m->FilterState_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_VYLeftRight_ro_toS(_m->FilterState_Max_VYLeftRight_phys);
+  _m->FilterState_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_VXOncome_ro_toS(_m->FilterState_Max_VXOncome_phys);
+  _m->FilterState_Max_X_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_X_ro_toS(_m->FilterState_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->FilterState_Active & (0x01U)) << 2) | ((_m->FilterState_Index & (0x0FU)) << 3) | ((_m->FilterState_Type & (0x01U)) << 7);
+  cframe->Data[1] |= ((_m->FilterState_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_X_ro >> 8) & (0x1FU));
+  cframe->Data[2] |= (_m->FilterState_Min_RCS_ro & (0xFFU)) | (_m->FilterState_Min_Azimuth_ro & (0xFFU)) | (_m->FilterState_Min_Distance_ro & (0xFFU)) | (_m->FilterState_Min_Lifetime_ro & (0xFFU)) | (_m->FilterState_Min_NofObj & (0xFFU)) | (_m->FilterState_Min_ProbExists & (0xFFU)) | (_m->FilterState_Min_Y_ro & (0xFFU)) | (_m->FilterState_Min_Size_ro & (0xFFU)) | (_m->FilterState_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Min_VXDepart_ro & (0xFFU)) | (_m->FilterState_Min_VXOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Min_X_ro & (0xFFU));
+  cframe->Data[3] |= ((_m->FilterState_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_X_ro >> 8) & (0x1FU));
+  cframe->Data[4] |= (_m->FilterState_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Max_Azimuth_ro & (0xFFU)) | (_m->FilterState_Max_Distance_ro & (0xFFU)) | (_m->FilterState_Max_Lifetime_ro & (0xFFU)) | (_m->FilterState_Max_NofObj & (0xFFU)) | (_m->FilterState_Max_ProbExists & (0xFFU)) | (_m->FilterState_Max_RCS_ro & (0xFFU)) | (_m->FilterState_Max_Size_ro & (0xFFU)) | (_m->FilterState_Max_VXDepart_ro & (0xFFU)) | (_m->FilterState_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Max_Y_ro & (0xFFU)) | (_m->FilterState_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Max_VXOncome_ro & (0xFFU)) | (_m->FilterState_Max_X_ro & (0xFFU));
+
+  cframe->MsgId = FilterState_Cfg_CANID;
+  cframe->DLC = FilterState_Cfg_DLC;
+  cframe->IDE = FilterState_Cfg_IDE;
+  return FilterState_Cfg_CANID;
+}
+
+#else
+
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch7(FilterState_Cfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < FilterState_Cfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->FilterState_Min_RCS_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_RCS_ro_toS(_m->FilterState_Min_RCS_phys);
+  _m->FilterState_Min_Azimuth_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_Azimuth_ro_toS(_m->FilterState_Min_Azimuth_phys);
+  _m->FilterState_Min_Distance_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_Distance_ro_toS(_m->FilterState_Min_Distance_phys);
+  _m->FilterState_Min_Lifetime_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_Lifetime_ro_toS(_m->FilterState_Min_Lifetime_phys);
+  _m->FilterState_Min_Y_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_Y_ro_toS(_m->FilterState_Min_Y_phys);
+  _m->FilterState_Min_Size_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_Size_ro_toS(_m->FilterState_Min_Size_phys);
+  _m->FilterState_Min_VrelDepart_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_VrelDepart_ro_toS(_m->FilterState_Min_VrelDepart_phys);
+  _m->FilterState_Min_VrelOncome_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_VrelOncome_ro_toS(_m->FilterState_Min_VrelOncome_phys);
+  _m->FilterState_Min_VYRightLeft_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_VYRightLeft_ro_toS(_m->FilterState_Min_VYRightLeft_phys);
+  _m->FilterState_Min_VXDepart_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_VXDepart_ro_toS(_m->FilterState_Min_VXDepart_phys);
+  _m->FilterState_Min_VXOncome_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_VXOncome_ro_toS(_m->FilterState_Min_VXOncome_phys);
+  _m->FilterState_Min_VYLeftRight_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_VYLeftRight_ro_toS(_m->FilterState_Min_VYLeftRight_phys);
+  _m->FilterState_Min_X_ro = ARS408_CAN_DATABASE_CH7_FilterState_Min_X_ro_toS(_m->FilterState_Min_X_phys);
+  _m->FilterState_Max_VrelDepart_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_VrelDepart_ro_toS(_m->FilterState_Max_VrelDepart_phys);
+  _m->FilterState_Max_Azimuth_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_Azimuth_ro_toS(_m->FilterState_Max_Azimuth_phys);
+  _m->FilterState_Max_Distance_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_Distance_ro_toS(_m->FilterState_Max_Distance_phys);
+  _m->FilterState_Max_Lifetime_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_Lifetime_ro_toS(_m->FilterState_Max_Lifetime_phys);
+  _m->FilterState_Max_RCS_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_RCS_ro_toS(_m->FilterState_Max_RCS_phys);
+  _m->FilterState_Max_Size_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_Size_ro_toS(_m->FilterState_Max_Size_phys);
+  _m->FilterState_Max_VXDepart_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_VXDepart_ro_toS(_m->FilterState_Max_VXDepart_phys);
+  _m->FilterState_Max_VrelOncome_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_VrelOncome_ro_toS(_m->FilterState_Max_VrelOncome_phys);
+  _m->FilterState_Max_Y_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_Y_ro_toS(_m->FilterState_Max_Y_phys);
+  _m->FilterState_Max_VYRightLeft_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_VYRightLeft_ro_toS(_m->FilterState_Max_VYRightLeft_phys);
+  _m->FilterState_Max_VYLeftRight_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_VYLeftRight_ro_toS(_m->FilterState_Max_VYLeftRight_phys);
+  _m->FilterState_Max_VXOncome_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_VXOncome_ro_toS(_m->FilterState_Max_VXOncome_phys);
+  _m->FilterState_Max_X_ro = ARS408_CAN_DATABASE_CH7_FilterState_Max_X_ro_toS(_m->FilterState_Max_X_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _d[0] |= ((_m->FilterState_Active & (0x01U)) << 2) | ((_m->FilterState_Index & (0x0FU)) << 3) | ((_m->FilterState_Type & (0x01U)) << 7);
+  _d[1] |= ((_m->FilterState_Min_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Min_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Min_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Min_X_ro >> 8) & (0x1FU));
+  _d[2] |= (_m->FilterState_Min_RCS_ro & (0xFFU)) | (_m->FilterState_Min_Azimuth_ro & (0xFFU)) | (_m->FilterState_Min_Distance_ro & (0xFFU)) | (_m->FilterState_Min_Lifetime_ro & (0xFFU)) | (_m->FilterState_Min_NofObj & (0xFFU)) | (_m->FilterState_Min_ProbExists & (0xFFU)) | (_m->FilterState_Min_Y_ro & (0xFFU)) | (_m->FilterState_Min_Size_ro & (0xFFU)) | (_m->FilterState_Min_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Min_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Min_VXDepart_ro & (0xFFU)) | (_m->FilterState_Min_VXOncome_ro & (0xFFU)) | (_m->FilterState_Min_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Min_X_ro & (0xFFU));
+  _d[3] |= ((_m->FilterState_Max_VrelDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Azimuth_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Distance_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Lifetime_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_NofObj >> 8) & (0x0FU)) | ((_m->FilterState_Max_ProbExists >> 8) & (0x0FU)) | ((_m->FilterState_Max_RCS_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Size_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXDepart_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VrelOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_Y_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYRightLeft_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VYLeftRight_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_VXOncome_ro >> 8) & (0x0FU)) | ((_m->FilterState_Max_X_ro >> 8) & (0x1FU));
+  _d[4] |= (_m->FilterState_Max_VrelDepart_ro & (0xFFU)) | (_m->FilterState_Max_Azimuth_ro & (0xFFU)) | (_m->FilterState_Max_Distance_ro & (0xFFU)) | (_m->FilterState_Max_Lifetime_ro & (0xFFU)) | (_m->FilterState_Max_NofObj & (0xFFU)) | (_m->FilterState_Max_ProbExists & (0xFFU)) | (_m->FilterState_Max_RCS_ro & (0xFFU)) | (_m->FilterState_Max_Size_ro & (0xFFU)) | (_m->FilterState_Max_VXDepart_ro & (0xFFU)) | (_m->FilterState_Max_VrelOncome_ro & (0xFFU)) | (_m->FilterState_Max_Y_ro & (0xFFU)) | (_m->FilterState_Max_VYRightLeft_ro & (0xFFU)) | (_m->FilterState_Max_VYLeftRight_ro & (0xFFU)) | (_m->FilterState_Max_VXOncome_ro & (0xFFU)) | (_m->FilterState_Max_X_ro & (0xFFU));
+
+  *_len = FilterState_Cfg_DLC;
+  *_ide = FilterState_Cfg_IDE;
+  return FilterState_Cfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_SpeedInformation_ARS408_can_database_ch7(SpeedInformation_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarDevice_Speed_ro = ((_d[0] & (0x1FU)) << 8) | (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->RadarDevice_Speed_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_RadarDevice_Speed_ro_fromS(_m->RadarDevice_Speed_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->RadarDevice_SpeedDirection = ((_d[0] >> 6) & (0x03U));
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < SpeedInformation_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_SpeedInformation_ars408_can_database_ch7(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+ return SpeedInformation_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch7(SpeedInformation_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < SpeedInformation_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->RadarDevice_Speed_ro = ARS408_CAN_DATABASE_CH7_RadarDevice_Speed_ro_toS(_m->RadarDevice_Speed_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarDevice_Speed_ro >> 8) & (0x1FU)) | ((_m->RadarDevice_SpeedDirection & (0x03U)) << 6);
+  cframe->Data[1] |= (_m->RadarDevice_Speed_ro & (0xFFU));
+
+  cframe->MsgId = SpeedInformation_CANID;
+  cframe->DLC = SpeedInformation_DLC;
+  cframe->IDE = SpeedInformation_IDE;
+  return SpeedInformation_CANID;
+}
+
+#else
+
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch7(SpeedInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < SpeedInformation_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->RadarDevice_Speed_ro = ARS408_CAN_DATABASE_CH7_RadarDevice_Speed_ro_toS(_m->RadarDevice_Speed_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarDevice_Speed_ro >> 8) & (0x1FU)) | ((_m->RadarDevice_SpeedDirection & (0x03U)) << 6);
+  _d[1] |= (_m->RadarDevice_Speed_ro & (0xFFU));
+
+  *_len = SpeedInformation_DLC;
+  *_ide = SpeedInformation_IDE;
+  return SpeedInformation_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_YawRateInformation_ARS408_can_database_ch7(YawRateInformation_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->RadarDevice_YawRate_ro = ((_d[0] & (0xFFU)) << 8) | (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_RadarDevice_YawRate_ro_fromS(_m->RadarDevice_YawRate_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < YawRateInformation_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_YawRateInformation_ars408_can_database_ch7(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+ return YawRateInformation_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch7(YawRateInformation_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < YawRateInformation_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_ro = ARS408_CAN_DATABASE_CH7_RadarDevice_YawRate_ro_toS(_m->RadarDevice_YawRate_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->RadarDevice_YawRate_ro >> 8) & (0xFFU));
+  cframe->Data[1] |= (_m->RadarDevice_YawRate_ro & (0xFFU));
+
+  cframe->MsgId = YawRateInformation_CANID;
+  cframe->DLC = YawRateInformation_DLC;
+  cframe->IDE = YawRateInformation_IDE;
+  return YawRateInformation_CANID;
+}
+
+#else
+
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch7(YawRateInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < YawRateInformation_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->RadarDevice_YawRate_ro = ARS408_CAN_DATABASE_CH7_RadarDevice_YawRate_ro_toS(_m->RadarDevice_YawRate_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _d[0] |= ((_m->RadarDevice_YawRate_ro >> 8) & (0xFFU));
+  _d[1] |= (_m->RadarDevice_YawRate_ro & (0xFFU));
+
+  *_len = YawRateInformation_DLC;
+  *_ide = YawRateInformation_IDE;
+  return YawRateInformation_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetState_ARS408_can_database_ch7(CollDetState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetState_Active = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetState_NofRegions = ((_d[0] >> 4) & (0x0FU));
+  _m->CollDetState_MinDetectTime_ro = (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_CollDetState_MinDetectTime_ro_fromS(_m->CollDetState_MinDetectTime_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->CollDetState_MeasCounter = ((_d[2] & (0xFFU)) << 8) | (_d[3] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetState_ars408_can_database_ch7(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+ return CollDetState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Pack_CollDetState_ARS408_can_database_ch7(CollDetState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_ro = ARS408_CAN_DATABASE_CH7_CollDetState_MinDetectTime_ro_toS(_m->CollDetState_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetState_Active & (0x01U)) << 1) | ((_m->CollDetState_NofRegions & (0x0FU)) << 4);
+  cframe->Data[1] |= (_m->CollDetState_MinDetectTime_ro & (0xFFU));
+  cframe->Data[2] |= ((_m->CollDetState_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[3] |= (_m->CollDetState_MeasCounter & (0xFFU));
+
+  cframe->MsgId = CollDetState_CANID;
+  cframe->DLC = CollDetState_DLC;
+  cframe->IDE = CollDetState_IDE;
+  return CollDetState_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetState_ARS408_can_database_ch7(CollDetState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->CollDetState_MinDetectTime_ro = ARS408_CAN_DATABASE_CH7_CollDetState_MinDetectTime_ro_toS(_m->CollDetState_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetState_Active & (0x01U)) << 1) | ((_m->CollDetState_NofRegions & (0x0FU)) << 4);
+  _d[1] |= (_m->CollDetState_MinDetectTime_ro & (0xFFU));
+  _d[2] |= ((_m->CollDetState_MeasCounter >> 8) & (0xFFU));
+  _d[3] |= (_m->CollDetState_MeasCounter & (0xFFU));
+
+  *_len = CollDetState_DLC;
+  *_ide = CollDetState_IDE;
+  return CollDetState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetCfg_ARS408_can_database_ch7(CollDetCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetCfg_WarningReset = (_d[0] & (0x01U));
+  _m->CollDetCfg_Activate = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetCfg_MinTime_valid = ((_d[0] >> 3) & (0x01U));
+  _m->CollDetCfg_ClearRegions = ((_d[0] >> 7) & (0x01U));
+  _m->CollDetCfg_MinDetectTime_ro = (_d[1] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_CollDetCfg_MinDetectTime_ro_fromS(_m->CollDetCfg_MinDetectTime_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetCfg_ars408_can_database_ch7(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+ return CollDetCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch7(CollDetCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_ro = ARS408_CAN_DATABASE_CH7_CollDetCfg_MinDetectTime_ro_toS(_m->CollDetCfg_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->CollDetCfg_WarningReset & (0x01U)) | ((_m->CollDetCfg_Activate & (0x01U)) << 1) | ((_m->CollDetCfg_MinTime_valid & (0x01U)) << 3) | ((_m->CollDetCfg_ClearRegions & (0x01U)) << 7);
+  cframe->Data[1] |= (_m->CollDetCfg_MinDetectTime_ro & (0xFFU));
+
+  cframe->MsgId = CollDetCfg_CANID;
+  cframe->DLC = CollDetCfg_DLC;
+  cframe->IDE = CollDetCfg_IDE;
+  return CollDetCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch7(CollDetCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->CollDetCfg_MinDetectTime_ro = ARS408_CAN_DATABASE_CH7_CollDetCfg_MinDetectTime_ro_toS(_m->CollDetCfg_MinDetectTime_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _d[0] |= (_m->CollDetCfg_WarningReset & (0x01U)) | ((_m->CollDetCfg_Activate & (0x01U)) << 1) | ((_m->CollDetCfg_MinTime_valid & (0x01U)) << 3) | ((_m->CollDetCfg_ClearRegions & (0x01U)) << 7);
+  _d[1] |= (_m->CollDetCfg_MinDetectTime_ro & (0xFFU));
+
+  *_len = CollDetCfg_DLC;
+  *_ide = CollDetCfg_IDE;
+  return CollDetCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionCfg_ARS408_can_database_ch7(CollDetRegionCfg_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRegCfg_Activate = ((_d[0] >> 1) & (0x01U));
+  _m->CollDetRegCfg_Coordinates_valid = ((_d[0] >> 2) & (0x01U));
+  _m->CollDetRegCfg_RegionID = (_d[1] & (0x07U));
+  _m->CollDetRegCfg_Point1X_ro = ((_d[2] & (0xFFU)) << 5) | ((_d[3] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point1X_ro_fromS(_m->CollDetRegCfg_Point1X_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point1Y_ro = ((_d[3] & (0x07U)) << 8) | (_d[4] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point1Y_ro_fromS(_m->CollDetRegCfg_Point1Y_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point2X_ro = ((_d[5] & (0xFFU)) << 5) | ((_d[6] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point2X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point2X_ro_fromS(_m->CollDetRegCfg_Point2X_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->CollDetRegCfg_Point2Y_ro = ((_d[6] & (0x07U)) << 8) | (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point2Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point2Y_ro_fromS(_m->CollDetRegCfg_Point2Y_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRegionCfg_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRegionCfg_ars408_can_database_ch7(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+ return CollDetRegionCfg_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch7(CollDetRegionCfg_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionCfg_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_ro = ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point1X_ro_toS(_m->CollDetRegCfg_Point1X_phys);
+  _m->CollDetRegCfg_Point1Y_ro = ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point1Y_ro_toS(_m->CollDetRegCfg_Point1Y_phys);
+  _m->CollDetRegCfg_Point2X_ro = ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point2X_ro_toS(_m->CollDetRegCfg_Point2X_phys);
+  _m->CollDetRegCfg_Point2Y_ro = ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point2Y_ro_toS(_m->CollDetRegCfg_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetRegCfg_Activate & (0x01U)) << 1) | ((_m->CollDetRegCfg_Coordinates_valid & (0x01U)) << 2);
+  cframe->Data[1] |= (_m->CollDetRegCfg_RegionID & (0x07U));
+  cframe->Data[2] |= ((_m->CollDetRegCfg_Point1X_ro >> 5) & (0xFFU));
+  cframe->Data[3] |= ((_m->CollDetRegCfg_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point1Y_ro >> 8) & (0x07U));
+  cframe->Data[4] |= (_m->CollDetRegCfg_Point1Y_ro & (0xFFU));
+  cframe->Data[5] |= ((_m->CollDetRegCfg_Point2X_ro >> 5) & (0xFFU));
+  cframe->Data[6] |= ((_m->CollDetRegCfg_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point2Y_ro >> 8) & (0x07U));
+  cframe->Data[7] |= (_m->CollDetRegCfg_Point2Y_ro & (0xFFU));
+
+  cframe->MsgId = CollDetRegionCfg_CANID;
+  cframe->DLC = CollDetRegionCfg_DLC;
+  cframe->IDE = CollDetRegionCfg_IDE;
+  return CollDetRegionCfg_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch7(CollDetRegionCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionCfg_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->CollDetRegCfg_Point1X_ro = ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point1X_ro_toS(_m->CollDetRegCfg_Point1X_phys);
+  _m->CollDetRegCfg_Point1Y_ro = ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point1Y_ro_toS(_m->CollDetRegCfg_Point1Y_phys);
+  _m->CollDetRegCfg_Point2X_ro = ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point2X_ro_toS(_m->CollDetRegCfg_Point2X_phys);
+  _m->CollDetRegCfg_Point2Y_ro = ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point2Y_ro_toS(_m->CollDetRegCfg_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetRegCfg_Activate & (0x01U)) << 1) | ((_m->CollDetRegCfg_Coordinates_valid & (0x01U)) << 2);
+  _d[1] |= (_m->CollDetRegCfg_RegionID & (0x07U));
+  _d[2] |= ((_m->CollDetRegCfg_Point1X_ro >> 5) & (0xFFU));
+  _d[3] |= ((_m->CollDetRegCfg_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point1Y_ro >> 8) & (0x07U));
+  _d[4] |= (_m->CollDetRegCfg_Point1Y_ro & (0xFFU));
+  _d[5] |= ((_m->CollDetRegCfg_Point2X_ro >> 5) & (0xFFU));
+  _d[6] |= ((_m->CollDetRegCfg_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegCfg_Point2Y_ro >> 8) & (0x07U));
+  _d[7] |= (_m->CollDetRegCfg_Point2Y_ro & (0xFFU));
+
+  *_len = CollDetRegionCfg_DLC;
+  *_ide = CollDetRegionCfg_IDE;
+  return CollDetRegionCfg_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionState_ARS408_can_database_ch7(CollDetRegionState_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->CollDetRegState_WarningLevel = ((_d[0] >> 3) & (0x03U));
+  _m->CollDetRegState_RegionID = ((_d[0] >> 5) & (0x07U));
+  _m->CollDetRegState_Point1X_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_CollDetRegState_Point1X_ro_fromS(_m->CollDetRegState_Point1X_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point1Y_ro = ((_d[2] & (0x07U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->CollDetRegState_Point1Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_CollDetRegState_Point1Y_ro_fromS(_m->CollDetRegState_Point1Y_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point2X_ro = ((_d[4] & (0xFFU)) << 5) | ((_d[5] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->CollDetRegState_Point2X_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_CollDetRegState_Point2X_ro_fromS(_m->CollDetRegState_Point2X_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->CollDetRegState_Point2Y_ro = ((_d[5] & (0x07U)) << 8) | (_d[6] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->CollDetRegState_Point2Y_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_CollDetRegState_Point2Y_ro_fromS(_m->CollDetRegState_Point2Y_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->CollDetRegState_NofObjects = (_d[7] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < CollDetRegionState_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_CollDetRegionState_ars408_can_database_ch7(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+ return CollDetRegionState_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch7(CollDetRegionState_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionState_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_ro = ARS408_CAN_DATABASE_CH7_CollDetRegState_Point1X_ro_toS(_m->CollDetRegState_Point1X_phys);
+  _m->CollDetRegState_Point1Y_ro = ARS408_CAN_DATABASE_CH7_CollDetRegState_Point1Y_ro_toS(_m->CollDetRegState_Point1Y_phys);
+  _m->CollDetRegState_Point2X_ro = ARS408_CAN_DATABASE_CH7_CollDetRegState_Point2X_ro_toS(_m->CollDetRegState_Point2X_phys);
+  _m->CollDetRegState_Point2Y_ro = ARS408_CAN_DATABASE_CH7_CollDetRegState_Point2Y_ro_toS(_m->CollDetRegState_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  cframe->Data[0] |= ((_m->CollDetRegState_WarningLevel & (0x03U)) << 3) | ((_m->CollDetRegState_RegionID & (0x07U)) << 5);
+  cframe->Data[1] |= ((_m->CollDetRegState_Point1X_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->CollDetRegState_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point1Y_ro >> 8) & (0x07U));
+  cframe->Data[3] |= (_m->CollDetRegState_Point1Y_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->CollDetRegState_Point2X_ro >> 5) & (0xFFU));
+  cframe->Data[5] |= ((_m->CollDetRegState_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point2Y_ro >> 8) & (0x07U));
+  cframe->Data[6] |= (_m->CollDetRegState_Point2Y_ro & (0xFFU));
+  cframe->Data[7] |= (_m->CollDetRegState_NofObjects & (0xFFU));
+
+  cframe->MsgId = CollDetRegionState_CANID;
+  cframe->DLC = CollDetRegionState_DLC;
+  cframe->IDE = CollDetRegionState_IDE;
+  return CollDetRegionState_CANID;
+}
+
+#else
+
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch7(CollDetRegionState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < CollDetRegionState_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->CollDetRegState_Point1X_ro = ARS408_CAN_DATABASE_CH7_CollDetRegState_Point1X_ro_toS(_m->CollDetRegState_Point1X_phys);
+  _m->CollDetRegState_Point1Y_ro = ARS408_CAN_DATABASE_CH7_CollDetRegState_Point1Y_ro_toS(_m->CollDetRegState_Point1Y_phys);
+  _m->CollDetRegState_Point2X_ro = ARS408_CAN_DATABASE_CH7_CollDetRegState_Point2X_ro_toS(_m->CollDetRegState_Point2X_phys);
+  _m->CollDetRegState_Point2Y_ro = ARS408_CAN_DATABASE_CH7_CollDetRegState_Point2Y_ro_toS(_m->CollDetRegState_Point2Y_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _d[0] |= ((_m->CollDetRegState_WarningLevel & (0x03U)) << 3) | ((_m->CollDetRegState_RegionID & (0x07U)) << 5);
+  _d[1] |= ((_m->CollDetRegState_Point1X_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->CollDetRegState_Point1X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point1Y_ro >> 8) & (0x07U));
+  _d[3] |= (_m->CollDetRegState_Point1Y_ro & (0xFFU));
+  _d[4] |= ((_m->CollDetRegState_Point2X_ro >> 5) & (0xFFU));
+  _d[5] |= ((_m->CollDetRegState_Point2X_ro & (0x1FU)) << 3) | ((_m->CollDetRegState_Point2Y_ro >> 8) & (0x07U));
+  _d[6] |= (_m->CollDetRegState_Point2Y_ro & (0xFFU));
+  _d[7] |= (_m->CollDetRegState_NofObjects & (0xFFU));
+
+  *_len = CollDetRegionState_DLC;
+  *_ide = CollDetRegionState_IDE;
+  return CollDetRegionState_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_0_Status_ARS408_can_database_ch7(Cluster_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_NofClustersNear = (_d[0] & (0xFFU));
+  _m->Cluster_NofClustersFar = (_d[1] & (0xFFU));
+  _m->Cluster_MeasCounter = ((_d[2] & (0xFFU)) << 8) | (_d[3] & (0xFFU));
+  _m->Cluster_InterfaceVersion = ((_d[4] >> 4) & (0x0FU));
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_0_Status_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_0_Status_ars408_can_database_ch7(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+ return Cluster_0_Status_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch7(Cluster_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_0_Status_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Cluster_NofClustersNear & (0xFFU));
+  cframe->Data[1] |= (_m->Cluster_NofClustersFar & (0xFFU));
+  cframe->Data[2] |= ((_m->Cluster_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[3] |= (_m->Cluster_MeasCounter & (0xFFU));
+  cframe->Data[4] |= ((_m->Cluster_InterfaceVersion & (0x0FU)) << 4);
+
+  cframe->MsgId = Cluster_0_Status_CANID;
+  cframe->DLC = Cluster_0_Status_DLC;
+  cframe->IDE = Cluster_0_Status_IDE;
+  return Cluster_0_Status_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch7(Cluster_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_0_Status_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Cluster_NofClustersNear & (0xFFU));
+  _d[1] |= (_m->Cluster_NofClustersFar & (0xFFU));
+  _d[2] |= ((_m->Cluster_MeasCounter >> 8) & (0xFFU));
+  _d[3] |= (_m->Cluster_MeasCounter & (0xFFU));
+  _d[4] |= ((_m->Cluster_InterfaceVersion & (0x0FU)) << 4);
+
+  *_len = Cluster_0_Status_DLC;
+  *_ide = Cluster_0_Status_IDE;
+  return Cluster_0_Status_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_0_Status_ARS408_can_database_ch7(Obj_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_NofObjects = (_d[0] & (0xFFU));
+  _m->Obj_MeasCounter = ((_d[1] & (0xFFU)) << 8) | (_d[2] & (0xFFU));
+  _m->Obj_InterfaceVersion = ((_d[3] >> 4) & (0x0FU));
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_0_Status_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_0_Status_ars408_can_database_ch7(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+ return Obj_0_Status_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch7(Obj_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_0_Status_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_NofObjects & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_MeasCounter >> 8) & (0xFFU));
+  cframe->Data[2] |= (_m->Obj_MeasCounter & (0xFFU));
+  cframe->Data[3] |= ((_m->Obj_InterfaceVersion & (0x0FU)) << 4);
+
+  cframe->MsgId = Obj_0_Status_CANID;
+  cframe->DLC = Obj_0_Status_DLC;
+  cframe->IDE = Obj_0_Status_IDE;
+  return Obj_0_Status_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch7(Obj_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_0_Status_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_NofObjects & (0xFFU));
+  _d[1] |= ((_m->Obj_MeasCounter >> 8) & (0xFFU));
+  _d[2] |= (_m->Obj_MeasCounter & (0xFFU));
+  _d[3] |= ((_m->Obj_InterfaceVersion & (0x0FU)) << 4);
+
+  *_len = Obj_0_Status_DLC;
+  *_ide = Obj_0_Status_IDE;
+  return Obj_0_Status_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_1_General_ARS408_can_database_ch7(Obj_1_General_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_DistLong_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->Obj_DistLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_Obj_DistLong_ro_fromS(_m->Obj_DistLong_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->Obj_DistLat_ro = ((_d[2] & (0x07U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->Obj_DistLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_Obj_DistLat_ro_fromS(_m->Obj_DistLat_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->Obj_VrelLong_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->Obj_VrelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_Obj_VrelLong_ro_fromS(_m->Obj_VrelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->Obj_VrelLat_ro = ((_d[5] & (0x3FU)) << 3) | ((_d[6] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->Obj_VrelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_Obj_VrelLat_ro_fromS(_m->Obj_VrelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->Obj_DynProp = (_d[6] & (0x07U));
+  _m->Obj_RCS_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->Obj_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_Obj_RCS_ro_fromS(_m->Obj_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_1_General_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_1_General_ars408_can_database_ch7(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+ return Obj_1_General_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch7(Obj_1_General_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_1_General_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->Obj_DistLong_ro = ARS408_CAN_DATABASE_CH7_Obj_DistLong_ro_toS(_m->Obj_DistLong_phys);
+  _m->Obj_DistLat_ro = ARS408_CAN_DATABASE_CH7_Obj_DistLat_ro_toS(_m->Obj_DistLat_phys);
+  _m->Obj_VrelLong_ro = ARS408_CAN_DATABASE_CH7_Obj_VrelLong_ro_toS(_m->Obj_VrelLong_phys);
+  _m->Obj_VrelLat_ro = ARS408_CAN_DATABASE_CH7_Obj_VrelLat_ro_toS(_m->Obj_VrelLat_phys);
+  _m->Obj_RCS_ro = ARS408_CAN_DATABASE_CH7_Obj_RCS_ro_toS(_m->Obj_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_DistLong_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->Obj_DistLong_ro & (0x1FU)) << 3) | ((_m->Obj_DistLat_ro >> 8) & (0x07U));
+  cframe->Data[3] |= (_m->Obj_DistLat_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->Obj_VrelLong_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Obj_VrelLong_ro & (0x03U)) << 6) | ((_m->Obj_VrelLat_ro >> 3) & (0x3FU));
+  cframe->Data[6] |= ((_m->Obj_VrelLat_ro & (0x07U)) << 5) | (_m->Obj_DynProp & (0x07U));
+  cframe->Data[7] |= (_m->Obj_RCS_ro & (0xFFU));
+
+  cframe->MsgId = Obj_1_General_CANID;
+  cframe->DLC = Obj_1_General_DLC;
+  cframe->IDE = Obj_1_General_IDE;
+  return Obj_1_General_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch7(Obj_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_1_General_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->Obj_DistLong_ro = ARS408_CAN_DATABASE_CH7_Obj_DistLong_ro_toS(_m->Obj_DistLong_phys);
+  _m->Obj_DistLat_ro = ARS408_CAN_DATABASE_CH7_Obj_DistLat_ro_toS(_m->Obj_DistLat_phys);
+  _m->Obj_VrelLong_ro = ARS408_CAN_DATABASE_CH7_Obj_VrelLong_ro_toS(_m->Obj_VrelLong_phys);
+  _m->Obj_VrelLat_ro = ARS408_CAN_DATABASE_CH7_Obj_VrelLat_ro_toS(_m->Obj_VrelLat_phys);
+  _m->Obj_RCS_ro = ARS408_CAN_DATABASE_CH7_Obj_RCS_ro_toS(_m->Obj_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_DistLong_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->Obj_DistLong_ro & (0x1FU)) << 3) | ((_m->Obj_DistLat_ro >> 8) & (0x07U));
+  _d[3] |= (_m->Obj_DistLat_ro & (0xFFU));
+  _d[4] |= ((_m->Obj_VrelLong_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Obj_VrelLong_ro & (0x03U)) << 6) | ((_m->Obj_VrelLat_ro >> 3) & (0x3FU));
+  _d[6] |= ((_m->Obj_VrelLat_ro & (0x07U)) << 5) | (_m->Obj_DynProp & (0x07U));
+  _d[7] |= (_m->Obj_RCS_ro & (0xFFU));
+
+  *_len = Obj_1_General_DLC;
+  *_ide = Obj_1_General_IDE;
+  return Obj_1_General_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_2_Quality_ARS408_can_database_ch7(Obj_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_DistLat_rms = ((_d[1] & (0x07U)) << 2) | ((_d[2] >> 6) & (0x03U));
+  _m->Obj_DistLong_rms = ((_d[1] >> 3) & (0x1FU));
+  _m->Obj_VrelLat_rms = ((_d[2] & (0x01U)) << 4) | ((_d[3] >> 4) & (0x0FU));
+  _m->Obj_VrelLong_rms = ((_d[2] >> 1) & (0x1FU));
+  _m->Obj_ArelLong_rms = ((_d[3] & (0x0FU)) << 1) | ((_d[4] >> 7) & (0x01U));
+  _m->Obj_Orientation_rms = ((_d[4] & (0x03U)) << 3) | ((_d[5] >> 5) & (0x07U));
+  _m->Obj_ArelLat_rms = ((_d[4] >> 2) & (0x1FU));
+  _m->Obj_MeasState = ((_d[6] >> 2) & (0x07U));
+  _m->Obj_ProbOfExist = ((_d[6] >> 5) & (0x07U));
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_2_Quality_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_2_Quality_ars408_can_database_ch7(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+ return Obj_2_Quality_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch7(Obj_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_2_Quality_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_DistLat_rms >> 2) & (0x07U)) | ((_m->Obj_DistLong_rms & (0x1FU)) << 3);
+  cframe->Data[2] |= ((_m->Obj_DistLat_rms & (0x03U)) << 6) | ((_m->Obj_VrelLat_rms >> 4) & (0x01U)) | ((_m->Obj_VrelLong_rms & (0x1FU)) << 1);
+  cframe->Data[3] |= ((_m->Obj_VrelLat_rms & (0x0FU)) << 4) | ((_m->Obj_ArelLong_rms >> 1) & (0x0FU));
+  cframe->Data[4] |= ((_m->Obj_ArelLong_rms & (0x01U)) << 7) | ((_m->Obj_Orientation_rms >> 3) & (0x03U)) | ((_m->Obj_ArelLat_rms & (0x1FU)) << 2);
+  cframe->Data[5] |= ((_m->Obj_Orientation_rms & (0x07U)) << 5);
+  cframe->Data[6] |= ((_m->Obj_MeasState & (0x07U)) << 2) | ((_m->Obj_ProbOfExist & (0x07U)) << 5);
+
+  cframe->MsgId = Obj_2_Quality_CANID;
+  cframe->DLC = Obj_2_Quality_DLC;
+  cframe->IDE = Obj_2_Quality_IDE;
+  return Obj_2_Quality_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch7(Obj_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_2_Quality_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_DistLat_rms >> 2) & (0x07U)) | ((_m->Obj_DistLong_rms & (0x1FU)) << 3);
+  _d[2] |= ((_m->Obj_DistLat_rms & (0x03U)) << 6) | ((_m->Obj_VrelLat_rms >> 4) & (0x01U)) | ((_m->Obj_VrelLong_rms & (0x1FU)) << 1);
+  _d[3] |= ((_m->Obj_VrelLat_rms & (0x0FU)) << 4) | ((_m->Obj_ArelLong_rms >> 1) & (0x0FU));
+  _d[4] |= ((_m->Obj_ArelLong_rms & (0x01U)) << 7) | ((_m->Obj_Orientation_rms >> 3) & (0x03U)) | ((_m->Obj_ArelLat_rms & (0x1FU)) << 2);
+  _d[5] |= ((_m->Obj_Orientation_rms & (0x07U)) << 5);
+  _d[6] |= ((_m->Obj_MeasState & (0x07U)) << 2) | ((_m->Obj_ProbOfExist & (0x07U)) << 5);
+
+  *_len = Obj_2_Quality_DLC;
+  *_ide = Obj_2_Quality_IDE;
+  return Obj_2_Quality_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_3_Extended_ARS408_can_database_ch7(Obj_3_Extended_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_ArelLong_ro = ((_d[1] & (0xFFU)) << 3) | ((_d[2] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->Obj_ArelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_Obj_ArelLong_ro_fromS(_m->Obj_ArelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->Obj_ArelLat_ro = ((_d[2] & (0x1FU)) << 4) | ((_d[3] >> 4) & (0x0FU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->Obj_ArelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_Obj_ArelLat_ro_fromS(_m->Obj_ArelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->Obj_Class = (_d[3] & (0x07U));
+  _m->Obj_OrientationAngle_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->Obj_OrientationAngle_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_Obj_OrientationAngle_ro_fromS(_m->Obj_OrientationAngle_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->Obj_Length_ro = (_d[6] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->Obj_Length_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_Obj_Length_ro_fromS(_m->Obj_Length_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->Obj_Width_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->Obj_Width_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_Obj_Width_ro_fromS(_m->Obj_Width_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_3_Extended_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_3_Extended_ars408_can_database_ch7(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+ return Obj_3_Extended_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch7(Obj_3_Extended_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_3_Extended_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->Obj_ArelLong_ro = ARS408_CAN_DATABASE_CH7_Obj_ArelLong_ro_toS(_m->Obj_ArelLong_phys);
+  _m->Obj_ArelLat_ro = ARS408_CAN_DATABASE_CH7_Obj_ArelLat_ro_toS(_m->Obj_ArelLat_phys);
+  _m->Obj_OrientationAngle_ro = ARS408_CAN_DATABASE_CH7_Obj_OrientationAngle_ro_toS(_m->Obj_OrientationAngle_phys);
+  _m->Obj_Length_ro = ARS408_CAN_DATABASE_CH7_Obj_Length_ro_toS(_m->Obj_Length_phys);
+  _m->Obj_Width_ro = ARS408_CAN_DATABASE_CH7_Obj_Width_ro_toS(_m->Obj_Width_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Obj_ArelLong_ro >> 3) & (0xFFU));
+  cframe->Data[2] |= ((_m->Obj_ArelLong_ro & (0x07U)) << 5) | ((_m->Obj_ArelLat_ro >> 4) & (0x1FU));
+  cframe->Data[3] |= ((_m->Obj_ArelLat_ro & (0x0FU)) << 4) | (_m->Obj_Class & (0x07U));
+  cframe->Data[4] |= ((_m->Obj_OrientationAngle_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Obj_OrientationAngle_ro & (0x03U)) << 6);
+  cframe->Data[6] |= (_m->Obj_Length_ro & (0xFFU));
+  cframe->Data[7] |= (_m->Obj_Width_ro & (0xFFU));
+
+  cframe->MsgId = Obj_3_Extended_CANID;
+  cframe->DLC = Obj_3_Extended_DLC;
+  cframe->IDE = Obj_3_Extended_IDE;
+  return Obj_3_Extended_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch7(Obj_3_Extended_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_3_Extended_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->Obj_ArelLong_ro = ARS408_CAN_DATABASE_CH7_Obj_ArelLong_ro_toS(_m->Obj_ArelLong_phys);
+  _m->Obj_ArelLat_ro = ARS408_CAN_DATABASE_CH7_Obj_ArelLat_ro_toS(_m->Obj_ArelLat_phys);
+  _m->Obj_OrientationAngle_ro = ARS408_CAN_DATABASE_CH7_Obj_OrientationAngle_ro_toS(_m->Obj_OrientationAngle_phys);
+  _m->Obj_Length_ro = ARS408_CAN_DATABASE_CH7_Obj_Length_ro_toS(_m->Obj_Length_phys);
+  _m->Obj_Width_ro = ARS408_CAN_DATABASE_CH7_Obj_Width_ro_toS(_m->Obj_Width_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= ((_m->Obj_ArelLong_ro >> 3) & (0xFFU));
+  _d[2] |= ((_m->Obj_ArelLong_ro & (0x07U)) << 5) | ((_m->Obj_ArelLat_ro >> 4) & (0x1FU));
+  _d[3] |= ((_m->Obj_ArelLat_ro & (0x0FU)) << 4) | (_m->Obj_Class & (0x07U));
+  _d[4] |= ((_m->Obj_OrientationAngle_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Obj_OrientationAngle_ro & (0x03U)) << 6);
+  _d[6] |= (_m->Obj_Length_ro & (0xFFU));
+  _d[7] |= (_m->Obj_Width_ro & (0xFFU));
+
+  *_len = Obj_3_Extended_DLC;
+  *_ide = Obj_3_Extended_IDE;
+  return Obj_3_Extended_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_4_Warning_ARS408_can_database_ch7(Obj_4_Warning_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Obj_ID = (_d[0] & (0xFFU));
+  _m->Obj_CollDetRegionBitfield = (_d[1] & (0xFFU));
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Obj_4_Warning_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Obj_4_Warning_ars408_can_database_ch7(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+ return Obj_4_Warning_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch7(Obj_4_Warning_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Obj_4_Warning_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Obj_ID & (0xFFU));
+  cframe->Data[1] |= (_m->Obj_CollDetRegionBitfield & (0xFFU));
+
+  cframe->MsgId = Obj_4_Warning_CANID;
+  cframe->DLC = Obj_4_Warning_DLC;
+  cframe->IDE = Obj_4_Warning_IDE;
+  return Obj_4_Warning_CANID;
+}
+
+#else
+
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch7(Obj_4_Warning_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Obj_4_Warning_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Obj_ID & (0xFFU));
+  _d[1] |= (_m->Obj_CollDetRegionBitfield & (0xFFU));
+
+  *_len = Obj_4_Warning_DLC;
+  *_ide = Obj_4_Warning_IDE;
+  return Obj_4_Warning_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_VersionID_ARS408_can_database_ch7(VersionID_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Version_MajorRelease = (_d[0] & (0xFFU));
+  _m->Version_MinorRelease = (_d[1] & (0xFFU));
+  _m->Version_PatchLevel = (_d[2] & (0xFFU));
+  _m->Version_CountryCode = (_d[3] & (0x01U));
+  _m->Version_ExtendedRange = ((_d[3] >> 1) & (0x01U));
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < VersionID_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_VersionID_ars408_can_database_ch7(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+ return VersionID_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Pack_VersionID_ARS408_can_database_ch7(VersionID_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < VersionID_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Version_MajorRelease & (0xFFU));
+  cframe->Data[1] |= (_m->Version_MinorRelease & (0xFFU));
+  cframe->Data[2] |= (_m->Version_PatchLevel & (0xFFU));
+  cframe->Data[3] |= (_m->Version_CountryCode & (0x01U)) | ((_m->Version_ExtendedRange & (0x01U)) << 1);
+
+  cframe->MsgId = VersionID_CANID;
+  cframe->DLC = VersionID_DLC;
+  cframe->IDE = VersionID_IDE;
+  return VersionID_CANID;
+}
+
+#else
+
+uint32_t Pack_VersionID_ARS408_can_database_ch7(VersionID_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < VersionID_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Version_MajorRelease & (0xFFU));
+  _d[1] |= (_m->Version_MinorRelease & (0xFFU));
+  _d[2] |= (_m->Version_PatchLevel & (0xFFU));
+  _d[3] |= (_m->Version_CountryCode & (0x01U)) | ((_m->Version_ExtendedRange & (0x01U)) << 1);
+
+  *_len = VersionID_DLC;
+  *_ide = VersionID_IDE;
+  return VersionID_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_1_General_ARS408_can_database_ch7(Cluster_1_General_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_ID = (_d[0] & (0xFFU));
+  _m->Cluster_DistLong_ro = ((_d[1] & (0xFFU)) << 5) | ((_d[2] >> 3) & (0x1FU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->Cluster_DistLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_Cluster_DistLong_ro_fromS(_m->Cluster_DistLong_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->Cluster_DistLat_ro = ((_d[2] & (0x03U)) << 8) | (_d[3] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->Cluster_DistLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_Cluster_DistLat_ro_fromS(_m->Cluster_DistLat_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->Cluster_VrelLong_ro = ((_d[4] & (0xFFU)) << 2) | ((_d[5] >> 6) & (0x03U));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->Cluster_VrelLong_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_Cluster_VrelLong_ro_fromS(_m->Cluster_VrelLong_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->Cluster_VrelLat_ro = ((_d[5] & (0x3FU)) << 3) | ((_d[6] >> 5) & (0x07U));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->Cluster_VrelLat_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_Cluster_VrelLat_ro_fromS(_m->Cluster_VrelLat_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _m->Cluster_DynProp = (_d[6] & (0x07U));
+  _m->Cluster_RCS_ro = (_d[7] & (0xFFU));
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->Cluster_RCS_phys = (sigfloat_t)(ARS408_CAN_DATABASE_CH7_Cluster_RCS_ro_fromS(_m->Cluster_RCS_ro));
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_1_General_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_1_General_ars408_can_database_ch7(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+ return Cluster_1_General_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch7(Cluster_1_General_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_1_General_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->Cluster_DistLong_ro = ARS408_CAN_DATABASE_CH7_Cluster_DistLong_ro_toS(_m->Cluster_DistLong_phys);
+  _m->Cluster_DistLat_ro = ARS408_CAN_DATABASE_CH7_Cluster_DistLat_ro_toS(_m->Cluster_DistLat_phys);
+  _m->Cluster_VrelLong_ro = ARS408_CAN_DATABASE_CH7_Cluster_VrelLong_ro_toS(_m->Cluster_VrelLong_phys);
+  _m->Cluster_VrelLat_ro = ARS408_CAN_DATABASE_CH7_Cluster_VrelLat_ro_toS(_m->Cluster_VrelLat_phys);
+  _m->Cluster_RCS_ro = ARS408_CAN_DATABASE_CH7_Cluster_RCS_ro_toS(_m->Cluster_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  cframe->Data[0] |= (_m->Cluster_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Cluster_DistLong_ro >> 5) & (0xFFU));
+  cframe->Data[2] |= ((_m->Cluster_DistLong_ro & (0x1FU)) << 3) | ((_m->Cluster_DistLat_ro >> 8) & (0x03U));
+  cframe->Data[3] |= (_m->Cluster_DistLat_ro & (0xFFU));
+  cframe->Data[4] |= ((_m->Cluster_VrelLong_ro >> 2) & (0xFFU));
+  cframe->Data[5] |= ((_m->Cluster_VrelLong_ro & (0x03U)) << 6) | ((_m->Cluster_VrelLat_ro >> 3) & (0x3FU));
+  cframe->Data[6] |= ((_m->Cluster_VrelLat_ro & (0x07U)) << 5) | (_m->Cluster_DynProp & (0x07U));
+  cframe->Data[7] |= (_m->Cluster_RCS_ro & (0xFFU));
+
+  cframe->MsgId = Cluster_1_General_CANID;
+  cframe->DLC = Cluster_1_General_DLC;
+  cframe->IDE = Cluster_1_General_IDE;
+  return Cluster_1_General_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch7(Cluster_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_1_General_DLC) && (i < 8); _d[i++] = 0);
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  _m->Cluster_DistLong_ro = ARS408_CAN_DATABASE_CH7_Cluster_DistLong_ro_toS(_m->Cluster_DistLong_phys);
+  _m->Cluster_DistLat_ro = ARS408_CAN_DATABASE_CH7_Cluster_DistLat_ro_toS(_m->Cluster_DistLat_phys);
+  _m->Cluster_VrelLong_ro = ARS408_CAN_DATABASE_CH7_Cluster_VrelLong_ro_toS(_m->Cluster_VrelLong_phys);
+  _m->Cluster_VrelLat_ro = ARS408_CAN_DATABASE_CH7_Cluster_VrelLat_ro_toS(_m->Cluster_VrelLat_phys);
+  _m->Cluster_RCS_ro = ARS408_CAN_DATABASE_CH7_Cluster_RCS_ro_toS(_m->Cluster_RCS_phys);
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  _d[0] |= (_m->Cluster_ID & (0xFFU));
+  _d[1] |= ((_m->Cluster_DistLong_ro >> 5) & (0xFFU));
+  _d[2] |= ((_m->Cluster_DistLong_ro & (0x1FU)) << 3) | ((_m->Cluster_DistLat_ro >> 8) & (0x03U));
+  _d[3] |= (_m->Cluster_DistLat_ro & (0xFFU));
+  _d[4] |= ((_m->Cluster_VrelLong_ro >> 2) & (0xFFU));
+  _d[5] |= ((_m->Cluster_VrelLong_ro & (0x03U)) << 6) | ((_m->Cluster_VrelLat_ro >> 3) & (0x3FU));
+  _d[6] |= ((_m->Cluster_VrelLat_ro & (0x07U)) << 5) | (_m->Cluster_DynProp & (0x07U));
+  _d[7] |= (_m->Cluster_RCS_ro & (0xFFU));
+
+  *_len = Cluster_1_General_DLC;
+  *_ide = Cluster_1_General_IDE;
+  return Cluster_1_General_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_2_Quality_ARS408_can_database_ch7(Cluster_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_)
+{
+  (void)dlc_;
+  _m->Cluster_ID = (_d[0] & (0xFFU));
+  _m->Cluster_DistLat_rms = ((_d[1] & (0x07U)) << 2) | ((_d[2] >> 6) & (0x03U));
+  _m->Cluster_DistLong_rms = ((_d[1] >> 3) & (0x1FU));
+  _m->Cluster_VrelLat_rms = ((_d[2] & (0x01U)) << 4) | ((_d[3] >> 4) & (0x0FU));
+  _m->Cluster_VrelLong_rms = ((_d[2] >> 1) & (0x1FU));
+  _m->Cluster_PdH0 = (_d[3] & (0x07U));
+  _m->Cluster_AmbigState = (_d[4] & (0x07U));
+  _m->Cluster_InvalidState = ((_d[4] >> 3) & (0x1FU));
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+  _m->mon1.dlc_error = (dlc_ < Cluster_2_Quality_DLC);
+  _m->mon1.last_cycle = GetSystemTick();
+  _m->mon1.frame_cnt++;
+
+  FMon_Cluster_2_Quality_ars408_can_database_ch7(&_m->mon1);
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+ return Cluster_2_Quality_CANID;
+}
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch7(Cluster_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe)
+{
+  uint8_t i; for (i = 0; (i < Cluster_2_Quality_DLC) && (i < 8); cframe->Data[i++] = 0);
+
+  cframe->Data[0] |= (_m->Cluster_ID & (0xFFU));
+  cframe->Data[1] |= ((_m->Cluster_DistLat_rms >> 2) & (0x07U)) | ((_m->Cluster_DistLong_rms & (0x1FU)) << 3);
+  cframe->Data[2] |= ((_m->Cluster_DistLat_rms & (0x03U)) << 6) | ((_m->Cluster_VrelLat_rms >> 4) & (0x01U)) | ((_m->Cluster_VrelLong_rms & (0x1FU)) << 1);
+  cframe->Data[3] |= ((_m->Cluster_VrelLat_rms & (0x0FU)) << 4) | (_m->Cluster_PdH0 & (0x07U));
+  cframe->Data[4] |= (_m->Cluster_AmbigState & (0x07U)) | ((_m->Cluster_InvalidState & (0x1FU)) << 3);
+
+  cframe->MsgId = Cluster_2_Quality_CANID;
+  cframe->DLC = Cluster_2_Quality_DLC;
+  cframe->IDE = Cluster_2_Quality_IDE;
+  return Cluster_2_Quality_CANID;
+}
+
+#else
+
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch7(Cluster_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
+{
+  uint8_t i; for (i = 0; (i < Cluster_2_Quality_DLC) && (i < 8); _d[i++] = 0);
+
+  _d[0] |= (_m->Cluster_ID & (0xFFU));
+  _d[1] |= ((_m->Cluster_DistLat_rms >> 2) & (0x07U)) | ((_m->Cluster_DistLong_rms & (0x1FU)) << 3);
+  _d[2] |= ((_m->Cluster_DistLat_rms & (0x03U)) << 6) | ((_m->Cluster_VrelLat_rms >> 4) & (0x01U)) | ((_m->Cluster_VrelLong_rms & (0x1FU)) << 1);
+  _d[3] |= ((_m->Cluster_VrelLat_rms & (0x0FU)) << 4) | (_m->Cluster_PdH0 & (0x07U));
+  _d[4] |= (_m->Cluster_AmbigState & (0x07U)) | ((_m->Cluster_InvalidState & (0x1FU)) << 3);
+
+  *_len = Cluster_2_Quality_DLC;
+  *_ide = Cluster_2_Quality_IDE;
+  return Cluster_2_Quality_CANID;
+}
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+

+ 4044 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/ars408_can_database_ch7.h

@@ -0,0 +1,4044 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+// DBC file version
+#define VER_ARS408_CAN_DATABASE_CH7_MAJ (0U)
+#define VER_ARS408_CAN_DATABASE_CH7_MIN (0U)
+
+// include current dbc-driver compilation config
+#include "ars408_can_database_ch7-config.h"
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+// This file must define:
+// base monitor struct
+// function signature for HASH calculation: (@GetFrameHash)
+// function signature for getting system tick value: (@GetSystemTick)
+#include "canmonitorutil.h"
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+
+// Control message for relay to display collision detection
+// def @CollDetRelayCtrl CAN Message (8    0x8)
+#define CollDetRelayCtrl_IDE (0U)
+#define CollDetRelayCtrl_DLC (1U)
+#define CollDetRelayCtrl_CANID (0x8)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+  // Region bit field for control relay
+  uint8_t CollDetRelayCtrl_Param;            //      Bits= 8
+
+#else
+
+  // Region bit field for control relay
+  uint8_t CollDetRelayCtrl_Param;            //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+} CollDetRelayCtrl_t;
+
+// Radar configuration
+// def @RadarConfiguration CAN Message (624  0x270)
+#define RadarConfiguration_IDE (0U)
+#define RadarConfiguration_DLC (8U)
+#define RadarConfiguration_CANID (0x270)
+// signal: @RadarCfg_MaxDistance_ro
+#define ARS408_CAN_DATABASE_CH7_RadarCfg_MaxDistance_ro_CovFactor (2)
+#define ARS408_CAN_DATABASE_CH7_RadarCfg_MaxDistance_ro_toS(x) ( (uint16_t) ((x) / (2)) )
+#define ARS408_CAN_DATABASE_CH7_RadarCfg_MaxDistance_ro_fromS(x) ( ((x) * (2)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+  // Allows changing the MaxDistance parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_MaxDistance_valid : 1;     //      Bits= 1
+
+  // Allows changing the SensorId parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SensorID_valid : 1;        //      Bits= 1
+
+  // Allows changing the RadarPower parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RadarPower_valid : 1;      //      Bits= 1
+
+  // Allows changing the OutputType parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_OutputType_valid : 1;      //      Bits= 1
+
+  // Allows changing the SendQuality parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendQuality_valid : 1;     //      Bits= 1
+
+  // Allows changing the SendExtInfo parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendExtInfo_valid : 1;     //      Bits= 1
+
+  // Allows changing the SortIndex parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SortIndex_valid : 1;       //      Bits= 1
+
+  // Allows changing the StoreInNvm parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_StoreInNVM_valid : 1;      //      Bits= 1
+
+  uint16_t RadarCfg_MaxDistance_ro;           //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  uint16_t RadarCfg_MaxDistance_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // Sensor ID (0 to 7)
+  uint8_t RadarCfg_SensorID : 3;              //      Bits= 3
+
+  // Data output type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarCfg_OutputType : 2;            //      Bits= 2
+
+  // Radar Tx output power reduction (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RadarPower : 3;            //      Bits= 3
+
+  // Allows changing the CtrlRelay parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_CtrlRelay_valid : 1;       //      Bits= 1
+
+  // Enables output of CtrlRelay message if CollDet is active
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_CtrlRelay : 1;             //      Bits= 1
+
+  // Enables output of quality message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendQuality : 1;           //      Bits= 1
+
+  // Enables output of extended message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendExtInfo : 1;           //      Bits= 1
+
+  // Object sort index
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarCfg_SortIndex : 3;             //      Bits= 3
+
+  // Store configuration in Nvm
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_StoreInNVM : 1;            //      Bits= 1
+
+  // Allows changing the RCS_Threshold parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RCS_Threshold_Valid : 1;   //      Bits= 1
+
+  // Standard or high sensitivity for cluster list output
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RCS_Threshold : 3;         //      Bits= 3
+
+#else
+
+  // Allows changing the MaxDistance parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_MaxDistance_valid;         //      Bits= 1
+
+  // Allows changing the SensorId parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SensorID_valid;            //      Bits= 1
+
+  // Allows changing the RadarPower parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RadarPower_valid;          //      Bits= 1
+
+  // Allows changing the OutputType parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_OutputType_valid;          //      Bits= 1
+
+  // Allows changing the SendQuality parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendQuality_valid;         //      Bits= 1
+
+  // Allows changing the SendExtInfo parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SendExtInfo_valid;         //      Bits= 1
+
+  // Allows changing the SortIndex parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_SortIndex_valid;           //      Bits= 1
+
+  // Allows changing the StoreInNvm parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_StoreInNVM_valid;          //      Bits= 1
+
+  uint16_t RadarCfg_MaxDistance_ro;           //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  uint16_t RadarCfg_MaxDistance_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // Sensor ID (0 to 7)
+  uint8_t RadarCfg_SensorID;                  //      Bits= 3
+
+  // Data output type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarCfg_OutputType;                //      Bits= 2
+
+  // Radar Tx output power reduction (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RadarPower;                //      Bits= 3
+
+  // Allows changing the CtrlRelay parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_CtrlRelay_valid;           //      Bits= 1
+
+  // Enables output of CtrlRelay message if CollDet is active
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_CtrlRelay;                 //      Bits= 1
+
+  // Enables output of quality message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendQuality;               //      Bits= 1
+
+  // Enables output of extended message
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_SendExtInfo;               //      Bits= 1
+
+  // Object sort index
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarCfg_SortIndex;                 //      Bits= 3
+
+  // Store configuration in Nvm
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarCfg_StoreInNVM;                //      Bits= 1
+
+  // Allows changing the RCS_Threshold parameter
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t RadarCfg_RCS_Threshold_Valid;       //      Bits= 1
+
+  // Standard or high sensitivity for cluster list output
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarCfg_RCS_Threshold;             //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+} RadarConfiguration_t;
+
+// Radar configuration status
+// def @RadarState CAN Message (625  0x271)
+#define RadarState_IDE (0U)
+#define RadarState_DLC (8U)
+#define RadarState_CANID (0x271)
+#define RadarState_CYC (50U)
+// signal: @RadarState_MaxDistanceCfg_ro
+#define ARS408_CAN_DATABASE_CH7_RadarState_MaxDistanceCfg_ro_CovFactor (2)
+#define ARS408_CAN_DATABASE_CH7_RadarState_MaxDistanceCfg_ro_toS(x) ( (uint16_t) ((x) / (2)) )
+#define ARS408_CAN_DATABASE_CH7_RadarState_MaxDistanceCfg_ro_fromS(x) ( ((x) * (2)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+  // Gives the status of reading the radar configuration from EEPROM
+  //  1 : "successful"
+  //  0 : "pending"
+  // 
+  uint8_t RadarState_NVMReadStatus : 1;       //      Bits= 1
+
+  // Gives the status of writing the radar configuration from EEPROM
+  // 
+  uint8_t RadarState_NVMwriteStatus : 1;      //      Bits= 1
+
+  uint16_t RadarState_MaxDistanceCfg_ro;      //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  uint16_t RadarState_MaxDistanceCfg_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // 
+  // 
+  //  1 : "Voltage error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Voltage_Error : 1;       //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temporary error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temporary_Error : 1;     //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temperature error  active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temperature_Error : 1;   //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Interference detected"
+  //  0 : "No interference"
+  // 
+  uint8_t RadarState_Interference : 1;        //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Persistent error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Persistent_Error : 1;    //      Bits= 1
+
+  // Radar Tx output level (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RadarPowerCfg : 3;       //      Bits= 3
+
+  // Sensor ID (0 to 7)
+  //  7 : "ID 7"
+  //  6 : "ID 6"
+  //  5 : "ID 5"
+  //  4 : "ID 4"
+  //  3 : "ID 3"
+  //  2 : "ID 2"
+  //  1 : "ID 1"
+  //  0 : "ID 0"
+  // 
+  uint8_t RadarState_SensorID : 3;            //      Bits= 3
+
+  // Current sorting of object list
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarState_SortIndex : 3;           //      Bits= 3
+
+  // Status of control relay message output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_CtrlRelayCfg : 1;        //      Bits= 1
+
+  // Current output list type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarState_OutputTypeCfg : 2;       //      Bits= 2
+
+  // Status of quality information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendQualityCfg : 1;      //      Bits= 1
+
+  // Status of extended information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendExtInfoCfg : 1;      //      Bits= 1
+
+  // Status of motion input signals
+  //  3 : "Speed and yaw rate missing"
+  //  2 : "Yaw rate missing"
+  //  1 : "Speed missing"
+  //  0 : "Input ok"
+  // 
+  uint8_t RadarState_MotionRxState : 2;       //      Bits= 2
+
+  // Current sensitivity mode
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RCS_Threshold : 3;       //      Bits= 3
+
+#else
+
+  // Gives the status of reading the radar configuration from EEPROM
+  //  1 : "successful"
+  //  0 : "pending"
+  // 
+  uint8_t RadarState_NVMReadStatus;           //      Bits= 1
+
+  // Gives the status of writing the radar configuration from EEPROM
+  // 
+  uint8_t RadarState_NVMwriteStatus;          //      Bits= 1
+
+  uint16_t RadarState_MaxDistanceCfg_ro;      //      Bits=10 Factor= 2               Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  uint16_t RadarState_MaxDistanceCfg_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // 
+  // 
+  //  1 : "Voltage error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Voltage_Error;           //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temporary error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temporary_Error;         //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Temperature error  active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Temperature_Error;       //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Interference detected"
+  //  0 : "No interference"
+  // 
+  uint8_t RadarState_Interference;            //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Persistent error active"
+  //  0 : "No error"
+  // 
+  uint8_t RadarState_Persistent_Error;        //      Bits= 1
+
+  // Radar Tx output level (Tx attenuation)
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "-9 dB Tx gain"
+  //  2 : "-6 dB Tx gain"
+  //  1 : "-3 dB Tx gain"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RadarPowerCfg;           //      Bits= 3
+
+  // Sensor ID (0 to 7)
+  //  7 : "ID 7"
+  //  6 : "ID 6"
+  //  5 : "ID 5"
+  //  4 : "ID 4"
+  //  3 : "ID 3"
+  //  2 : "ID 2"
+  //  1 : "ID 1"
+  //  0 : "ID 0"
+  // 
+  uint8_t RadarState_SensorID;                //      Bits= 3
+
+  // Current sorting of object list
+  //  2 : "Sorted by RCS"
+  //  1 : "Sorted by range"
+  //  0 : "No sorting"
+  // 
+  uint8_t RadarState_SortIndex;               //      Bits= 3
+
+  // Status of control relay message output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_CtrlRelayCfg;            //      Bits= 1
+
+  // Current output list type
+  //  3 : "reserved 2"
+  //  2 : "SendClusters"
+  //  1 : "SendObjects"
+  //  0 : "None"
+  // 
+  uint8_t RadarState_OutputTypeCfg;           //      Bits= 2
+
+  // Status of quality information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendQualityCfg;          //      Bits= 1
+
+  // Status of extended information output
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t RadarState_SendExtInfoCfg;          //      Bits= 1
+
+  // Status of motion input signals
+  //  3 : "Speed and yaw rate missing"
+  //  2 : "Yaw rate missing"
+  //  1 : "Speed missing"
+  //  0 : "Input ok"
+  // 
+  uint8_t RadarState_MotionRxState;           //      Bits= 2
+
+  // Current sensitivity mode
+  //  7 : "Reserved"
+  //  6 : "Reserved"
+  //  5 : "Reserved"
+  //  4 : "Reserved"
+  //  3 : "Reserved"
+  //  2 : "Reserved"
+  //  1 : "High Sensitivity"
+  //  0 : "Standard"
+  // 
+  uint8_t RadarState_RCS_Threshold;           //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+} RadarState_t;
+
+// Filter configuration
+// def @FilterCfg CAN Message (626  0x272)
+#define FilterCfg_IDE (0U)
+#define FilterCfg_DLC (5U)
+#define FilterCfg_CANID (0x272)
+// signal: @FilterCfg_Min_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_Size_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterCfg_Min_RCS_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Min_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Min_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Min_Distance_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Min_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Min_Y_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterCfg_Min_X_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Min_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @FilterCfg_Max_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Max_Distance_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterCfg_Max_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Max_RCS_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterCfg_Max_Size_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterCfg_Max_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterCfg_Max_Y_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterCfg_Max_X_ro
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterCfg_Max_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+  //  1 : "valid"
+  //  0 : "invalid"
+  // 
+  uint8_t FilterCfg_Valid : 1;                //      Bits= 1
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterCfg_Active : 1;               //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterCfg_Index : 4;                //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterCfg_Type : 1;                 //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#else
+
+  //  1 : "valid"
+  //  0 : "invalid"
+  // 
+  uint8_t FilterCfg_Valid;                    //      Bits= 1
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterCfg_Active;                   //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterCfg_Index;                    //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterCfg_Type;                     //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_NofObj;              //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterCfg_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterCfg_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterCfg_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+} FilterCfg_t;
+
+// Header of filter configuration state
+// def @FilterState_Header CAN Message (627  0x273)
+#define FilterState_Header_IDE (0U)
+#define FilterState_Header_DLC (2U)
+#define FilterState_Header_CANID (0x273)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+  uint8_t FilterState_NofClusterFilterCfg : 5;   //      Bits= 5
+
+  uint8_t FilterState_NofObjectFilterCfg : 5;    //      Bits= 5
+
+#else
+
+  uint8_t FilterState_NofClusterFilterCfg;       //      Bits= 5
+
+  uint8_t FilterState_NofObjectFilterCfg;        //      Bits= 5
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+} FilterState_Header_t;
+
+// Filter configuration status
+// def @FilterState_Cfg CAN Message (628  0x274)
+#define FilterState_Cfg_IDE (0U)
+#define FilterState_Cfg_DLC (5U)
+#define FilterState_Cfg_CANID (0x274)
+// signal: @FilterState_Min_RCS_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Min_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Min_Distance_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Min_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Min_Y_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterState_Min_Size_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterState_Min_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Min_X_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Min_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @FilterState_Max_VrelDepart_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_VrelDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_VrelDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_VrelDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_Azimuth_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_Azimuth_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_Azimuth_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_Azimuth_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Max_Distance_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_Distance_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_Distance_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_Distance_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Max_Lifetime_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_Lifetime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_Lifetime_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_Lifetime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+// signal: @FilterState_Max_RCS_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_RCS_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_RCS_ro_toS(x) ( (uint16_t) (((x) - (-50.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_RCS_ro_fromS(x) ( (((x) * (0.025000)) + (-50.000000)) )
+// signal: @FilterState_Max_Size_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_Size_ro_CovFactor (0.025000)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_Size_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.025000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_Size_ro_fromS(x) ( (((x) * (0.025000)) + (0.000000)) )
+// signal: @FilterState_Max_VXDepart_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_VXDepart_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_VXDepart_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_VXDepart_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VrelOncome_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_VrelOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_VrelOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_VrelOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_Y_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_Y_ro_toS(x) ( (uint16_t) (((x) - (-409.500000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_Y_ro_fromS(x) ( (((x) * (0.200000)) + (-409.500000)) )
+// signal: @FilterState_Max_VYRightLeft_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_VYRightLeft_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_VYRightLeft_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_VYRightLeft_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VYLeftRight_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_VYLeftRight_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_VYLeftRight_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_VYLeftRight_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_VXOncome_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_VXOncome_ro_CovFactor (0.031500)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_VXOncome_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.031500)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_VXOncome_ro_fromS(x) ( (((x) * (0.031500)) + (0.000000)) )
+// signal: @FilterState_Max_X_ro
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_FilterState_Max_X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterState_Active : 1;               //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterState_Index : 4;                //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterState_Type : 1;                 //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterState_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_NofObj;              //      Bits=12
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_NofObj;              //      Bits=12
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#else
+
+  //  1 : "active"
+  //  0 : "inactive"
+  // 
+  uint8_t FilterState_Active;                   //      Bits= 1
+
+  //  15 : "Reserved"
+  //  14 : "Longitud. velocity for departing"
+  //  13 : "Lateral velocity for right-left"
+  //  12 : "Longitud. velocity for oncoming"
+  //  11 : "Lateral velocity for left-right"
+  //  10 : "Longitudinal distance"
+  //  9 : "Lateral distance"
+  //  8 : "Probability of existence"
+  //  7 : "Size"
+  //  6 : "Lifetime"
+  //  5 : "RCS"
+  //  4 : "Radial velocity for departing"
+  //  3 : "Radial velocity for oncoming"
+  //  2 : "Azimuth"
+  //  1 : "Radial distance"
+  //  0 : "Number of objects"
+  // 
+  // MULTIPLEX master signal
+  uint8_t FilterState_Index;                    //      Bits= 4
+
+  //  1 : "Object filter"
+  //  0 : "Cluster filter"
+  // 
+  uint8_t FilterState_Type;                     //      Bits= 1
+
+  // multiplex variable
+  uint16_t FilterState_Min_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_NofObj;              //      Bits=12
+
+  //  7 : "100%"
+  //  6 : ">=99.9%"
+  //  5 : ">=99%"
+  //  4 : ">=90%"
+  //  3 : ">=75%"
+  //  2 : ">=50%"
+  //  1 : ">=25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Min_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Min_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Min_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Min_X_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelDepart_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Azimuth_ro;          //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Azimuth_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Distance_ro;         //      Bits=12 Factor= 0.100000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Distance_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Lifetime_ro;         //      Bits=12 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Lifetime_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_NofObj;              //      Bits=12
+
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  // multiplex variable
+  uint16_t FilterState_Max_ProbExists;          //      Bits=12
+
+  // multiplex variable
+  uint16_t FilterState_Max_RCS_ro;              //      Bits=12 Offset= -50.000000         Factor= 0.025000        Unit:'dB'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Size_ro;             //      Bits=12 Factor= 0.025000        Unit:'m2'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Size_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXDepart_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXDepart_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VrelOncome_ro;       //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VrelOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_Y_ro;                //      Bits=12 Offset= -409.500000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_Y_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYRightLeft_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYRightLeft_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VYLeftRight_ro;      //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VYLeftRight_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_VXOncome_ro;         //      Bits=12 Factor= 0.031500        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_VXOncome_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // multiplex variable
+  uint16_t FilterState_Max_X_ro;                //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t FilterState_Max_X_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+} FilterState_Cfg_t;
+
+// Device movement speed
+// def @SpeedInformation CAN Message (880  0x370)
+#define SpeedInformation_IDE (0U)
+#define SpeedInformation_DLC (2U)
+#define SpeedInformation_CANID (0x370)
+// signal: @RadarDevice_Speed_ro
+#define ARS408_CAN_DATABASE_CH7_RadarDevice_Speed_ro_CovFactor (0.020000)
+#define ARS408_CAN_DATABASE_CH7_RadarDevice_Speed_ro_toS(x) ( (uint16_t) (((x) - (0.000000)) / (0.020000)) )
+#define ARS408_CAN_DATABASE_CH7_RadarDevice_Speed_ro_fromS(x) ( (((x) * (0.020000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+  uint16_t RadarDevice_Speed_ro;             //      Bits=13 Factor= 0.020000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t RadarDevice_Speed_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // Speed direction of the radar unit
+  //  3 : "reserved"
+  //  2 : "reverse"
+  //  1 : "forward"
+  //  0 : "standstill"
+  // 
+  uint8_t RadarDevice_SpeedDirection : 2;    //      Bits= 2
+
+#else
+
+  uint16_t RadarDevice_Speed_ro;             //      Bits=13 Factor= 0.020000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t RadarDevice_Speed_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // Speed direction of the radar unit
+  //  3 : "reserved"
+  //  2 : "reverse"
+  //  1 : "forward"
+  //  0 : "standstill"
+  // 
+  uint8_t RadarDevice_SpeedDirection;        //      Bits= 2
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+} SpeedInformation_t;
+
+// Device movement yaw rate
+// def @YawRateInformation CAN Message (881  0x371)
+#define YawRateInformation_IDE (0U)
+#define YawRateInformation_DLC (2U)
+#define YawRateInformation_CANID (0x371)
+// signal: @RadarDevice_YawRate_ro
+#define ARS408_CAN_DATABASE_CH7_RadarDevice_YawRate_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH7_RadarDevice_YawRate_ro_toS(x) ( (uint16_t) (((x) - (-327.680000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH7_RadarDevice_YawRate_ro_fromS(x) ( (((x) * (0.010000)) + (-327.680000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+  uint16_t RadarDevice_YawRate_ro;           //      Bits=16 Offset= -327.680000        Factor= 0.010000        Unit:'deg/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t RadarDevice_YawRate_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#else
+
+  uint16_t RadarDevice_YawRate_ro;           //      Bits=16 Offset= -327.680000        Factor= 0.010000        Unit:'deg/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t RadarDevice_YawRate_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+} YawRateInformation_t;
+
+// Collision detection configuration status
+// def @CollDetState CAN Message (1032 0x408)
+#define CollDetState_IDE (0U)
+#define CollDetState_DLC (4U)
+#define CollDetState_CANID (0x408)
+// signal: @CollDetState_MinDetectTime_ro
+#define ARS408_CAN_DATABASE_CH7_CollDetState_MinDetectTime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH7_CollDetState_MinDetectTime_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH7_CollDetState_MinDetectTime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetState_Active : 1;             //      Bits= 1
+
+  uint8_t CollDetState_NofRegions : 4;         //      Bits= 4
+
+  uint8_t CollDetState_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t CollDetState_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t CollDetState_MeasCounter;           //      Bits=16
+
+#else
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetState_Active;                 //      Bits= 1
+
+  uint8_t CollDetState_NofRegions;             //      Bits= 4
+
+  uint8_t CollDetState_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t CollDetState_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t CollDetState_MeasCounter;           //      Bits=16
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+} CollDetState_t;
+
+// Collision detection configuration
+// def @CollDetCfg CAN Message (1136 0x470)
+#define CollDetCfg_IDE (0U)
+#define CollDetCfg_DLC (2U)
+#define CollDetCfg_CANID (0x470)
+// signal: @CollDetCfg_MinDetectTime_ro
+#define ARS408_CAN_DATABASE_CH7_CollDetCfg_MinDetectTime_ro_CovFactor (0.100000)
+#define ARS408_CAN_DATABASE_CH7_CollDetCfg_MinDetectTime_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.100000)) )
+#define ARS408_CAN_DATABASE_CH7_CollDetCfg_MinDetectTime_ro_fromS(x) ( (((x) * (0.100000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+  //  1 : "Warn reset"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_WarningReset : 1;       //      Bits= 1
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetCfg_Activate : 1;           //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetCfg_MinTime_valid : 1;      //      Bits= 1
+
+  //  1 : "Clear all defined regions"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_ClearRegions : 1;       //      Bits= 1
+
+  uint8_t CollDetCfg_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t CollDetCfg_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#else
+
+  //  1 : "Warn reset"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_WarningReset;           //      Bits= 1
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetCfg_Activate;               //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetCfg_MinTime_valid;          //      Bits= 1
+
+  //  1 : "Clear all defined regions"
+  //  0 : "Idle"
+  // 
+  uint8_t CollDetCfg_ClearRegions;           //      Bits= 1
+
+  uint8_t CollDetCfg_MinDetectTime_ro;       //      Bits= 8 Factor= 0.100000        Unit:'s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t CollDetCfg_MinDetectTime_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+} CollDetCfg_t;
+
+// Collision detection region configuration
+// def @CollDetRegionCfg CAN Message (1137 0x471)
+#define CollDetRegionCfg_IDE (0U)
+#define CollDetRegionCfg_DLC (8U)
+#define CollDetRegionCfg_CANID (0x471)
+// signal: @CollDetRegCfg_Point1X_ro
+#define ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point1X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point1X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point1X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegCfg_Point1Y_ro
+#define ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point1Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point1Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point1Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @CollDetRegCfg_Point2X_ro
+#define ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point2X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point2X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point2X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegCfg_Point2Y_ro
+#define ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point2Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point2Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_CollDetRegCfg_Point2Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetRegCfg_Activate : 1;            //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetRegCfg_Coordinates_valid : 1;   //      Bits= 1
+
+  uint8_t CollDetRegCfg_RegionID : 3;            //      Bits= 3
+
+  uint16_t CollDetRegCfg_Point1X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point1Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#else
+
+  //  1 : "Active"
+  //  0 : "Inactive"
+  // 
+  uint8_t CollDetRegCfg_Activate;                //      Bits= 1
+
+  //  1 : "Valid"
+  //  0 : "Invalid"
+  // 
+  uint8_t CollDetRegCfg_Coordinates_valid;       //      Bits= 1
+
+  uint8_t CollDetRegCfg_RegionID;                //      Bits= 3
+
+  uint16_t CollDetRegCfg_Point1X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point1Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2X_ro;             //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t CollDetRegCfg_Point2Y_ro;             //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t CollDetRegCfg_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+} CollDetRegionCfg_t;
+
+// Collision detection region configuration and warning status
+// def @CollDetRegionState CAN Message (1138 0x472)
+#define CollDetRegionState_IDE (0U)
+#define CollDetRegionState_DLC (8U)
+#define CollDetRegionState_CANID (0x472)
+// signal: @CollDetRegState_Point1X_ro
+#define ARS408_CAN_DATABASE_CH7_CollDetRegState_Point1X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_CollDetRegState_Point1X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_CollDetRegState_Point1X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegState_Point1Y_ro
+#define ARS408_CAN_DATABASE_CH7_CollDetRegState_Point1Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_CollDetRegState_Point1Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_CollDetRegState_Point1Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @CollDetRegState_Point2X_ro
+#define ARS408_CAN_DATABASE_CH7_CollDetRegState_Point2X_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_CollDetRegState_Point2X_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_CollDetRegState_Point2X_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @CollDetRegState_Point2Y_ro
+#define ARS408_CAN_DATABASE_CH7_CollDetRegState_Point2Y_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_CollDetRegState_Point2Y_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_CollDetRegState_Point2Y_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+  //  3 : "Warning deactivated"
+  //  2 : "Preliminary warning"
+  //  1 : "Object warning"
+  //  0 : "No warning"
+  // 
+  uint8_t CollDetRegState_WarningLevel : 2;   //      Bits= 2
+
+  uint8_t CollDetRegState_RegionID : 3;       //      Bits= 3
+
+  uint16_t CollDetRegState_Point1X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point1Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint8_t CollDetRegState_NofObjects;         //      Bits= 8
+
+#else
+
+  //  3 : "Warning deactivated"
+  //  2 : "Preliminary warning"
+  //  1 : "Object warning"
+  //  0 : "No warning"
+  // 
+  uint8_t CollDetRegState_WarningLevel;       //      Bits= 2
+
+  uint8_t CollDetRegState_RegionID;           //      Bits= 3
+
+  uint16_t CollDetRegState_Point1X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1X_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point1Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point1Y_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2X_ro;        //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2X_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t CollDetRegState_Point2Y_ro;        //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t CollDetRegState_Point2Y_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint8_t CollDetRegState_NofObjects;         //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+} CollDetRegionState_t;
+
+// Status information about Clusters
+// def @Cluster_0_Status CAN Message (1648 0x670)
+#define Cluster_0_Status_IDE (0U)
+#define Cluster_0_Status_DLC (5U)
+#define Cluster_0_Status_CANID (0x670)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+  // Number of valid Clusters in near range scan
+  uint8_t Cluster_NofClustersNear;           //      Bits= 8
+
+  // Number of valid Clusters in far range scan
+  uint8_t Cluster_NofClustersFar;            //      Bits= 8
+
+  // Measurement counter
+  uint16_t Cluster_MeasCounter;              //      Bits=16
+
+  // Cluster CAN Interface Version Number
+  uint8_t Cluster_InterfaceVersion : 4;      //      Bits= 4
+
+#else
+
+  // Number of valid Clusters in near range scan
+  uint8_t Cluster_NofClustersNear;           //      Bits= 8
+
+  // Number of valid Clusters in far range scan
+  uint8_t Cluster_NofClustersFar;            //      Bits= 8
+
+  // Measurement counter
+  uint16_t Cluster_MeasCounter;              //      Bits=16
+
+  // Cluster CAN Interface Version Number
+  uint8_t Cluster_InterfaceVersion;          //      Bits= 4
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+} Cluster_0_Status_t;
+
+// Status information about object
+// def @Obj_0_Status CAN Message (1658 0x67a)
+#define Obj_0_Status_IDE (0U)
+#define Obj_0_Status_DLC (4U)
+#define Obj_0_Status_CANID (0x67a)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+  // Number of Objects sent
+  uint8_t Obj_NofObjects;                    //      Bits= 8
+
+  // Measurement Counter
+  uint16_t Obj_MeasCounter;                  //      Bits=16
+
+  // Object CAN Interface Version Number
+  uint8_t Obj_InterfaceVersion : 4;          //      Bits= 4
+
+#else
+
+  // Number of Objects sent
+  uint8_t Obj_NofObjects;                    //      Bits= 8
+
+  // Measurement Counter
+  uint16_t Obj_MeasCounter;                  //      Bits=16
+
+  // Object CAN Interface Version Number
+  uint8_t Obj_InterfaceVersion;              //      Bits= 4
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+} Obj_0_Status_t;
+
+// General object information
+// def @Obj_1_General CAN Message (1659 0x67b)
+#define Obj_1_General_IDE (0U)
+#define Obj_1_General_DLC (8U)
+#define Obj_1_General_CANID (0x67b)
+// signal: @Obj_DistLong_ro
+#define ARS408_CAN_DATABASE_CH7_Obj_DistLong_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_Obj_DistLong_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_Obj_DistLong_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @Obj_DistLat_ro
+#define ARS408_CAN_DATABASE_CH7_Obj_DistLat_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_Obj_DistLat_ro_toS(x) ( (uint16_t) (((x) - (-204.600000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_Obj_DistLat_ro_fromS(x) ( (((x) * (0.200000)) + (-204.600000)) )
+// signal: @Obj_VrelLong_ro
+#define ARS408_CAN_DATABASE_CH7_Obj_VrelLong_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH7_Obj_VrelLong_ro_toS(x) ( (uint16_t) (((x) - (-128.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH7_Obj_VrelLong_ro_fromS(x) ( (((x) * (0.250000)) + (-128.000000)) )
+// signal: @Obj_VrelLat_ro
+#define ARS408_CAN_DATABASE_CH7_Obj_VrelLat_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH7_Obj_VrelLat_ro_toS(x) ( (uint16_t) (((x) - (-64.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH7_Obj_VrelLat_ro_fromS(x) ( (((x) * (0.250000)) + (-64.000000)) )
+// signal: @Obj_RCS_ro
+#define ARS408_CAN_DATABASE_CH7_Obj_RCS_ro_CovFactor (0.500000)
+#define ARS408_CAN_DATABASE_CH7_Obj_RCS_ro_toS(x) ( (uint8_t) (((x) - (-64.000000)) / (0.500000)) )
+#define ARS408_CAN_DATABASE_CH7_Obj_RCS_ro_fromS(x) ( (((x) * (0.500000)) + (-64.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_DistLong_ro;                  //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Obj_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t Obj_DistLat_ro;                   //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Obj_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLong_ro;                  //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLat_ro;                   //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // Object dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Obj_DynProp : 3;                   //      Bits= 3
+
+  uint8_t Obj_RCS_ro;                        //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Obj_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_DistLong_ro;                  //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Obj_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t Obj_DistLat_ro;                   //      Bits=11 Offset= -204.600000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Obj_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLong_ro;                  //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t Obj_VrelLat_ro;                   //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Obj_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // Object dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Obj_DynProp;                       //      Bits= 3
+
+  uint8_t Obj_RCS_ro;                        //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Obj_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+} Obj_1_General_t;
+
+// Quality object information
+// def @Obj_2_Quality CAN Message (1660 0x67c)
+#define Obj_2_Quality_IDE (0U)
+#define Obj_2_Quality_DLC (7U)
+#define Obj_2_Quality_CANID (0x67c)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Object lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLat_rms : 5;               //      Bits= 5
+
+  // Object longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLong_rms : 5;              //      Bits= 5
+
+  // Object relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLat_rms : 5;               //      Bits= 5
+
+  // Object relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLong_rms : 5;              //      Bits= 5
+
+  // Object relative longitudinal acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLong_rms : 5;              //      Bits= 5
+
+  // Object orientation angle
+  //  31 : "Invalid"
+  //  30 : "<180.000 deg"
+  //  29 : "<126.881 deg"
+  //  28 : "<89.437 deg"
+  //  27 : "<63.044 deg"
+  //  26 : "<44.439 deg"
+  //  25 : "<31.325 deg"
+  //  24 : "<22.081 deg"
+  //  23 : "<15.565 deg"
+  //  22 : "<10.971 deg"
+  //  21 : "<7.734 deg"
+  //  20 : "<5.451 deg"
+  //  19 : "<3.843 deg"
+  //  18 : "<2.709 deg"
+  //  17 : "<1.909 deg"
+  //  16 : "<1.346 deg"
+  //  15 : "<0.949 deg"
+  //  14 : "<0.669 deg"
+  //  13 : "<0.471 deg"
+  //  12 : "<0.332 deg"
+  //  11 : "<0.234 deg"
+  //  10 : "<0.165 deg"
+  //  9 : "<0.116 deg"
+  //  8 : "<0.082 deg"
+  //  7 : "<0.058 deg"
+  //  6 : "<0.041 deg"
+  //  5 : "<0.029 deg"
+  //  4 : "<0.020 deg"
+  //  3 : "<0.014 deg"
+  //  2 : "<0.010 deg"
+  //  1 : "<0.007 deg"
+  //  0 : "<0.005 deg"
+  // 
+  uint8_t Obj_Orientation_rms : 5;           //      Bits= 5
+
+  // Object relative lateral acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLat_rms : 5;               //      Bits= 5
+
+  // Object measurement status
+  //  5 : "New from merge"
+  //  4 : "Deleted for merge"
+  //  3 : "Predicted"
+  //  2 : "Measured"
+  //  1 : "New"
+  //  0 : "Deleted"
+  // 
+  uint8_t Obj_MeasState : 3;                 //      Bits= 3
+
+  // Object probability of existence
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Obj_ProbOfExist : 3;               //      Bits= 3
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Object lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLat_rms;                   //      Bits= 5
+
+  // Object longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Obj_DistLong_rms;                  //      Bits= 5
+
+  // Object relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLat_rms;                   //      Bits= 5
+
+  // Object relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Obj_VrelLong_rms;                  //      Bits= 5
+
+  // Object relative longitudinal acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLong_rms;                  //      Bits= 5
+
+  // Object orientation angle
+  //  31 : "Invalid"
+  //  30 : "<180.000 deg"
+  //  29 : "<126.881 deg"
+  //  28 : "<89.437 deg"
+  //  27 : "<63.044 deg"
+  //  26 : "<44.439 deg"
+  //  25 : "<31.325 deg"
+  //  24 : "<22.081 deg"
+  //  23 : "<15.565 deg"
+  //  22 : "<10.971 deg"
+  //  21 : "<7.734 deg"
+  //  20 : "<5.451 deg"
+  //  19 : "<3.843 deg"
+  //  18 : "<2.709 deg"
+  //  17 : "<1.909 deg"
+  //  16 : "<1.346 deg"
+  //  15 : "<0.949 deg"
+  //  14 : "<0.669 deg"
+  //  13 : "<0.471 deg"
+  //  12 : "<0.332 deg"
+  //  11 : "<0.234 deg"
+  //  10 : "<0.165 deg"
+  //  9 : "<0.116 deg"
+  //  8 : "<0.082 deg"
+  //  7 : "<0.058 deg"
+  //  6 : "<0.041 deg"
+  //  5 : "<0.029 deg"
+  //  4 : "<0.020 deg"
+  //  3 : "<0.014 deg"
+  //  2 : "<0.010 deg"
+  //  1 : "<0.007 deg"
+  //  0 : "<0.005 deg"
+  // 
+  uint8_t Obj_Orientation_rms;               //      Bits= 5
+
+  // Object relative lateral acceleration standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s^2"
+  //  29 : "<7.762 m/s^2"
+  //  28 : "<6.025 m/s^2"
+  //  27 : "<4.676 m/s^2"
+  //  26 : "<3.630 m/s^2"
+  //  25 : "<2.817 m/s^2"
+  //  24 : "<2.187 m/s^2"
+  //  23 : "<1.697 m/s^2"
+  //  22 : "<1.317 m/s^2"
+  //  21 : "<1.023 m/s^2"
+  //  20 : "<0.794 m/s^2"
+  //  19 : "<0.616 m/s^2"
+  //  18 : "<0.478 m/s^2"
+  //  17 : "<0.371 m/s^2"
+  //  16 : "<0.288 m/s^2"
+  //  15 : "<0.224 m/s^2"
+  //  14 : "<0.174 m/s^2"
+  //  13 : "<0.135 m/s^2"
+  //  12 : "<0.105 m/s^2"
+  //  11 : "<0.081 m/s^2"
+  //  10 : "<0.063 m/s^2"
+  //  9 : "<0.049 m/s^2"
+  //  8 : "<0.038 m/s^2"
+  //  7 : "<0.029 m/s^2"
+  //  6 : "<0.023 m/s^2"
+  //  5 : "<0.018 m/s^2"
+  //  4 : "<0.014 m/s^2"
+  //  3 : "<0.011 m/s^2"
+  //  2 : "<0.008 m/s^2"
+  //  1 : "<0.006 m/s^2"
+  //  0 : "<0.005 m/s^2"
+  // 
+  uint8_t Obj_ArelLat_rms;                   //      Bits= 5
+
+  // Object measurement status
+  //  5 : "New from merge"
+  //  4 : "Deleted for merge"
+  //  3 : "Predicted"
+  //  2 : "Measured"
+  //  1 : "New"
+  //  0 : "Deleted"
+  // 
+  uint8_t Obj_MeasState;                     //      Bits= 3
+
+  // Object probability of existence
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Obj_ProbOfExist;                   //      Bits= 3
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+} Obj_2_Quality_t;
+
+// Extended object information
+// def @Obj_3_Extended CAN Message (1661 0x67d)
+#define Obj_3_Extended_IDE (0U)
+#define Obj_3_Extended_DLC (8U)
+#define Obj_3_Extended_CANID (0x67d)
+// signal: @Obj_ArelLong_ro
+#define ARS408_CAN_DATABASE_CH7_Obj_ArelLong_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH7_Obj_ArelLong_ro_toS(x) ( (uint16_t) (((x) - (-10.000000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH7_Obj_ArelLong_ro_fromS(x) ( (((x) * (0.010000)) + (-10.000000)) )
+// signal: @Obj_ArelLat_ro
+#define ARS408_CAN_DATABASE_CH7_Obj_ArelLat_ro_CovFactor (0.010000)
+#define ARS408_CAN_DATABASE_CH7_Obj_ArelLat_ro_toS(x) ( (uint16_t) (((x) - (-2.500000)) / (0.010000)) )
+#define ARS408_CAN_DATABASE_CH7_Obj_ArelLat_ro_fromS(x) ( (((x) * (0.010000)) + (-2.500000)) )
+// signal: @Obj_OrientationAngle_ro
+#define ARS408_CAN_DATABASE_CH7_Obj_OrientationAngle_ro_CovFactor (0.400000)
+#define ARS408_CAN_DATABASE_CH7_Obj_OrientationAngle_ro_toS(x) ( (uint16_t) (((x) - (-180.000000)) / (0.400000)) )
+#define ARS408_CAN_DATABASE_CH7_Obj_OrientationAngle_ro_fromS(x) ( (((x) * (0.400000)) + (-180.000000)) )
+// signal: @Obj_Length_ro
+#define ARS408_CAN_DATABASE_CH7_Obj_Length_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_Obj_Length_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_Obj_Length_ro_fromS(x) ( (((x) * (0.200000)) + (0.000000)) )
+// signal: @Obj_Width_ro
+#define ARS408_CAN_DATABASE_CH7_Obj_Width_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_Obj_Width_ro_toS(x) ( (uint8_t) (((x) - (0.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_Obj_Width_ro_fromS(x) ( (((x) * (0.200000)) + (0.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_ArelLong_ro;                  //      Bits=11 Offset= -10.000000         Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t Obj_ArelLat_ro;                   //      Bits= 9 Offset= -2.500000          Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // Object classification
+  //  7 : "Description for the value '0x7'"
+  //  6 : "Wide"
+  //  5 : "Bicycle"
+  //  4 : "Motorcycle"
+  //  3 : "Pedestrian"
+  //  2 : "Truck"
+  //  1 : "Car"
+  //  0 : "Point"
+  // 
+  uint8_t Obj_Class : 3;                     //      Bits= 3
+
+  uint16_t Obj_OrientationAngle_ro;          //      Bits=10 Offset= -180.000000        Factor= 0.400000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Obj_OrientationAngle_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint8_t Obj_Length_ro;                     //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Obj_Length_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint8_t Obj_Width_ro;                      //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Obj_Width_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  uint16_t Obj_ArelLong_ro;                  //      Bits=11 Offset= -10.000000         Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t Obj_ArelLat_ro;                   //      Bits= 9 Offset= -2.500000          Factor= 0.010000        Unit:'m/s^2'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Obj_ArelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // Object classification
+  //  7 : "Description for the value '0x7'"
+  //  6 : "Wide"
+  //  5 : "Bicycle"
+  //  4 : "Motorcycle"
+  //  3 : "Pedestrian"
+  //  2 : "Truck"
+  //  1 : "Car"
+  //  0 : "Point"
+  // 
+  uint8_t Obj_Class;                         //      Bits= 3
+
+  uint16_t Obj_OrientationAngle_ro;          //      Bits=10 Offset= -180.000000        Factor= 0.400000        Unit:'deg'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Obj_OrientationAngle_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint8_t Obj_Length_ro;                     //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Obj_Length_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint8_t Obj_Width_ro;                      //      Bits= 8 Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Obj_Width_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+} Obj_3_Extended_t;
+
+// Collision detection warning object information
+// def @Obj_4_Warning CAN Message (1662 0x67e)
+#define Obj_4_Warning_IDE (0U)
+#define Obj_4_Warning_DLC (4U)
+#define Obj_4_Warning_CANID (0x67e)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Region bit field with collision detection
+  uint8_t Obj_CollDetRegionBitfield;         //      Bits= 8
+
+#else
+
+  // Object ID
+  uint8_t Obj_ID;                            //      Bits= 8
+
+  // Region bit field with collision detection
+  uint8_t Obj_CollDetRegionBitfield;         //      Bits= 8
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+} Obj_4_Warning_t;
+
+// Firmware version
+// def @VersionID CAN Message (1904 0x770)
+#define VersionID_IDE (0U)
+#define VersionID_DLC (4U)
+#define VersionID_CANID (0x770)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+  // Major Release Number
+  uint8_t Version_MajorRelease;              //      Bits= 8
+
+  // Minor Release Number
+  uint8_t Version_MinorRelease;              //      Bits= 8
+
+  // Patch Level
+  uint8_t Version_PatchLevel;                //      Bits= 8
+
+  // 
+  // 
+  //  1 : "Power Reduction is demanded"
+  //  0 : "International Version"
+  // 
+  uint8_t Version_CountryCode : 1;           //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Description for the value '0x1'"
+  //  0 : "Standard Range 196m-260m"
+  // 
+  uint8_t Version_ExtendedRange : 1;         //      Bits= 1
+
+#else
+
+  // Major Release Number
+  uint8_t Version_MajorRelease;              //      Bits= 8
+
+  // Minor Release Number
+  uint8_t Version_MinorRelease;              //      Bits= 8
+
+  // Patch Level
+  uint8_t Version_PatchLevel;                //      Bits= 8
+
+  // 
+  // 
+  //  1 : "Power Reduction is demanded"
+  //  0 : "International Version"
+  // 
+  uint8_t Version_CountryCode;               //      Bits= 1
+
+  // 
+  // 
+  //  1 : "Description for the value '0x1'"
+  //  0 : "Standard Range 196m-260m"
+  // 
+  uint8_t Version_ExtendedRange;             //      Bits= 1
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+} VersionID_t;
+
+// General Cluster information
+// def @Cluster_1_General CAN Message (1905 0x771)
+#define Cluster_1_General_IDE (0U)
+#define Cluster_1_General_DLC (8U)
+#define Cluster_1_General_CANID (0x771)
+// signal: @Cluster_DistLong_ro
+#define ARS408_CAN_DATABASE_CH7_Cluster_DistLong_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_Cluster_DistLong_ro_toS(x) ( (uint16_t) (((x) - (-500.000000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_Cluster_DistLong_ro_fromS(x) ( (((x) * (0.200000)) + (-500.000000)) )
+// signal: @Cluster_DistLat_ro
+#define ARS408_CAN_DATABASE_CH7_Cluster_DistLat_ro_CovFactor (0.200000)
+#define ARS408_CAN_DATABASE_CH7_Cluster_DistLat_ro_toS(x) ( (uint16_t) (((x) - (-102.300000)) / (0.200000)) )
+#define ARS408_CAN_DATABASE_CH7_Cluster_DistLat_ro_fromS(x) ( (((x) * (0.200000)) + (-102.300000)) )
+// signal: @Cluster_VrelLong_ro
+#define ARS408_CAN_DATABASE_CH7_Cluster_VrelLong_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH7_Cluster_VrelLong_ro_toS(x) ( (uint16_t) (((x) - (-128.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH7_Cluster_VrelLong_ro_fromS(x) ( (((x) * (0.250000)) + (-128.000000)) )
+// signal: @Cluster_VrelLat_ro
+#define ARS408_CAN_DATABASE_CH7_Cluster_VrelLat_ro_CovFactor (0.250000)
+#define ARS408_CAN_DATABASE_CH7_Cluster_VrelLat_ro_toS(x) ( (uint16_t) (((x) - (-64.000000)) / (0.250000)) )
+#define ARS408_CAN_DATABASE_CH7_Cluster_VrelLat_ro_fromS(x) ( (((x) * (0.250000)) + (-64.000000)) )
+// signal: @Cluster_RCS_ro
+#define ARS408_CAN_DATABASE_CH7_Cluster_RCS_ro_CovFactor (0.500000)
+#define ARS408_CAN_DATABASE_CH7_Cluster_RCS_ro_toS(x) ( (uint8_t) (((x) - (-64.000000)) / (0.500000)) )
+#define ARS408_CAN_DATABASE_CH7_Cluster_RCS_ro_fromS(x) ( (((x) * (0.500000)) + (-64.000000)) )
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  uint16_t Cluster_DistLong_ro;              //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t Cluster_DistLat_ro;               //      Bits=10 Offset= -102.300000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLong_ro;              //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLat_ro;               //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // Cluster dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Cluster_DynProp : 3;               //      Bits= 3
+
+  uint8_t Cluster_RCS_ro;                    //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Cluster_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#else
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  uint16_t Cluster_DistLong_ro;              //      Bits=13 Offset= -500.000000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLong_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t Cluster_DistLat_ro;               //      Bits=10 Offset= -102.300000        Factor= 0.200000        Unit:'m'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Cluster_DistLat_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLong_ro;              //      Bits=10 Offset= -128.000000        Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLong_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  uint16_t Cluster_VrelLat_ro;               //      Bits= 9 Offset= -64.000000         Factor= 0.250000        Unit:'m/s'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Cluster_VrelLat_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+  // Cluster dynamic property
+  //  7 : "Stopped"
+  //  6 : "Crossing moving"
+  //  5 : "Crossing stationary"
+  //  4 : "Unknown"
+  //  3 : "Stationary candidate"
+  //  2 : "Oncoming"
+  //  1 : "Stationary"
+  //  0 : "Moving"
+  // 
+  uint8_t Cluster_DynProp;                   //      Bits= 3
+
+  uint8_t Cluster_RCS_ro;                    //      Bits= 8 Offset= -64.000000         Factor= 0.500000        Unit:'dBm^2'
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+  sigfloat_t Cluster_RCS_phys;
+#endif // ARS408_CAN_DATABASE_CH7_USE_SIGFLOAT
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+} Cluster_1_General_t;
+
+// Quality Cluster information
+// def @Cluster_2_Quality CAN Message (1906 0x772)
+#define Cluster_2_Quality_IDE (0U)
+#define Cluster_2_Quality_DLC (5U)
+#define Cluster_2_Quality_CANID (0x772)
+
+typedef struct
+{
+#ifdef ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  // Cluster lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLat_rms : 5;           //      Bits= 5 Unit:'m'
+
+  // Cluster longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLong_rms : 5;          //      Bits= 5 Unit:'m'
+
+  // Cluster relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLat_rms : 5;           //      Bits= 5 Unit:'m/s'
+
+  // Cluster relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLong_rms : 5;          //      Bits= 5 Unit:'m/s'
+
+  // Cluster false alarm probability
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Cluster_PdH0 : 3;                  //      Bits= 3
+
+  // Cluster Doppler ambiguity status
+  //  4 : "Stationary candidate"
+  //  3 : "Unambiguous"
+  //  2 : "Staggered ramp"
+  //  1 : "Ambiguous"
+  //  0 : "Invalid"
+  // 
+  uint8_t Cluster_AmbigState : 3;            //      Bits= 3
+
+  // Cluster invalid state
+  //  17 : "Valid suspicious angle"
+  //  16 : "Valid multi-target"
+  //  15 : "Valid near above 95 m"
+  //  14 : "Invalid harmonics "
+  //  13 : "reserved"
+  //  12 : "Valid artefact "
+  //  11 : "Valid but no local maximum"
+  //  10 : "Valid 50 deg artefact"
+  //  9 : "Valid child"
+  //  8 : "Valid with elevation"
+  //  7 : "Invalid outside field of view"
+  //  6 : "Invalid mirror"
+  //  5 : "reserved"
+  //  4 : "Valid with low RCS"
+  //  3 : "Invalid far not confirmed"
+  //  2 : "Invalid nearfield"
+  //  1 : "Invalid with too low RCS"
+  //  0 : "Valid"
+  // 
+  uint8_t Cluster_InvalidState : 5;          //      Bits= 5
+
+#else
+
+  // Cluster number
+  uint8_t Cluster_ID;                        //      Bits= 8
+
+  // Cluster lateral distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLat_rms;               //      Bits= 5 Unit:'m'
+
+  // Cluster longitudinal distance standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m"
+  //  29 : "<7.762 m"
+  //  28 : "<6.025 m"
+  //  27 : "<4.676 m"
+  //  26 : "<3.630 m"
+  //  25 : "<2.817 m"
+  //  24 : "<2.187 m"
+  //  23 : "<1.697 m"
+  //  22 : "<1.317 m"
+  //  21 : "<1.023 m"
+  //  20 : "<0.794 m"
+  //  19 : "<0.616 m"
+  //  18 : "<0.478 m"
+  //  17 : "<0.371 m"
+  //  16 : "<0.288 m"
+  //  15 : "<0.224 m"
+  //  14 : "<0.174 m"
+  //  13 : "<0.135 m"
+  //  12 : "<0.105 m"
+  //  11 : "<0.081 m"
+  //  10 : "<0.063 m"
+  //  9 : "<0.049 m"
+  //  8 : "<0.038 m"
+  //  7 : "<0.029 m"
+  //  6 : "<0.023 m"
+  //  5 : "<0.018 m"
+  //  4 : "<0.014 m"
+  //  3 : "<0.011 m"
+  //  2 : "<0.008 m"
+  //  1 : "<0.006 m"
+  //  0 : "<0.005 m"
+  // 
+  uint8_t Cluster_DistLong_rms;              //      Bits= 5 Unit:'m'
+
+  // Cluster relative lateral velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLat_rms;               //      Bits= 5 Unit:'m/s'
+
+  // Cluster relative longitudinal velocity standard deviation
+  //  31 : "Invalid"
+  //  30 : "<10.000 m/s"
+  //  29 : "<7.762 m/s"
+  //  28 : "<6.025 m/s"
+  //  27 : "<4.676 m/s"
+  //  26 : "<3.630 m/s"
+  //  25 : "<2.817 m/s"
+  //  24 : "<2.187 m/s"
+  //  23 : "<1.697 m/s"
+  //  22 : "<1.317 m/s"
+  //  21 : "<1.023 m/s"
+  //  20 : "<0.794 m/s"
+  //  19 : "<0.616 m/s"
+  //  18 : "<0.478 m/s"
+  //  17 : "<0.371 m/s"
+  //  16 : "<0.288 m/s"
+  //  15 : "<0.224 m/s"
+  //  14 : "<0.174 m/s"
+  //  13 : "<0.135 m/s"
+  //  12 : "<0.105 m/s"
+  //  11 : "<0.081 m/s"
+  //  10 : "<0.063 m/s"
+  //  9 : "<0.049 m/s"
+  //  8 : "<0.038 m/s"
+  //  7 : "<0.029 m/s"
+  //  6 : "<0.023 m/s"
+  //  5 : "<0.018 m/s"
+  //  4 : "<0.014 m/s"
+  //  3 : "<0.011 m/s"
+  //  2 : "<0.008 m/s"
+  //  1 : "<0.006 m/s"
+  //  0 : "<0.005 m/s"
+  // 
+  uint8_t Cluster_VrelLong_rms;              //      Bits= 5 Unit:'m/s'
+
+  // Cluster false alarm probability
+  //  7 : "<=100%"
+  //  6 : "<99.9%"
+  //  5 : "<99%"
+  //  4 : "<90%"
+  //  3 : "<75%"
+  //  2 : "<50%"
+  //  1 : "<25%"
+  //  0 : "invalid"
+  // 
+  uint8_t Cluster_PdH0;                      //      Bits= 3
+
+  // Cluster Doppler ambiguity status
+  //  4 : "Stationary candidate"
+  //  3 : "Unambiguous"
+  //  2 : "Staggered ramp"
+  //  1 : "Ambiguous"
+  //  0 : "Invalid"
+  // 
+  uint8_t Cluster_AmbigState;                //      Bits= 3
+
+  // Cluster invalid state
+  //  17 : "Valid suspicious angle"
+  //  16 : "Valid multi-target"
+  //  15 : "Valid near above 95 m"
+  //  14 : "Invalid harmonics "
+  //  13 : "reserved"
+  //  12 : "Valid artefact "
+  //  11 : "Valid but no local maximum"
+  //  10 : "Valid 50 deg artefact"
+  //  9 : "Valid child"
+  //  8 : "Valid with elevation"
+  //  7 : "Invalid outside field of view"
+  //  6 : "Invalid mirror"
+  //  5 : "reserved"
+  //  4 : "Valid with low RCS"
+  //  3 : "Invalid far not confirmed"
+  //  2 : "Invalid nearfield"
+  //  1 : "Invalid with too low RCS"
+  //  0 : "Valid"
+  // 
+  uint8_t Cluster_InvalidState;              //      Bits= 5
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_BITS_SIGNAL
+
+#ifdef ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+  FrameMonitor_t mon1;
+
+#endif // ARS408_CAN_DATABASE_CH7_USE_DIAG_MONITORS
+
+} Cluster_2_Quality_t;
+
+// Function signatures
+
+uint32_t Unpack_CollDetRelayCtrl_ARS408_can_database_ch7(CollDetRelayCtrl_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch7(CollDetRelayCtrl_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRelayCtrl_ARS408_can_database_ch7(CollDetRelayCtrl_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_RadarConfiguration_ARS408_can_database_ch7(RadarConfiguration_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch7(RadarConfiguration_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_RadarConfiguration_ARS408_can_database_ch7(RadarConfiguration_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_RadarState_ARS408_can_database_ch7(RadarState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+uint32_t Pack_RadarState_ARS408_can_database_ch7(RadarState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_RadarState_ARS408_can_database_ch7(RadarState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_FilterCfg_ARS408_can_database_ch7(FilterCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+uint32_t Pack_FilterCfg_ARS408_can_database_ch7(FilterCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterCfg_ARS408_can_database_ch7(FilterCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Header_ARS408_can_database_ch7(FilterState_Header_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch7(FilterState_Header_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterState_Header_ARS408_can_database_ch7(FilterState_Header_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_FilterState_Cfg_ARS408_can_database_ch7(FilterState_Cfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch7(FilterState_Cfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_FilterState_Cfg_ARS408_can_database_ch7(FilterState_Cfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_SpeedInformation_ARS408_can_database_ch7(SpeedInformation_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch7(SpeedInformation_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_SpeedInformation_ARS408_can_database_ch7(SpeedInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_YawRateInformation_ARS408_can_database_ch7(YawRateInformation_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch7(YawRateInformation_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_YawRateInformation_ARS408_can_database_ch7(YawRateInformation_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetState_ARS408_can_database_ch7(CollDetState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+uint32_t Pack_CollDetState_ARS408_can_database_ch7(CollDetState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetState_ARS408_can_database_ch7(CollDetState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetCfg_ARS408_can_database_ch7(CollDetCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch7(CollDetCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetCfg_ARS408_can_database_ch7(CollDetCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionCfg_ARS408_can_database_ch7(CollDetRegionCfg_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch7(CollDetRegionCfg_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRegionCfg_ARS408_can_database_ch7(CollDetRegionCfg_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_CollDetRegionState_ARS408_can_database_ch7(CollDetRegionState_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch7(CollDetRegionState_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_CollDetRegionState_ARS408_can_database_ch7(CollDetRegionState_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_0_Status_ARS408_can_database_ch7(Cluster_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch7(Cluster_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_0_Status_ARS408_can_database_ch7(Cluster_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_0_Status_ARS408_can_database_ch7(Obj_0_Status_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch7(Obj_0_Status_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_0_Status_ARS408_can_database_ch7(Obj_0_Status_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_1_General_ARS408_can_database_ch7(Obj_1_General_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch7(Obj_1_General_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_1_General_ARS408_can_database_ch7(Obj_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_2_Quality_ARS408_can_database_ch7(Obj_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch7(Obj_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_2_Quality_ARS408_can_database_ch7(Obj_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_3_Extended_ARS408_can_database_ch7(Obj_3_Extended_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch7(Obj_3_Extended_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_3_Extended_ARS408_can_database_ch7(Obj_3_Extended_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_Obj_4_Warning_ARS408_can_database_ch7(Obj_4_Warning_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch7(Obj_4_Warning_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Obj_4_Warning_ARS408_can_database_ch7(Obj_4_Warning_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_VersionID_ARS408_can_database_ch7(VersionID_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+uint32_t Pack_VersionID_ARS408_can_database_ch7(VersionID_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_VersionID_ARS408_can_database_ch7(VersionID_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_1_General_ARS408_can_database_ch7(Cluster_1_General_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch7(Cluster_1_General_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_1_General_ARS408_can_database_ch7(Cluster_1_General_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+uint32_t Unpack_Cluster_2_Quality_ARS408_can_database_ch7(Cluster_2_Quality_t* _m, const uint8_t* _d, uint8_t dlc_);
+#ifdef ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch7(Cluster_2_Quality_t* _m, __CoderDbcCanFrame_t__* cframe);
+#else
+uint32_t Pack_Cluster_2_Quality_ARS408_can_database_ch7(Cluster_2_Quality_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide);
+#endif // ARS408_CAN_DATABASE_CH7_USE_CANSTRUCT
+
+#ifdef __cplusplus
+}
+#endif

+ 63 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/canmonitorutil.h

@@ -0,0 +1,63 @@
+#pragma once
+
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// declare here all availible checksum algorithms
+typedef enum
+{
+  // XOR8 = 0,
+  // XOR4 = 1,
+  // etc
+} DbcCanCrcMethods;
+
+typedef struct
+{
+  // @last_cycle keeps tick-value when last frame was received
+  uint32_t last_cycle;
+
+  // @timeout_cycle keeps maximum timeout for frame, user responsibility
+  // to init this field and use it in missing frame monitoring function
+  uint32_t timeout_cycle;
+
+  // @frame_cnt keeps count of all the received frames
+  uint32_t frame_cnt;
+
+  // setting up @roll_error bit indicates roll counting fail.
+  // Bit is not clearing automatically!
+  uint32_t roll_error : 1;
+
+  // setting up @checksum_error bit indicates checksum checking failure.
+  // Bit is not clearing automatically!
+  uint32_t csm_error : 1;
+
+  // setting up @cycle_error bit indicates that time was overrunned.
+  // Bit is not clearing automatically!
+  uint32_t cycle_error : 1;
+
+  // setting up @dlc_error bit indicates that the actual length of
+  // CAN frame is less then defined by CAN matrix!
+  uint32_t dlc_error : 1;
+
+} FrameMonitor_t;
+
+/* ----------------------------------------------------------------------------- */
+// @d - buff for hash calculation
+// @len - number of bytes for hash calculation
+// @method - hash algorythm.
+// @op - optional value
+uint8_t GetFrameHash(const uint8_t* data_ptr, uint8_t len, uint32_t msgid, DbcCanCrcMethods type, uint32_t option);
+
+/* ----------------------------------------------------------------------------- */
+// this function will be called when unpacking is performing. Value will be saved
+// in @last_cycle variable
+uint32_t GetSystemTick(void);
+
+
+#ifdef __cplusplus
+}
+#endif
+

+ 14 - 0
src/driver/driver_radar_continental_ARS408_SRR308/CAN_database_code/dbccodeconf.h

@@ -0,0 +1,14 @@
+#pragma once
+
+#include <stdint.h>
+
+// when USE_SIGFLOAT enabed the sigfloat_t must be defined
+// typedef double sigfloat_t;
+
+// when USE_CANSTRUCT enabled __CoderDbcCanFrame_t__ must be defined
+// #include "{header_with_can_struct}"
+// typedef {can_struct} __CoderDbcCanFrame_t__;
+
+// if you need to allocate rx and tx messages structs put the allocation macro here
+// #define __DEF_{your_driver_name}__
+