/* -----------------------------------------------------------------------------
  Filename:    can_par.c
  Description: Toolversion: 02.03.25.01.90.05.57.01.00.00
               
               Serial Number: CBD1900557
               Customer Info: Ningbo Joyson Preh Car Connect Co., Ltd.
                              Package: CBD_Vector_SLP2
                              Micro: MPC5745B
                              Compiler: Gnu 9.2.0
               
               
               Generator Fwk   : GENy 
               Generator Module: DrvCan__base
               
               Configuration   : C:\Data\Users\huo_h1\Documents\NIO_FORCE_VBOX-SVN\30_DevelopLibrary\03_SW\90_Others\CANbedded\NIO_Geny_Force_BTA_CAN_Draft_0_1\NIO_Geny_For_CanMatrix\GENy.gny
               
               ECU: 
                       TargetSystem: Hw_Mpc5700Cpu
                       Compiler:     GNU
                       Derivates:    MPC5746C
               
               Channel "Channel0":
                       Databasefile: C:\Data\Users\huo_h1\Documents\NIO_FORCE_VBOX-SVN\30_DevelopLibrary\03_SW\90_Others\CANbedded\NIO_Geny_Force_BTA_CAN_Draft_0_1\NIO_Geny_For_CanMatrix\NIO_Force_BTA_CAN_draft_2020_9_22.dbc
                       Bussystem:    CAN
                       Manufacturer: Vector
                       Node:         SA

 ----------------------------------------------------------------------------- */
/* -----------------------------------------------------------------------------
  C O P Y R I G H T
 -------------------------------------------------------------------------------
  Copyright (c) 2001-2015 by Vector Informatik GmbH. All rights reserved.
 
  This software is copyright protected and proprietary to Vector Informatik 
  GmbH.
  
  Vector Informatik GmbH grants to you only those rights as set out in the 
  license conditions.
  
  All other rights remain with Vector Informatik GmbH.
 -------------------------------------------------------------------------------
 ----------------------------------------------------------------------------- */

#define C_DRV_INTERNAL
#include "can_inc.h"
#include "can_par.h"
#include "v_inc.h"

/* ROM CATEGORY 1 START */
V_MEMROM0 V_MEMROM1 tCanTxId0 V_MEMROM2 CanTxId0[kCanNumberOfTxObjects] = 
{
  MK_STDID0(0x4E9u) /* ID: 0x000004e9, Handle: 0, SA_PCTOOL_RES [BC] */, 
  MK_STDID0(0x237u) /* ID: 0x00000237, Handle: 1, SA_01 [BC] */, 
  MK_STDID0(0x55Fu) /* ID: 0x0000055f, Handle: 2, NM_SA [FC] */, 
  MK_STDID0(0x7FFu) /* ID: 0x000007ff, Handle: 3, TxDynamicMsg0 [BC] */
};
/* ROM CATEGORY 1 END */


/* -----------------------------------------------------------------------------
    &&&~ CanTxDLC
 ----------------------------------------------------------------------------- */

/* ROM CATEGORY 1 START */
V_MEMROM0 V_MEMROM1 tCanDlc V_MEMROM2 CanTxDLC[kCanNumberOfTxObjects] = 
{
  MK_TX_DLC(8) /* ID: 0x000004e9, Handle: 0, SA_PCTOOL_RES [BC] */, 
  MK_TX_DLC(8) /* ID: 0x00000237, Handle: 1, SA_01 [BC] */, 
  MK_TX_DLC(8) /* ID: 0x0000055f, Handle: 2, NM_SA [FC] */, 
  MK_TX_DLC(8) /* ID: 0x000007ff, Handle: 3, TxDynamicMsg0 [BC] */    //modify for nio
};
/* ROM CATEGORY 1 END */



/* -----------------------------------------------------------------------------
    &&&~ CanTxMessageLength
 ----------------------------------------------------------------------------- */

#ifdef C_ENABLE_CAN_FD_FULL
/* ROM CATEGORY 1 START */
V_MEMROM0 V_MEMROM1 vuint8 V_MEMROM2 CanTxMessageLength[kCanNumberOfTxObjects] = 
{
  8 /* ID: 0x000004e9, Handle: 0, SA_PCTOOL_RES [BC] */, 
  8 /* ID: 0x00000237, Handle: 1, SA_01 [BC] */, 
  8 /* ID: 0x0000055f, Handle: 2, NM_SA [FC] */, 
  8 /* ID: 0x000007ff, Handle: 3, TxDynamicMsg0 [BC] */    //modify for nio
};
/* ROM CATEGORY 1 END */

#endif




#ifdef C_ENABLE_COPY_TX_DATA
/* ROM CATEGORY 1 START */
V_MEMROM0 V_MEMROM1 TxDataPtr V_MEMROM2 CanTxDataPtr[kCanNumberOfTxObjects] = 
{
  (TxDataPtr) SA_PCTOOL_RES._c /* ID: 0x000004e9, Handle: 0, SA_PCTOOL_RES [BC] */, 
  (TxDataPtr) SA_01._c /* ID: 0x00000237, Handle: 1, SA_01 [BC] */, 
  (TxDataPtr) NM_SA._c /* ID: 0x0000055f, Handle: 2, NM_SA [FC] */, 
  (TxDataPtr) TxDynamicMsg0._c /* ID: 0x000007ff, Handle: 3, TxDynamicMsg0 [BC] */
};
/* ROM CATEGORY 1 END */

#endif


#ifdef C_ENABLE_PRETRANSMIT_FCT
/* ROM CATEGORY 1 START */
/* PRQA  S 1334 QAC_Can_1334 */ /* MD_Can_1334 */
V_MEMROM0 V_MEMROM1 ApplPreTransmitFct V_MEMROM2 CanTxApplPreTransmitPtr[kCanNumberOfTxObjects] = 
{
  V_NULL /* ID: 0x000004e9, Handle: 0, SA_PCTOOL_RES [BC] */, 
  SA_01_TxPreTransmit /* ID: 0x00000237, Handle: 1, SA_01 [BC] */, 
  NM_SA_TxPreTransmit /* ID: 0x0000055f, Handle: 2, NM_SA [FC] */, 
  V_NULL /* ID: 0x000007ff, Handle: 3, TxDynamicMsg0 [BC] */
};
/* PRQA  L:QAC_Can_1334 */

/* ROM CATEGORY 1 END */

#endif


#ifdef C_ENABLE_CONFIRMATION_FCT
/* ROM CATEGORY 1 START */
V_MEMROM0 V_MEMROM1 ApplConfirmationFct V_MEMROM2 CanTxApplConfirmationPtr[kCanNumberOfTxObjects] = 
{
  V_NULL /* ID: 0x000004e9, Handle: 0, SA_PCTOOL_RES [BC] */, 
  V_NULL /* ID: 0x00000237, Handle: 1, SA_01 [BC] */, 
  CanNm_NmMsgConfirmation /* ID: 0x0000055f, Handle: 2, NM_SA [FC] */, 
  TpDrvConfirmation /* ID: 0x000007ff, Handle: 3, TxDynamicMsg0 [BC] */
};
/* ROM CATEGORY 1 END */

#endif


#ifdef C_ENABLE_PART_OFFLINE
/* ROM CATEGORY 2 START */

V_MEMROM0 V_MEMROM1 vuint8 V_MEMROM2 CanTxSendMask[kCanNumberOfTxObjects] = 
{
  (vuint8) (C_SEND_GRP_DisableNormal | C_SEND_GRP_DisableIAll) /* ID: 0x000004e9, Handle: 0, SA_PCTOOL_RES [BC] */, 
  (vuint8) (C_SEND_GRP_DisableNormal | C_SEND_GRP_DisableIAll) /* ID: 0x00000237, Handle: 1, SA_01 [BC] */, 
  (vuint8) (C_SEND_GRP_DisableNM | C_SEND_GRP_DisableIAll) /* ID: 0x0000055f, Handle: 2, NM_SA [FC] */, 
  (vuint8) C_SEND_GRP_NONE /* ID: 0x000007ff, Handle: 3, TxDynamicMsg0 [BC] */
};

/* ROM CATEGORY 2 END */

#endif


#ifdef C_ENABLE_CONFIRMATION_FLAG
/* ROM CATEGORY 1 START */
V_MEMROM0 V_MEMROM1 vuint8 V_MEMROM2 CanConfirmationOffset[kCanNumberOfTxObjects] = 
{
  0 /* ID: 0x000004e9, Handle: 0, SA_PCTOOL_RES [BC] */, 
  0 /* ID: 0x00000237, Handle: 1, SA_01 [BC] */, 
  0 /* ID: 0x0000055f, Handle: 2, NM_SA [FC] */, 
  0 /* ID: 0x000007ff, Handle: 3, TxDynamicMsg0 [BC] */
};
/* ROM CATEGORY 1 END */


/* ROM CATEGORY 1 START */
V_MEMROM0 V_MEMROM1 vuint8 V_MEMROM2 CanConfirmationMask[kCanNumberOfTxObjects] = 
{
  0x01u /* ID: 0x000004e9, Handle: 0, SA_PCTOOL_RES [BC] */, 
  0x02u /* ID: 0x00000237, Handle: 1, SA_01 [BC] */, 
  0x00u /* ID: 0x0000055f, Handle: 2, NM_SA [FC] */, 
  0x04u /* ID: 0x000007ff, Handle: 3, TxDynamicMsg0 [BC] */
};
/* ROM CATEGORY 1 END */


#endif




/* Id table depending on search algorithm */
/* Linear search */
/* ROM CATEGORY 1 START */
V_MEMROM0 V_MEMROM1 tCanRxId0 V_MEMROM2 CanRxId0[kCanNumberOfRxObjects] = 
{
  MK_STDID0(0x65Fu) /* ID: 0x0000065f, Handle: 3, DIAG_REQ_SA [BC] */, 
  MK_STDID0(0x601u) /* ID: 0x00000601, Handle: 4, DIAG_REQ_AllECU [BC] */, 
  MK_STDID0(0x505u) /* ID: 0x00000505, Handle: 0, NM_CGW [BC] */, 
  MK_STDID0(0x4E8u) /* ID: 0x000004e8, Handle: 1, PCTOOL_REQ [BC] */, 
  MK_STDID0(0x10Cu) /* ID: 0x0000010c, Handle: 2, CGW_03 [BC] */
};
/* ROM CATEGORY 1 END */


/* ROM CATEGORY 1 START */
V_MEMROM0 V_MEMROM1 CanReceiveHandle V_MEMROM2 CanRxMsgIndirection[kCanNumberOfRxObjects] = 
{
  3 /* ID: 0x0000065f, Handle: 3, DIAG_REQ_SA */, 
  4 /* ID: 0x00000601, Handle: 4, DIAG_REQ_AllECU */, 
  0 /* ID: 0x00000505, Handle: 0, NM_CGW */, 
  1 /* ID: 0x000004e8, Handle: 1, PCTOOL_REQ */, 
  2 /* ID: 0x0000010c, Handle: 2, CGW_03 */
};
/* ROM CATEGORY 1 END */


/* ROM CATEGORY 1 START */
V_MEMROM0 V_MEMROM1 vuint8 V_MEMROM2 CanRxDataLen[kCanNumberOfRxObjects] = 
{
  8 /* ID: 0x00000505, Handle: 0, NM_CGW [BC] */, 
  8 /* ID: 0x000004e8, Handle: 1, PCTOOL_REQ [BC] */, 
  4 /* ID: 0x0000010c, Handle: 2, CGW_03 [BC] */, 
  0 /* ID: 0x0000065f, Handle: 3, DIAG_REQ_SA [BC] */, 
  0 /* ID: 0x00000601, Handle: 4, DIAG_REQ_AllECU [BC] */
};
/* ROM CATEGORY 1 END */


#ifdef C_ENABLE_COPY_RX_DATA
/* ROM CATEGORY 1 START */
V_MEMROM0 V_MEMROM1 RxDataPtr V_MEMROM2 CanRxDataPtr[kCanNumberOfRxObjects] = 
{
  (RxDataPtr) NM_CGW._c /* ID: 0x00000505, Handle: 0, NM_CGW [BC] */, 
  (RxDataPtr) PCTOOL_REQ._c /* ID: 0x000004e8, Handle: 1, PCTOOL_REQ [BC] */, 
  (RxDataPtr) CGW_03._c /* ID: 0x0000010c, Handle: 2, CGW_03 [BC] */, 
  (RxDataPtr) 0 /* ID: 0x0000065f, Handle: 3, DIAG_REQ_SA [BC] */, 
  (RxDataPtr) 0 /* ID: 0x00000601, Handle: 4, DIAG_REQ_AllECU [BC] */
};
/* ROM CATEGORY 1 END */

#endif


#ifdef C_ENABLE_PRECOPY_FCT
/* CODE CATEGORY 1 START */
vuint8 CanRxCGW_03PrecopyFct(CanRxInfoStructPtr rxStruct)
{
  vuint8 ret = kCanNoCopyData;
  ret |= IlMsgCGW_03PreCopy(rxStruct);
  ret |= IlRxPreCopy_CGW_03(rxStruct);
  return ret;
}



/* CODE CATEGORY 1 END */

/* ROM CATEGORY 1 START */
V_MEMROM0 V_MEMROM1 ApplPrecopyFct V_MEMROM2 CanRxApplPrecopyPtr[kCanNumberOfRxObjects] = 
{
  V_NULL /* ID: 0x00000505, Handle: 0, NM_CGW [BC] */, 
  IlRxPreCopy_PCTOOL_REQ /* ID: 0x000004e8, Handle: 1, PCTOOL_REQ [BC] */, 
  CanRxCGW_03PrecopyFct /* ID: 0x0000010c, Handle: 2, CGW_03 [BC] */, 
  TpPrecopy /* ID: 0x0000065f, Handle: 3, DIAG_REQ_SA [BC] */, 
  TpFuncPrecopy /* ID: 0x00000601, Handle: 4, DIAG_REQ_AllECU [BC] */
};
/* ROM CATEGORY 1 END */

#endif


#ifdef C_ENABLE_INDICATION_FCT
/* ROM CATEGORY 1 START */
/* PRQA  S 1334 QAC_Can_1334 */ /* MD_Can_1334 */
V_MEMROM0 V_MEMROM1 ApplIndicationFct V_MEMROM2 CanRxApplIndicationPtr[kCanNumberOfRxObjects] = 
{
  V_NULL /* ID: 0x00000505, Handle: 0, NM_CGW [BC] */, 
  IlMsgRxIndication_PCTOOL_REQ /* ID: 0x000004e8, Handle: 1, PCTOOL_REQ [BC] */, 
  IlMsgRxIndication_CGW_03 /* ID: 0x0000010c, Handle: 2, CGW_03 [BC] */, 
  V_NULL /* ID: 0x0000065f, Handle: 3, DIAG_REQ_SA [BC] */, 
  V_NULL /* ID: 0x00000601, Handle: 4, DIAG_REQ_AllECU [BC] */
};
/* PRQA  L:QAC_Can_1334 */

/* ROM CATEGORY 1 END */

#endif


#ifdef C_ENABLE_INDICATION_FLAG
/* ROM CATEGORY 1 START */
V_MEMROM0 V_MEMROM1 vuint8 V_MEMROM2 CanIndicationOffset[kCanNumberOfRxObjects] = 
{
  0 /* ID: 0x00000505, Handle: 0, NM_CGW [BC] */, 
  0 /* ID: 0x000004e8, Handle: 1, PCTOOL_REQ [BC] */, 
  0 /* ID: 0x0000010c, Handle: 2, CGW_03 [BC] */, 
  0 /* ID: 0x0000065f, Handle: 3, DIAG_REQ_SA [BC] */, 
  0 /* ID: 0x00000601, Handle: 4, DIAG_REQ_AllECU [BC] */
};
/* ROM CATEGORY 1 END */


/* ROM CATEGORY 1 START */
V_MEMROM0 V_MEMROM1 vuint8 V_MEMROM2 CanIndicationMask[kCanNumberOfRxObjects] = 
{
  0x00u /* ID: 0x00000505, Handle: 0, NM_CGW [BC] */, 
  0x00u /* ID: 0x000004e8, Handle: 1, PCTOOL_REQ [BC] */, 
  0x00u /* ID: 0x0000010c, Handle: 2, CGW_03 [BC] */, 
  0x00u /* ID: 0x0000065f, Handle: 3, DIAG_REQ_SA [BC] */, 
  0x00u /* ID: 0x00000601, Handle: 4, DIAG_REQ_AllECU [BC] */
};
/* ROM CATEGORY 1 END */


#endif




/* -----------------------------------------------------------------------------
    &&&~ Init structures
 ----------------------------------------------------------------------------- */

/* ROM CATEGORY 4 START */
/* PRQA S 3408 1 */ /* MD_Can_3408_extLinkage */

/* ROM CATEGORY 4 END */

/* ROM CATEGORY 4 START */
V_MEMROM0 V_MEMROM1 tCanInitObject V_MEMROM2 CanInitObject[1] = 
{
  
  {
    (vuint32) 0x00002000u /* Control 1 register */, 
    (vuint32) 0x800DAFF2u /* CBT register */
  }
};

V_MEMROM0 V_MEMROM1 tCanInitBasicCan V_MEMROM2 CanInitBasicCan[28] = 
{
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register */, 
    (vuint32) 0x197FFFFFu /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register */, 
    (vuint32) 0x197FFFFFu /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register */, 
    (vuint32) 0x1807FFFFu /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register */, 
    (vuint32) 0x1807FFFFu /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register */, 
    (vuint32) 0x13A3FFFFu /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register */, 
    (vuint32) 0x13A3FFFFu /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register */, 
    (vuint32) 0x0433FFFFu /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register */, 
    (vuint32) 0x0433FFFFu /* Code Register */
  }, 
  
  {
    (vuint32) 0x1E03FFFFu /* Mask Register */, 
    (vuint32) 0x1403FFFFu /* Code Register */
  }, 
  
  {
    (vuint32) 0x1E03FFFFu /* Mask Register */, 
    (vuint32) 0x1403FFFFu /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register */, 
    (vuint32) 0x0003FFFFu /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register */, 
    (vuint32) 0x0003FFFFu /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register */, 
    (vuint32) 0x0003FFFFu /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register */, 
    (vuint32) 0x0003FFFFu /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register */, 
    (vuint32) 0x0003FFFFu /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register */, 
    (vuint32) 0x0003FFFFu /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register - not relevant, RXFGMASK is used */, 
    (vuint32) 0x00000000u /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register - not relevant, RXFGMASK is used */, 
    (vuint32) 0x00000000u /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register - not relevant, RXFGMASK is used */, 
    (vuint32) 0x00000000u /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register - not relevant, RXFGMASK is used */, 
    (vuint32) 0x00000000u /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register - not relevant, RXFGMASK is used */, 
    (vuint32) 0x00000000u /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register - not relevant, RXFGMASK is used */, 
    (vuint32) 0x00000000u /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register - not relevant, RXFGMASK is used */, 
    (vuint32) 0x00000000u /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register - not relevant, RXFGMASK is used */, 
    (vuint32) 0x00000000u /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register - not relevant, RXFGMASK is used */, 
    (vuint32) 0x00000000u /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register - not relevant, RXFGMASK is used */, 
    (vuint32) 0x00000000u /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register - not relevant, RXFGMASK is used */, 
    (vuint32) 0x00000000u /* Code Register */
  }, 
  
  {
    (vuint32) 0x1FFFFFFFu /* Mask Register - not relevant, RXFGMASK is used */, 
    (vuint32) 0x00000000u /* Code Register */
  }
};

V_MEMROM0 V_MEMROM1 vuint16 V_MEMROM2 CanInitBasicCanIndex[1] = 
{
  (vuint16) 0x0000u
};

/* ROM CATEGORY 4 END */



#if defined(C_ENABLE_MULTI_ECU_CONFIG)
/* ROM CATEGORY 1 START */
V_MEMROM0 V_MEMROM1 vuint8 V_MEMROM2 CanPhysToLogChannel[kVNumberOfIdentities][kCanNumberOfPhysChannels] = 
{
  
  {
    kCanChannelNotUsed, 
    kCanChannelNotUsed, 
    kCanChannelNotUsed, 
    kCanChannelNotUsed, 
    kCanChannelNotUsed, 
    0
  }
};
/* ROM CATEGORY 1 END */

#endif

#if defined(C_ENABLE_MULTI_ECU_CONFIG)
/* ROM CATEGORY 2 START */

V_MEMROM0 V_MEMROM1 tVIdentityMsk V_MEMROM2 CanChannelIdentityAssignment[kCanNumberOfChannels] = 
{
  0x01u
};

/* ROM CATEGORY 2 END */

#endif

#if defined(C_ENABLE_MULTI_ECU_PHYS)
/* ROM CATEGORY 1 START */
V_MEMROM0 V_MEMROM1 tVIdentityMsk V_MEMROM2 CanRxIdentityAssignment[kCanNumberOfRxObjects] = 
{
  0x01u /* ID: 0x00000505, Handle: 0, NM_CGW [BC] */, 
  0x01u /* ID: 0x000004e8, Handle: 1, PCTOOL_REQ [BC] */, 
  0x01u /* ID: 0x0000010c, Handle: 2, CGW_03 [BC] */, 
  0x01u /* ID: 0x0000065f, Handle: 3, DIAG_REQ_SA [BC] */, 
  0x01u /* ID: 0x00000601, Handle: 4, DIAG_REQ_AllECU [BC] */
};
/* ROM CATEGORY 1 END */

/* ROM CATEGORY 4 START */
V_MEMROM0 V_MEMROM1 tVIdentityMsk V_MEMROM2 CanTxIdentityAssignment[kCanNumberOfTxObjects] = 
{
  0x01u /* ID: 0x000004e9, Handle: 0, SA_PCTOOL_RES [BC] */, 
  0x01u /* ID: 0x00000237, Handle: 1, SA_01 [BC] */, 
  0x01u /* ID: 0x0000055f, Handle: 2, NM_SA [FC] */, 
  0x01u /* ID: 0x000007ff, Handle: 3, TxDynamicMsg0 [BC] */
};
/* ROM CATEGORY 4 END */

#endif


#if defined(C_ENABLE_GEN_CHECK)
/* ROM CATEGORY 4 START */
V_MEMROM0 V_MEMROM1 vuint8 V_MEMROM2 CanNumberOfBasicCAN[kCanNumberOfChannels] = 
{
  14
};
/* ROM CATEGORY 4 END */

#endif

/* -----------------------------------------------------------------------------
    &&&~ Multiple Callback Functions
 ----------------------------------------------------------------------------- */

/* CODE CATEGORY 1 START */
C_CALLBACK_1 void C_CALLBACK_2 WrapperApplCanTxConfirmation(CanTxInfoStructPtr txStruct)
{
  ApplCanTxConfirmation(txStruct);
  CbdWrpCanTxConfirmation(txStruct);
}


/* CODE CATEGORY 1 END */


#ifdef C_ENABLE_TX_FULLCAN_OBJECTS
/* ROM CATEGORY 2 START */
V_MEMROM0 V_MEMROM1 CanObjectHandle V_MEMROM2 CanTxMailbox[kCanNumberOfTxObjects] = 
{
  0x0Eu /* ID: 0x000004e9, Handle: 0, SA_PCTOOL_RES [BC] */, 
  0x0Eu /* ID: 0x00000237, Handle: 1, SA_01 [BC] */, 
  0x0Fu /* ID: 0x0000055f, Handle: 2, NM_SA [FC] */, 
  0x0Eu /* ID: 0x000007ff, Handle: 3, TxDynamicMsg0 [BC] */
};
/* ROM CATEGORY 2 END */

#endif



/* -----------------------------------------------------------------------------
    &&&~ Can_Mailbox table
 ----------------------------------------------------------------------------- */

/* ROM CATEGORY 1 START */
V_MEMROM0 V_MEMROM1 tCanMailbox V_MEMROM2 Can_Mailbox[kCanNumberOfMailboxes] = 
{
  { 0, 2, 8 } /* MailboxHandle: 0, Channel: Channel0, RxBasicCan */,   //modify for nio
  { 2, 2, 8 } /* MailboxHandle: 1, Channel: Channel0, RxBasicCan */,   //modify for nio
  { 4, 2, 8 } /* MailboxHandle: 2, Channel: Channel0, RxBasicCan */,   //modify for nio
  { 6, 2, 8 } /* MailboxHandle: 3, Channel: Channel0, RxBasicCan */,   //modify for nio
  { 8, 2, 8 } /* MailboxHandle: 4, Channel: Channel0, RxBasicCan */,   //modify for nio
  { 10, 2, 8 } /* MailboxHandle: 5, Channel: Channel0, RxBasicCan */,  //modify for nio
  { 12, 2, 8 } /* MailboxHandle: 6, Channel: Channel0, RxBasicCan */,  //modify for nio
  { 14, 2, 8 } /* MailboxHandle: 7, Channel: Channel0, RxBasicCan */,  //modify for nio
  { 16, 2, 8 } /* MailboxHandle: 8, Channel: Channel0, RxBasicCan */,  //modify for nio
  { 18, 2, 8 } /* MailboxHandle: 9, Channel: Channel0, RxBasicCan */,  //modify for nio
  { 20, 2, 8 } /* MailboxHandle: 10, Channel: Channel0, RxBasicCan */, //modify for nio
  { 22, 2, 8 } /* MailboxHandle: 11, Channel: Channel0, RxBasicCan */, //modify for nio
  { 24, 2, 8 } /* MailboxHandle: 12, Channel: Channel0, RxBasicCan */, //modify for nio
  { 26, 2, 8 } /* MailboxHandle: 13, Channel: Channel0, RxBasicCan */, //modify for nio
  { 28, 1, 8 } /* MailboxHandle: 14, Channel: Channel0, TxNormal */,   //modify for nio
  { 29, 1, 8 } /* MailboxHandle: 15, Channel: Channel0, NM_SA */
} /* HwObjHandle, HwObjCount, HwObjMaxDataLen */;
/* ROM CATEGORY 1 END */



/* -----------------------------------------------------------------------------
    &&&~ Can_HwObjToCanMailboxIndirectionTable
 ----------------------------------------------------------------------------- */

/* ROM CATEGORY 1 START */
V_MEMROM0 V_MEMROM1 CanObjectHandle V_MEMROM2 Can_HwObjToMailboxIndirection[kCanNumberOfHwObjToMailboxIndirections] = 
{
  0 /* Index: 0, Channel: Channel0, HwObjHandle: 0 */, 
  0 /* Index: 1, Channel: Channel0, HwObjHandle: 1 */, 
  1 /* Index: 2, Channel: Channel0, HwObjHandle: 2 */, 
  1 /* Index: 3, Channel: Channel0, HwObjHandle: 3 */, 
  2 /* Index: 4, Channel: Channel0, HwObjHandle: 4 */, 
  2 /* Index: 5, Channel: Channel0, HwObjHandle: 5 */, 
  3 /* Index: 6, Channel: Channel0, HwObjHandle: 6 */, 
  3 /* Index: 7, Channel: Channel0, HwObjHandle: 7 */, 
  4 /* Index: 8, Channel: Channel0, HwObjHandle: 8 */, 
  4 /* Index: 9, Channel: Channel0, HwObjHandle: 9 */, 
  5 /* Index: 10, Channel: Channel0, HwObjHandle: 10 */, 
  5 /* Index: 11, Channel: Channel0, HwObjHandle: 11 */, 
  6 /* Index: 12, Channel: Channel0, HwObjHandle: 12 */, 
  6 /* Index: 13, Channel: Channel0, HwObjHandle: 13 */, 
  7 /* Index: 14, Channel: Channel0, HwObjHandle: 14 */, 
  7 /* Index: 15, Channel: Channel0, HwObjHandle: 15 */, 
  8 /* Index: 16, Channel: Channel0, HwObjHandle: 16 */, 
  8 /* Index: 17, Channel: Channel0, HwObjHandle: 17 */, 
  9 /* Index: 18, Channel: Channel0, HwObjHandle: 18 */, 
  9 /* Index: 19, Channel: Channel0, HwObjHandle: 19 */, 
  10 /* Index: 20, Channel: Channel0, HwObjHandle: 20 */, 
  10 /* Index: 21, Channel: Channel0, HwObjHandle: 21 */, 
  11 /* Index: 22, Channel: Channel0, HwObjHandle: 22 */, 
  11 /* Index: 23, Channel: Channel0, HwObjHandle: 23 */, 
  12 /* Index: 24, Channel: Channel0, HwObjHandle: 24 */, 
  12 /* Index: 25, Channel: Channel0, HwObjHandle: 25 */, 
  13 /* Index: 26, Channel: Channel0, HwObjHandle: 26 */, 
  13 /* Index: 27, Channel: Channel0, HwObjHandle: 27 */, 
  14 /* Index: 28, Channel: Channel0, HwObjHandle: 28 */, 
  15 /* Index: 29, Channel: Channel0, HwObjHandle: 29 */
} /* MailboxHandle */;
/* ROM CATEGORY 1 END */



/* -----------------------------------------------------------------------------
    &&&~ CanTxFdType
 ----------------------------------------------------------------------------- */

#ifdef C_ENABLE_CAN_FD_USED
/* ROM CATEGORY 1 START */
V_MEMROM0 V_MEMROM1 tCanFdType V_MEMROM2 CanTxFdType[kCanNumberOfTxObjects] = 
{
  kCanFdTypeClassic /* ID: 0x000004e9, Handle: 0, SA_PCTOOL_RES [BC] */, 
  kCanFdTypeClassic /* ID: 0x00000237, Handle: 1, SA_01 [BC] */, 
  kCanFdTypeClassic /* ID: 0x0000055f, Handle: 2, NM_SA [FC] */, 
  kCanFdTypeClassic /* ID: 0x000007ff, Handle: 3, TxDynamicMsg0 [BC] */
};
/* ROM CATEGORY 1 END */

#endif



/* ROM CATEGORY 1 START */

V_MEMROM0 V_MEMROM1 vuint32 V_MEMROM2 CanFDMailboxMapping[32] =
{
//for nio
  (vuint32) 0x40024080u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40024090u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400240A0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400240B0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400240C0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400240D0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400240E0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400240F0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40024100u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40024110u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40024120u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40024130u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40024140u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40024150u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40024160u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40024170u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40024180u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40024190u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400241A0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400241B0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400241C0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400241D0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400241E0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400241F0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40024200u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40024210u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40024220u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40024230u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40024240u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40024250u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40024260u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40024270u /* CanFD Mailbox Mapping Entry */,
#if 0
  (vuint32) 0x40025280u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400252C8u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025310u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025358u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400253A0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400253E8u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025430u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025480u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400254C8u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025510u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025558u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400255A0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400255E8u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025630u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025680u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400256C8u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025710u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025758u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400257A0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400257E8u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025830u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025878u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400258C0u /* CanFD Mailbox Mapping Entry */,

  (vuint32) 0x40025908u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025950u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025998u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400259E0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025A28u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025A70u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025AB8u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025B00u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025B48u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025B90u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025BD8u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025C20u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025C68u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025CB0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025CF8u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025D40u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025D88u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025DD0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025E18u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025E60u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025EA8u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025EF0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025F38u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025F80u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40025FC8u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026010u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026058u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400260A0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400260E8u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026130u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026178u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400261C0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026208u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026250u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026298u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400262E0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026328u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026370u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400263B8u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026400u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026448u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026490u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400264D8u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026520u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026568u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400265B0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400265F8u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026640u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026688u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400266D0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026718u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026760u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400267A8u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400267F0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026838u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026880u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400268C8u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026910u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026958u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400269A0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x400269E8u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026A30u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026A78u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026AC0u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026B08u /* CanFD Mailbox Mapping Entry */,
  (vuint32) 0x40026B50u /* CanFD Mailbox Mapping Entry */
#endif
};
/* ROM CATEGORY 1 END */

/* ROM CATEGORY 1 START */
V_MEMROM0 V_MEMROM1 vuint32 V_MEMROM2 CanFDHwChannelIndirection[kCanNumberOfHwChannels] = 
{
  (vuint32) 0x00000000u /* CanFD Hw Channel Indirection Entry */
};
/* ROM CATEGORY 1 END */

V_MEMROM0 V_MEMROM1 tCanInitObjectFD V_MEMROM2 CanInitObjectFD[1] = 
{
  
  {

	//for nio
	(vuint32) 0x00000000u /* FD CBT register */,
	//for nio
	(vuint32) 0x00000000u /* FD CTRL register */

  }
};



/* begin Fileversion check */
#ifndef SKIP_MAGIC_NUMBER
#ifdef MAGIC_NUMBER
  #if MAGIC_NUMBER != 362388152
      #error "The magic number of the generated file <C:\Data\Users\huo_h1\Documents\NIO_FORCE_VBOX-SVN\30_DevelopLibrary\03_SW\90_Others\CANbedded\NIO_Geny_Force_BTA_CAN_Draft_0_1\NIO_Geny_For_CanMatrix\Generate Files\can_par.c> is different. Please check time and date of generated files!"
  #endif
#else
  #error "The magic number is not defined in the generated file <C:\Data\Users\huo_h1\Documents\NIO_FORCE_VBOX-SVN\30_DevelopLibrary\03_SW\90_Others\CANbedded\NIO_Geny_Force_BTA_CAN_Draft_0_1\NIO_Geny_For_CanMatrix\Generate Files\can_par.c> "

#endif  /* MAGIC_NUMBER */
#endif  /* SKIP_MAGIC_NUMBER */

/* end Fileversion check */

