#ifndef ASW_INTERFACE_H
#define ASW_INTERFACE_H
#include "rtwtypes.h"
#include "Std_Types.h"
#include "IOS_INP.h"
#include "IOS_OUP.h"
#include "ComInterface_cbk_Node1.h"
#include "ComInterface_cbk_Node2.h"
#include "hal_can_fun.h"
#include "hal_can_pack.h"
#include "hal_can_unpack.h"
#include "hal_can_vars.h"
#include "hal_nvm.h"
#include "hal_dcan_if.h"
#include "hal_cmc_if.h"
#include "hal_dtc_set.h"

#include "rte_func.h"

#include "Sws_Com.h"
#include "Sws_Diag.h"
#include "Sws_Io_Adc.h"
#include "Sws_Io_Dio.h"
#include "Sws_Io_Icu.h"
#include "Sws_Io_Pwm.h"
#include "Sws_MemMap.h"
#include "Sws_Mo.h"
#include "Sws_Os.h"
#include "Sws_Syc.h"
#include "Sws_Reset.h"
#include "SwSAPub_Dem.h"
#include "AFE_interface.h"
#include "SwSAPub_DcmDspUDS_CDTCS.h"
#include "SwSAAIWAYS_DcmDspUDS_DID_Priv.h"
#include "SwSAAIWAYS_DcmDspUDS_NvM.h"
#include "SwSAPub_DcmDspUDS_CC.h"
#include "ComInterface_Node2.h"

#include "BCMR_DChrgComProc_types.h"
#include "BMCR_ModMag.h"

#include "BSER_BattSocCalc.h"
#include "BSER_BattSopCalc.h"
#include "BSER_BattSoeCalc.h"
#include "HVSR_FuseChk.h"

#include "BSPR_CellVoltCoord.h"
#include "BSPR_BattTempCoord.h"
#include "BSPR_BattVoltCoord.h"
#include "BSPR_MdulVoltCoord.h"
#include "BSPR_RTE.h"
#include "BSPR_DChrgTempCalc.h"
#include "BSPR_DChrgTempSnsrDiag.h"
#include "BSPR_ThmTempCalc.h"
#include "BSPR_ThmTempSnsrDiag.h"
#include "BSPR_BattTempGradtDiag.h"

#include "COMR_LowVoltDiag.h"
#include "BSPR_CellVoltDiag.h"
#include "BSPR_BattTempPlausDiag.h"
#include "BSPR_BattTempRngDiag.h"
#include "BSPR_BattVoltDiag.h"

#include "BSPR_BattCurrCoord.h"
#include "BSER_SocRngDiag.h"
#include "BSER_SocJmpDiag.h"
#include "BSER_CellBalcCtl.h"
#include "BSPR_BattCurrDiag.h"

#include "BCMR_AChrg.h"
#include "BCMR_DChrgComProc.h"
#include "BCMR_DChrgDiag.h"
#include "BCMR_DChrgParaCalc.h"
#include "BCMR_DChrgGbFlow.h"
#include "BCMR_DChrgTiRem.h"

#include "BCCR_CtrDsmDiag.h"
#include "BCCR_RlyCtlDiag.h"

#include "BSPR_BattTempDsmDiag.h"
#include "BSER_BattPrfDiag.h"

#include "HVSR_HvilChk.h"
#include "HVSR_CrashChk.h"
#include "HVSR_IsoChk.h"

#include "DSMR_FaultLvlCalc.h"
#include "DSMR_FaultClr.h"
#include "DSMR_InitCoord.h"
#include "DSMR_FaultDspl.h"

#include "BTMR_ThmalReqCalc.h"
#include "BTMR_ThmMagDiag.h"
#include "BTMR_ThmRnwyChk.h"
#include "COMR_Swadp.h"
#include "COMR_BusOff.h"
#include "COMR_TimeOut.h"
#include "COMR_MsgChkSumDiag.h"
#include "COMR_MsgRcDiag.h"
#include "COMR_RtcCalc.h"
#include "COMR_RtcCor.h"

#include "DSMR_Fault2UDS.h"
#include "DGM.h"
#include "CFM.h"
// MPR: Main Precharge Relay
// MPC: Main Positive Contactor
// MNC: Main Negative Contactor
// DCP: DC Charge Positive Contactor
// DCN: DC Charge Negative Contactor
// HSD: High Side Driver
// LSD: Low Side Driver

#define HAL_OUTPUT 0
#define HAL_INPUT 0
#define BMU_STATE_SHUT_DOWN 7

extern MSG_CHM_P1 COMR_strMsgCHM_P1;
extern MSG_CRM_P1 COMR_strMsgCRM_P1;
extern MSG_CML_P2 COMR_strMsgCML_P2;
extern MSG_CRO_P2 COMR_strMsgCRO_P2;
extern MSG_CCS_P3 COMR_strMsgCCS_P3;
extern MSG_CST_P3 COMR_strMsgCST_P3;
extern MSG_CSD_P4 COMR_strMsgCSD_P4;
extern MSG_CEM_ERR COMR_strMsgCEM_ERR;

/*******************************************************************************
** Variables Declaration
*******************************************************************************/
extern volatile real32_T BSW_uCC2Volt;
extern volatile real32_T BSW_uCCVolt;
extern volatile real32_T BSW_uIsoPosVolt;
extern volatile real32_T BSW_uKl30c;
extern volatile real32_T BSW_uKl30;
extern volatile real32_T BSW_uMPosCtrHsdCurr;
extern volatile real32_T BSW_uDcChPosCtrHsdCurr;
extern volatile real32_T BSW_uMNegCtrHsdCurr;
extern volatile real32_T BSW_uDcChNegCtrHsdCurr;
extern volatile real32_T BSW_uCabCurr;
extern volatile real32_T BSW_uDcChPosCtrLsdVolt;
extern volatile real32_T BSW_uDcChNegCtrLsdVolt;
extern volatile real32_T BSW_uMPosCtrHsdVolt;
extern volatile real32_T BSW_uMNegCtrHsdVolt;
extern volatile real32_T BSW_uHwSplyVolt;
extern volatile real32_T BSW_uBattVolt;
extern volatile real32_T BSW_uDChrgVolt;
extern volatile real32_T BSW_uPackVolt;
extern volatile real32_T BSW_uNegVolt;
extern volatile real32_T BSW_uDchrgNegVolt;
extern volatile real32_T BSW_uClntUsT;
extern volatile real32_T BSW_uClntDsT;
extern volatile real32_T BSW_uDChrgNegTemp;
extern volatile real32_T BSW_uDChrgPosTemp;
extern volatile real32_T BSW_uReservedSig1;
extern volatile real32_T BSW_uDCWkUp;
extern volatile real32_T BSW_uAdCurr;
extern volatile real32_T BSW_uReservedSig2;
extern volatile real32_T BSW_uReservedSig3;
extern volatile real32_T BSW_uReservedSig4;
extern volatile real32_T BSW_uReservedSig5;
extern volatile real32_T BSW_uReservedSig6;
extern volatile real32_T BSW_uReservedSig7;
extern volatile real32_T BSW_uReservedSig8;
extern volatile real32_T BSW_dcHvilPwmDutyInp;
extern volatile real32_T BSW_fHvilPwmFrq;
extern volatile uint8_T BSW_stHVILInp;
extern volatile real32_T BSW_dcCrashPwmDuty;
extern volatile real32_T BSW_fCrashPwmFrq;
extern volatile uint8_T BSW_stCrashInpt;
extern volatile real32_T BSW_dcHvilPwmDutyOutDet;
extern volatile real32_T BSW_fHvilPwmFrqOutDet;
extern volatile uint8_T BSW_stHVILOutpFdbk;
extern volatile real32_T BSW_dcCrashPwmDutyOutDet;
extern volatile real32_T BSW_fCrashPwmFrqOutDet;
extern volatile uint8_T BSW_stCrashOutpFdbk;
extern volatile uint8_T BSW_stSysModeMag;
extern volatile uint16_T BSW_stSysWkUpSrc;
extern volatile uint8_T BSW_stSysNetWkUp;
extern volatile real32_T COMR_uMcuVolt;
extern volatile real32_T COMR_effObcChrg;
extern volatile real32_T COMR_iMaxCurrObcChrg;
extern volatile real32_T COMR_uMaxVoltObcChrg;
extern volatile real32_T COMR_iCurrObcChrg;
extern volatile real32_T COMR_uVoltObcChrg;
extern volatile uint8_T COMR_cntRCMsg2E6;
extern volatile boolean_T COMR_stS2;
extern volatile uint8_T COMR_valChkSumMsg2E6;
extern volatile uint8_T COMR_stObcFaultLvl;
extern volatile uint8_T COMR_stObcElecLck;
extern volatile uint8_T COMR_stObcCP;
extern volatile uint8_T COMR_dcObcCP;
extern volatile uint8_T COMR_cntRCMsg2E1;
extern volatile uint8_T COMR_valChkSumMsg2E1;
extern volatile uint8_T COMR_stObcChrg;
extern volatile uint8_T COMR_stObcCC;
extern volatile uint8_T COMR_cntRCMsg2EB;
extern volatile uint8_T COMR_valChkSumMsg2EB;
extern volatile boolean_T COMR_bCabErrStatus;
extern volatile uint8_T COMR_stCabErrInfo;
//extern volatile real32_T COMR_iBattCurr;
extern volatile real32_T COMR_iBattCurr_mA;
extern volatile uint8_T COMR_flgAPPInvld;
extern volatile real32_T COMR_phiAPP;
extern volatile real32_T COMR_pwrChrgLdReq;
// extern volatile uint8_T COMR_stPwrUpDwnVcuReq;
extern volatile uint8_T COMR_stPwrUpDwnVcuReqB;
extern volatile uint8_T COMR_stPreThmVcuPmt;
extern volatile boolean_T COMR_bBattChrgEnaA;
extern volatile boolean_T COMR_bBattChrgEnaB;
extern volatile uint8_T COMR_stVcuMutiPackDriveMode;
extern volatile uint8_T COMR_stVcuMutiPackPwrMode;
extern volatile boolean_T COMR_bVcuChrgDisable;
extern volatile boolean_T COMR_bLeadAcidChgHvOn;
extern volatile uint8_T COMR_stVcuIsoCtrEna;
extern volatile uint8_T COMR_cntRCMsg2A3;
extern volatile uint8_T COMR_valChkSumMsg2A3;
extern volatile uint8_T COMR_stElecMod;
extern volatile uint8_T COMR_stPreThmEna;
extern volatile uint8_T COMR_cntRCMsg2A5;
extern volatile uint8_T COMR_valChkSumMsg2A5;
extern volatile uint8_T COMR_stVcuFalutLvl;
extern volatile uint8_T COMR_stVcuWrk;
extern volatile boolean_T COMR_flgBrkPedInvld;
extern volatile boolean_T COMR_swtBrkPed;
extern volatile uint8_T COMR_cntRCMsg2A7;
extern volatile uint8_T COMR_valChkSumMsg2A7;
extern volatile uint8_T COMR_flgVcuSrceID;
extern volatile boolean_T VCU_NMRepeatReq;
extern volatile boolean_T VCU_NMActwake;
extern volatile boolean_T COMR_flgVcuRptFromSlp;
extern volatile boolean_T COMR_flgVcuRptFromPrepr;
extern volatile boolean_T COMR_flgVcuRptFromNorm;
extern volatile boolean_T COMR_flgVcuRptFromRdy;
extern volatile boolean_T COMR_flgVcuNormFromRpt;
extern volatile boolean_T COMR_flgVcuNormFromRdy;
extern volatile boolean_T COMR_flgVcuWkSrce;
extern volatile boolean_T COMR_flgVcuActSrce_A;
extern volatile boolean_T COMR_flgVcuActSrce_B;
extern volatile boolean_T COMR_flgVcuActSrce_C;
extern volatile boolean_T COMR_flgVcuActSrce_D;
extern volatile boolean_T COMR_flgVcuActSrce_E;
extern volatile real32_T COMR_VehSpd;
extern volatile boolean_T COMR_VehSpdVld;
extern volatile real32_T COMR_tEnvT;
extern volatile real32_T COMR_valAcmDist;
extern volatile boolean_T COMR_flgAcmDistVld;
extern volatile uint8_T COMR_valVinCode_A;
extern volatile uint8_T COMR_valVinCode_B;
extern volatile uint8_T COMR_valVinCode_C;
extern volatile uint8_T COMR_valVinCode_D;
extern volatile uint8_T COMR_valVinCode_E;
extern volatile uint8_T COMR_valVinCode_F;
extern volatile uint8_T COMR_valVinCode_G;
extern volatile uint8_T COMR_cntVinCodeNum;
extern volatile uint8_T COMR_stCrashSgl;
extern volatile uint8_T COMR_cntRCMsg050;
extern volatile uint8_T COMR_valChkSumMsg050;
extern volatile real32_T COMR_pPTCOptPwrReq;
extern volatile real32_T COMR_pCompOptPwrReq;
extern volatile boolean_T COMR_stPreCoolWk;
extern volatile boolean_T COMR_stPreHeatlWk;
extern volatile boolean_T COMR_bIviDischgOrd;
extern volatile uint16_T COMR_YearSet;
//extern volatile uint8_T COMR_MonthSet;
extern volatile uint8_T COMR_DaySet;
//extern volatile uint8_T COMR_HourSet;
extern volatile uint8_T COMR_MinSet;
extern volatile uint8_T COMR_SecondSet;
extern volatile uint8_T COMR_stAppChrgOrdCmd;
extern volatile uint8_T COMR_stAppChrgOrdStart;
extern volatile boolean_T COMR_bChrgStopActive;
extern volatile boolean_T COMR_stS2On;
extern volatile uint8_T COMR_stInletLock;
extern volatile uint8_T COMR_stCpState;
extern volatile uint8_T COMR_stLockAlarm;
extern volatile uint8_T COMR_stPdState;
extern volatile real32_T COMR_iMaxAChrgCurr;
extern volatile uint8_T COMR_stDcAcChgMode;
extern volatile real32_T COMR_uEvseOutputVolt;
extern volatile real32_T COMR_pwrEvseMaxPwrLmt;
extern volatile uint32_T COMR_numComVer;
extern volatile uint32_T COMR_Reserved1;
extern volatile uint8_T COMR_stIdtfRstCrm;
extern volatile uint32_T COMR_Reserved2;
extern volatile uint8_T COMR_stChrgRdyCro;
// extern volatile real32_T COMR_tiDcChrgTimeActualCcs;
extern volatile uint8_T COMR_stDcChrgCmdCcs;
extern volatile uint8_T COMR_stRchSetCondCst;
extern volatile uint8_T COMR_stMnlStopCst;
extern volatile uint8_T COMR_stChrgErrStopCst;
extern volatile uint8_T COMR_stBmsStopActCst;
extern volatile uint8_T COMR_stChrgerOvrTempErrCst;
extern volatile uint8_T COMR_stChrgerCnntErrCst;
extern volatile uint8_T COMR_stChrgerInrOvrTempErrCst;
extern volatile uint8_T COMR_stEnrgTxAbnrmErrCst;
extern volatile uint8_T COMR_stChrgerSrmErrCst;
extern volatile uint8_T COMR_stOtherErrCst;
extern volatile uint8_T COMR_stChrgCurrAbnrmCst;
extern volatile uint8_T COMR_stChrgVoltAbnrmCst;
extern volatile uint32_T COMR_numChrgerNumCsd;
extern volatile real32_T COMR_eOutpEnrgCsd;
extern volatile real32_T COMR_tiChrgTimeCsd;
extern volatile uint8_T COMR_stRcvBrmTimeOutCem;
extern volatile uint8_T COMR_stRcvBcpTimeOutCem;
extern volatile uint8_T COMR_stRcvBroOkTimeOutCem;
extern volatile uint8_T COMR_stRcvBcsTimeOutCem;
extern volatile uint8_T COMR_stRcvBclTimeOutCem;
extern volatile uint8_T COMR_stRcvBstTimeOutCem;
extern volatile uint8_T COMR_stRcvBsdTimeOutCem;
extern volatile uint8_T COMR_stOtherErrCem;
extern volatile boolean_T BSPR_bOutputVolt12vEna;
extern volatile boolean_T Ground;
//extern volatile boolean_T HVSR_bIsoSwt1Ena;
//extern volatile boolean_T HVSR_bIsoSwt2Ena;
//extern volatile boolean_T HVSR_bIsoSwt3Ena;
extern volatile uint8_T CNMR_flgBmsSrceID;
extern volatile boolean_T CNMR_flgBmsRptReq;
extern volatile boolean_T CNMR_flgBmsWkUp;
extern volatile boolean_T CNMR_flgBmsRptFromSlp;
extern volatile boolean_T CNMR_flgBmsRptFromPrepr;
extern volatile boolean_T CNMR_flgBmsRptFromNorm;
extern volatile boolean_T CNMR_flgBmsRptFromRdy;
extern volatile boolean_T CNMR_flgBmsNormFromRpt;
extern volatile boolean_T CNMR_flgBmsNormFromRdy;
extern volatile uint8_T CNMR_flgBmsWkSrce;
extern volatile boolean_T CNMR_flgBmsActSrce_A;
extern volatile boolean_T CNMR_flgBmsActSrce_B;

extern volatile boolean_T BCMR_bPlugLockPrms;
extern volatile boolean_T BCMR_bBmsSleepReq;
extern volatile boolean_T BCMR_bWeldDetReq;
extern volatile boolean_T BCMR_bS2OnReq;
extern volatile real32_T BCMR_uMaxPmtdChrgPackVoltBhm;
extern volatile real32_T BCMR_uMaxPmtdChrgPackCurrBhm;
extern volatile real32_T BCMR_uMaxPmtdChrgPackCurrEna;
//extern volatile uint8_T BCMR_stBmsRdyBro;
extern volatile real32_T BCMR_vDcChrgVoltReqBcl;
extern volatile real32_T BCMR_stDcChrgModeBcl;
extern volatile real32_T BCMR_iDcChrgCurrReqBcl;
extern volatile real32_T BCMR_tBattMinTempBsm;
extern volatile uint8_T BCMR_stBattCellVoltErrBsm;
extern volatile uint8_T BCMR_stChrgEnaBsm;
extern volatile uint8_T BCMR_stBattInsulationErrBsm;
extern volatile uint8_T BCMR_numMaxCellVoltAddrBsm;
extern volatile uint8_T BCMR_stBattOutputContErrBsm;
extern volatile uint8_T BCMR_stBattChrgCurrOvrErrBsm;
extern volatile uint8_T BCMR_stBattTempOvrErrBsm;
extern volatile uint8_T BCMR_stBattSocErrBsm;
extern volatile uint8_T BCMR_numBattMaxTemptAddrBsm;
extern volatile uint8_T BCMR_numBattMinTemptAddrBsm;
extern volatile real32_T BCMR_tBattMaxTempBsm;
extern volatile uint8_T BCMR_stRchSocLmtBst;
extern volatile uint8_T BCMR_stRchPackVoltLmtBst;
extern volatile uint8_T BCMR_stRchCellVoltLmtBst;
extern volatile uint8_T BCMR_stChrgerActStopBst;
extern volatile uint8_T BCMR_stBattInsulationErrBst;
extern volatile uint8_T BCMR_stOutpCnntOvrTempErrBst;
extern volatile uint8_T BCMR_stPcbOvrTempErrBst;
extern volatile uint8_T BCMR_stChrgCnntErrBst;
extern volatile uint8_T BCMR_stBattOvrTempErrBst;
extern volatile uint8_T BCMR_stMainRelayErrBst;
extern volatile uint8_T BCMR_stCC2ChkVoltErrBst;
extern volatile uint8_T BCMR_stOtherErrBst;
extern volatile uint8_T BCMR_stChrgCurrAbnrmBst;
extern volatile uint8_T BCMR_stChrgVoltAbnrmBst;
extern volatile real32_T BCMR_tBattMaxTempBsd;
extern volatile real32_T BCMR_tBattMinTempBsd;
extern volatile uint16_T BCMR_vBattMaxCellVoltBsd;
extern volatile uint16_T BCMR_vBattMinCellVoltBsd;
extern volatile uint8_T BCMR_rBattSocBsd;
//extern volatile uint8_T BCMR_stSpn3901TimeoutBem;
//extern volatile uint8_T BCMR_stSpn3902TimeoutBem;
//extern volatile uint8_T BCMR_stSpn3903TimeoutBem;
//extern volatile uint8_T BCMR_stSpn3904TimeoutBem;
//extern volatile uint8_T BCMR_stSpn3905TimeoutBem;
//extern volatile uint8_T BCMR_stSpn3906TimeoutBem;
//extern volatile uint8_T BCMR_stSpn3907TimeoutBem;
//extern volatile uint8_T BCMR_stOtherErrBem;
extern volatile uint8_T COMR_stEuroChrgMode;
extern volatile uint8_T CNMR_stDebugOut;
extern volatile uint8_T CNMR_stTransferRoute;
//extern volatile boolean_T BCMR_bAcDischgFobd;
extern volatile boolean_T BCMR_bAChrgPortOvrTemp;
extern volatile boolean_T DSMR_DChrgPreChTOut;
extern volatile boolean_T BCMR_bAChgUnclockTmOut;
extern volatile boolean_T BCMR_bEVCCSelfChkFlt;
extern volatile boolean_T BCMR_bAChgS2ClsdTmOut;
extern volatile uint32_T COMR_verSoftwareVersion;
extern volatile boolean_T DSMR_DChrgMsgTimeout;
extern volatile boolean_T DSMR_Obc2E1Tmt;
extern volatile boolean_T DSMR_CscCellVoltOpenLine;
extern volatile boolean_T DSMR_CscCellTempOpenLine;
extern volatile boolean_T BCMR_stChrgCnntBoth;
extern volatile boolean_T COMR_stConnectPackB;
// extern volatile uint8_T BCMR_stDChrgElockReq;
//extern volatile uint8_T BCMR_stIviDischg;
//extern volatile uint8_T BCMR_stV2xMod;
//extern volatile boolean_T BCMR_flgDischgCmd;
extern volatile uint8_T BCCR_stBmsRelayCtrStatus;
extern volatile uint8_T COMR_stEol;
//extern volatile boolean_T BSWBatteryHVDataMsgRx;
extern volatile boolean_T BSWBusHVDataMsgRx;
extern volatile boolean_T VCAN_NMMsgRx;
extern volatile boolean_T BAAR_flagAutoAdrsEna;
extern volatile boolean_T BSWBatteryHVDataMsgRx;
extern volatile boolean_T BSWBusHVDataMsgRx;
extern volatile boolean_T InCan_BusOff;
extern volatile boolean_T BSWVECANBusFastRecoveryFail;
extern volatile boolean_T BSPR_bACWkUp;
extern volatile boolean_T BSPR_bKl15WkUp;
extern volatile boolean_T BCMR_bAChgLockingTmOut;
//extern volatile uint8_T BSPR_stBmsSelfChk;
extern volatile boolean_T DcCan_BusOff;
extern volatile boolean_T BSWLinCommunicationFault;
extern volatile boolean_T VeCan_BusOff;
extern volatile boolean_T BSWBoardTempMsgRx[2];
extern volatile boolean_T BSWCellTempMsgRx[6];
extern volatile boolean_T BSWCellVoltageMsgRx[24];
extern volatile boolean_T BSWCellBalanceCircuitStatusMsgRx[2];
extern volatile boolean_T BSWModuleVoltageMsgRx[2];
extern volatile boolean_T BSWVCU2A3DataAvailable;
extern volatile boolean_T BSWVCU2A5DataAvailable;
extern volatile boolean_T BSWVCU2A7DataAvailable;
extern volatile boolean_T BSWACCharger0x2E0MessageAvailable;
extern volatile boolean_T BSWACCharger0x2E1MessageAvailable;
extern volatile boolean_T BSWABM050DataAvailable;
extern volatile boolean_T BSWGW2ADDataAvailable;
extern volatile boolean_T BSWGW2BBDataAvailable;
extern volatile boolean_T BSWVCU2A3CheckSum;
extern volatile boolean_T BSWABM050CheckSum;
extern volatile boolean_T BSWOBC2E0CheckSum;
extern volatile boolean_T BSWOBC2E1CheckSum;
extern volatile boolean_T BSPR_bRSocNvmVldFlg;
extern volatile real32_T COMR_tCmcBordTemp_A[8];
extern volatile boolean_T COMR_bBattTempWireStt_A[2];
extern volatile real32_T BCCR_dcDcChNegCtrLsdPwmDuty;
extern volatile boolean_T COMR_bCellVoltWireStt_A[2];
extern volatile real32_T BSPR_uIsoNegVolt;
extern volatile uint8_T COMR_cntRCMsg2E0;
extern volatile boolean_T COMR_bClrAllDtc;
extern volatile boolean_T BSWIVI37FDataAvailable;
extern volatile uint32_T BMCR_tiSetWakeUpTime;
// extern volatile uint32_T COMR_tiStopTimeUint;
extern volatile real32_T COMR_iDcChrgCurrReqBcl;
extern volatile uint8_T BSW_stOTAMode;
//Dummuy for DFC
// extern volatile uint8_T DFC_CrashHwNpl_ASW;
extern volatile uint8_T DFC_AChgPileRdyTmt_ASW;
extern volatile uint8_T DFC_BalStuckMax_ASW;
extern volatile uint8_T DFC_DChrgCableChk_ASW;
extern volatile uint8_T DFC_BalStuckMin_ASW;
extern volatile uint8_T DFC_AChgS2ClsdTmt_ASW;
extern volatile uint8_T DFC_CcuSelfChkErr_ASW;
extern volatile uint8_T DFC_DChrgCnntErr_ASW;
extern volatile uint8_T DFC_DChrgLckErr_ASW;
extern volatile uint8_T DFC_AChrgPortOvrTemp_ASW;
extern volatile uint8_T DFC_AChgLckTmt_ASW;
extern volatile uint8_T DFC_AChgUnlckTmt_ASW;
extern volatile uint8_T DFC_DChrgSLACTOut_ASW;

extern volatile real32_T BSWCC2Voltage;

extern volatile uint8_T BMUState;

extern volatile uint8_T BSWNVMReadStatus;
extern volatile uint8_T BSWSPEReadStatus;
//extern volatile boolean_T BCMR_bAcDischgRdy;
extern volatile boolean_T BSWVCANWakeup;
extern volatile boolean_T BSWChargeCANComError;
extern volatile boolean_T HSD1FaultStatus;
extern volatile boolean_T HSD2FaultStatus;
extern volatile boolean_T BSWACCPWakeup;
extern volatile boolean_T BSWACCWakeup;
extern volatile boolean_T BSWDCWakeup;
extern volatile boolean_T BSWIGNWakeup;
extern volatile boolean_T BSWACCCWakeup;
extern volatile uint16_T MainTaskDelayTime;
extern volatile boolean_T BSWVCANComError;
extern volatile real32_T BSWHVILDriveVoltage;
extern volatile real32_T BSWSystemVoltage;
extern volatile real32_T BSWMPRHSDCoilCurrent;
extern volatile real32_T BSWMPCHSDCoilCurrent;
extern volatile real32_T BSWDCPHSDCoilCurrent;
extern volatile real32_T BSWMNCHSDCoilCurrent;
extern volatile real32_T BSWDCNHSDCoilCurrent;
extern volatile real32_T BSWCSCSupplyCurrent;
extern volatile real32_T BSWDCPLSDOutputVoltage;
extern volatile real32_T BSWHwIsolationVoltage;
extern volatile real32_T BSWACPTempVoltage;
extern volatile real32_T BSWDCNLSDOutputVoltage;
extern volatile real32_T BSWCCWakeVoltage;
extern volatile real32_T BSWInletVoltage;
extern volatile real32_T BSWOutletVoltage;
extern volatile real32_T BSWHwSupplyVoltage;
extern volatile real32_T BSWMPCHSDOutputVoltage;
extern volatile real32_T BSWMNCHSDOutputVoltage;
extern volatile real32_T BSWMNCLSDOutputVoltage;
extern volatile real32_T BSWMPCLSDOutputVoltage;
extern volatile real32_T BSWKL30CVoltage;
extern volatile real32_T BSWHSDInputVoltage;
extern volatile real32_T BSWMPRHSDOutputVoltage;
extern volatile real32_T BSWDCPHSDOutputVoltage;
extern volatile real32_T BSWDCNHSDOutputVoltage;
extern volatile real32_T BSWCrashPWMDuty;
extern volatile real32_T BSWCrashPWMFrequency;
extern volatile real32_T BSWDCNTempVoltage;
extern volatile real32_T BSWDCPTempVoltage;
extern volatile real32_T BSWAutoAddressDuty;
extern volatile real32_T BSWAutoAddressFrequency;
extern volatile boolean_T Switch1Control;
extern volatile real32_T BSWHVILDrivePWMDuty;
extern volatile real32_T BSWHVILDrivePWMFrequency;

extern volatile boolean_T BSWHandShakeCHMMsgRx;
extern volatile boolean_T BSWHandShakeCRMMsgRx;
extern volatile boolean_T BSWParameterCMLMsgRx;
extern volatile boolean_T BSWParameterCROMsgRx;
extern volatile boolean_T BSWParameterCCSMsgRx;
extern volatile boolean_T BSWChargingCSTMsgRx;
extern volatile boolean_T BSWEndCSDMsgRx;
extern volatile boolean_T BSWEndCEMMsgRx;
extern volatile boolean_T BSWDCCANPassive;

//extern volatile uint8_T COMR_stElecMod;

extern volatile uint16_T COMR_BMSYear;
extern volatile uint8_T COMR_BMSMonth;
extern volatile uint8_T COMR_BMSDay;
extern volatile uint8_T COMR_BMSHour;
extern volatile uint8_T COMR_BMSMinute;
extern volatile uint8_T COMR_BMSSecond;

extern volatile uint16_T BSW_BMSYear;
extern volatile uint8_T BSW_BMSMonth;
extern volatile uint8_T BSW_BMSDay;
extern volatile uint8_T BSW_BMSHour;
extern volatile uint8_T BSW_BMSMinute;
extern volatile uint8_T BSW_BMSSecond;

extern volatile uint16_T EolYear;
extern volatile uint8_T EolMonth;
extern volatile uint8_T EolDay;
extern volatile uint8_T EolHour;
extern volatile uint8_T EolMinute;
extern volatile uint8_T EolSecond;

//extern volatile uint16 COMR_YearSet ;
extern volatile uint8 COMR_MonthSet;
//extern volatile uint8 COMR_DaySet ;
extern volatile uint8 COMR_HourSet;
extern volatile uint8 COMR_MinSet;
extern volatile uint8 COMR_SecondSet;

extern volatile real32_T BSWPowerOffCase;
extern volatile real32_T BSWPowerOffNormal;

extern volatile boolean_T COMR_bStopTimeVldFlg;

extern uint32 OBC_2E0TimeStamp;
extern uint32 OBC_2E1TimeStamp;
extern uint32 OBC_2E4TimeStamp;
extern uint32 VCU_2A3TimeStamp;
extern uint32 VCU_2A5TimeStamp;
extern uint32 VCU_2A7TimeStamp;
extern uint32 VCU_395TimeStamp;
extern uint32 GW_ABM_050TimeStamp;
extern uint32 GW_IVI_37FTimeStamp;
extern uint32 VCU_405TimeStamp;
extern uint32 VCU_0B5TimeStamp;
extern uint32 GW_2DFTimeStamp;
extern uint32 GW_CCM_2F1TimeStamp;
extern uint32 GW_TBOX_28CTimeStamp;
extern uint32 DCDC_406TimeStamp;
extern uint32 MCU_401TimeStamp;
extern uint32 OBC_403TimeStamp;
extern uint32 EGS_404TimeStamp;
extern uint32 GW_400TimeStamp;

extern volatile boolean_T VCU_NMActwake;
extern volatile boolean_T VCU_NMRepeatReq;
extern volatile boolean_T OBC_NMActwake;
extern volatile boolean_T OBC_NMRepeatReq;
extern volatile boolean_T MCU_NMActwake;
extern volatile boolean_T MCU_NMRepeatReq;
extern volatile boolean_T EGS_NMActwake;
extern volatile boolean_T EGS_NMRepeatReq;
extern volatile boolean_T GW_NMActwake;
extern volatile boolean_T GW_NMRepeatReq;

extern volatile uint8_T COMR_cntRCMsg2C0;
extern volatile uint8_T COMR_valChkSumMsg2C0;

extern volatile uint8_T COMR_cntRCMsg2C5;
extern volatile uint8_T COMR_valChkSumMsg2C5;

extern volatile uint8_T COMR_cntRCMsg2C2;
extern volatile uint8_T COMR_valChkSumMsg2C2;

extern volatile uint8_T COMR_cntRCMsg2CA;
extern volatile uint8_T COMR_valChkSumMsg2CA;
extern volatile uint8_T COMR_cntRCMsg09D;
extern volatile uint8_T COMR_valChkSumMsg09D;

extern volatile real32_T BSER_rSoh;

extern volatile uint8_T COMR_cntRCMsg2C8;
extern volatile uint8_T COMR_valChkSumMsg2C8;

extern volatile boolean_T BCMR_stBmsCCFdbk;
extern volatile uint8_T COMR_cntRCMsg2C7;
extern volatile uint8_T COMR_valChkSumMsg2C7;
extern volatile boolean_T BSPR_bBattTempSnsrFault;

extern volatile boolean_T BCMR_tDChrgIfcOvrTemp;
extern volatile boolean_T BCMR_bCurrOutRngFault;

extern volatile boolean_T BCMR_bVoltOutRngFault;
extern volatile boolean_T BSPR_bBattTempFault;

extern volatile boolean_T BSPR_bBoardUndrTempFault;
extern volatile boolean_T BSPR_bBoardOvrTempFault;
extern volatile boolean_T BSPR_bCellTempCnstFault;
extern volatile boolean_T BSPR_bBoardDiffTempFault;

extern volatile boolean_T BSPR_bClntUsTHiFault;
extern volatile boolean_T BSPR_bClntUsTLoFault;
extern volatile boolean_T BSPR_bClntDsTHiFault;
extern volatile boolean_T BSPR_bClntDsTLoFault;

extern volatile boolean_T COMR_bSysMishFault;
extern volatile boolean_T BSER_bOvrChrgFault;

extern volatile real32_T BTMR_tClntTgtTemp;
extern volatile real32_T BTMR_tHtTgtTemp;

extern volatile real32_T BTMR_tDiffClntTgtUsT;
extern volatile real32_T BTMR_tDiffHtTgtUsT;

extern volatile uint8_T COMR_cntDtcQtty;
extern volatile uint8_T COMR_cntDtcInd;
extern volatile uint32_T COMR_cntDtcCode_A;
extern volatile uint32_T COMR_cntDtcCode_B;
extern volatile uint8_T COMR_flgBmsSrceID;
extern volatile boolean_T COMR_flgBmsWkUp;
extern volatile boolean_T COMR_flgBmsRptReq;
extern volatile boolean_T COMR_flgBmsRptFromSlp;
extern volatile boolean_T COMR_flgBmsRptFromPrepr;
extern volatile boolean_T COMR_flgBmsRptFromNorm;
extern volatile boolean_T COMR_flgBmsRptFromRdy;
extern volatile boolean_T COMR_flgBmsNormFromRpt;
extern volatile boolean_T COMR_flgBmsNormFromRdy;
extern volatile uint8_T COMR_flgBmsWkSrce;
extern volatile boolean_T COMR_flgBmsActSrce_A;
extern volatile boolean_T COMR_flgBmsActSrce_B;
extern volatile uint8 COMR_stCrashSgl;

//Dummy for BCMR
extern volatile boolean_T COMR_flgObcNetWkup;

extern volatile boolean_T COMR_bDcCanBusOff;
extern volatile boolean_T BSER_bSocFaultVldFlg;
extern volatile boolean_T COMR_flgObcWkUp;

extern volatile real32_T BSPR_iCurrOfsAdap_nvm;

extern volatile real32_T BSPR_rNvmSocAvrg;
extern volatile real32_T BSPR_rDsplNvmSoc;
extern volatile real32_T BSPR_rNvmSocMax;
extern volatile real32_T BSPR_rNvmSocMin;

extern volatile uint16_T COMR_BMSYear_nvm;
extern volatile uint8_T COMR_BMSMonth_nvm;
extern volatile uint8_T COMR_BMSDay_nvm;
extern volatile uint8_T COMR_BMSHour_nvm;
extern volatile uint8_T COMR_BMSMinute_nvm;
extern volatile uint8_T COMR_BMSSecond_nvm;

extern volatile uint8_T NVM_bIsRead;

//Dummy for can
extern volatile boolean_T BSER_bSocHiFault;
extern volatile boolean_T BSER_bSocHopFault;
extern volatile boolean_T BSER_bSocLoFault;
extern volatile boolean_T BSER_bSocResFault;
extern volatile boolean_T BSER_bBattOvrVoltFault;
extern volatile boolean_T BSER_bBattUndrVoltFault;
extern volatile boolean_T BSER_bBattOvrCurrFault;

//Dummy for BCCR
extern volatile boolean_T BSER_flgCtrCtrlFault;
extern volatile boolean_T BSER_bBattCurrSglFault;

extern volatile boolean_T BSER_flgDChrgVoltSnsrFault;
extern volatile boolean_T BSER_flgDChrgCtrCtrlFault;

//Dummy for BSPR_BattVoltDiag
extern volatile boolean_T BSPR_flgBattVoltErr;
extern volatile boolean_T BSPR_flgDChrgVoltErr;
extern volatile boolean_T BSPR_flgPackVoltErr;

//Dummy for Balance
extern volatile uint8_T BSPR_bWkSrc;

//Dummy for HVSR
extern volatile uint8_T UDSR_bBalReqEx[96];

//Dummy for DSMR
extern volatile uint8_T DFC_CscCellTempOpenLine_ASW;
extern volatile uint8_T DFC_CscCellVoltOpenLine_ASW;
//extern volatile uint8_T DFC_OutClntOverTmp_ASW;
//extern volatile uint8_T DFC_CurrRngErr_ASW;
//extern volatile uint8_T DFC_BattVoltRngErr_ASW;
extern volatile uint8_T DFC_FuseNpl_ASW;
//extern volatile uint8_T DFC_DChrgTCnntMax_ASW;
extern volatile uint8_T DFC_CmcBordOTMax_ASW;

extern volatile boolean_T COMR_bIsoResCalShieldCmd;

//Dummy for CAN_Pro
extern volatile uint8_T BCMR_stAppChgMode;
extern volatile uint8_T BCMR_stDChrgRchSocLmt;
extern volatile uint8_T BCMR_stDChrgRchPackVoltLmt;
extern volatile uint8_T BCMR_stPcbOvrTempErr;

// extern volatile boolean_T BTMR_bThmRunAway;
extern volatile boolean_T BCMR_bDChrgStVoltOut;
extern volatile boolean_T BCMR_bObcRdyReq;

extern volatile uint8_T DFC_IsoChkLv3_ASW;
extern volatile boolean_T COMR_stChrgEn;
extern volatile boolean_T COMR_bChrgDisable;
//extern volatile boolean_T FaultStatus[120];

//extern volatile boolean COMR_flgAcmDistVld ;
extern volatile uint8_T COMR_stUdsMainHvClsReq;

extern volatile uint8_T COMR_stUdsDcCircuitClsReq;

//extern volatile boolean_T BSER_flgSocSave_pre;
extern volatile boolean_T COMR_bUdsAutoAdrsEna;
extern volatile uint8 COMR_stPwrUpDwnVcuReq;

extern volatile boolean_T COMR_DFC_DcCanBusOff;
extern volatile boolean_T COMR_DFC_VeCanBusOff;

extern volatile boolean_T COMR_DFC_Msg17DTmt;       /* '<S197>/rff_cti' */
extern volatile boolean_T COMR_DFC_ChkSumMsg2EBErr; /* '<S192>/rff_cti' */
extern volatile boolean_T COMR_DFC_Msg2EBTmt;       /* '<S188>/rff_cti' */
extern volatile boolean_T COMR_DFC_RcMsg2E6Mis;     /* '<S184>/rff_cti' */
extern volatile boolean_T COMR_DFC_ChkSumMsg2E6Err; /* '<S180>/rff_cti' */
extern volatile boolean_T COMR_DFC_Msg2E6Tmt;       /* '<S176>/rff_cti' */
extern volatile boolean_T COMR_DFC_RcMsg2E1Mis;     /* '<S172>/rff_cti' */
extern volatile boolean_T COMR_DFC_Msg28CTmt;       /* '<S168>/rff_cti' */
extern volatile boolean_T COMR_DFC_Msg37FTmt;       /* '<S164>/rff_cti' */
extern volatile boolean_T COMR_DFC_Msg195Tmt;       /* '<S160>/rff_cti' */
extern volatile boolean_T COMR_DFC_ChkSumMsg2E1Err; /* '<S156>/rff_cti' */
extern volatile boolean_T COMR_DFC_Msg2F1Tmt;       /* '<S152>/rff_cti' */
extern volatile boolean_T COMR_DFC_RcMsg050Mis;     /* '<S148>/rff_cti' */
extern volatile boolean_T COMR_DFC_ChkSumMsg050Err; /* '<S144>/rff_cti' */
extern volatile boolean_T COMR_DFC_Msg050Tmt;       /* '<S140>/rff_cti' */
extern volatile boolean_T COMR_DFC_Msg3AATmt;       /* '<S136>/rff_cti' */
extern volatile boolean_T COMR_DFC_Msg2DFTmt;       /* '<S132>/rff_cti' */
extern volatile boolean_T COMR_DFC_Msg2BBTmt;       /* '<S128>/rff_cti' */
extern volatile boolean_T COMR_DFC_Msg2ADTmt;       /* '<S124>/rff_cti' */
extern volatile boolean_T COMR_DFC_RcMsg2A7Mis;     /* '<S120>/rff_cti' */
extern volatile boolean_T COMR_DFC_ChkSumMsg2A7Err; /* '<S116>/rff_cti' */
extern volatile boolean_T COMR_DFC_Msg2E1Tmt;       /* '<S112>/rff_cti' */
extern volatile boolean_T COMR_DFC_Msg2A7Tmt;       /* '<S108>/rff_cti' */
extern volatile boolean_T COMR_DFC_RcMsg2A5Mis;     /* '<S104>/rff_cti' */
extern volatile boolean_T COMR_DFC_ChkSumMsg2A5Err; /* '<S100>/rff_cti' */
extern volatile boolean_T COMR_DFC_Msg2A5Tmt;       /* '<S96>/rff_cti' */
extern volatile boolean_T COMR_DFC_RcMsg2A3Mis;     /* '<S92>/rff_cti' */
extern volatile boolean_T COMR_DFC_ChkSumMsg2A3Err; /* '<S88>/rff_cti' */
extern volatile boolean_T COMR_DFC_Msg2A3Tmt;       /* '<S84>/rff_cti' */
extern volatile boolean_T COMR_DFC_Msg0B5Tmt;       /* '<S80>/rff_cti' */
extern volatile boolean_T COMR_DFC_MsgCABTmt;       /* '<S76>/rff_cti' */
extern volatile boolean_T COMR_DFC_RcMsg2EBMis;     /* '<S72>/rff_cti' */
extern volatile boolean_T COMR_DFC_Msg130Tmt;       /* '<S68>/rff_cti' */

extern volatile boolean_T BMCR_bOutputVolt12vEna;
extern volatile uint8_T GcRTE_BIDNumbIndex_numb;
extern volatile uint8_T GcRTE_AfeIndex_numb;
extern volatile uint16_T GcISP_VersionHashValue_numb;
extern volatile uint8_T GcRTE_VersionHashIndex_numb;
extern volatile uint8_T GcRTE_VersionHashValue_numb;

/* Diag */
extern volatile boolean_T GbRTE_MainPwrUpReq_flg;
extern volatile boolean_T GbRTE_DChrgPwrUpReq_flg;

extern volatile uint32_T COMR_BMSSleepScndTime;
extern volatile boolean_T COMR_bBMSScndVldFlg;

extern uint32 CDM3_DIAGTimeStamp;
extern uint32 CDM2_DIAGTimeStamp;
extern uint32 CDM1_DIAGTimeStamp;
extern uint32 CSD_P4TimeStamp;
extern uint32 CST_P3TimeStamp;
extern uint32 CCS_P3TimeStamp;
extern uint32 CRO_P2TimeStamp;
extern uint32 CML_P2TimeStamp;
extern uint32 CTS_P2TimeStamp;
extern uint32 CEM_ERRTimeStamp;
extern uint32 CDM6_DIAGTimeStamp;
extern uint32 CDM5_DIAGTimeStamp;
extern uint32 CDM4_DIAGTimeStamp;
extern uint32 CHM_P1TimeStamp;
extern uint32 CRM_P1TimeStamp;

extern volatile boolean PIN28_State;
extern volatile real32_T BSER_rBattRes;

extern volatile uint16_T GcRTE_EvccDtc_numb;

extern volatile uint8 GaISP_AFEComLost_numb[8];
extern volatile uint8 GaISP_AFECellVoltUpdErr_numb[112];
extern volatile uint8 GaISP_AFECellTempUpdErr_numb[48];
extern volatile uint16 GaISP_AFESampleErr_numb[8];
extern volatile uint8 GaISP_AFECellVoltLineOpen_numb[112];
extern volatile uint8 GaISP_AFEGpioLineOpen_numb[48];
extern volatile uint8 GaISP_AFEAdcRelatedErr_numb[112];
extern volatile uint8 GaISP_AFEDiagModeExitErr_numb[8];
extern volatile uint16 GaISP_AFEOtherErr_numb[8];

extern volatile uint8_T COMR_stBalCirOpenFlt_A[8];
extern volatile uint8_T COMR_stBalCirShortFlt_A[8];
extern volatile uint8_T COMR_stHVSmplComFlt;

extern volatile uint16_T BSPR_stMPosLsdSta;
extern volatile uint16_T BSPR_stMNegLsdSta;
extern volatile uint16_T BSPR_stDcPosLsdSta;
extern volatile uint16_T BSPR_stDcNegLsdSta;

extern volatile boolean_T GaBSW_CellVoltVld_flg[96];
extern volatile real32_T GaBSW_CellTempVolt_V[48];
extern volatile real32_T GaBSW_BusbarTempVolt_V[48];
extern volatile boolean_T GaBSW_CellTempVld_flg[48];
extern volatile boolean_T GaBSW_BusbarTempVld_flg[48];
extern volatile boolean_T GeBSW_CellTempThmRnwyVld_enum[48];
extern volatile boolean_T GeBSW_BusbarTempThmRnwyVld_enum[48];

extern volatile boolean_T GbBSW_CellVoltVldAll_flg;
extern volatile boolean_T GbBSW_CellTempVldAll_flg;
extern volatile boolean_T GbBSW_BusbarTempVldAll_flg;
extern volatile boolean_T GbBSW_ModTempVldAll_flg;

extern volatile uint16 GaBSW_VAFETmp_numb[8];
extern volatile uint8 GaBSW_VAFETmpDiag_numb[8];
extern volatile uint8 GbBSW_VAFETmpVld_flg;

/* 项目变量 */
extern volatile uint8 GeRTE_PrjEdition_enum; /* 8611: 0, 891: 1 */
/* 国欧标定 */
extern volatile uint8 GeRTE_AreaEdition_enum; /* 国版 0, 欧版 1 */
/* 电芯标定 */
extern volatile uint8 GeRTE_CapEdition_enum; /* 电芯标定 */
/* 电芯温度个数 */
extern volatile uint8 GcRTE_CellTempNumb_numb;
/* Busbar温度个数 */
extern volatile uint8 GcRTE_BusbarTempNumb_numb;
/* 电芯温度点AFE MAP*/
extern volatile uint8 GaRTE_CellTempAFEMap_numb[48];
/* Busbar温度点AFE MAP*/
extern volatile uint8 GaRTE_BusbarTempAFEMap_numb[48];

extern volatile uint8_T GeRTE_LastShutdownState_enum;

extern volatile boolean_T DFC_ThmRnwyWarn_ASW;
extern volatile boolean_T DFC_CalCANBusOff_ASW;
extern volatile boolean_T DFC_SBCSplyPwrOvrCurr_ASW;
extern volatile boolean_T DFC_SBCSplyPwrOvrVolt_ASW;
extern volatile boolean_T DFC_SBCSplyPwrUnderVolt_ASW;
extern volatile boolean_T DFC_HVSmplSigErr_ASW;
extern volatile boolean_T DFC_HVSmplSplyFlt_ASW;
// extern volatile boolean_T DFC_BMSSplyPwrAbnToCAB_ASW;
extern volatile boolean_T DFC_BattSohChk_ASW;
extern volatile boolean_T DFC_PchgOvrCurrFlt_ASW;

extern volatile boolean_T DFC_MCUResetFlt_ASW;
extern volatile boolean_T DFC_AFESplyFlt_ASW;
extern volatile boolean_T DFC_NVMReadError_ASW;
extern volatile boolean_T DFC_KL30Shutdown_ASW;

extern volatile boolean_T BTMR_flgHighCellVoltRd;
extern volatile boolean_T BTMR_flgLowCellVoltRd;
extern volatile uint8_T BTMR_idxMaxEndVoltRd;
extern volatile uint8_T BTMR_idxMinEndVoltRd;
extern volatile real32_T BTMR_uMaxVoltRd;
extern volatile real32_T BTMR_uMinVoltRd;

extern volatile uint8_T GeBSW_StopTimeStd_enum;
extern volatile boolean_T GbBSW_NvmShutdownVld_flg;
extern volatile boolean_T GbBSW_NvmRealtimeVld_flg;

extern volatile uint16_T COMR_YearSetNvmRd;
extern volatile uint8_T COMR_MonthSetNvmRd;
extern volatile uint8_T COMR_DaySetNvmRd;
extern volatile uint8_T COMR_HourSetNvmRd;
extern volatile uint8_T COMR_MinSetNvmRd;

extern volatile uint16_T GaISP_CellVoltUpdCnt_numb[112];
extern volatile uint16_T GaISP_ModTempUpdCnt_numb[48];

extern volatile boolean_T GbBSW_DispSOCOverWrite_flg;
extern volatile uint8_T GcBSW_DispSOCOverWrite_pct;
extern volatile boolean_T GbBSW_RealSOCOverWrite_flg;
extern volatile uint8_T GcBSW_RealSOCOverWrite_pct;

extern volatile uint8_T DFC_AFEResetFlt_ASW;
extern volatile uint8_T DFC_PreHeatErr_ASW;
extern volatile uint8_T DFC_MposRlyDrvOvrCurr_ASW;
extern volatile uint8_T DFC_MNegRlyDrvOvrCurr_ASW;
extern volatile uint8_T DFC_DChrgPosRlyDrvOvrCurr_ASW;
extern volatile uint8_T DFC_DChrgNegRlyDrvOvrCurr_ASW;
extern volatile uint8_T DFC_PreRlyDrvScb_ASW;
extern volatile uint8_T DFC_PreRlyDrvScg_ASW;
extern volatile uint8_T DFC_PreRlyDrvOL_ASW;
extern volatile uint8_T DFC_PrRlyDrvOvrCurr_ASW;
extern volatile uint8_T DFC_ChrgCmuLost_ASW;/* Max fault of battery soc out of range high */
extern volatile uint8_T DFC_DisChrgCmuLost_ASW;/* Min fault of battery soc out of range high */

extern volatile uint16_T COMR_pMaxpwrObcChrg;

extern volatile uint8_T GcISP_ChkSumMsg050_numb;
extern volatile uint8_T GcISP_RcMsg050_numb;

extern volatile uint8_T COMR_stHoldTempVcuPermit;
extern volatile uint8_T COMR_stHoldTempEna;
extern volatile boolean_T COMR_bIviHoldTempSW;
extern volatile boolean_T COMR_bIviHoldTempTimer;

extern volatile uint8_T COMR_stHoldTempReq;
extern volatile real32_T COMR_tiPreThemaltime;

extern volatile uint8_T BCMR_stHoldTempMode;
extern volatile uint8_T BCMR_stHoldTempReq;
extern volatile uint32_T BSPR_TotalOdometer;

extern volatile uint8_T DFC_ThmRnwyAlarm_ASW;

extern volatile boolean_T GbISP_CellVoltUpd_flg;
extern volatile boolean_T GbISP_CellTempUpd_flg;
extern volatile boolean_T GbISP_BusbarTempUpd_flg;

extern volatile uint32_T BSER_rSocAvrg_Nvm;
extern volatile uint32_T BSER_rSocMax_Nvm;
extern volatile uint32_T BSER_rSocMin_Nvm;
extern volatile uint32_T BSER_rSocDspl_Nvm;

extern volatile uint32_T BCCR_uDChrgNegVoltStgFrstMax_Nvm;
extern volatile uint32_T BSPR_uPackVoltRawEnd_Nvm;
extern volatile uint32_T BSER_cSocDchAhFulRev_Nvm;

extern volatile uint32_T BSPR_iCurrOfsAdap_Nvm;
extern volatile uint8_T BSW_stNvmShutDown;
extern volatile uint8_T BSW_stNvmRunning;

extern volatile uint8_T GeISP_CellVoltValid_enum;
extern volatile uint8_T GeISP_CellTempValid_enum;

extern volatile uint8_T GcISP_Diag10MainID_numb;
extern volatile uint8_T GcISP_Diag10SubID_numb;
extern volatile uint8_T GcISP_Diag11MainID_numb;
extern volatile uint8_T GcISP_Diag11SubID_numb;
extern volatile uint8_T GbISP_Diag10EOK_flg;
extern volatile uint8_T GbISP_Diag11EOK_flg;

extern volatile uint32_T BTMR_tiShortRuntimeSumRd;
extern volatile uint8_T BTMR_idxShrtLowVoltIDRd;
extern volatile real32_T BTMR_uShrtCellVoltDiffRd;
extern volatile boolean_T BTMR_bShrtLowVoltIDFitRd;
extern volatile uint16_T BTMR_tiRuntimeCalRd;

extern volatile boolean_T GbRTE_BMSChgModeHold_flg;
extern volatile uint8_T BMS_GB_ChgMode_last;
#endif

/*<--------EOF-------->*/