浏览代码

平峰项目测试,删除重卡代码,重卡重新进行分支

CHENJIE-PC\QiXiang_CHENJIE 3 年之前
父节点
当前提交
87cbc004a2
共有 7 个文件被更改,包括 19 次插入3156 次删除
  1. 0 341
      src/AppGlobalVar.c
  2. 4 215
      src/AppGlobalVar.h
  3. 0 2366
      src/AppTaskCan.c
  4. 0 5
      src/AppTaskCan.h
  5. 15 6
      src/AppTaskUart0.c
  6. 0 218
      src/AppTaskUart1.c
  7. 0 5
      src/main.c

+ 0 - 341
src/AppGlobalVar.c

@@ -99,344 +99,3 @@ uint8 battSeparateEnable = 0;
 uint8 battSeparateEnableState = 0;
 uint16 ErrorArray[5] = {0};
 #endif
-/*以下变量均为App_CAN相关变量*/
-#ifdef APP_CAN_ENABLE
-// VCU相关
-uint16 bmsHwVersion = 0;
-uint32 bmsSwVersion = 0;
-uint8 vehicleStatus = 0;
-uint8 bmsHVOn = 0;
-uint8 currentGearPosition = 0;
-uint8 parkingBreakStatus = 0;
-uint8 breakingStatus = 0;
-uint32 ODO = 0;
-uint8 dcdcWorkStatus = 0;
-uint8 numOfChrgableSubsys = 0;
-uint8 chrgableSubsysCode = 0;
-uint8 ebcStatus = 0;
-uint8 ebcAskHVOn = 0;
-uint8 ebcAskHVOff = 0;
-uint8 retainLockSignal = 0;
-uint8 dischargeLockSignal = 0;
-uint8 chargeLockSignal = 0;
-uint8 chargeFlag = 0;
-uint16 vcuDCVol = 0;
-// Bcu相关
-uint32 BcuInTable[130] = {
-	0x1801EFF4,
-	0x1801FBF4,
-	0x1802FBF4,
-	0x1803FBF4,
-	0x1804FBF4,
-	0x1805FBF4,
-	0x1806FBF4,
-	0x1807FBF4,
-	0x1808FBF4,
-	0x1809FBF4,
-	0x180AFBF4,
-	0x180BFBF4,
-	0x180CFBF4,
-	0x180DFBF4,
-	0x180EFBF4,
-	0x180FFBF4,
-	0x1810FBF4,
-	0x1811FBF4,
-	0x1812FBF4,
-	0x1813FBF4,
-	0x1814FBF4,
-	0x1815FBF4,
-	0x1816FBF4,
-	0x1817FBF4,
-	0x1818FBF4,
-	0x1819FBF4,
-	0x181AFBF4,
-	0x181BFBF4,
-	0x181CFBF4,
-	0x181DFBF4,
-	0x181EFBF4,
-	0x181FFBF4,
-	0x1820FBF4,
-	0x1821FBF4,
-	0x1822FBF4,
-	0x1823FBF4,
-	0x1824FBF4,
-	0x1825FBF4,
-	0x1826FBF4,
-	0x1827FBF4,
-	0x1828FBF4,
-	0x1829FBF4,
-	0x182AFBF4,
-	0x182BFBF4,
-	0x182CFBF4,
-	0x182DFBF4,
-	0x182EFBF4,
-	0x182FFBF4,
-	0x1830FBF4,
-	0x1831FBF4,
-	0x1832FBF4,
-	0x1833FBF4,
-	0x1834FBF4,
-	0x1835FBF4,
-	0x1836FBF4,
-	0x1837FBF4,
-	0x1838FBF4,
-	0x1839FBF4,
-	0x183AFBF4,
-	0x183BFBF4,
-	0x183CFBF4,
-	0x183DFBF4,
-	0x183EFBF4,
-	0x183FFBF4,
-	0x1840FBF4,
-	0x1841FBF4,
-	0x1842FBF4,
-	0x1843FBF4,
-	0x1844FBF4,
-	0x1845FBF4,
-	0x1846FBF4,
-	0x1847FBF4,
-	0x1848FBF4,
-	0x1849FBF4,
-	0x184AFBF4,
-	0x184BFBF4,
-	0x184CFBF4,
-	0x184DFBF4,
-	0x184EFBF4,
-	0x184FFBF4,
-	0x1850FBF4,
-	0x1851FBF4,
-	0x1852FBF4,
-	0x1853FBF4,
-	0x1854FBF4,
-	0x1855FBF4,
-	0x1856FBF4,
-	0x1857FBF4,
-	0x1858FBF4,
-	0x1859FBF4,
-	0x185AFBF4,
-	0x185BFBF4,
-	0x185CFBF4,
-	0x185DFBF4,
-	0x185EFBF4,
-	0x185FFBF4,
-	0x1860FBF4,
-	0x1881EFF4,
-	0x1882EFF4,
-	0x1883EFF4,
-	0x1884EFF4,
-	0x1885EFF4,
-	0x1886EFF4,
-	0x1887EFF4,
-	0x1888EFF4,
-	0x1889EFF4,
-	0x18A0FBF4,
-	0x18A1FBF4,
-	0x18A2FBF4,
-	0x18A3FBF4,
-	0x18A4FBF4,
-	0x18A5FBF4,
-	0x18A6FBF4,
-	0x18E1EFF4,
-	0x18E2EFF4,
-	0x18E3EFF4,
-	0x18E4EFF4,
-	0x18FEDAF4,
-	0x18FF23F4,
-	0x18FF24F4,
-	0x18FF25F4,
-	0x18FF30F4,
-	0x18FF45F4,
-	0x18FFC13A,
-	0x18FFD4F4,
-	0x18FFD5F4,
-	0x18FFD6F4,
-	0x18FFD7F4,
-	0x18FFD8F4,
-	0x18FFD9F4,
-};
-bool BcuRxShortError[130];
-bool BcuRxLongError[130];
-uint8 BcuRxErrorCounter[130];
-uint8 BcuRxFlag[130];
-/************************************************************
- *BCU->4G解码变量存放区
- ************************************************************/
-uint8 BMS13_ReqVIN = 0x00;						   // BMS请求VIN码标志,0-无请求 1-请求,精度_1,偏移量_0,单位_
-uint8 BMS11_Fult1_DelTemp = 0x00;				   //电芯温差异常报警,0-正常  1-1级 轻微故障 2-2级 较严重故障 3-3级 最严重故障,精度_1,偏移量_0,单位_
-uint8 BMS11_Fult1_OverTemp = 0x00;				   //电芯温度过高报警,0-正常  1-1级 轻微故障 2-2级 较严重故障 3-3级 最严重故障,精度_1,偏移量_0,单位_
-uint8 BMS11_Fult1_PackOverHVolt = 0x00;			   // PACK过压报警,0-正常  1-1级 轻微故障 2-2级 较严重故障 3-3级 最严重故障,精度_1,偏移量_0,单位_
-uint8 BMS11_Fult1_PackLowHVolt = 0x00;			   // PACK欠压报警,0-正常  1-1级 轻微故障 2-2级 较严重故障 3-4级 最严重故障,精度_1,偏移量_0,单位_
-uint8 BMS11_Fult1_LowSOC = 0x00;				   // SOC过低报警,0-正常  1-1级 轻微故障 2-2级 较严重故障 3-5级 最严重故障,精度_1,偏移量_0,单位_
-uint8 BMS11_Fult1_OverUcell = 0x00;				   //单体电压过高报警,0-正常  1-1级 轻微故障 2-2级 较严重故障 3-6级 最严重故障,精度_1,偏移量_0,单位_
-uint8 BMS11_Fult1_LowUcell = 0x00;				   //单体电压欠压报警,0-正常  1-1级 轻微故障 2-2级 较严重故障 3-7级 最严重故障,精度_1,偏移量_0,单位_
-uint8 BMS11_Fult1_LowInsRes = 0x00;				   //绝缘报警,0-正常  1-1级 轻微故障 2-2级 较严重故障 3-8级 最严重故障,精度_1,偏移量_0,单位_
-uint8 BMS11_Fult1_UcellUniformity = 0x00;		   //电池一致性差报警,0-正常  1-1级 轻微故障 2-2级 较严重故障 3-9级 最严重故障,精度_1,偏移量_0,单位_
-uint8 BMS11_Fult1_OverChg = 0x00;				   //车载储能装置过充报警,0-正常  1-1级 轻微故障 2-2级 较严重故障 3-10级 最严重故障,精度_1,偏移量_0,单位_
-uint8 BMS11_Fult1_OverSOC = 0x00;				   // SOC过高报警,0-正常  1-1级 轻微故障 2-2级 较严重故障 3-11级 最严重故障,精度_1,偏移量_0,单位_
-uint8 BMS11_Fult1_SOCChangeFast = 0x00;			   // SOC跳变报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS11_Fult1_BatSysNotMatch = 0x00;		   //可充电储能系统不匹配报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS11_Fult1_HVILFault = 0x00;				   //高压互锁报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_FaultNum = 0x00;				   // BMS当前发生的故障总数目(包括GB32960中规定的故障数目) 精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_CellOverDischrg = 0x00;		   //电芯过放故障,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_CellLowTemp = 0x00;			   //电芯低温报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_PackFireWarning = 0x00;		   //电池包火灾报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_OverDischrgCurr = 0x00;		   //放电电流超限报警,0-正常  1-1级 轻微故障 2-2级 较严重故障 3-11级 最严重故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_OverChrgCurrInTheDrive = 0x00;   //回充电流超限报警,0-正常  1-1级 轻微故障 2-2级 较严重故障 3-11级 最严重故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_CurrSensorErr = 0x00;			   //电流传感器故障,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_PowerSupplyErr = 0x00;		   // BMS低压供电电压异常报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_TMSErr = 0x00;				   //热管理机组故障,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_HeatingFilmErr = 0x00;		   //加热膜加热回路故障,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_PackSelfProtect = 0x00;		   //电池包自保护故障,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_MainLoopPrechrgErr = 0x00;	   //主回路预充或预检故障,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_AuxLoopPrechrgErr = 0x00;		   //辅件回路预充或预检故障,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_ChrgInsLowErr = 0x00;			   //充电绝缘阻值低,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_ACANLost = 0x00;				   // ACAN通讯故障,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_InnerCommunicationErr = 0x00;	   // BMS内部通信故障,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_DCDCErr = 0x00;				   // BMS-DC-DC故障,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_BranchBreakErr = 0x00;		   //支路断路故障报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_HeatRelayOpenErr = 0x00;		   //加热膜或TMS接触器故障无法闭合报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_HeatRelayWeldErr = 0x00;		   //加热膜或TMS接触器故障无法断开报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_MainPosRelayOpenErr = 0x00;	   //主正接触器无法闭合故障报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_MainPosRelayWeldErr = 0x00;	   //主正接触器无法断开故障报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_MainNegRelayOpenErr = 0x00;	   //主负接触器无法闭合故障报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_MainNegRelayWeldErr = 0x00;	   //主负接触器无法断开故障报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_DCChrgPos1RelayOpenErr = 0x00;   //直流充电A正接触器无法闭合故障报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_DCChrgPos1RelayWeldErr = 0x00;   //直流充电A正接触器无法断开故障报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_DCChrgNeg1RelayOpenErr = 0x00;   //直流充电A负接触器无法闭合故障报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_DCChrgNeg1RelayWeldErr = 0x00;   //直流充电A负接触器无法断开故障报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_DCChrgPos2RelayOpenErr = 0x00;   //直流充电B正接触器无法闭合故障报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_DCChrgPos2RelayWeldErr = 0x00;   //直流充电B正接触器无法断开故障报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_DCChrgNeg2RelayOpenErr = 0x00;   //直流充电B负接触器无法闭合故障报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_DCChrgNeg2RelayWeldErr = 0x00;   //直流充电B负接触器无法断开故障报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_ChrgConnectErr = 0x00;		   //插枪连接信号异常,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_ult2_OverDischrgCurrWhenInChrg = 0x00; //充电时放电电流过大,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_OverChrgCurrInTheChrg = 0x00;	   //充电电流超限报警,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_ChrgNTCErr = 0x00;			   //充电插座NTC故障,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_ChrgNTCTempOver = 0x00;		   //充电插座过温报警,0-正常  1-1级 轻微故障 2-2级 较严重故障 3-3级 最严重故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_ELockErr = 0x00;				   //电子锁故障,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_FireDetectorEr = 0x00;		   //火警探测器故障,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_ContiDischrgCurrOverLoad = 0x00; //持续回充过流故障,0-正常  1-1级 轻微故障 2-2级 较严重故障 3-11级 最严重故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_SOCDifferErr = 0x00;			   // SOC差异过大,0-正常  1-故障,精度_1,偏移量_0,单位_
-uint8 BMS12_Fult2_ContiChrgCurrOverLoad = 0x00;	   //持续放电过流故障,0-正常  1-1级 轻微故障 2-2级 较严重故障 3-11级 最严重故障,精度_1,偏移量_0,单位_
-uint8 BMS1_MainPosRelaySt = 0x00;				   //主正继电器状态,0-预留 1-断开 2-吸合  ,精度_1,偏移量_0,单位_
-uint8 BMS1_MainNegRelaySt = 0x00;				   //主负继电器状态,0-预留 1-断开 2-吸合  ,精度_1,偏移量_0,单位_
-uint8 BMS1_PreChgRelaySt = 0x00;				   //预充继电器状态,0-预留 1-断开 2-吸合  ,精度_1,偏移量_0,单位_
-uint8 BMS1_DCChrgPos1RelaySt = 0x00;			   //直流充正继电器1状态,0-预留 1-断开 2-吸合  ,精度_1,偏移量_0,单位_
-uint8 BMS1_DCChrgNeg1RelaySt = 0x00;			   //直流充负继电器1状态,0-预留 1-断开 2-吸合  ,精度_1,偏移量_0,单位_
-uint8 BMS1_DCChrgPos2RelaySt = 0x00;			   //直流充正继电器2状态,0-预留 1-断开 2-吸合  ,精度_1,偏移量_0,单位_
-uint8 BMS1_DCChrgNeg2RelaySt = 0x00;			   //直流充负继电器2状态,0-预留 1-断开 2-吸合  ,精度_1,偏移量_0,单位_
-uint8 BMS1_HeatPosRelaySt = 0x00;				   //加热正继电器状态,0-预留 1-断开 2-吸合  ,精度_1,偏移量_0,单位_
-uint8 BMS1_HeatNegRelaySt = 0x00;				   //加热负继电器状态,0-预留 1-断开 2-吸合  ,精度_1,偏移量_0,单位_
-uint8 BMS1_SysSts = 0x00;						   //电池管理系统工作状态,0-初始化 1-自检完成允许上电 2-运行状态 3-高压切断 4-故障状态,精度_1,偏移量_0,单位_
-uint8 BMS1_Life = 0x00;							   // BMS生命信号 精度_1,偏移量_1,单位_
-uint8 BMS1_BalanceStatus = 0x00;				   // BMS当前均衡状态,0-未均衡 1-均衡中,精度_1,偏移量_0,单位_
-uint8 BMS1_DCChrgConnectSt = 0x00;				   //直流充电枪连接状态,0-未连接 1-单枪连接 2-双枪连接 3-无效,精度_1,偏移量_0,单位_
-uint8 BMS1_ChrgMode = 0x00;						   // BMS当前充电模式,0-未充电 1-直流充电 2-交流充电 3-其他充电模式,精度_1,偏移量_0,单位_
-uint8 BMS1_ChrgStatus = 0x00;					   //充电状态,0-未充电 1-充电中 2-充电已完成 3-充电错误故障,精度_1,偏移量_0,单位_
-uint8 BMS1_HeatingStatus = 0x00;				   //当前加热状态,0-未加热 1-加热中,精度_1,偏移量_0,单位_
-uint8 BMS1_CoolingStatus = 0x00;				   //当前冷却状态,0-未冷却 1-冷却中,精度_1,偏移量_0,单位_
-uint8 BMS2_SOC = 0x00;							   //电池包SOC 精度_0.4,偏移量_0,单位_
-uint8 BMS2_SOH = 0x00;							   //电池包SOH 精度_0.4,偏移量_0,单位_
-uint8 BMS2_FaultCode = 0x00;					   //故障码,见BMS_ErrCode,精度_1,偏移量_0,单位_
-uint8 BMS2_FaultLevel = 0x00;					   //当前最高故障等级,0-正常 1-1级 轻微故障 2-2级 较严重故障 3-3级 最严重故障,精度_1,偏移量_0,单位_
-uint8 BMS2_RqHVPoerOff = 0x00;					   // BMS下高压请求,0-无效 1-请求下高压 2-不请求下高压 3-无效,精度_1,偏移量_0,单位_
-uint8 BMS2_Life = 0x00;							   // BMS生命信号 精度_1,偏移量_0,单位_
-uint8 BMS4_InsDetectorSt = 0x00;				   // BMS绝缘检测状态,0-停止检测  1-激活检测,精度_1,偏移量_0,单位_
-uint8 BMS8_Max_Temp = 0x00;						   //单体最高温度 精度_1,偏移量_-40,单位_℃
-uint8 BMS8_Min_Temp = 0x00;						   //单体最低温度 精度_1,偏移量_-40,单位_℃
-uint8 BMS8_Avg_Temp = 0x00;						   //单体平均温度 精度_1,偏移量_-40,单位_℃
-uint8 BMS8_MaxTempSysNr = 0x00;					   //最高温度子系统号 精度_1,偏移量_0,单位_
-uint8 BMS8_MaxTempNr = 0x00;					   //最高温度探针单体代号 精度_1,偏移量_0,单位_
-uint8 BMS8_MinTempSysNr = 0x00;					   //最低温度子系统号 精度_1,偏移量_0,单位_
-uint8 BMS8_MinTempNr = 0x00;					   //最低温度探针子系统代号 精度_1,偏移量_0,单位_
-uint8 BMS7_MaxUcellSysNr = 0x00;				   //最高电压电池子系统号 精度_1,偏移量_0,单位_
-uint8 BMS7_MinUcellSysNr = 0x00;				   //最低电压电池子系统号 精度_1,偏移量_0,单位_
-uint8 BMS23_Gun1DCPosTemp = 0x00;				   // A枪DC+温度传感器温度 精度_1,偏移量_-40,单位_℃
-uint8 BMS23_Gun1DCNegTemp = 0x00;				   // A枪DC-温度传感器温度 精度_1,偏移量_-40,单位_℃
-uint8 BMS23_Gun2DCPosTemp = 0x00;				   // B枪DC+温度传感器温度 精度_1,偏移量_-40,单位_℃
-uint8 BMS23_Gun2DCNegTemp = 0x00;				   // B枪DC-温度传感器温度 精度_1,偏移量_-40,单位_℃
-uint8 BMS_Cell_TempN[BMS_TEMP_MAX_NUM] = {0x00};				   //电池温度编号
-uint8 BMS_SN_SysCode[24] = {0x00};				   //电池实际SN
-uint8 BMS21_BattType = 0x00;					   //电池类型,1 -铅酸电池 2 -镍氢电池 3 -磷酸铁锂电池  4 -锰酸锂电池 5 -钴酸锂电池 6 -三元材料电池  7 -聚合物锂离子电池 8 -钛酸锂电池  9-超级电容 15-其他车载储能装置,精度_1,偏移量_0,单位_
-uint8 BMS21_CoolType = 0x00;					   //电池冷却方式,0-其他冷却方式 1-自然冷却 2-风扇冷却 3-水冷却,精度_1,偏移量_0,单位_
-uint8 BMS21_Manufacture = 0x00;					   //电池厂家,1-CATL 2-LS 3-MGL 4-SAMSUN 5-LG 6-GXGK 7-SUNWODA 8-Others,精度_1,偏移量_0,单位_
-uint8 BMS21_ProtocolEditionH = 0x00;			   //通讯协议版本高位(例 - 版本为3 .1,则此处发3) 精度_1,偏移量_0,单位_
-uint8 BMS21_ProtocolEditionL = 0x00;			   //通讯协议版本低位(例 - 版本为3 .1,则此处发1) 精度_1,偏移量_0,单位_
-uint8 BMS9_TotCSCNum = 0x00;					   //电池系统中CSC总的数目 精度_1,偏移量_0,单位_
-uint8 BMS9_PackTotTempNum = 0x00;				   // PACK中电芯温度点(探针)的总数目 精度_1,偏移量_0,单位_
-uint8 BMS9_HVBranchNum = 0x00;					   //电池系统高压支路数 精度_1,偏移量_0,单位_
-uint8 BMS9_SingleHVBranchCellNum = 0x00;		   //电池系统单支路电芯数 精度_1,偏移量_0,单位_
-uint8 BMS9_BattSysNum = 0x00;					   //可充电储能系统数目(EV默认1,满足GB32960要求) 精度_1,偏移量_0,单位_
-uint8 BMS9_BattSysSeqNum = 0x00;				   //可充电储能系统序号(EV默认1,满足GB32960要求) 精度_1,偏移量_0,单位_
-uint8 BMS22_AvaiMaxSOC = 0x00;					   // PACK可用最高SOC(根据技术协议) 精度_0.4,偏移量_0,单位_
-uint8 BMS22_AvaiMinSOC = 0x00;					   // PACK可用最低SOC(根据技术协议) 精度_0.4,偏移量_0,单位_
-uint8 BMS22_AvaiMaxTemp = 0x00;					   // PACK可用温度上限(根据技术协议) 精度_1,偏移量_-40,单位_℃
-uint8 BMS22_AvaiMinTemp = 0x00;					   // PACK可用温度下限(根据技术协议) 精度_1,偏移量_-40,单位_℃
-uint8 BMS10_SubSysEncodingLen = 0x00;			   //可充电储能系统编码长度 精度_1,偏移量_0,单位_
-uint8 BMS10_SubSysIdx = 0x00;					   //可充电储能系统编码 精度_1,偏移量_0,单位_
-uint8 BMS10_SubSysErrNum = 0x00;				   //可充电储能装置故障总数 精度_1,偏移量_0,单位_
-uint8 BMS28_ReqMode = 0x00;						   // BMS请求设定模式,0-关机模式 1-制冷模式 2-制热模式 3-自循环模式,精度_1,偏移量_0,单位_
-uint8 BMS28_HVCmd = 0x00;						   //高压请求,0-请求上高压 1-请求下高压,精度_1,偏移量_0,单位_
-uint8 BMS28_ChgSts = 0x00;						   //充电状态,0-非充电 1-充电,精度_1,偏移量_0,单位_
-uint8 BMS28_HVRelaySts = 0x00;					   // BMS高压继电器状态,0-断开状态 1-闭合状态,精度_1,偏移量_0,单位_
-uint8 BMS28_SetTemp = 0x00;						   //设定温度 精度_1,偏移量_-40,单位_
-uint8 BMS28_Life = 0x00;						   // BMS生命帧 精度_1,偏移量_0,单位_
-uint8 BMS28_CRC = 0x00;							   // CRC校验值 精度_1,偏移量_0,单位_
-uint8 TMS_WorkStatus = 0x00;					   // TMS工作状态,0-关机模式 1-制冷模式 2-制热模式 3-自循环模式,精度_1,偏移量_0,单位_
-uint8 TMS_HVRelayST = 0x00;						   // TMS高压继电器状态,0-断开状态 1-闭合状态,精度_1,偏移量_0,单位_
-uint8 TMS_OutletTemp = 0x00;					   //出水温度(机组到电池) 精度_1,偏移量_-40,单位_
-uint8 TMS_InletTemp = 0x00;						   //回水温度(电池到机组) 精度_1,偏移量_-40,单位_
-uint8 TMS_Version = 0x00;						   // TMS软件版本 精度_0.1,偏移量_0,单位_
-uint8 TMS_ErrCode = 0x00;						   // TMS故障码,见附件,精度_1,偏移量_0,单位_
-uint8 TMS_FaultLevel = 0x00;					   // TMS故障码等级,0-无效 1-1级故障 2-2级故障 3-3级故障,精度_1,偏移量_0,单位_
-uint8 BCU_SnMsgFlag = 0x00;						   // SN码收全标志位
-uint16 BMS_Cell_Volt[BMS_CELL_MAX_NUM] = {0x00};				   //电芯电压
-uint16 BMS11_PackOutsideVolt = 0x00;			   //电池包外侧电压 精度_0.1,偏移量_0,单位_V
-uint16 BMS2_PackCurrent = 0x00;					   //电池包总电流,充电为负值,放电为正值 精度_0.1,偏移量_-1000,单位_A
-uint16 BMS2_PackInsideVolt = 0x00;				   //电池包内侧电压 精度_0.1,偏移量_0,单位_V
-uint16 BMS4_PosIsolation = 0x00;				   //母线正对车体绝缘电阻 精度_1,偏移量_0,单位_KΩ
-uint16 BMS4_NegIsolation = 0x00;				   //母线负对车体绝缘电阻 精度_1,偏移量_0,单位_KΩ
-uint16 BMS4_SysInsRes = 0x00;					   //系统绝缘电阻 精度_1,偏移量_0,单位_KΩ
-uint16 BMS6_Max_Ucell = 0x00;					   //单体最高电压值 精度_0.001,偏移量_0,单位_V
-uint16 BMS6_Min_Ucell = 0x00;					   //单体最低电压值 精度_0.001,偏移量_0,单位_V
-uint16 BMS6_Avg_Ucell = 0x00;					   //电体电压平均值 精度_0.001,偏移量_0,单位_V
-uint16 BMS6_SOE = 0x00;							   //剩余电量电量(SOE) 精度_0.01,偏移量_0,单位_Kwh
-uint16 BMS7_MaxUcellNr = 0x00;					   //最高电压电池单体代号 精度_1,偏移量_0,单位_
-uint16 BMS7_MinUcellNr = 0x00;					   //最低电压电池单体代号 精度_1,偏移量_0,单位_
-uint16 BMS23_RemainChgTi = 0x00;				   //剩余充电时间 精度_1,偏移量_0,单位_min
-uint16 BMS21_RateCap = 0x00;					   //电池包额定容量 精度_0.1,偏移量_0,单位_Ah
-uint16 BMS21_RateHVolt = 0x00;					   //电池包额定电压 精度_0.1,偏移量_0,单位_V
-uint16 BMS21_RatePower = 0x00;					   //电池包额定总能量 精度_0.1,偏移量_0,单位_kWh
-uint16 BMS9_PackTotCellNum = 0x00;				   // PACK中单体电芯的总数目 精度_1,偏移量_0,单位_
-uint16 BMS22_PackAvaiMaxVolt = 0x00;			   // PACK可用电压上限(根据技术协议) 精度_0.1,偏移量_0,单位_V
-uint16 BMS22_PackAvaiMinVolt = 0x00;			   // PACK可用电压下限(根据技术协议) 精度_0.1,偏移量_0,单位_V
-uint16 BMS_SoftwareVersion = 0x00;				   //软件版本 精度_0.1,偏移量_0,单位_
-uint16 BMS_HardwareVersion = 0x00;				   //硬件版本 精度_0.1,偏移量_0,单位_
-uint16 BMS3_MaxDischgPow = 0x00;				   //最大允许放电功率 精度_0.1,偏移量_0,单位_Kw
-uint16 BMS3_MaxChgPow = 0x00;					   //最大允许充电功率 精度_0.1,偏移量_0,单位_Kw
-uint16 BMS3_MaxInstantDischgPow = 0x00;			   //最大允许瞬时放电功率 精度_0.1,偏移量_0,单位_Kw
-uint16 BMS3_MaxiInstantChgPow = 0x00;			   //最大允许瞬时充电功率 精度_0.1,偏移量_0,单位_Kw
-uint16 BMS5_DischgCurMaxAllw = 0x00;			   //电池最大允许放电电流 精度_0.1,偏移量_-1000,单位_A
-uint16 BMS5_ChrgCurMaxAllw = 0x00;				   //电池最大允许充电电流 精度_0.1,偏移量_-1000,单位_A
-uint16 BMS5_InstChrgCurMaxAllw = 0x00;			   //动力电池允许最大瞬时充电电流 精度_0.1,偏移量_-1000,单位_A
-uint16 BMS5_InstDischrgCurMaxAllw = 0x00;		   //电池允许最大瞬时放电电流 精度_0.1,偏移量_-1000,单位_A
-uint16 BMS26_Bat_InstantConsume = 0x00;			   //动力电池瞬时能耗 精度_0.1,偏移量_0,单位_Wh
-uint16 BMS26_Bat_TotalConsume = 0x00;			   //动力电池总能量能耗 精度_0.1,偏移量_0,单位_Wh
-uint16 BMS26_ChgReqVoltage = 0x00;				   //充电所需电压 精度_0.1,偏移量_0,单位_V
-uint16 BMS26_ChgReqCurrent = 0x00;				   //充电所需电流 精度_0.1,偏移量_-1000,单位_A
-uint16 BMS28_HVVolt = 0x00;						   // BMS当前电压 精度_1,偏移量_0,单位_
-uint16 TMS_ReqPow = 0x00;						   // TMS需求功率 精度_0.1,偏移量_0,单位_Kw
-uint32 BMS1_RechrgCycels = 0x00;				   //充电次数 精度_1,偏移量_0,单位_
-uint32 BMS14_TotalChargeAh = 0x00;				   //累积充入Ah 数 精度_0.1,偏移量_0,单位_Ah
-uint32 BMS14_TotalDischargeAh = 0x00;			   //累积放出Ah 数 精度_0.1,偏移量_0,单位_Ah
-uint32 BMS15_TotalChargeKwh = 0x00;				   //累计充入kWh 数 精度_0.1,偏移量_0,单位_KWh
-uint32 BMS15_TotalDischargeKwh = 0x00;			   //累计放出kWh 数 精度_0.1,偏移量_0,单位_KWh
-uint32 BMS16_TotalEneryECOChargeAh = 0x00;		   //累计动能回馈充入Ah 数 精度_0.1,偏移量_0,单位_Ah
-uint32 BMS16_TotalEneryECOChargeKwh = 0x00;		   //累计动能回馈充入kWh 数 精度_0.1,偏移量_0,单位_KWh
-uint32 BMS17_TotalStationChargeAh = 0x00;		   //累计换电站充入Ah 数 精度_0.1,偏移量_0,单位_Ah
-uint32 BMS17_TotalStationChargeKwh = 0x00;		   //累计换电站充入kWh 数 精度_0.1,偏移量_0,单位_KWh
-uint32 BMS18_TotalPoleChargeAh = 0x00;			   //累计插枪充电充入Ah 数 精度_0.1,偏移量_0,单位_Ah
-uint32 BMS18_TotalPoleChargeKwh = 0x00;			   //累计插枪充电充入kWh 数 精度_0.1,偏移量_0,单位_KWh
-uint32 BMS19_SingleChargeAh = 0x00;				   //单次充电Ah 数 精度_0.1,偏移量_0,单位_Ah
-uint32 BMS19_SingleChargeKwh = 0x00;			   //单次充电kWh 数 精度_0.1,偏移量_0,单位_KWh
-#endif

+ 4 - 215
src/AppGlobalVar.h

@@ -16,12 +16,11 @@
 #ifndef APPGLOBALVAR_H_
 #define APPGLOBALVAR_H_
 
-//#define APP_UART0_ENABLE //平峰项目
-#define APP_CAN_ENABLE //重卡项目
+#define APP_UART0_ENABLE //平峰项目
+//#define APP_CAN_ENABLE //重卡项目
 
 #include "hal_adapter.h"
-// test Var
-//#define defaultSn "GYTEST00000000001"
+
 #define defaultSn "SPFPFL264S223H000"
 
 #define HWVERSION 0x0001
@@ -31,9 +30,6 @@
 #define BMS_MANUFACTURE 0xFF
 #define BMS_INFO 0xFF
 #define DATA_MODULE_TYPE 0x02
-
-#define BMS_CELL_MAX_NUM 384
-#define BMS_TEMP_MAX_NUM 64
 //*全局变量*//
 
 extern uint8 TcpbattSN[17];
@@ -67,7 +63,6 @@ VAR_ALIGN(extern uint8 dataWrTestPatt[EEP_WRTESTPATT_SIZE],4)
 VAR_ALIGN(extern uint8 BufferRead[EEP_WRTESTPATT_SIZE],4)
 
 /*以下变量均为串口协议相关变量*/
-#ifdef APP_UART0_ENABLE
 #define BMS_CELLNUM 120
 #define BMS_TEMPNUM 80
 typedef struct _AppDataType
@@ -109,211 +104,5 @@ extern uint8 battConverState ;
 extern uint8 battSeparateEnable ;
 extern uint8 battSeparateEnableState ;
 extern uint16 ErrorArray[5];
-#endif
-/*以下变量均为App_CAN相关变量*/
-#ifdef APP_CAN_ENABLE
-extern uint16 bmsHwVersion;
-extern uint32 bmsSwVersion;
-extern uint8 vehicleStatus;
-extern uint8 bmsHVOn;
-extern uint8 currentGearPosition;
-extern uint8 parkingBreakStatus;
-extern uint8 breakingStatus;
-extern uint32 ODO;
-extern uint8 dcdcWorkStatus;
-extern uint8 numOfChrgableSubsys;
-extern uint8 chrgableSubsysCode;
-extern uint8 ebcStatus;
-extern uint8 ebcAskHVOn;
-extern uint8 ebcAskHVOff;
-extern uint8 retainLockSignal;
-extern uint8 dischargeLockSignal;
-extern uint8 chargeLockSignal;
-extern uint8 chargeFlag;
-extern uint16 vcuDCVol;
-// BCU解码变量
-extern uint32 BcuInTable[130];
-extern bool BcuRxShortError[130];
-extern bool BcuRxLongError[130];
-extern uint8 BcuRxErrorCounter[130];
-extern uint8 BcuRxFlag[130];
-extern uint8 BMS13_ReqVIN;
-extern uint8 BMS11_Fult1_DelTemp;
-extern uint8 BMS11_Fult1_OverTemp;
-extern uint8 BMS11_Fult1_PackOverHVolt;
-extern uint8 BMS11_Fult1_PackLowHVolt;
-extern uint8 BMS11_Fult1_LowSOC;
-extern uint8 BMS11_Fult1_OverUcell;
-extern uint8 BMS11_Fult1_LowUcell;
-extern uint8 BMS11_Fult1_LowInsRes;
-extern uint8 BMS11_Fult1_UcellUniformity;
-extern uint8 BMS11_Fult1_OverChg;
-extern uint8 BMS11_Fult1_OverSOC;
-extern uint8 BMS11_Fult1_SOCChangeFast;
-extern uint8 BMS11_Fult1_BatSysNotMatch;
-extern uint8 BMS11_Fult1_HVILFault;
-extern uint8 BMS12_Fult2_FaultNum;
-extern uint8 BMS12_Fult2_CellOverDischrg;
-extern uint8 BMS12_Fult2_CellLowTemp;
-extern uint8 BMS12_Fult2_PackFireWarning;
-extern uint8 BMS12_Fult2_OverDischrgCurr;
-extern uint8 BMS12_Fult2_OverChrgCurrInTheDrive;
-extern uint8 BMS12_Fult2_CurrSensorErr;
-extern uint8 BMS12_Fult2_PowerSupplyErr;
-extern uint8 BMS12_Fult2_TMSErr;
-extern uint8 BMS12_Fult2_HeatingFilmErr;
-extern uint8 BMS12_Fult2_PackSelfProtect;
-extern uint8 BMS12_Fult2_MainLoopPrechrgErr;
-extern uint8 BMS12_Fult2_AuxLoopPrechrgErr;
-extern uint8 BMS12_Fult2_ChrgInsLowErr;
-extern uint8 BMS12_Fult2_ACANLost;
-extern uint8 BMS12_Fult2_InnerCommunicationErr;
-extern uint8 BMS12_Fult2_DCDCErr;
-extern uint8 BMS12_Fult2_BranchBreakErr;
-extern uint8 BMS12_Fult2_HeatRelayOpenErr;
-extern uint8 BMS12_Fult2_HeatRelayWeldErr;
-extern uint8 BMS12_Fult2_MainPosRelayOpenErr;
-extern uint8 BMS12_Fult2_MainPosRelayWeldErr;
-extern uint8 BMS12_Fult2_MainNegRelayOpenErr;
-extern uint8 BMS12_Fult2_MainNegRelayWeldErr;
-extern uint8 BMS12_Fult2_DCChrgPos1RelayOpenErr;
-extern uint8 BMS12_Fult2_DCChrgPos1RelayWeldErr;
-extern uint8 BMS12_Fult2_DCChrgNeg1RelayOpenErr;
-extern uint8 BMS12_Fult2_DCChrgNeg1RelayWeldErr;
-extern uint8 BMS12_Fult2_DCChrgPos2RelayOpenErr;
-extern uint8 BMS12_Fult2_DCChrgPos2RelayWeldErr;
-extern uint8 BMS12_Fult2_DCChrgNeg2RelayOpenErr;
-extern uint8 BMS12_Fult2_DCChrgNeg2RelayWeldErr;
-extern uint8 BMS12_Fult2_ChrgConnectErr;
-extern uint8 BMS12_ult2_OverDischrgCurrWhenInChrg;
-extern uint8 BMS12_Fult2_OverChrgCurrInTheChrg;
-extern uint8 BMS12_Fult2_ChrgNTCErr;
-extern uint8 BMS12_Fult2_ChrgNTCTempOver;
-extern uint8 BMS12_Fult2_ELockErr;
-extern uint8 BMS12_Fult2_FireDetectorEr;
-extern uint8 BMS12_Fult2_ContiDischrgCurrOverLoad;
-extern uint8 BMS12_Fult2_SOCDifferErr;
-extern uint8 BMS12_Fult2_ContiChrgCurrOverLoad;
-extern uint8 BMS1_MainPosRelaySt;
-extern uint8 BMS1_MainNegRelaySt;
-extern uint8 BMS1_PreChgRelaySt;
-extern uint8 BMS1_DCChrgPos1RelaySt;
-extern uint8 BMS1_DCChrgNeg1RelaySt;
-extern uint8 BMS1_DCChrgPos2RelaySt;
-extern uint8 BMS1_DCChrgNeg2RelaySt;
-extern uint8 BMS1_HeatPosRelaySt;
-extern uint8 BMS1_HeatNegRelaySt;
-extern uint8 BMS1_SysSts;
-extern uint8 BMS1_Life;
-extern uint8 BMS1_BalanceStatus;
-extern uint8 BMS1_DCChrgConnectSt;
-extern uint8 BMS1_ChrgMode;
-extern uint8 BMS1_ChrgStatus;
-extern uint8 BMS1_HeatingStatus;
-extern uint8 BMS1_CoolingStatus;
-extern uint8 BMS2_SOC;
-extern uint8 BMS2_SOH;
-extern uint8 BMS2_FaultCode;
-extern uint8 BMS2_FaultLevel;
-extern uint8 BMS2_RqHVPoerOff;
-extern uint8 BMS2_Life;
-extern uint8 BMS4_InsDetectorSt;
-extern uint8 BMS8_Max_Temp;
-extern uint8 BMS8_Min_Temp;
-extern uint8 BMS8_Avg_Temp;
-extern uint8 BMS8_MaxTempSysNr;
-extern uint8 BMS8_MaxTempNr;
-extern uint8 BMS8_MinTempSysNr;
-extern uint8 BMS8_MinTempNr;
-extern uint8 BMS7_MaxUcellSysNr;
-extern uint8 BMS7_MinUcellSysNr;
-extern uint8 BMS23_Gun1DCPosTemp;
-extern uint8 BMS23_Gun1DCNegTemp;
-extern uint8 BMS23_Gun2DCPosTemp;
-extern uint8 BMS23_Gun2DCNegTemp;
-extern uint8 BMS_Cell_TempN[64];
-extern uint8 BMS_SN_SysCode[24];
-extern uint8 BMS21_BattType;
-extern uint8 BMS21_CoolType;
-extern uint8 BMS21_Manufacture;
-extern uint8 BMS21_ProtocolEditionH;
-extern uint8 BMS21_ProtocolEditionL;
-extern uint8 BMS9_TotCSCNum;
-extern uint8 BMS9_PackTotTempNum;
-extern uint8 BMS9_HVBranchNum;
-extern uint8 BMS9_SingleHVBranchCellNum;
-extern uint8 BMS9_BattSysNum;
-extern uint8 BMS9_BattSysSeqNum;
-extern uint8 BMS22_AvaiMaxSOC;
-extern uint8 BMS22_AvaiMinSOC;
-extern uint8 BMS22_AvaiMaxTemp;
-extern uint8 BMS22_AvaiMinTemp;
-extern uint8 BMS10_SubSysEncodingLen;
-extern uint8 BMS10_SubSysIdx;
-extern uint8 BMS10_SubSysErrNum;
-extern uint8 BMS28_ReqMode;
-extern uint8 BMS28_HVCmd;
-extern uint8 BMS28_ChgSts;
-extern uint8 BMS28_HVRelaySts;
-extern uint8 BMS28_SetTemp;
-extern uint8 BMS28_Life;
-extern uint8 BMS28_CRC;
-extern uint8 TMS_WorkStatus;
-extern uint8 TMS_HVRelayST;
-extern uint8 TMS_OutletTemp;
-extern uint8 TMS_InletTemp;
-extern uint8 TMS_Version;
-extern uint8 TMS_ErrCode;
-extern uint8 TMS_FaultLevel;
-extern uint8 BCU_SnMsgFlag;
-extern uint16 BMS_Cell_Volt[384];
-extern uint16 BMS11_PackOutsideVolt;
-extern uint16 BMS2_PackCurrent;
-extern uint16 BMS2_PackInsideVolt;
-extern uint16 BMS4_PosIsolation;
-extern uint16 BMS4_NegIsolation;
-extern uint16 BMS4_SysInsRes;
-extern uint16 BMS6_Max_Ucell;
-extern uint16 BMS6_Min_Ucell;
-extern uint16 BMS6_Avg_Ucell;
-extern uint16 BMS6_SOE;
-extern uint16 BMS7_MaxUcellNr;
-extern uint16 BMS7_MinUcellNr;
-extern uint16 BMS23_RemainChgTi;
-extern uint16 BMS21_RateCap;
-extern uint16 BMS21_RateHVolt;
-extern uint16 BMS21_RatePower;
-extern uint16 BMS9_PackTotCellNum;
-extern uint16 BMS22_PackAvaiMaxVolt;
-extern uint16 BMS22_PackAvaiMinVolt;
-extern uint16 BMS_SoftwareVersion;
-extern uint16 BMS_HardwareVersion;
-extern uint16 BMS3_MaxDischgPow;
-extern uint16 BMS3_MaxChgPow;
-extern uint16 BMS3_MaxInstantDischgPow;
-extern uint16 BMS3_MaxiInstantChgPow;
-extern uint16 BMS5_DischgCurMaxAllw;
-extern uint16 BMS5_ChrgCurMaxAllw;
-extern uint16 BMS5_InstChrgCurMaxAllw;
-extern uint16 BMS5_InstDischrgCurMaxAllw;
-extern uint16 BMS26_Bat_InstantConsume;
-extern uint16 BMS26_Bat_TotalConsume;
-extern uint16 BMS26_ChgReqVoltage;
-extern uint16 BMS26_ChgReqCurrent;
-extern uint16 BMS28_HVVolt;
-extern uint16 TMS_ReqPow;
-extern uint32 BMS1_RechrgCycels;
-extern uint32 BMS14_TotalChargeAh;
-extern uint32 BMS14_TotalDischargeAh;
-extern uint32 BMS15_TotalChargeKwh;
-extern uint32 BMS15_TotalDischargeKwh;
-extern uint32 BMS16_TotalEneryECOChargeAh;
-extern uint32 BMS16_TotalEneryECOChargeKwh;
-extern uint32 BMS17_TotalStationChargeAh;
-extern uint32 BMS17_TotalStationChargeKwh;
-extern uint32 BMS18_TotalPoleChargeAh;
-extern uint32 BMS18_TotalPoleChargeKwh;
-extern uint32 BMS19_SingleChargeAh;
-extern uint32 BMS19_SingleChargeKwh;
-#endif
+
 #endif /* APPGLOBALVAR_H_ */

+ 0 - 2366
src/AppTaskCan.c

@@ -5,7 +5,6 @@
  *      Author: QiXiang_CHENJIE
  */
 #include "AppTaskCan.h"
-#ifdef APP_CAN_ENABLE
 uint32 timerCounterNow = 0;
 static void vCanRxCallback(TimerHandle_t pxTimer)
 {
@@ -50,7 +49,6 @@ void CanTask(void *pvParameters)
 		}while(ret == pdPASS);
 		if(TimerCounter%100==0&&timerCounterNow!=TimerCounter)
 		{
-			BcuRxDiagnose();
 			timerCounterNow = TimerCounter;
 		}
 	}
@@ -58,2368 +56,4 @@ void CanTask(void *pvParameters)
 //注意解码超限问题
 void BcuDecodeFunction(uint32 ID, uint8 *rawData)
 {
-	switch (ID)
-	{
-	case 0x1801EFF4:
-		BMS13_ReqVIN = (uint8)(((*(uint8 *)(rawData + 0))) & 0xFF);
-		BcuRxFlag[0] = 0x01;
-		break;
-	case 0x1801FBF4:
-		BMS_Cell_Volt[0] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[1] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[2] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[3] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[1] = 0x01;
-		break;
-	case 0x1802FBF4:
-		BMS_Cell_Volt[4] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[5] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[6] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[7] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[2] = 0x01;
-		break;
-	case 0x1803FBF4:
-		BMS_Cell_Volt[8] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[9] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[10] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[11] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[3] = 0x01;
-		break;
-	case 0x1804FBF4:
-		BMS_Cell_Volt[12] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[13] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[14] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[15] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[4] = 0x01;
-		break;
-	case 0x1805FBF4:
-		BMS_Cell_Volt[16] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[17] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[18] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[19] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[5] = 0x01;
-		break;
-	case 0x1806FBF4:
-		BMS_Cell_Volt[20] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[21] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[22] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[23] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[6] = 0x01;
-		break;
-	case 0x1807FBF4:
-		BMS_Cell_Volt[24] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[25] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[26] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[27] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[7] = 0x01;
-		break;
-	case 0x1808FBF4:
-		BMS_Cell_Volt[28] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[29] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[30] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[31] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[8] = 0x01;
-		break;
-	case 0x1809FBF4:
-		BMS_Cell_Volt[32] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[33] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[34] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[35] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[9] = 0x01;
-		break;
-	case 0x180AFBF4:
-		BMS_Cell_Volt[36] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[37] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[38] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[39] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[10] = 0x01;
-		break;
-	case 0x180BFBF4:
-		BMS_Cell_Volt[40] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[41] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[42] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[43] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[11] = 0x01;
-		break;
-	case 0x180CFBF4:
-		BMS_Cell_Volt[44] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[45] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[46] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[47] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[12] = 0x01;
-		break;
-	case 0x180DFBF4:
-		BMS_Cell_Volt[48] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[49] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[50] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[51] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[13] = 0x01;
-		break;
-	case 0x180EFBF4:
-		BMS_Cell_Volt[52] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[53] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[54] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[55] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[14] = 0x01;
-		break;
-	case 0x180FFBF4:
-		BMS_Cell_Volt[56] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[57] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[58] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[59] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[15] = 0x01;
-		break;
-	case 0x1810FBF4:
-		BMS_Cell_Volt[60] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[61] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[62] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[63] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[16] = 0x01;
-		break;
-	case 0x1811FBF4:
-		BMS_Cell_Volt[64] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[65] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[66] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[67] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[17] = 0x01;
-		break;
-	case 0x1812FBF4:
-		BMS_Cell_Volt[68] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[69] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[70] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[71] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[18] = 0x01;
-		break;
-	case 0x1813FBF4:
-		BMS_Cell_Volt[72] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[73] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[74] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[75] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[19] = 0x01;
-		break;
-	case 0x1814FBF4:
-		BMS_Cell_Volt[76] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[77] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[78] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[79] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[20] = 0x01;
-		break;
-	case 0x1815FBF4:
-		BMS_Cell_Volt[80] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[81] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[82] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[83] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[21] = 0x01;
-		break;
-	case 0x1816FBF4:
-		BMS_Cell_Volt[84] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[85] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[86] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[87] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[22] = 0x01;
-		break;
-	case 0x1817FBF4:
-		BMS_Cell_Volt[88] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[89] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[90] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[91] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[23] = 0x01;
-		break;
-	case 0x1818FBF4:
-		BMS_Cell_Volt[92] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[93] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[94] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[95] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[24] = 0x01;
-		break;
-	case 0x1819FBF4:
-		BMS_Cell_Volt[96] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[97] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[98] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[99] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[25] = 0x01;
-		break;
-	case 0x181AFBF4:
-		BMS_Cell_Volt[100] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[101] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[102] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[103] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[26] = 0x01;
-		break;
-	case 0x181BFBF4:
-		BMS_Cell_Volt[104] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[105] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[106] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[107] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[27] = 0x01;
-		break;
-	case 0x181CFBF4:
-		BMS_Cell_Volt[108] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[109] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[110] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[111] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[28] = 0x01;
-		break;
-	case 0x181DFBF4:
-		BMS_Cell_Volt[112] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[113] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[114] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[115] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[29] = 0x01;
-		break;
-	case 0x181EFBF4:
-		BMS_Cell_Volt[116] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[117] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[118] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[119] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[30] = 0x01;
-		break;
-	case 0x181FFBF4:
-		BMS_Cell_Volt[120] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[121] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[122] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[123] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[31] = 0x01;
-		break;
-	case 0x1820FBF4:
-		BMS_Cell_Volt[124] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[125] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[126] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[127] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[32] = 0x01;
-		break;
-	case 0x1821FBF4:
-		BMS_Cell_Volt[128] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[129] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[130] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[131] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[33] = 0x01;
-		break;
-	case 0x1822FBF4:
-		BMS_Cell_Volt[132] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[133] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[134] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[135] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[34] = 0x01;
-		break;
-	case 0x1823FBF4:
-		BMS_Cell_Volt[136] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[137] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[138] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[139] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[35] = 0x01;
-		break;
-	case 0x1824FBF4:
-		BMS_Cell_Volt[140] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[141] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[142] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[143] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[36] = 0x01;
-		break;
-	case 0x1825FBF4:
-		BMS_Cell_Volt[144] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[145] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[146] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[147] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[37] = 0x01;
-		break;
-	case 0x1826FBF4:
-		BMS_Cell_Volt[148] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[149] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[150] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[151] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[38] = 0x01;
-		break;
-	case 0x1827FBF4:
-		BMS_Cell_Volt[152] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[153] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[154] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[155] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[39] = 0x01;
-		break;
-	case 0x1828FBF4:
-		BMS_Cell_Volt[156] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[157] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[158] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[159] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[40] = 0x01;
-		break;
-	case 0x1829FBF4:
-		BMS_Cell_Volt[160] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[161] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[162] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[163] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[41] = 0x01;
-		break;
-	case 0x182AFBF4:
-		BMS_Cell_Volt[164] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[165] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[166] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[167] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[42] = 0x01;
-		break;
-	case 0x182BFBF4:
-		BMS_Cell_Volt[168] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[169] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[170] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[171] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[43] = 0x01;
-		break;
-	case 0x182CFBF4:
-		BMS_Cell_Volt[172] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[173] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[174] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[175] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[44] = 0x01;
-		break;
-	case 0x182DFBF4:
-		BMS_Cell_Volt[176] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[177] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[178] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[179] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[45] = 0x01;
-		break;
-	case 0x182EFBF4:
-		BMS_Cell_Volt[180] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[181] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[182] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[183] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[46] = 0x01;
-		break;
-	case 0x182FFBF4:
-		BMS_Cell_Volt[184] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[185] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[186] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[187] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[47] = 0x01;
-		break;
-	case 0x1830FBF4:
-		BMS_Cell_Volt[188] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[189] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[190] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[191] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[48] = 0x01;
-		break;
-	case 0x1831FBF4:
-		BMS_Cell_Volt[192] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[193] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[194] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[195] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[49] = 0x01;
-		break;
-	case 0x1832FBF4:
-		BMS_Cell_Volt[196] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[197] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[198] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[199] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[50] = 0x01;
-		break;
-	case 0x1833FBF4:
-		BMS_Cell_Volt[200] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[201] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[202] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[203] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[51] = 0x01;
-		break;
-	case 0x1834FBF4:
-		BMS_Cell_Volt[204] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[205] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[206] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[207] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[52] = 0x01;
-		break;
-	case 0x1835FBF4:
-		BMS_Cell_Volt[208] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[209] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[210] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[211] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[53] = 0x01;
-		break;
-	case 0x1836FBF4:
-		BMS_Cell_Volt[212] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[213] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[214] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[215] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[54] = 0x01;
-		break;
-	case 0x1837FBF4:
-		BMS_Cell_Volt[216] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[217] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[218] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[219] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[55] = 0x01;
-		break;
-	case 0x1838FBF4:
-		BMS_Cell_Volt[220] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[221] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[222] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[223] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[56] = 0x01;
-		break;
-	case 0x1839FBF4:
-		BMS_Cell_Volt[224] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[225] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[226] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[227] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[57] = 0x01;
-		break;
-	case 0x183AFBF4:
-		BMS_Cell_Volt[228] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[229] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[230] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[231] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[58] = 0x01;
-		break;
-	case 0x183BFBF4:
-		BMS_Cell_Volt[232] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[233] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[234] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[235] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[59] = 0x01;
-		break;
-	case 0x183CFBF4:
-		BMS_Cell_Volt[236] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[237] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[238] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[239] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[60] = 0x01;
-		break;
-	case 0x183DFBF4:
-		BMS_Cell_Volt[240] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[241] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[242] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[243] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[61] = 0x01;
-		break;
-	case 0x183EFBF4:
-		BMS_Cell_Volt[244] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[245] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[246] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[247] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[62] = 0x01;
-		break;
-	case 0x183FFBF4:
-		BMS_Cell_Volt[248] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[249] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[250] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[251] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[63] = 0x01;
-		break;
-	case 0x1840FBF4:
-		BMS_Cell_Volt[252] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[253] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[254] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[255] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[64] = 0x01;
-		break;
-	case 0x1841FBF4:
-		BMS_Cell_Volt[256] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[257] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[258] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[259] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[65] = 0x01;
-		break;
-	case 0x1842FBF4:
-		BMS_Cell_Volt[260] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[261] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[262] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[263] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[66] = 0x01;
-		break;
-	case 0x1843FBF4:
-		BMS_Cell_Volt[264] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[265] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[266] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[267] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[67] = 0x01;
-		break;
-	case 0x1844FBF4:
-		BMS_Cell_Volt[268] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[269] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[270] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[271] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[68] = 0x01;
-		break;
-	case 0x1845FBF4:
-		BMS_Cell_Volt[272] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[273] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[274] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[275] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[69] = 0x01;
-		break;
-	case 0x1846FBF4:
-		BMS_Cell_Volt[276] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[277] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[278] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[279] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[70] = 0x01;
-		break;
-	case 0x1847FBF4:
-		BMS_Cell_Volt[280] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[281] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[282] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[283] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[71] = 0x01;
-		break;
-	case 0x1848FBF4:
-		BMS_Cell_Volt[284] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[285] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[286] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[287] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[72] = 0x01;
-		break;
-	case 0x1849FBF4:
-		BMS_Cell_Volt[288] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[289] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[290] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[291] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[73] = 0x01;
-		break;
-	case 0x184AFBF4:
-		BMS_Cell_Volt[292] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[293] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[294] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[295] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[74] = 0x01;
-		break;
-	case 0x184BFBF4:
-		BMS_Cell_Volt[296] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[297] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[298] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[299] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[75] = 0x01;
-		break;
-	case 0x184CFBF4:
-		BMS_Cell_Volt[300] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[301] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[302] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[303] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[76] = 0x01;
-		break;
-	case 0x184DFBF4:
-		BMS_Cell_Volt[304] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[305] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[306] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[307] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[77] = 0x01;
-		break;
-	case 0x184EFBF4:
-		BMS_Cell_Volt[308] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[309] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[310] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[311] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[78] = 0x01;
-		break;
-	case 0x184FFBF4:
-		BMS_Cell_Volt[312] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[313] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[314] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[315] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[79] = 0x01;
-		break;
-	case 0x1850FBF4:
-		BMS_Cell_Volt[316] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[317] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[318] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[319] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[80] = 0x01;
-		break;
-	case 0x1851FBF4:
-		BMS_Cell_Volt[320] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[321] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[322] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[323] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[81] = 0x01;
-		break;
-	case 0x1852FBF4:
-		BMS_Cell_Volt[324] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[325] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[326] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[327] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[82] = 0x01;
-		break;
-	case 0x1853FBF4:
-		BMS_Cell_Volt[328] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[329] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[330] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[331] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[83] = 0x01;
-		break;
-	case 0x1854FBF4:
-		BMS_Cell_Volt[332] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[333] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[334] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[335] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[84] = 0x01;
-		break;
-	case 0x1855FBF4:
-		BMS_Cell_Volt[336] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[337] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[338] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[339] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[85] = 0x01;
-		break;
-	case 0x1856FBF4:
-		BMS_Cell_Volt[340] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[341] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[342] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[343] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[86] = 0x01;
-		break;
-	case 0x1857FBF4:
-		BMS_Cell_Volt[344] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[345] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[346] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[347] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[87] = 0x01;
-		break;
-	case 0x1858FBF4:
-		BMS_Cell_Volt[348] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[349] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[350] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[351] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[88] = 0x01;
-		break;
-	case 0x1859FBF4:
-		BMS_Cell_Volt[352] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[353] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[354] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[355] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[89] = 0x01;
-		break;
-	case 0x185AFBF4:
-		BMS_Cell_Volt[356] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[357] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[358] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[359] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[90] = 0x01;
-		break;
-	case 0x185BFBF4:
-		BMS_Cell_Volt[360] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[361] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[362] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[363] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[91] = 0x01;
-		break;
-	case 0x185CFBF4:
-		BMS_Cell_Volt[364] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[365] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[366] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[367] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[92] = 0x01;
-		break;
-	case 0x185DFBF4:
-		BMS_Cell_Volt[368] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[369] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[370] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[371] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[93] = 0x01;
-		break;
-	case 0x185EFBF4:
-		BMS_Cell_Volt[372] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[373] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[374] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[375] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[94] = 0x01;
-		break;
-	case 0x185FFBF4:
-		BMS_Cell_Volt[376] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[377] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[378] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[379] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[95] = 0x01;
-		break;
-	case 0x1860FBF4:
-		BMS_Cell_Volt[380] = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_Cell_Volt[381] = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS_Cell_Volt[382] = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS_Cell_Volt[383] = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[96] = 0x01;
-		break;
-	case 0x1881EFF4:
-		BMS11_Fult1_DelTemp = (uint8)(((*(uint8 *)(rawData + 0)) >> 2) & 0x3);
-		BMS11_Fult1_OverTemp = (uint8)(((*(uint8 *)(rawData + 0)) >> 4) & 0x3);
-		BMS11_Fult1_PackOverHVolt = (uint8)(((*(uint8 *)(rawData + 0)) >> 6) & 0x3);
-		BMS11_Fult1_PackLowHVolt = (uint8)(((*(uint8 *)(rawData + 1))) & 0x3);
-		BMS11_Fult1_LowSOC = (uint8)(((*(uint8 *)(rawData + 1)) >> 2) & 0x3);
-		BMS11_Fult1_OverUcell = (uint8)(((*(uint8 *)(rawData + 1)) >> 4) & 0x3);
-		BMS11_Fult1_LowUcell = (uint8)(((*(uint8 *)(rawData + 1)) >> 6) & 0x3);
-		BMS11_Fult1_LowInsRes = (uint8)(((*(uint8 *)(rawData + 2))) & 0x3);
-		BMS11_Fult1_UcellUniformity = (uint8)(((*(uint8 *)(rawData + 2)) >> 2) & 0x3);
-		BMS11_Fult1_OverChg = (uint8)(((*(uint8 *)(rawData + 2)) >> 4) & 0x3);
-		BMS11_Fult1_OverSOC = (uint8)(((*(uint8 *)(rawData + 2)) >> 6) & 0x3);
-		BMS11_Fult1_SOCChangeFast = (uint8)(((*(uint8 *)(rawData + 3))) & 0x1);
-		BMS11_Fult1_BatSysNotMatch = (uint8)(((*(uint8 *)(rawData + 3)) >> 1) & 0x1);
-		BMS11_Fult1_HVILFault = (uint8)(((*(uint8 *)(rawData + 3)) >> 2) & 0x1);
-		BMS11_PackOutsideVolt = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BcuRxFlag[97] = 0x01;
-		break;
-	case 0x1882EFF4:
-		BMS12_Fult2_FaultNum = (uint8)(((*(uint8 *)(rawData + 0))) & 0xFF);
-		BMS12_Fult2_CellOverDischrg = (uint8)(((*(uint8 *)(rawData + 1))) & 0x1);
-		BMS12_Fult2_CellLowTemp = (uint8)(((*(uint8 *)(rawData + 1)) >> 1) & 0x1);
-		BMS12_Fult2_PackFireWarning = (uint8)(((*(uint8 *)(rawData + 1)) >> 2) & 0x1);
-		BMS12_Fult2_OverDischrgCurr = (uint8)(((*(uint8 *)(rawData + 1)) >> 3) & 0x3);
-		BMS12_Fult2_OverChrgCurrInTheDrive = (uint8)(((*(uint8 *)(rawData + 1)) >> 5) & 0x3);
-		BMS12_Fult2_CurrSensorErr = (uint8)(((*(uint8 *)(rawData + 1)) >> 7) & 0x1);
-		BMS12_Fult2_PowerSupplyErr = (uint8)(((*(uint8 *)(rawData + 2))) & 0x1);
-		BMS12_Fult2_TMSErr = (uint8)(((*(uint8 *)(rawData + 2)) >> 1) & 0x1);
-		BMS12_Fult2_HeatingFilmErr = (uint8)(((*(uint8 *)(rawData + 2)) >> 2) & 0x1);
-		BMS12_Fult2_PackSelfProtect = (uint8)(((*(uint8 *)(rawData + 2)) >> 3) & 0x1);
-		BMS12_Fult2_MainLoopPrechrgErr = (uint8)(((*(uint8 *)(rawData + 2)) >> 4) & 0x1);
-		BMS12_Fult2_AuxLoopPrechrgErr = (uint8)(((*(uint8 *)(rawData + 2)) >> 5) & 0x1);
-		BMS12_Fult2_ChrgInsLowErr = (uint8)(((*(uint8 *)(rawData + 2)) >> 6) & 0x1);
-		BMS12_Fult2_ACANLost = (uint8)(((*(uint8 *)(rawData + 2)) >> 7) & 0x1);
-		BMS12_Fult2_InnerCommunicationErr = (uint8)(((*(uint8 *)(rawData + 3))) & 0x1);
-		BMS12_Fult2_DCDCErr = (uint8)(((*(uint8 *)(rawData + 3)) >> 1) & 0x1);
-		BMS12_Fult2_BranchBreakErr = (uint8)(((*(uint8 *)(rawData + 3)) >> 2) & 0x1);
-		BMS12_Fult2_HeatRelayOpenErr = (uint8)(((*(uint8 *)(rawData + 3)) >> 3) & 0x1);
-		BMS12_Fult2_HeatRelayWeldErr = (uint8)(((*(uint8 *)(rawData + 3)) >> 4) & 0x1);
-		BMS12_Fult2_MainPosRelayOpenErr = (uint8)(((*(uint8 *)(rawData + 3)) >> 5) & 0x1);
-		BMS12_Fult2_MainPosRelayWeldErr = (uint8)(((*(uint8 *)(rawData + 3)) >> 6) & 0x1);
-		BMS12_Fult2_MainNegRelayOpenErr = (uint8)(((*(uint8 *)(rawData + 3)) >> 7) & 0x1);
-		BMS12_Fult2_MainNegRelayWeldErr = (uint8)(((*(uint8 *)(rawData + 4))) & 0x1);
-		BMS12_Fult2_DCChrgPos1RelayOpenErr = (uint8)(((*(uint8 *)(rawData + 4)) >> 1) & 0x1);
-		BMS12_Fult2_DCChrgPos1RelayWeldErr = (uint8)(((*(uint8 *)(rawData + 4)) >> 2) & 0x1);
-		BMS12_Fult2_DCChrgNeg1RelayOpenErr = (uint8)(((*(uint8 *)(rawData + 4)) >> 3) & 0x1);
-		BMS12_Fult2_DCChrgNeg1RelayWeldErr = (uint8)(((*(uint8 *)(rawData + 4)) >> 4) & 0x1);
-		BMS12_Fult2_DCChrgPos2RelayOpenErr = (uint8)(((*(uint8 *)(rawData + 4)) >> 5) & 0x1);
-		BMS12_Fult2_DCChrgPos2RelayWeldErr = (uint8)(((*(uint8 *)(rawData + 4)) >> 6) & 0x1);
-		BMS12_Fult2_DCChrgNeg2RelayOpenErr = (uint8)(((*(uint8 *)(rawData + 4)) >> 7) & 0x1);
-		BMS12_Fult2_DCChrgNeg2RelayWeldErr = (uint8)(((*(uint8 *)(rawData + 5))) & 0x1);
-		BMS12_Fult2_ChrgConnectErr = (uint8)(((*(uint8 *)(rawData + 6)) >> 1) & 0x1);
-		BMS12_ult2_OverDischrgCurrWhenInChrg = (uint8)(((*(uint8 *)(rawData + 6)) >> 2) & 0x1);
-		BMS12_Fult2_OverChrgCurrInTheChrg = (uint8)(((*(uint8 *)(rawData + 6)) >> 3) & 0x1);
-		BMS12_Fult2_ChrgNTCErr = (uint8)(((*(uint8 *)(rawData + 6)) >> 4) & 0x1);
-		BMS12_Fult2_ChrgNTCTempOver = (uint8)(((*(uint8 *)(rawData + 6)) >> 5) & 0x3);
-		BMS12_Fult2_ELockErr = (uint8)(((*(uint8 *)(rawData + 6)) >> 7) & 0x1);
-		BMS12_Fult2_FireDetectorEr = (uint8)(((*(uint8 *)(rawData + 7))) & 0x1);
-		BMS12_Fult2_ContiDischrgCurrOverLoad = (uint8)(((*(uint8 *)(rawData + 7)) >> 1) & 0x3);
-		BMS12_Fult2_SOCDifferErr = (uint8)(((*(uint8 *)(rawData + 7)) >> 3) & 0x1);
-		BMS12_Fult2_ContiChrgCurrOverLoad = (uint8)(((*(uint8 *)(rawData + 7)) >> 4) & 0x3);
-		BcuRxFlag[98] = 0x01;
-		break;
-	case 0x1883EFF4:
-		BMS1_MainPosRelaySt = (uint8)(((*(uint8 *)(rawData + 0))) & 0x3);
-		BMS1_MainNegRelaySt = (uint8)(((*(uint8 *)(rawData + 0)) >> 2) & 0x3);
-		BMS1_PreChgRelaySt = (uint8)(((*(uint8 *)(rawData + 0)) >> 4) & 0x3);
-		BMS1_DCChrgPos1RelaySt = (uint8)(((*(uint8 *)(rawData + 0)) >> 6) & 0x3);
-		BMS1_DCChrgNeg1RelaySt = (uint8)(((*(uint8 *)(rawData + 1))) & 0x3);
-		BMS1_DCChrgPos2RelaySt = (uint8)(((*(uint8 *)(rawData + 1)) >> 2) & 0x3);
-		BMS1_DCChrgNeg2RelaySt = (uint8)(((*(uint8 *)(rawData + 1)) >> 4) & 0x3);
-		BMS1_HeatPosRelaySt = (uint8)(((*(uint8 *)(rawData + 1)) >> 6) & 0x3);
-		BMS1_HeatNegRelaySt = (uint8)(((*(uint8 *)(rawData + 2))) & 0x3);
-		BMS1_SysSts = (uint8)(((*(uint8 *)(rawData + 2)) >> 2) & 0xF);
-		BMS1_Life = (uint8)(((*(uint8 *)(rawData + 3))) & 0xFF);
-		BMS1_BalanceStatus = (uint8)(((*(uint8 *)(rawData + 4)) >> 2) & 0x1);
-		BMS1_DCChrgConnectSt = (uint8)(((*(uint8 *)(rawData + 4)) >> 3) & 0x3);
-		BMS1_ChrgMode = (uint8)(((*(uint16 *)(rawData + 4)) >> 7) & 0x3);
-		BMS1_ChrgStatus = (uint8)(((*(uint8 *)(rawData + 5)) >> 1) & 0x3);
-		BMS1_HeatingStatus = (uint8)(((*(uint8 *)(rawData + 5)) >> 3) & 0x1);
-		BMS1_CoolingStatus = (uint8)(((*(uint8 *)(rawData + 5)) >> 4) & 0x3);
-		BMS1_RechrgCycels = (uint32)((*(rawData + 5) >> 6)|(*(rawData + 6)<<2)|(*(rawData + 7)<<10));
-		BcuRxFlag[99] = 0x01;
-		break;
-	case 0x1884EFF4:
-		BMS2_SOC = (uint8)(((*(uint8 *)(rawData + 0))) & 0xFF);
-		BMS2_SOH = (uint8)(((*(uint8 *)(rawData + 1))) & 0xFF);
-		BMS2_PackCurrent = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS2_PackInsideVolt = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS2_FaultCode = (uint8)(((*(uint8 *)(rawData + 6))) & 0xFF);
-		BMS2_FaultLevel = (uint8)(((*(uint8 *)(rawData + 7))) & 0x3);
-		BMS2_RqHVPoerOff = (uint8)(((*(uint8 *)(rawData + 7)) >> 2) & 0x3);
-		BMS2_Life = (uint8)(((*(uint8 *)(rawData + 7)) >> 4) & 0xF);
-		BcuRxFlag[100] = 0x01;
-		break;
-	case 0x1885EFF4:
-		BMS4_PosIsolation = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS4_NegIsolation = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS4_SysInsRes = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS4_InsDetectorSt = (uint8)(((*(uint8 *)(rawData + 6))) & 0x1);
-		BcuRxFlag[101] = 0x01;
-		break;
-	case 0x1886EFF4:
-		BMS8_Max_Temp = (uint8)(((*(uint8 *)(rawData + 0))) & 0xFF);
-		BMS8_Min_Temp = (uint8)(((*(uint8 *)(rawData + 1))) & 0xFF);
-		BMS8_Avg_Temp = (uint8)(((*(uint8 *)(rawData + 2))) & 0xFF);
-		BMS8_MaxTempSysNr = (uint8)(((*(uint8 *)(rawData + 3))) & 0xFF);
-		BMS8_MaxTempNr = (uint8)(((*(uint8 *)(rawData + 4))) & 0xFF);
-		BMS8_MinTempSysNr = (uint8)(((*(uint8 *)(rawData + 5))) & 0xFF);
-		BMS8_MinTempNr = (uint8)(((*(uint8 *)(rawData + 6))) & 0xFF);
-		BcuRxFlag[102] = 0x01;
-		break;
-	case 0x1887EFF4:
-		BMS6_Max_Ucell = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS6_Min_Ucell = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS6_Avg_Ucell = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS6_SOE = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[103] = 0x01;
-		break;
-	case 0x1888EFF4:
-		BMS7_MaxUcellSysNr = (uint8)(((*(uint8 *)(rawData + 0))) & 0xFF);
-		BMS7_MaxUcellNr = (uint16)(((*(uint16 *)(rawData + 1))) & 0xFFFF);
-		BMS7_MinUcellSysNr = (uint8)(((*(uint8 *)(rawData + 3))) & 0xFF);
-		BMS7_MinUcellNr = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BcuRxFlag[104] = 0x01;
-		break;
-	case 0x1889EFF4:
-		BMS23_Gun1DCPosTemp = (uint8)(((*(uint8 *)(rawData + 0))) & 0xFF);
-		BMS23_Gun1DCNegTemp = (uint8)(((*(uint8 *)(rawData + 1))) & 0xFF);
-		BMS23_Gun2DCPosTemp = (uint8)(((*(uint8 *)(rawData + 2))) & 0xFF);
-		BMS23_Gun2DCNegTemp = (uint8)(((*(uint8 *)(rawData + 3))) & 0xFF);
-		BMS23_RemainChgTi = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[105] = 0x01;
-		break;
-	case 0x18A0FBF4:
-		BMS_Cell_TempN[0] = (uint8)(((*(uint8 *)(rawData + 0))) & 0xFF);
-		BMS_Cell_TempN[1] = (uint8)(((*(uint8 *)(rawData + 1))) & 0xFF);
-		BMS_Cell_TempN[2] = (uint8)(((*(uint8 *)(rawData + 2))) & 0xFF);
-		BMS_Cell_TempN[3] = (uint8)(((*(uint8 *)(rawData + 3))) & 0xFF);
-		BMS_Cell_TempN[4] = (uint8)(((*(uint8 *)(rawData + 4))) & 0xFF);
-		BMS_Cell_TempN[5] = (uint8)(((*(uint8 *)(rawData + 5))) & 0xFF);
-		BMS_Cell_TempN[6] = (uint8)(((*(uint8 *)(rawData + 6))) & 0xFF);
-		BMS_Cell_TempN[7] = (uint8)(((*(uint8 *)(rawData + 7))) & 0xFF);
-		BcuRxFlag[106] = 0x01;
-		break;
-	case 0x18A1FBF4:
-		BMS_Cell_TempN[8] = (uint8)(((*(uint8 *)(rawData + 0))) & 0xFF);
-		BMS_Cell_TempN[9] = (uint8)(((*(uint8 *)(rawData + 1))) & 0xFF);
-		BMS_Cell_TempN[10] = (uint8)(((*(uint8 *)(rawData + 2))) & 0xFF);
-		BMS_Cell_TempN[11] = (uint8)(((*(uint8 *)(rawData + 3))) & 0xFF);
-		BMS_Cell_TempN[12] = (uint8)(((*(uint8 *)(rawData + 4))) & 0xFF);
-		BMS_Cell_TempN[13] = (uint8)(((*(uint8 *)(rawData + 5))) & 0xFF);
-		BMS_Cell_TempN[14] = (uint8)(((*(uint8 *)(rawData + 6))) & 0xFF);
-		BMS_Cell_TempN[15] = (uint8)(((*(uint8 *)(rawData + 7))) & 0xFF);
-		BcuRxFlag[107] = 0x01;
-		break;
-	case 0x18A2FBF4:
-		BMS_Cell_TempN[16] = (uint8)(((*(uint8 *)(rawData + 0))) & 0xFF);
-		BMS_Cell_TempN[17] = (uint8)(((*(uint8 *)(rawData + 1))) & 0xFF);
-		BMS_Cell_TempN[18] = (uint8)(((*(uint8 *)(rawData + 2))) & 0xFF);
-		BMS_Cell_TempN[19] = (uint8)(((*(uint8 *)(rawData + 3))) & 0xFF);
-		BMS_Cell_TempN[20] = (uint8)(((*(uint8 *)(rawData + 4))) & 0xFF);
-		BMS_Cell_TempN[21] = (uint8)(((*(uint8 *)(rawData + 5))) & 0xFF);
-		BMS_Cell_TempN[22] = (uint8)(((*(uint8 *)(rawData + 6))) & 0xFF);
-		BMS_Cell_TempN[23] = (uint8)(((*(uint8 *)(rawData + 7))) & 0xFF);
-		BMS_Cell_TempN[24] = (uint8)(((*(uint8 *)(rawData + 0))) & 0xFF);
-		BMS_Cell_TempN[25] = (uint8)(((*(uint8 *)(rawData + 1))) & 0xFF);
-		BMS_Cell_TempN[26] = (uint8)(((*(uint8 *)(rawData + 2))) & 0xFF);
-		BMS_Cell_TempN[27] = (uint8)(((*(uint8 *)(rawData + 3))) & 0xFF);
-		BMS_Cell_TempN[28] = (uint8)(((*(uint8 *)(rawData + 4))) & 0xFF);
-		BMS_Cell_TempN[29] = (uint8)(((*(uint8 *)(rawData + 5))) & 0xFF);
-		BMS_Cell_TempN[30] = (uint8)(((*(uint8 *)(rawData + 6))) & 0xFF);
-		BMS_Cell_TempN[31] = (uint8)(((*(uint8 *)(rawData + 7))) & 0xFF);
-		BcuRxFlag[108] = 0x01;
-		break;
-	case 0x18A3FBF4:
-		BMS_Cell_TempN[32] = (uint8)(((*(uint8 *)(rawData + 0))) & 0xFF);
-		BMS_Cell_TempN[33] = (uint8)(((*(uint8 *)(rawData + 1))) & 0xFF);
-		BMS_Cell_TempN[34] = (uint8)(((*(uint8 *)(rawData + 2))) & 0xFF);
-		BMS_Cell_TempN[35] = (uint8)(((*(uint8 *)(rawData + 3))) & 0xFF);
-		BMS_Cell_TempN[36] = (uint8)(((*(uint8 *)(rawData + 4))) & 0xFF);
-		BMS_Cell_TempN[37] = (uint8)(((*(uint8 *)(rawData + 5))) & 0xFF);
-		BMS_Cell_TempN[38] = (uint8)(((*(uint8 *)(rawData + 6))) & 0xFF);
-		BMS_Cell_TempN[39] = (uint8)(((*(uint8 *)(rawData + 7))) & 0xFF);
-		BcuRxFlag[109] = 0x01;
-		break;
-	case 0x18A4FBF4:
-		BMS_Cell_TempN[40] = (uint8)(((*(uint8 *)(rawData + 0))) & 0xFF);
-		BMS_Cell_TempN[41] = (uint8)(((*(uint8 *)(rawData + 1))) & 0xFF);
-		BMS_Cell_TempN[42] = (uint8)(((*(uint8 *)(rawData + 2))) & 0xFF);
-		BMS_Cell_TempN[43] = (uint8)(((*(uint8 *)(rawData + 3))) & 0xFF);
-		BMS_Cell_TempN[44] = (uint8)(((*(uint8 *)(rawData + 4))) & 0xFF);
-		BMS_Cell_TempN[45] = (uint8)(((*(uint8 *)(rawData + 5))) & 0xFF);
-		BMS_Cell_TempN[46] = (uint8)(((*(uint8 *)(rawData + 6))) & 0xFF);
-		BMS_Cell_TempN[47] = (uint8)(((*(uint8 *)(rawData + 7))) & 0xFF);
-		BcuRxFlag[110] = 0x01;
-		break;
-	case 0x18A5FBF4:
-		BMS_Cell_TempN[48] = (uint8)(((*(uint8 *)(rawData + 0))) & 0xFF);
-		BMS_Cell_TempN[49] = (uint8)(((*(uint8 *)(rawData + 1))) & 0xFF);
-		BMS_Cell_TempN[50] = (uint8)(((*(uint8 *)(rawData + 2))) & 0xFF);
-		BMS_Cell_TempN[51] = (uint8)(((*(uint8 *)(rawData + 3))) & 0xFF);
-		BMS_Cell_TempN[52] = (uint8)(((*(uint8 *)(rawData + 4))) & 0xFF);
-		BMS_Cell_TempN[53] = (uint8)(((*(uint8 *)(rawData + 5))) & 0xFF);
-		BMS_Cell_TempN[54] = (uint8)(((*(uint8 *)(rawData + 6))) & 0xFF);
-		BMS_Cell_TempN[55] = (uint8)(((*(uint8 *)(rawData + 7))) & 0xFF);
-		BcuRxFlag[111] = 0x01;
-		break;
-	case 0x18A6FBF4:
-		BMS_Cell_TempN[56] = (uint8)(((*(uint8 *)(rawData + 0))) & 0xFF);
-		BMS_Cell_TempN[57] = (uint8)(((*(uint8 *)(rawData + 1))) & 0xFF);
-		BMS_Cell_TempN[58] = (uint8)(((*(uint8 *)(rawData + 2))) & 0xFF);
-		BMS_Cell_TempN[59] = (uint8)(((*(uint8 *)(rawData + 3))) & 0xFF);
-		BMS_Cell_TempN[60] = (uint8)(((*(uint8 *)(rawData + 4))) & 0xFF);
-		BMS_Cell_TempN[61] = (uint8)(((*(uint8 *)(rawData + 5))) & 0xFF);
-		BMS_Cell_TempN[62] = (uint8)(((*(uint8 *)(rawData + 6))) & 0xFF);
-		BMS_Cell_TempN[63] = (uint8)(((*(uint8 *)(rawData + 7))) & 0xFF);
-		BcuRxFlag[112] = 0x01;
-		break;
-	case 0x18E1EFF4:
-	{
-		uint8 SN_FrameNo = 0, SN_SysCodeLength;
-		SN_FrameNo = (uint8)(((*(uint8 *)(rawData + 0))) & 0xFF);
-		SN_SysCodeLength = (uint8)(((*(uint8 *)(rawData + 1))) & 0xFF);
-		BMS_SN_SysCode[0 + 6 * (SN_FrameNo - 1)] = (uint8)(((*(uint8 *)(rawData + 2))) & 0xFF);
-		BMS_SN_SysCode[1 + 6 * (SN_FrameNo - 1)] = (uint8)(((*(uint8 *)(rawData + 3))) & 0xFF);
-		BMS_SN_SysCode[2 + 6 * (SN_FrameNo - 1)] = (uint8)(((*(uint8 *)(rawData + 4))) & 0xFF);
-		BMS_SN_SysCode[3 + 6 * (SN_FrameNo - 1)] = (uint8)(((*(uint8 *)(rawData + 5))) & 0xFF);
-		BMS_SN_SysCode[4 + 6 * (SN_FrameNo - 1)] = (uint8)(((*(uint8 *)(rawData + 6))) & 0xFF);
-		BMS_SN_SysCode[5 + 6 * (SN_FrameNo - 1)] = (uint8)(((*(uint8 *)(rawData + 7))) & 0xFF);
-		BcuRxFlag[113] = 0x01;
-		BCU_SnMsgFlag = BCU_SnMsgFlag | (1 << (SN_FrameNo - 1));
-		break;
-	}
-	case 0x18E2EFF4:
-		BMS21_RateCap = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS21_RateHVolt = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS21_RatePower = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS21_BattType = (uint8)(((*(uint8 *)(rawData + 6))) & 0xF);
-		BMS21_CoolType = (uint8)(((*(uint8 *)(rawData + 6)) >> 4) & 0x3);
-		BMS21_Manufacture = (uint8)(((*(uint16 *)(rawData + 6)) >> 6) & 0xF);
-		BMS21_ProtocolEditionH = (uint8)(((*(uint8 *)(rawData + 7)) >> 2) & 0x3);
-		BMS21_ProtocolEditionL = (uint8)(((*(uint8 *)(rawData + 7)) >> 4) & 0xF);
-		BcuRxFlag[114] = 0x01;
-		break;
-	case 0x18E3EFF4:
-		BMS9_TotCSCNum = (uint8)(((*(uint8 *)(rawData + 0))) & 0xFF);
-		BMS9_PackTotCellNum = (uint16)(((*(uint16 *)(rawData + 1))) & 0xFFFF);
-		BMS9_PackTotTempNum = (uint8)(((*(uint8 *)(rawData + 3))) & 0xFF);
-		BMS9_HVBranchNum = (uint8)(((*(uint8 *)(rawData + 4))) & 0xFF);
-		BMS9_SingleHVBranchCellNum = (uint8)(((*(uint8 *)(rawData + 5))) & 0xFF);
-		BMS9_BattSysNum = (uint8)(((*(uint8 *)(rawData + 6))) & 0xFF);
-		BMS9_BattSysSeqNum = (uint8)(((*(uint8 *)(rawData + 7))) & 0xFF);
-		BcuRxFlag[115] = 0x01;
-		break;
-	case 0x18E4EFF4:
-		BMS22_PackAvaiMaxVolt = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS22_PackAvaiMinVolt = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS22_AvaiMaxSOC = (uint8)(((*(uint8 *)(rawData + 4))) & 0xFF);
-		BMS22_AvaiMinSOC = (uint8)(((*(uint8 *)(rawData + 5))) & 0xFF);
-		BMS22_AvaiMaxTemp = (uint8)(((*(uint8 *)(rawData + 6))) & 0xFF);
-		BMS22_AvaiMinTemp = (uint8)(((*(uint8 *)(rawData + 7))) & 0xFF);
-		BcuRxFlag[116] = 0x01;
-		break;
-	case 0x18FEDAF4:
-		BMS_SoftwareVersion = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS_HardwareVersion = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BcuRxFlag[117] = 0x01;
-		break;
-	case 0x18FF23F4:
-		BMS3_MaxDischgPow = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS3_MaxChgPow = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS3_MaxInstantDischgPow = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS3_MaxiInstantChgPow = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[118] = 0x01;
-		break;
-	case 0x18FF24F4:
-		BMS10_SubSysEncodingLen = (uint8)(((*(uint8 *)(rawData + 1))) & 0xFF);
-		BMS10_SubSysIdx = (uint8)(((*(uint8 *)(rawData + 2))) & 0xFF);
-		BMS10_SubSysErrNum = (uint8)(((*(uint8 *)(rawData + 7))) & 0xFF);
-		BcuRxFlag[119] = 0x01;
-		break;
-	case 0x18FF25F4:
-		BMS5_DischgCurMaxAllw = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS5_ChrgCurMaxAllw = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS5_InstChrgCurMaxAllw = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS5_InstDischrgCurMaxAllw = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[120] = 0x01;
-		break;
-	case 0x18FF30F4:
-		BMS26_Bat_InstantConsume = (uint16)(((*(uint16 *)(rawData + 0))) & 0xFFFF);
-		BMS26_Bat_TotalConsume = (uint16)(((*(uint16 *)(rawData + 2))) & 0xFFFF);
-		BMS26_ChgReqVoltage = (uint16)(((*(uint16 *)(rawData + 4))) & 0xFFFF);
-		BMS26_ChgReqCurrent = (uint16)(((*(uint16 *)(rawData + 6))) & 0xFFFF);
-		BcuRxFlag[121] = 0x01;
-		break;
-	case 0x18FF45F4:
-		BMS28_ReqMode = (uint8)(((((*(uint8 *)(rawData + 0)) >> 0) & 0x3) * 1) + (0));
-		BMS28_HVCmd = (uint8)(((((*(uint8 *)(rawData + 0)) >> 2) & 0x3) * 1) + (0));
-		BMS28_ChgSts = (uint8)(((((*(uint8 *)(rawData + 0)) >> 4) & 0x3) * 1) + (0));
-		BMS28_HVRelaySts = (uint8)(((((*(uint8 *)(rawData + 0)) >> 6) & 0x3) * 1) + (0));
-		BMS28_HVVolt = (uint16)((((((*(uint16 *)(rawData + 1) >> 8) & 0xFF) | ((*(uint16 *)(rawData + 1) << 8) & 0xFF00) >> 0) & 0xFFFF) * 1) + (0));
-		BMS28_SetTemp = (uint8)(((((*(uint8 *)(rawData + 4)) >> 0) & 0xFF) * 1) + (0));
-		BMS28_Life = (uint8)(((((*(uint8 *)(rawData + 6)) >> 0) & 0xFF) * 1) + (0));
-		BMS28_CRC = (uint8)(((((*(uint8 *)(rawData + 7)) >> 0) & 0xFF) * 1) + (0));
-		BcuRxFlag[122] = 0x01;
-		break;
-	case 0x18FFC13A:
-		TMS_WorkStatus = (uint8)(((((*(uint8 *)(rawData + 0)) >> 0) & 0x3) * 1) + (0));
-		TMS_HVRelayST = (uint8)(((((*(uint8 *)(rawData + 0)) >> 2) & 0x3) * 1) + (0));
-		TMS_OutletTemp = (uint8)(((((*(uint8 *)(rawData + 1)) >> 0) & 0xFF) * 1) + (0));
-		TMS_InletTemp = (uint8)(((((*(uint8 *)(rawData + 2)) >> 0) & 0xFF) * 1) + (0));
-		TMS_Version = (uint8)(((((*(uint8 *)(rawData + 3)) >> 0) & 0xFF) * 1) + (0));
-		TMS_ReqPow = (uint16)((((((*(uint16 *)(rawData + 5) >> 8) & 0xFF) | ((*(uint16 *)(rawData + 5) << 8) & 0xFF00) >> 0) & 0xFFFF) * 1) + (0));
-		TMS_ErrCode = (uint8)(((((*(uint8 *)(rawData + 7)) >> 0) & 0x3F) * 1) + (0));
-		TMS_FaultLevel = (uint8)(((((*(uint8 *)(rawData + 7)) >> 6) & 0x3) * 1) + (0));
-		BcuRxFlag[123] = 0x01;
-		break;
-	case 0x18FFD4F4:
-		BMS14_TotalChargeAh = (uint32)(((*(uint32 *)(rawData + 0))) & 0xFFFFFFFF);
-		BMS14_TotalDischargeAh = (uint32)(((*(uint32 *)(rawData + 4))) & 0xFFFFFFFF);
-		BcuRxFlag[124] = 0x01;
-		break;
-	case 0x18FFD5F4:
-		BMS15_TotalChargeKwh = (uint32)(((*(uint32 *)(rawData + 0))) & 0xFFFFFFFF);
-		BMS15_TotalDischargeKwh = (uint32)(((*(uint32 *)(rawData + 4))) & 0xFFFFFFFF);
-		BcuRxFlag[125] = 0x01;
-		break;
-	case 0x18FFD6F4:
-		BMS16_TotalEneryECOChargeAh = (uint32)(((*(uint32 *)(rawData + 0))) & 0xFFFFFFFF);
-		BMS16_TotalEneryECOChargeKwh = (uint32)(((*(uint32 *)(rawData + 4))) & 0xFFFFFFFF);
-		BcuRxFlag[126] = 0x01;
-		break;
-	case 0x18FFD7F4:
-		BMS17_TotalStationChargeAh = (uint32)(((*(uint32 *)(rawData + 0))) & 0xFFFFFFFF);
-		BMS17_TotalStationChargeKwh = (uint32)(((*(uint32 *)(rawData + 4))) & 0xFFFFFFFF);
-		BcuRxFlag[127] = 0x01;
-		break;
-	case 0x18FFD8F4:
-		BMS18_TotalPoleChargeAh = (uint32)(((*(uint32 *)(rawData + 0))) & 0xFFFFFFFF);
-		BMS18_TotalPoleChargeKwh = (uint32)(((*(uint32 *)(rawData + 4))) & 0xFFFFFFFF);
-		BcuRxFlag[128] = 0x01;
-		break;
-	case 0x18FFD9F4:
-		BMS19_SingleChargeAh = (uint32)(((*(uint32 *)(rawData + 0))) & 0xFFFFFFFF);
-		BMS19_SingleChargeKwh = (uint32)(((*(uint32 *)(rawData + 4))) & 0xFFFFFFFF);
-		BcuRxFlag[129] = 0x01;
-		break;
-	default:
-		break;
-	}
-}
-void BcuRxDiagnose(void)//100ms调用一次
-{
-	static uint32 TimeCounter = 0;//ms
-	TimeCounter = TimeCounter + 100; //
-
-	for (uint8 i = 0; i < sizeof(BcuInTable) / 4; i++)
-	{
-		if (BcuRxFlag[i] == 1) // received msg, and clear the error conter
-		{
-			BcuRxErrorCounter[i] = 0;
-			BcuRxFlag[i] = 0;
-			continue;
-		}
-		if (BcuRxErrorCounter[i] < 3)
-		{
-			BcuRxShortError[i] = 0;
-			BcuRxLongError[i] = 0;
-		}
-		else if (BcuRxErrorCounter[i] >= 3 && BcuRxErrorCounter[i] < 13)
-		{
-			BcuRxShortError[i] = 1;
-			BcuRxLongError[i] = 0;
-		}
-		else if (BcuRxErrorCounter[i] >= 13)
-		{
-			BcuRxShortError[i] = 0;
-			BcuRxLongError[i] = 1;
-			BcuRxMsgSetInvalidValue(BcuInTable[i]);
-			BcuRxErrorCounter[i] = 0;
-		}
-		else if (BcuRxErrorCounter[i] == 0xFF)
-		{
-			BcuRxErrorCounter[i] = 0xFE;
-		}
-	}
-
-	if (TimeCounter % 100 == 0) // period <=100ms
-	{
-		BcuRxErrorCounter[99]++; // can msg 0x1883EFF4
-		// if(BcuRxErrorCounter[99]>=13)
-		BcuRxErrorCounter[100]++; // can msg 0x1884EFF4
-		// if(BcuRxErrorCounter[100]>=13)
-		BcuRxErrorCounter[118]++; // can msg 0x18FF23F4
-		// if(BcuRxErrorCounter[118]>=13)
-		BcuRxErrorCounter[120]++; // can msg 0x18FF25F4
-								  // if(BcuRxErrorCounter[120]>=13)
-	}
-	if (TimeCounter % 200 == 0) // period ==200ms
-	{
-		BcuRxErrorCounter[103]++; // can msg 0x1887EFF4
-		// if(BcuRxErrorCounter[103]>=13)
-		// printf("can msg 0x%x lost,cycle time200ms\n",COMInTable[103]);
-		BcuRxErrorCounter[121]++; // can msg 0x18FF30F4
-								  // if(BcuRxErrorCounter[121]>=13)
-								  // printf("can msg 0x%x lost,cycle time200ms\n",COMInTable[121]);
-	}
-	if (TimeCounter % 500 == 0) // period ==500ms
-	{
-		BcuRxErrorCounter[0]++; // can msg 0x1801EFF4
-		// if(BcuRxErrorCounter[0]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[0]);
-		BcuRxErrorCounter[1]++; // can msg 0x1801FBF4
-		// if(BcuRxErrorCounter[1]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[1]);
-		BcuRxErrorCounter[2]++; // can msg 0x1802FBF4
-		// if(BcuRxErrorCounter[2]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[2]);
-		BcuRxErrorCounter[3]++; // can msg 0x1803FBF4
-		// if(BcuRxErrorCounter[3]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[3]);
-		BcuRxErrorCounter[4]++; // can msg 0x1804FBF4
-		// if(BcuRxErrorCounter[4]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[4]);
-		BcuRxErrorCounter[5]++; // can msg 0x1805FBF4
-		// if(BcuRxErrorCounter[5]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[5]);
-		BcuRxErrorCounter[6]++; // can msg 0x1806FBF4
-		// if(BcuRxErrorCounter[6]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[6]);
-		BcuRxErrorCounter[7]++; // can msg 0x1807FBF4
-		// if(BcuRxErrorCounter[7]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[7]);
-		BcuRxErrorCounter[8]++; // can msg 0x1808FBF4
-		// if(BcuRxErrorCounter[8]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[8]);
-		BcuRxErrorCounter[9]++; // can msg 0x1809FBF4
-		// if(BcuRxErrorCounter[9]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[9]);
-		BcuRxErrorCounter[10]++; // can msg 0x180AFBF4
-		// if(BcuRxErrorCounter[10]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[10]);
-		BcuRxErrorCounter[11]++; // can msg 0x180BFBF4
-		// if(BcuRxErrorCounter[11]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[11]);
-		BcuRxErrorCounter[12]++; // can msg 0x180CFBF4
-		// if(BcuRxErrorCounter[12]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[12]);
-		BcuRxErrorCounter[13]++; // can msg 0x180DFBF4
-		// if(BcuRxErrorCounter[13]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[13]);
-		BcuRxErrorCounter[14]++; // can msg 0x180EFBF4
-		// if(BcuRxErrorCounter[14]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[14]);
-		BcuRxErrorCounter[15]++; // can msg 0x180FFBF4
-		// if(BcuRxErrorCounter[15]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[15]);
-		BcuRxErrorCounter[16]++; // can msg 0x1810FBF4
-		// if(BcuRxErrorCounter[16]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[16]);
-		BcuRxErrorCounter[17]++; // can msg 0x1811FBF4
-		// if(BcuRxErrorCounter[17]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[17]);
-		BcuRxErrorCounter[18]++; // can msg 0x1812FBF4
-		// if(BcuRxErrorCounter[18]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[18]);
-		BcuRxErrorCounter[19]++; // can msg 0x1813FBF4
-		// if(BcuRxErrorCounter[19]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[19]);
-		BcuRxErrorCounter[20]++; // can msg 0x1814FBF4
-		// if(BcuRxErrorCounter[20]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[20]);
-		BcuRxErrorCounter[21]++; // can msg 0x1815FBF4
-		// if(BcuRxErrorCounter[21]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[21]);
-		BcuRxErrorCounter[22]++; // can msg 0x1816FBF4
-		// if(BcuRxErrorCounter[22]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[22]);
-		BcuRxErrorCounter[23]++; // can msg 0x1817FBF4
-		// if(BcuRxErrorCounter[23]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[23]);
-		BcuRxErrorCounter[24]++; // can msg 0x1818FBF4
-		// if(BcuRxErrorCounter[24]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[24]);
-		BcuRxErrorCounter[25]++; // can msg 0x1819FBF4
-		// if(BcuRxErrorCounter[25]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[25]);
-		BcuRxErrorCounter[26]++; // can msg 0x181AFBF4
-		// if(BcuRxErrorCounter[26]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[26]);
-		BcuRxErrorCounter[27]++; // can msg 0x181BFBF4
-		// if(BcuRxErrorCounter[27]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[27]);
-		BcuRxErrorCounter[28]++; // can msg 0x181CFBF4
-		// if(BcuRxErrorCounter[28]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[28]);
-		BcuRxErrorCounter[29]++; // can msg 0x181DFBF4
-		// if(BcuRxErrorCounter[29]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[29]);
-		BcuRxErrorCounter[30]++; // can msg 0x181EFBF4
-		// if(BcuRxErrorCounter[30]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[30]);
-		BcuRxErrorCounter[31]++; // can msg 0x181FFBF4
-		// if(BcuRxErrorCounter[31]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[31]);
-		BcuRxErrorCounter[32]++; // can msg 0x1820FBF4
-		// if(BcuRxErrorCounter[32]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[32]);
-		BcuRxErrorCounter[33]++; // can msg 0x1821FBF4
-		// if(BcuRxErrorCounter[33]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[33]);
-		BcuRxErrorCounter[34]++; // can msg 0x1822FBF4
-		// if(BcuRxErrorCounter[34]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[34]);
-		BcuRxErrorCounter[35]++; // can msg 0x1823FBF4
-		// if(BcuRxErrorCounter[35]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[35]);
-		BcuRxErrorCounter[36]++; // can msg 0x1824FBF4
-		// if(BcuRxErrorCounter[36]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[36]);
-		BcuRxErrorCounter[37]++; // can msg 0x1825FBF4
-		// if(BcuRxErrorCounter[37]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[37]);
-		BcuRxErrorCounter[38]++; // can msg 0x1826FBF4
-		// if(BcuRxErrorCounter[38]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[38]);
-		BcuRxErrorCounter[39]++; // can msg 0x1827FBF4
-		// if(BcuRxErrorCounter[39]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[39]);
-		BcuRxErrorCounter[40]++; // can msg 0x1828FBF4
-		// if(BcuRxErrorCounter[40]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[40]);
-		BcuRxErrorCounter[41]++; // can msg 0x1829FBF4
-		// if(BcuRxErrorCounter[41]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[41]);
-		BcuRxErrorCounter[42]++; // can msg 0x182AFBF4
-		// if(BcuRxErrorCounter[42]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[42]);
-		BcuRxErrorCounter[43]++; // can msg 0x182BFBF4
-		// if(BcuRxErrorCounter[43]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[43]);
-		BcuRxErrorCounter[44]++; // can msg 0x182CFBF4
-		// if(BcuRxErrorCounter[44]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[44]);
-		BcuRxErrorCounter[45]++; // can msg 0x182DFBF4
-		// if(BcuRxErrorCounter[45]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[45]);
-		BcuRxErrorCounter[46]++; // can msg 0x182EFBF4
-		// if(BcuRxErrorCounter[46]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[46]);
-		BcuRxErrorCounter[47]++; // can msg 0x182FFBF4
-		// if(BcuRxErrorCounter[47]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[47]);
-		BcuRxErrorCounter[48]++; // can msg 0x1830FBF4
-		// if(BcuRxErrorCounter[48]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[48]);
-		BcuRxErrorCounter[49]++; // can msg 0x1831FBF4
-		// if(BcuRxErrorCounter[49]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[49]);
-		BcuRxErrorCounter[50]++; // can msg 0x1832FBF4
-		// if(BcuRxErrorCounter[50]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[50]);
-		BcuRxErrorCounter[51]++; // can msg 0x1833FBF4
-		// if(BcuRxErrorCounter[51]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[51]);
-		BcuRxErrorCounter[52]++; // can msg 0x1834FBF4
-		// if(BcuRxErrorCounter[52]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[52]);
-		BcuRxErrorCounter[53]++; // can msg 0x1835FBF4
-		// if(BcuRxErrorCounter[53]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[53]);
-		BcuRxErrorCounter[54]++; // can msg 0x1836FBF4
-		// if(BcuRxErrorCounter[54]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[54]);
-		BcuRxErrorCounter[55]++; // can msg 0x1837FBF4
-		// if(BcuRxErrorCounter[55]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[55]);
-		BcuRxErrorCounter[56]++; // can msg 0x1838FBF4
-		// if(BcuRxErrorCounter[56]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[56]);
-		BcuRxErrorCounter[57]++; // can msg 0x1839FBF4
-		// if(BcuRxErrorCounter[57]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[57]);
-		BcuRxErrorCounter[58]++; // can msg 0x183AFBF4
-		// if(BcuRxErrorCounter[58]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[58]);
-		BcuRxErrorCounter[59]++; // can msg 0x183BFBF4
-		// if(BcuRxErrorCounter[59]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[59]);
-		BcuRxErrorCounter[60]++; // can msg 0x183CFBF4
-		// if(BcuRxErrorCounter[60]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[60]);
-		BcuRxErrorCounter[61]++; // can msg 0x183DFBF4
-		// if(BcuRxErrorCounter[61]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[61]);
-		BcuRxErrorCounter[62]++; // can msg 0x183EFBF4
-		// if(BcuRxErrorCounter[62]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[62]);
-		BcuRxErrorCounter[63]++; // can msg 0x183FFBF4
-		// if(BcuRxErrorCounter[63]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[63]);
-		BcuRxErrorCounter[64]++; // can msg 0x1840FBF4
-		// if(BcuRxErrorCounter[64]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[64]);
-		BcuRxErrorCounter[65]++; // can msg 0x1841FBF4
-		// if(BcuRxErrorCounter[65]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[65]);
-		BcuRxErrorCounter[66]++; // can msg 0x1842FBF4
-		// if(BcuRxErrorCounter[66]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[66]);
-		BcuRxErrorCounter[67]++; // can msg 0x1843FBF4
-		// if(BcuRxErrorCounter[67]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[67]);
-		BcuRxErrorCounter[68]++; // can msg 0x1844FBF4
-		// if(BcuRxErrorCounter[68]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[68]);
-		BcuRxErrorCounter[69]++; // can msg 0x1845FBF4
-		// if(BcuRxErrorCounter[69]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[69]);
-		BcuRxErrorCounter[70]++; // can msg 0x1846FBF4
-		// if(BcuRxErrorCounter[70]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[70]);
-		BcuRxErrorCounter[71]++; // can msg 0x1847FBF4
-		// if(BcuRxErrorCounter[71]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[71]);
-		BcuRxErrorCounter[72]++; // can msg 0x1848FBF4
-		// if(BcuRxErrorCounter[72]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[72]);
-		BcuRxErrorCounter[73]++; // can msg 0x1849FBF4
-		// if(BcuRxErrorCounter[73]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[73]);
-		BcuRxErrorCounter[74]++; // can msg 0x184AFBF4
-		// if(BcuRxErrorCounter[74]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[74]);
-		BcuRxErrorCounter[75]++; // can msg 0x184BFBF4
-		// if(BcuRxErrorCounter[75]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[75]);
-		BcuRxErrorCounter[76]++; // can msg 0x184CFBF4
-		// if(BcuRxErrorCounter[76]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[76]);
-		BcuRxErrorCounter[77]++; // can msg 0x184DFBF4
-		// if(BcuRxErrorCounter[77]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[77]);
-		BcuRxErrorCounter[78]++; // can msg 0x184EFBF4
-		// if(BcuRxErrorCounter[78]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[78]);
-		BcuRxErrorCounter[79]++; // can msg 0x184FFBF4
-		// if(BcuRxErrorCounter[79]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[79]);
-		BcuRxErrorCounter[80]++; // can msg 0x1850FBF4
-		// if(BcuRxErrorCounter[80]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[80]);
-		BcuRxErrorCounter[81]++; // can msg 0x1851FBF4
-		// if(BcuRxErrorCounter[81]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[81]);
-		BcuRxErrorCounter[82]++; // can msg 0x1852FBF4
-		// if(BcuRxErrorCounter[82]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[82]);
-		BcuRxErrorCounter[83]++; // can msg 0x1853FBF4
-		// if(BcuRxErrorCounter[83]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[83]);
-		BcuRxErrorCounter[84]++; // can msg 0x1854FBF4
-		// if(BcuRxErrorCounter[84]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[84]);
-		BcuRxErrorCounter[85]++; // can msg 0x1855FBF4
-		// if(BcuRxErrorCounter[85]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[85]);
-		BcuRxErrorCounter[86]++; // can msg 0x1856FBF4
-		// if(BcuRxErrorCounter[86]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[86]);
-		BcuRxErrorCounter[87]++; // can msg 0x1857FBF4
-		// if(BcuRxErrorCounter[87]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[87]);
-		BcuRxErrorCounter[88]++; // can msg 0x1858FBF4
-		// if(BcuRxErrorCounter[88]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[88]);
-		BcuRxErrorCounter[89]++; // can msg 0x1859FBF4
-		// if(BcuRxErrorCounter[89]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[89]);
-		BcuRxErrorCounter[90]++; // can msg 0x185AFBF4
-		// if(BcuRxErrorCounter[90]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[90]);
-		BcuRxErrorCounter[91]++; // can msg 0x185BFBF4
-		// if(BcuRxErrorCounter[91]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[91]);
-		BcuRxErrorCounter[92]++; // can msg 0x185CFBF4
-		// if(BcuRxErrorCounter[92]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[92]);
-		BcuRxErrorCounter[93]++; // can msg 0x185DFBF4
-		// if(BcuRxErrorCounter[93]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[93]);
-		BcuRxErrorCounter[94]++; // can msg 0x185EFBF4
-		// if(BcuRxErrorCounter[94]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[94]);
-		BcuRxErrorCounter[95]++; // can msg 0x185FFBF4
-		// if(BcuRxErrorCounter[95]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[95]);
-		BcuRxErrorCounter[96]++; // can msg 0x1860FBF4
-		// if(BcuRxErrorCounter[96]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[96]);
-		BcuRxErrorCounter[97]++; // can msg 0x1881EFF4
-		// if(BcuRxErrorCounter[97]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[97]);
-		BcuRxErrorCounter[98]++; // can msg 0x1882EFF4
-		// if(BcuRxErrorCounter[98]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[98]);
-		BcuRxErrorCounter[101]++; // can msg 0x1885EFF4
-		// if(BcuRxErrorCounter[101]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[101]);
-		BcuRxErrorCounter[102]++; // can msg 0x1886EFF4
-		// if(BcuRxErrorCounter[102]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[102]);
-		BcuRxErrorCounter[104]++; // can msg 0x1888EFF4
-		// if(BcuRxErrorCounter[104]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[104]);
-		BcuRxErrorCounter[105]++; // can msg 0x1889EFF4
-		// if(BcuRxErrorCounter[105]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[105]);
-		BcuRxErrorCounter[106]++; // can msg 0x18A0FBF4
-		// if(BcuRxErrorCounter[106]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[106]);
-		BcuRxErrorCounter[107]++; // can msg 0x18A1FBF4
-		// if(BcuRxErrorCounter[107]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[107]);
-		BcuRxErrorCounter[108]++; // can msg 0x18A2FBF4
-		// if(BcuRxErrorCounter[108]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[108]);
-		BcuRxErrorCounter[109]++; // can msg 0x18A3FBF4
-		// if(BcuRxErrorCounter[109]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[109]);
-		BcuRxErrorCounter[110]++; // can msg 0x18A4FBF4
-		// if(BcuRxErrorCounter[110]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[110]);
-		BcuRxErrorCounter[111]++; // can msg 0x18A5FBF4
-		// if(BcuRxErrorCounter[111]>=13)
-		// printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[111]);
-		BcuRxErrorCounter[112]++; // can msg 0x18A6FBF4
-								  // if(BcuRxErrorCounter[112]>=13)
-								  // printf("can msg 0x%x lost,cycle time500ms\n",COMInTable[112]);
-	}
-	if (TimeCounter % 1000 == 0) // period ==1000ms
-	{
-		BcuRxErrorCounter[113]++; // can msg 0x18E1EFF4
-		// if(BcuRxErrorCounter[113]>=13)
-		// printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[113]);
-		BcuRxErrorCounter[114]++; // can msg 0x18E2EFF4
-		// if(BcuRxErrorCounter[114]>=13)
-		// printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[114]);
-		BcuRxErrorCounter[115]++; // can msg 0x18E3EFF4
-		// if(BcuRxErrorCounter[115]>=13)
-		// printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[115]);
-		BcuRxErrorCounter[116]++; // can msg 0x18E4EFF4
-		// if(BcuRxErrorCounter[116]>=13)
-		// printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[116]);
-		BcuRxErrorCounter[117]++; // can msg 0x18FEDAF4
-		// if(BcuRxErrorCounter[117]>=13)
-		// printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[117]);
-		BcuRxErrorCounter[119]++; // can msg 0x18FF24F4
-		// if(BcuRxErrorCounter[119]>=13)
-		// printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[119]);
-		BcuRxErrorCounter[122]++; // can msg 0x18FF45F4
-		// if(BcuRxErrorCounter[122]>=13)
-		// printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[122]);
-		BcuRxErrorCounter[123]++; // can msg 0x18FFC13A
-		// if(BcuRxErrorCounter[123]>=13)
-		// printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[123]);
-		BcuRxErrorCounter[124]++; // can msg 0x18FFD4F4
-		// if(BcuRxErrorCounter[124]>=13)
-		// printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[124]);
-		BcuRxErrorCounter[125]++; // can msg 0x18FFD5F4
-		// if(BcuRxErrorCounter[125]>=13)
-		// printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[125]);
-		BcuRxErrorCounter[126]++; // can msg 0x18FFD6F4
-		// if(BcuRxErrorCounter[126]>=13)
-		// printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[126]);
-		BcuRxErrorCounter[127]++; // can msg 0x18FFD7F4
-		// if(BcuRxErrorCounter[127]>=13)
-		// printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[127]);
-		BcuRxErrorCounter[128]++; // can msg 0x18FFD8F4
-		// if(BcuRxErrorCounter[128]>=13)
-		// printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[128]);
-		BcuRxErrorCounter[129]++; // can msg 0x18FFD9F4
-								  // if(BcuRxErrorCounter[129]>=13)
-								  // printf("can msg 0x%x lost,cycle time1000ms\n",COMInTable[129]);
-	}
-	if (TimeCounter % 2000 == 0) // period ==2000ms
-	{
-	}
-	if (TimeCounter % 3000 == 0) // period ==3000ms
-	{
-	}
-	if (TimeCounter % 5000 == 0) // period ==5000ms
-	{
-	}
-}
-void BcuRxMsgSetInvalidValue(uint32 ID)
-{
-	switch (ID)
-	{
-	case 0x1801EFF4:
-		BMS13_ReqVIN = 0xFF;
-		break;
-	case 0x1801FBF4:
-		BMS_Cell_Volt[0] = 0xFFFF;
-		BMS_Cell_Volt[1] = 0xFFFF;
-		BMS_Cell_Volt[2] = 0xFFFF;
-		BMS_Cell_Volt[3] = 0xFFFF;
-		break;
-	case 0x1802FBF4:
-		BMS_Cell_Volt[4] = 0xFFFF;
-		BMS_Cell_Volt[5] = 0xFFFF;
-		BMS_Cell_Volt[6] = 0xFFFF;
-		BMS_Cell_Volt[7] = 0xFFFF;
-		break;
-	case 0x1803FBF4:
-		BMS_Cell_Volt[8] = 0xFFFF;
-		BMS_Cell_Volt[9] = 0xFFFF;
-		BMS_Cell_Volt[10] = 0xFFFF;
-		BMS_Cell_Volt[11] = 0xFFFF;
-		break;
-	case 0x1804FBF4:
-		BMS_Cell_Volt[12] = 0xFFFF;
-		BMS_Cell_Volt[13] = 0xFFFF;
-		BMS_Cell_Volt[14] = 0xFFFF;
-		BMS_Cell_Volt[15] = 0xFFFF;
-		break;
-	case 0x1805FBF4:
-		BMS_Cell_Volt[16] = 0xFFFF;
-		BMS_Cell_Volt[17] = 0xFFFF;
-		BMS_Cell_Volt[18] = 0xFFFF;
-		BMS_Cell_Volt[19] = 0xFFFF;
-		break;
-	case 0x1806FBF4:
-		BMS_Cell_Volt[20] = 0xFFFF;
-		BMS_Cell_Volt[21] = 0xFFFF;
-		BMS_Cell_Volt[22] = 0xFFFF;
-		BMS_Cell_Volt[23] = 0xFFFF;
-		break;
-	case 0x1807FBF4:
-		BMS_Cell_Volt[24] = 0xFFFF;
-		BMS_Cell_Volt[25] = 0xFFFF;
-		BMS_Cell_Volt[26] = 0xFFFF;
-		BMS_Cell_Volt[27] = 0xFFFF;
-		break;
-	case 0x1808FBF4:
-		BMS_Cell_Volt[28] = 0xFFFF;
-		BMS_Cell_Volt[29] = 0xFFFF;
-		BMS_Cell_Volt[30] = 0xFFFF;
-		BMS_Cell_Volt[31] = 0xFFFF;
-		break;
-	case 0x1809FBF4:
-		BMS_Cell_Volt[32] = 0xFFFF;
-		BMS_Cell_Volt[33] = 0xFFFF;
-		BMS_Cell_Volt[34] = 0xFFFF;
-		BMS_Cell_Volt[35] = 0xFFFF;
-		break;
-	case 0x180AFBF4:
-		BMS_Cell_Volt[36] = 0xFFFF;
-		BMS_Cell_Volt[37] = 0xFFFF;
-		BMS_Cell_Volt[38] = 0xFFFF;
-		BMS_Cell_Volt[39] = 0xFFFF;
-		break;
-	case 0x180BFBF4:
-		BMS_Cell_Volt[40] = 0xFFFF;
-		BMS_Cell_Volt[41] = 0xFFFF;
-		BMS_Cell_Volt[42] = 0xFFFF;
-		BMS_Cell_Volt[43] = 0xFFFF;
-		break;
-	case 0x180CFBF4:
-		BMS_Cell_Volt[44] = 0xFFFF;
-		BMS_Cell_Volt[45] = 0xFFFF;
-		BMS_Cell_Volt[46] = 0xFFFF;
-		BMS_Cell_Volt[47] = 0xFFFF;
-		break;
-	case 0x180DFBF4:
-		BMS_Cell_Volt[48] = 0xFFFF;
-		BMS_Cell_Volt[49] = 0xFFFF;
-		BMS_Cell_Volt[50] = 0xFFFF;
-		BMS_Cell_Volt[51] = 0xFFFF;
-		break;
-	case 0x180EFBF4:
-		BMS_Cell_Volt[52] = 0xFFFF;
-		BMS_Cell_Volt[53] = 0xFFFF;
-		BMS_Cell_Volt[54] = 0xFFFF;
-		BMS_Cell_Volt[55] = 0xFFFF;
-		break;
-	case 0x180FFBF4:
-		BMS_Cell_Volt[56] = 0xFFFF;
-		BMS_Cell_Volt[57] = 0xFFFF;
-		BMS_Cell_Volt[58] = 0xFFFF;
-		BMS_Cell_Volt[59] = 0xFFFF;
-		break;
-	case 0x1810FBF4:
-		BMS_Cell_Volt[60] = 0xFFFF;
-		BMS_Cell_Volt[61] = 0xFFFF;
-		BMS_Cell_Volt[62] = 0xFFFF;
-		BMS_Cell_Volt[63] = 0xFFFF;
-		break;
-	case 0x1811FBF4:
-		BMS_Cell_Volt[64] = 0xFFFF;
-		BMS_Cell_Volt[65] = 0xFFFF;
-		BMS_Cell_Volt[66] = 0xFFFF;
-		BMS_Cell_Volt[67] = 0xFFFF;
-		break;
-	case 0x1812FBF4:
-		BMS_Cell_Volt[68] = 0xFFFF;
-		BMS_Cell_Volt[69] = 0xFFFF;
-		BMS_Cell_Volt[70] = 0xFFFF;
-		BMS_Cell_Volt[71] = 0xFFFF;
-		break;
-	case 0x1813FBF4:
-		BMS_Cell_Volt[72] = 0xFFFF;
-		BMS_Cell_Volt[73] = 0xFFFF;
-		BMS_Cell_Volt[74] = 0xFFFF;
-		BMS_Cell_Volt[75] = 0xFFFF;
-		break;
-	case 0x1814FBF4:
-		BMS_Cell_Volt[76] = 0xFFFF;
-		BMS_Cell_Volt[77] = 0xFFFF;
-		BMS_Cell_Volt[78] = 0xFFFF;
-		BMS_Cell_Volt[79] = 0xFFFF;
-		break;
-	case 0x1815FBF4:
-		BMS_Cell_Volt[80] = 0xFFFF;
-		BMS_Cell_Volt[81] = 0xFFFF;
-		BMS_Cell_Volt[82] = 0xFFFF;
-		BMS_Cell_Volt[83] = 0xFFFF;
-		break;
-	case 0x1816FBF4:
-		BMS_Cell_Volt[84] = 0xFFFF;
-		BMS_Cell_Volt[85] = 0xFFFF;
-		BMS_Cell_Volt[86] = 0xFFFF;
-		BMS_Cell_Volt[87] = 0xFFFF;
-		break;
-	case 0x1817FBF4:
-		BMS_Cell_Volt[88] = 0xFFFF;
-		BMS_Cell_Volt[89] = 0xFFFF;
-		BMS_Cell_Volt[90] = 0xFFFF;
-		BMS_Cell_Volt[91] = 0xFFFF;
-		break;
-	case 0x1818FBF4:
-		BMS_Cell_Volt[92] = 0xFFFF;
-		BMS_Cell_Volt[93] = 0xFFFF;
-		BMS_Cell_Volt[94] = 0xFFFF;
-		BMS_Cell_Volt[95] = 0xFFFF;
-		break;
-	case 0x1819FBF4:
-		BMS_Cell_Volt[96] = 0xFFFF;
-		BMS_Cell_Volt[97] = 0xFFFF;
-		BMS_Cell_Volt[98] = 0xFFFF;
-		BMS_Cell_Volt[99] = 0xFFFF;
-		break;
-	case 0x181AFBF4:
-		BMS_Cell_Volt[100] = 0xFFFF;
-		BMS_Cell_Volt[101] = 0xFFFF;
-		BMS_Cell_Volt[102] = 0xFFFF;
-		BMS_Cell_Volt[103] = 0xFFFF;
-		break;
-	case 0x181BFBF4:
-		BMS_Cell_Volt[104] = 0xFFFF;
-		BMS_Cell_Volt[105] = 0xFFFF;
-		BMS_Cell_Volt[106] = 0xFFFF;
-		BMS_Cell_Volt[107] = 0xFFFF;
-		break;
-	case 0x181CFBF4:
-		BMS_Cell_Volt[108] = 0xFFFF;
-		BMS_Cell_Volt[109] = 0xFFFF;
-		BMS_Cell_Volt[110] = 0xFFFF;
-		BMS_Cell_Volt[111] = 0xFFFF;
-		break;
-	case 0x181DFBF4:
-		BMS_Cell_Volt[112] = 0xFFFF;
-		BMS_Cell_Volt[113] = 0xFFFF;
-		BMS_Cell_Volt[114] = 0xFFFF;
-		BMS_Cell_Volt[115] = 0xFFFF;
-		break;
-	case 0x181EFBF4:
-		BMS_Cell_Volt[116] = 0xFFFF;
-		BMS_Cell_Volt[117] = 0xFFFF;
-		BMS_Cell_Volt[118] = 0xFFFF;
-		BMS_Cell_Volt[119] = 0xFFFF;
-		break;
-	case 0x181FFBF4:
-		BMS_Cell_Volt[120] = 0xFFFF;
-		BMS_Cell_Volt[121] = 0xFFFF;
-		BMS_Cell_Volt[122] = 0xFFFF;
-		BMS_Cell_Volt[123] = 0xFFFF;
-		break;
-	case 0x1820FBF4:
-		BMS_Cell_Volt[124] = 0xFFFF;
-		BMS_Cell_Volt[125] = 0xFFFF;
-		BMS_Cell_Volt[126] = 0xFFFF;
-		BMS_Cell_Volt[127] = 0xFFFF;
-		break;
-	case 0x1821FBF4:
-		BMS_Cell_Volt[128] = 0xFFFF;
-		BMS_Cell_Volt[129] = 0xFFFF;
-		BMS_Cell_Volt[130] = 0xFFFF;
-		BMS_Cell_Volt[131] = 0xFFFF;
-		break;
-	case 0x1822FBF4:
-		BMS_Cell_Volt[132] = 0xFFFF;
-		BMS_Cell_Volt[133] = 0xFFFF;
-		BMS_Cell_Volt[134] = 0xFFFF;
-		BMS_Cell_Volt[135] = 0xFFFF;
-		break;
-	case 0x1823FBF4:
-		BMS_Cell_Volt[136] = 0xFFFF;
-		BMS_Cell_Volt[137] = 0xFFFF;
-		BMS_Cell_Volt[138] = 0xFFFF;
-		BMS_Cell_Volt[139] = 0xFFFF;
-		break;
-	case 0x1824FBF4:
-		BMS_Cell_Volt[140] = 0xFFFF;
-		BMS_Cell_Volt[141] = 0xFFFF;
-		BMS_Cell_Volt[142] = 0xFFFF;
-		BMS_Cell_Volt[143] = 0xFFFF;
-		break;
-	case 0x1825FBF4:
-		BMS_Cell_Volt[144] = 0xFFFF;
-		BMS_Cell_Volt[145] = 0xFFFF;
-		BMS_Cell_Volt[146] = 0xFFFF;
-		BMS_Cell_Volt[147] = 0xFFFF;
-		break;
-	case 0x1826FBF4:
-		BMS_Cell_Volt[148] = 0xFFFF;
-		BMS_Cell_Volt[149] = 0xFFFF;
-		BMS_Cell_Volt[150] = 0xFFFF;
-		BMS_Cell_Volt[151] = 0xFFFF;
-		break;
-	case 0x1827FBF4:
-		BMS_Cell_Volt[152] = 0xFFFF;
-		BMS_Cell_Volt[153] = 0xFFFF;
-		BMS_Cell_Volt[154] = 0xFFFF;
-		BMS_Cell_Volt[155] = 0xFFFF;
-		break;
-	case 0x1828FBF4:
-		BMS_Cell_Volt[156] = 0xFFFF;
-		BMS_Cell_Volt[157] = 0xFFFF;
-		BMS_Cell_Volt[158] = 0xFFFF;
-		BMS_Cell_Volt[159] = 0xFFFF;
-		break;
-	case 0x1829FBF4:
-		BMS_Cell_Volt[160] = 0xFFFF;
-		BMS_Cell_Volt[161] = 0xFFFF;
-		BMS_Cell_Volt[162] = 0xFFFF;
-		BMS_Cell_Volt[163] = 0xFFFF;
-		break;
-	case 0x182AFBF4:
-		BMS_Cell_Volt[164] = 0xFFFF;
-		BMS_Cell_Volt[165] = 0xFFFF;
-		BMS_Cell_Volt[166] = 0xFFFF;
-		BMS_Cell_Volt[167] = 0xFFFF;
-		break;
-	case 0x182BFBF4:
-		BMS_Cell_Volt[168] = 0xFFFF;
-		BMS_Cell_Volt[169] = 0xFFFF;
-		BMS_Cell_Volt[170] = 0xFFFF;
-		BMS_Cell_Volt[171] = 0xFFFF;
-		break;
-	case 0x182CFBF4:
-		BMS_Cell_Volt[172] = 0xFFFF;
-		BMS_Cell_Volt[173] = 0xFFFF;
-		BMS_Cell_Volt[174] = 0xFFFF;
-		BMS_Cell_Volt[175] = 0xFFFF;
-		break;
-	case 0x182DFBF4:
-		BMS_Cell_Volt[176] = 0xFFFF;
-		BMS_Cell_Volt[177] = 0xFFFF;
-		BMS_Cell_Volt[178] = 0xFFFF;
-		BMS_Cell_Volt[179] = 0xFFFF;
-		break;
-	case 0x182EFBF4:
-		BMS_Cell_Volt[180] = 0xFFFF;
-		BMS_Cell_Volt[181] = 0xFFFF;
-		BMS_Cell_Volt[182] = 0xFFFF;
-		BMS_Cell_Volt[183] = 0xFFFF;
-		break;
-	case 0x182FFBF4:
-		BMS_Cell_Volt[184] = 0xFFFF;
-		BMS_Cell_Volt[185] = 0xFFFF;
-		BMS_Cell_Volt[186] = 0xFFFF;
-		BMS_Cell_Volt[187] = 0xFFFF;
-		break;
-	case 0x1830FBF4:
-		BMS_Cell_Volt[188] = 0xFFFF;
-		BMS_Cell_Volt[189] = 0xFFFF;
-		BMS_Cell_Volt[190] = 0xFFFF;
-		BMS_Cell_Volt[191] = 0xFFFF;
-		break;
-	case 0x1831FBF4:
-		BMS_Cell_Volt[192] = 0xFFFF;
-		BMS_Cell_Volt[193] = 0xFFFF;
-		BMS_Cell_Volt[194] = 0xFFFF;
-		BMS_Cell_Volt[195] = 0xFFFF;
-		break;
-	case 0x1832FBF4:
-		BMS_Cell_Volt[196] = 0xFFFF;
-		BMS_Cell_Volt[197] = 0xFFFF;
-		BMS_Cell_Volt[198] = 0xFFFF;
-		BMS_Cell_Volt[199] = 0xFFFF;
-		break;
-	case 0x1833FBF4:
-		BMS_Cell_Volt[200] = 0xFFFF;
-		BMS_Cell_Volt[201] = 0xFFFF;
-		BMS_Cell_Volt[202] = 0xFFFF;
-		BMS_Cell_Volt[203] = 0xFFFF;
-		break;
-	case 0x1834FBF4:
-		BMS_Cell_Volt[204] = 0xFFFF;
-		BMS_Cell_Volt[205] = 0xFFFF;
-		BMS_Cell_Volt[206] = 0xFFFF;
-		BMS_Cell_Volt[207] = 0xFFFF;
-		break;
-	case 0x1835FBF4:
-		BMS_Cell_Volt[208] = 0xFFFF;
-		BMS_Cell_Volt[209] = 0xFFFF;
-		BMS_Cell_Volt[210] = 0xFFFF;
-		BMS_Cell_Volt[211] = 0xFFFF;
-		break;
-	case 0x1836FBF4:
-		BMS_Cell_Volt[212] = 0xFFFF;
-		BMS_Cell_Volt[213] = 0xFFFF;
-		BMS_Cell_Volt[214] = 0xFFFF;
-		BMS_Cell_Volt[215] = 0xFFFF;
-		break;
-	case 0x1837FBF4:
-		BMS_Cell_Volt[216] = 0xFFFF;
-		BMS_Cell_Volt[217] = 0xFFFF;
-		BMS_Cell_Volt[218] = 0xFFFF;
-		BMS_Cell_Volt[219] = 0xFFFF;
-		break;
-	case 0x1838FBF4:
-		BMS_Cell_Volt[220] = 0xFFFF;
-		BMS_Cell_Volt[221] = 0xFFFF;
-		BMS_Cell_Volt[222] = 0xFFFF;
-		BMS_Cell_Volt[223] = 0xFFFF;
-		break;
-	case 0x1839FBF4:
-		BMS_Cell_Volt[224] = 0xFFFF;
-		BMS_Cell_Volt[225] = 0xFFFF;
-		BMS_Cell_Volt[226] = 0xFFFF;
-		BMS_Cell_Volt[227] = 0xFFFF;
-		break;
-	case 0x183AFBF4:
-		BMS_Cell_Volt[228] = 0xFFFF;
-		BMS_Cell_Volt[229] = 0xFFFF;
-		BMS_Cell_Volt[230] = 0xFFFF;
-		BMS_Cell_Volt[231] = 0xFFFF;
-		break;
-	case 0x183BFBF4:
-		BMS_Cell_Volt[232] = 0xFFFF;
-		BMS_Cell_Volt[233] = 0xFFFF;
-		BMS_Cell_Volt[234] = 0xFFFF;
-		BMS_Cell_Volt[235] = 0xFFFF;
-		break;
-	case 0x183CFBF4:
-		BMS_Cell_Volt[236] = 0xFFFF;
-		BMS_Cell_Volt[237] = 0xFFFF;
-		BMS_Cell_Volt[238] = 0xFFFF;
-		BMS_Cell_Volt[239] = 0xFFFF;
-		break;
-	case 0x183DFBF4:
-		BMS_Cell_Volt[240] = 0xFFFF;
-		BMS_Cell_Volt[241] = 0xFFFF;
-		BMS_Cell_Volt[242] = 0xFFFF;
-		BMS_Cell_Volt[243] = 0xFFFF;
-		break;
-	case 0x183EFBF4:
-		BMS_Cell_Volt[244] = 0xFFFF;
-		BMS_Cell_Volt[245] = 0xFFFF;
-		BMS_Cell_Volt[246] = 0xFFFF;
-		BMS_Cell_Volt[247] = 0xFFFF;
-		break;
-	case 0x183FFBF4:
-		BMS_Cell_Volt[248] = 0xFFFF;
-		BMS_Cell_Volt[249] = 0xFFFF;
-		BMS_Cell_Volt[250] = 0xFFFF;
-		BMS_Cell_Volt[251] = 0xFFFF;
-		break;
-	case 0x1840FBF4:
-		BMS_Cell_Volt[252] = 0xFFFF;
-		BMS_Cell_Volt[253] = 0xFFFF;
-		BMS_Cell_Volt[254] = 0xFFFF;
-		BMS_Cell_Volt[255] = 0xFFFF;
-		break;
-	case 0x1841FBF4:
-		BMS_Cell_Volt[256] = 0xFFFF;
-		BMS_Cell_Volt[257] = 0xFFFF;
-		BMS_Cell_Volt[258] = 0xFFFF;
-		BMS_Cell_Volt[259] = 0xFFFF;
-		break;
-	case 0x1842FBF4:
-		BMS_Cell_Volt[260] = 0xFFFF;
-		BMS_Cell_Volt[261] = 0xFFFF;
-		BMS_Cell_Volt[262] = 0xFFFF;
-		BMS_Cell_Volt[263] = 0xFFFF;
-		break;
-	case 0x1843FBF4:
-		BMS_Cell_Volt[264] = 0xFFFF;
-		BMS_Cell_Volt[265] = 0xFFFF;
-		BMS_Cell_Volt[266] = 0xFFFF;
-		BMS_Cell_Volt[267] = 0xFFFF;
-		break;
-	case 0x1844FBF4:
-		BMS_Cell_Volt[268] = 0xFFFF;
-		BMS_Cell_Volt[269] = 0xFFFF;
-		BMS_Cell_Volt[270] = 0xFFFF;
-		BMS_Cell_Volt[271] = 0xFFFF;
-		break;
-	case 0x1845FBF4:
-		BMS_Cell_Volt[272] = 0xFFFF;
-		BMS_Cell_Volt[273] = 0xFFFF;
-		BMS_Cell_Volt[274] = 0xFFFF;
-		BMS_Cell_Volt[275] = 0xFFFF;
-		break;
-	case 0x1846FBF4:
-		BMS_Cell_Volt[276] = 0xFFFF;
-		BMS_Cell_Volt[277] = 0xFFFF;
-		BMS_Cell_Volt[278] = 0xFFFF;
-		BMS_Cell_Volt[279] = 0xFFFF;
-		break;
-	case 0x1847FBF4:
-		BMS_Cell_Volt[280] = 0xFFFF;
-		BMS_Cell_Volt[281] = 0xFFFF;
-		BMS_Cell_Volt[282] = 0xFFFF;
-		BMS_Cell_Volt[283] = 0xFFFF;
-		break;
-	case 0x1848FBF4:
-		BMS_Cell_Volt[284] = 0xFFFF;
-		BMS_Cell_Volt[285] = 0xFFFF;
-		BMS_Cell_Volt[286] = 0xFFFF;
-		BMS_Cell_Volt[287] = 0xFFFF;
-		break;
-	case 0x1849FBF4:
-		BMS_Cell_Volt[288] = 0xFFFF;
-		BMS_Cell_Volt[289] = 0xFFFF;
-		BMS_Cell_Volt[290] = 0xFFFF;
-		BMS_Cell_Volt[291] = 0xFFFF;
-		break;
-	case 0x184AFBF4:
-		BMS_Cell_Volt[292] = 0xFFFF;
-		BMS_Cell_Volt[293] = 0xFFFF;
-		BMS_Cell_Volt[294] = 0xFFFF;
-		BMS_Cell_Volt[295] = 0xFFFF;
-		break;
-	case 0x184BFBF4:
-		BMS_Cell_Volt[296] = 0xFFFF;
-		BMS_Cell_Volt[297] = 0xFFFF;
-		BMS_Cell_Volt[298] = 0xFFFF;
-		BMS_Cell_Volt[299] = 0xFFFF;
-		break;
-	case 0x184CFBF4:
-		BMS_Cell_Volt[300] = 0xFFFF;
-		BMS_Cell_Volt[301] = 0xFFFF;
-		BMS_Cell_Volt[302] = 0xFFFF;
-		BMS_Cell_Volt[303] = 0xFFFF;
-		break;
-	case 0x184DFBF4:
-		BMS_Cell_Volt[304] = 0xFFFF;
-		BMS_Cell_Volt[305] = 0xFFFF;
-		BMS_Cell_Volt[306] = 0xFFFF;
-		BMS_Cell_Volt[307] = 0xFFFF;
-		break;
-	case 0x184EFBF4:
-		BMS_Cell_Volt[308] = 0xFFFF;
-		BMS_Cell_Volt[309] = 0xFFFF;
-		BMS_Cell_Volt[310] = 0xFFFF;
-		BMS_Cell_Volt[311] = 0xFFFF;
-		break;
-	case 0x184FFBF4:
-		BMS_Cell_Volt[312] = 0xFFFF;
-		BMS_Cell_Volt[313] = 0xFFFF;
-		BMS_Cell_Volt[314] = 0xFFFF;
-		BMS_Cell_Volt[315] = 0xFFFF;
-		break;
-	case 0x1850FBF4:
-		BMS_Cell_Volt[316] = 0xFFFF;
-		BMS_Cell_Volt[317] = 0xFFFF;
-		BMS_Cell_Volt[318] = 0xFFFF;
-		BMS_Cell_Volt[319] = 0xFFFF;
-		break;
-	case 0x1851FBF4:
-		BMS_Cell_Volt[320] = 0xFFFF;
-		BMS_Cell_Volt[321] = 0xFFFF;
-		BMS_Cell_Volt[322] = 0xFFFF;
-		BMS_Cell_Volt[323] = 0xFFFF;
-		break;
-	case 0x1852FBF4:
-		BMS_Cell_Volt[324] = 0xFFFF;
-		BMS_Cell_Volt[325] = 0xFFFF;
-		BMS_Cell_Volt[326] = 0xFFFF;
-		BMS_Cell_Volt[327] = 0xFFFF;
-		break;
-	case 0x1853FBF4:
-		BMS_Cell_Volt[328] = 0xFFFF;
-		BMS_Cell_Volt[329] = 0xFFFF;
-		BMS_Cell_Volt[330] = 0xFFFF;
-		BMS_Cell_Volt[331] = 0xFFFF;
-		break;
-	case 0x1854FBF4:
-		BMS_Cell_Volt[332] = 0xFFFF;
-		BMS_Cell_Volt[333] = 0xFFFF;
-		BMS_Cell_Volt[334] = 0xFFFF;
-		BMS_Cell_Volt[335] = 0xFFFF;
-		break;
-	case 0x1855FBF4:
-		BMS_Cell_Volt[336] = 0xFFFF;
-		BMS_Cell_Volt[337] = 0xFFFF;
-		BMS_Cell_Volt[338] = 0xFFFF;
-		BMS_Cell_Volt[339] = 0xFFFF;
-		break;
-	case 0x1856FBF4:
-		BMS_Cell_Volt[340] = 0xFFFF;
-		BMS_Cell_Volt[341] = 0xFFFF;
-		BMS_Cell_Volt[342] = 0xFFFF;
-		BMS_Cell_Volt[343] = 0xFFFF;
-		break;
-	case 0x1857FBF4:
-		BMS_Cell_Volt[344] = 0xFFFF;
-		BMS_Cell_Volt[345] = 0xFFFF;
-		BMS_Cell_Volt[346] = 0xFFFF;
-		BMS_Cell_Volt[347] = 0xFFFF;
-		break;
-	case 0x1858FBF4:
-		BMS_Cell_Volt[348] = 0xFFFF;
-		BMS_Cell_Volt[349] = 0xFFFF;
-		BMS_Cell_Volt[350] = 0xFFFF;
-		BMS_Cell_Volt[351] = 0xFFFF;
-		break;
-	case 0x1859FBF4:
-		BMS_Cell_Volt[352] = 0xFFFF;
-		BMS_Cell_Volt[353] = 0xFFFF;
-		BMS_Cell_Volt[354] = 0xFFFF;
-		BMS_Cell_Volt[355] = 0xFFFF;
-		break;
-	case 0x185AFBF4:
-		BMS_Cell_Volt[356] = 0xFFFF;
-		BMS_Cell_Volt[357] = 0xFFFF;
-		BMS_Cell_Volt[358] = 0xFFFF;
-		BMS_Cell_Volt[359] = 0xFFFF;
-		break;
-	case 0x185BFBF4:
-		BMS_Cell_Volt[360] = 0xFFFF;
-		BMS_Cell_Volt[361] = 0xFFFF;
-		BMS_Cell_Volt[362] = 0xFFFF;
-		BMS_Cell_Volt[363] = 0xFFFF;
-		break;
-	case 0x185CFBF4:
-		BMS_Cell_Volt[364] = 0xFFFF;
-		BMS_Cell_Volt[365] = 0xFFFF;
-		BMS_Cell_Volt[366] = 0xFFFF;
-		BMS_Cell_Volt[367] = 0xFFFF;
-		break;
-	case 0x185DFBF4:
-		BMS_Cell_Volt[368] = 0xFFFF;
-		BMS_Cell_Volt[369] = 0xFFFF;
-		BMS_Cell_Volt[370] = 0xFFFF;
-		BMS_Cell_Volt[371] = 0xFFFF;
-		break;
-	case 0x185EFBF4:
-		BMS_Cell_Volt[372] = 0xFFFF;
-		BMS_Cell_Volt[373] = 0xFFFF;
-		BMS_Cell_Volt[374] = 0xFFFF;
-		BMS_Cell_Volt[375] = 0xFFFF;
-		break;
-	case 0x185FFBF4:
-		BMS_Cell_Volt[376] = 0xFFFF;
-		BMS_Cell_Volt[377] = 0xFFFF;
-		BMS_Cell_Volt[378] = 0xFFFF;
-		BMS_Cell_Volt[379] = 0xFFFF;
-		break;
-	case 0x1860FBF4:
-		BMS_Cell_Volt[380] = 0xFFFF;
-		BMS_Cell_Volt[381] = 0xFFFF;
-		BMS_Cell_Volt[382] = 0xFFFF;
-		BMS_Cell_Volt[383] = 0xFFFF;
-		break;
-	case 0x1881EFF4:
-		BMS11_Fult1_DelTemp = 0xFF;
-		BMS11_Fult1_OverTemp = 0xFF;
-		BMS11_Fult1_PackOverHVolt = 0xFF;
-		BMS11_Fult1_PackLowHVolt = 0xFF;
-		BMS11_Fult1_LowSOC = 0xFF;
-		BMS11_Fult1_OverUcell = 0xFF;
-		BMS11_Fult1_LowUcell = 0xFF;
-		BMS11_Fult1_LowInsRes = 0xFF;
-		BMS11_Fult1_UcellUniformity = 0xFF;
-		BMS11_Fult1_OverChg = 0xFF;
-		BMS11_Fult1_OverSOC = 0xFF;
-		BMS11_Fult1_SOCChangeFast = 0xFF;
-		BMS11_Fult1_BatSysNotMatch = 0xFF;
-		BMS11_Fult1_HVILFault = 0xFF;
-		BMS11_PackOutsideVolt = 0xFFFF;
-		break;
-	case 0x1882EFF4:
-		BMS12_Fult2_FaultNum = 0xFF;
-		BMS12_Fult2_CellOverDischrg = 0xFF;
-		BMS12_Fult2_CellLowTemp = 0xFF;
-		BMS12_Fult2_PackFireWarning = 0xFF;
-		BMS12_Fult2_OverDischrgCurr = 0xFF;
-		BMS12_Fult2_OverChrgCurrInTheDrive = 0xFF;
-		BMS12_Fult2_CurrSensorErr = 0xFF;
-		BMS12_Fult2_PowerSupplyErr = 0xFF;
-		BMS12_Fult2_TMSErr = 0xFF;
-		BMS12_Fult2_HeatingFilmErr = 0xFF;
-		BMS12_Fult2_PackSelfProtect = 0xFF;
-		BMS12_Fult2_MainLoopPrechrgErr = 0xFF;
-		BMS12_Fult2_AuxLoopPrechrgErr = 0xFF;
-		BMS12_Fult2_ChrgInsLowErr = 0xFF;
-		BMS12_Fult2_ACANLost = 0xFF;
-		BMS12_Fult2_InnerCommunicationErr = 0xFF;
-		BMS12_Fult2_DCDCErr = 0xFF;
-		BMS12_Fult2_BranchBreakErr = 0xFF;
-		BMS12_Fult2_HeatRelayOpenErr = 0xFF;
-		BMS12_Fult2_HeatRelayWeldErr = 0xFF;
-		BMS12_Fult2_MainPosRelayOpenErr = 0xFF;
-		BMS12_Fult2_MainPosRelayWeldErr = 0xFF;
-		BMS12_Fult2_MainNegRelayOpenErr = 0xFF;
-		BMS12_Fult2_MainNegRelayWeldErr = 0xFF;
-		BMS12_Fult2_DCChrgPos1RelayOpenErr = 0xFF;
-		BMS12_Fult2_DCChrgPos1RelayWeldErr = 0xFF;
-		BMS12_Fult2_DCChrgNeg1RelayOpenErr = 0xFF;
-		BMS12_Fult2_DCChrgNeg1RelayWeldErr = 0xFF;
-		BMS12_Fult2_DCChrgPos2RelayOpenErr = 0xFF;
-		BMS12_Fult2_DCChrgPos2RelayWeldErr = 0xFF;
-		BMS12_Fult2_DCChrgNeg2RelayOpenErr = 0xFF;
-		BMS12_Fult2_DCChrgNeg2RelayWeldErr = 0xFF;
-		BMS12_Fult2_ChrgConnectErr = 0xFF;
-		BMS12_ult2_OverDischrgCurrWhenInChrg = 0xFF;
-		BMS12_Fult2_OverChrgCurrInTheChrg = 0xFF;
-		BMS12_Fult2_ChrgNTCErr = 0xFF;
-		BMS12_Fult2_ChrgNTCTempOver = 0xFF;
-		BMS12_Fult2_ELockErr = 0xFF;
-		BMS12_Fult2_FireDetectorEr = 0xFF;
-		BMS12_Fult2_ContiDischrgCurrOverLoad = 0xFF;
-		BMS12_Fult2_SOCDifferErr = 0xFF;
-		BMS12_Fult2_ContiChrgCurrOverLoad = 0xFF;
-		break;
-	case 0x1883EFF4:
-		BMS1_MainPosRelaySt = 0xFF;
-		BMS1_MainNegRelaySt = 0xFF;
-		BMS1_PreChgRelaySt = 0xFF;
-		BMS1_DCChrgPos1RelaySt = 0xFF;
-		BMS1_DCChrgNeg1RelaySt = 0xFF;
-		BMS1_DCChrgPos2RelaySt = 0xFF;
-		BMS1_DCChrgNeg2RelaySt = 0xFF;
-		BMS1_HeatPosRelaySt = 0xFF;
-		BMS1_HeatNegRelaySt = 0xFF;
-		BMS1_SysSts = 0xFF;
-		BMS1_Life = 0xFF;
-		BMS1_BalanceStatus = 0xFF;
-		BMS1_DCChrgConnectSt = 0xFF;
-		BMS1_ChrgMode = 0xFF;
-		BMS1_ChrgStatus = 0xFF;
-		BMS1_HeatingStatus = 0xFF;
-		BMS1_CoolingStatus = 0xFF;
-		BMS1_RechrgCycels = 0xFFFFFFFF;
-		break;
-	case 0x1884EFF4:
-		BMS2_SOC = 0xFF;
-		BMS2_SOH = 0xFF;
-		BMS2_PackCurrent = 0xFFFF;
-		BMS2_PackInsideVolt = 0xFFFF;
-		BMS2_FaultCode = 0xFF;
-		BMS2_FaultLevel = 0xFF;
-		BMS2_RqHVPoerOff = 0xFF;
-		BMS2_Life = 0xFF;
-		break;
-	case 0x1885EFF4:
-		BMS4_PosIsolation = 0xFFFF;
-		BMS4_NegIsolation = 0xFFFF;
-		BMS4_SysInsRes = 0xFFFF;
-		BMS4_InsDetectorSt = 0xFF;
-		break;
-	case 0x1886EFF4:
-		BMS8_Max_Temp = 0xFF;
-		BMS8_Min_Temp = 0xFF;
-		BMS8_Avg_Temp = 0xFF;
-		BMS8_MaxTempSysNr = 0xFF;
-		BMS8_MaxTempNr = 0xFF;
-		BMS8_MinTempSysNr = 0xFF;
-		BMS8_MinTempNr = 0xFF;
-		break;
-	case 0x1887EFF4:
-		BMS6_Max_Ucell = 0xFFFF;
-		BMS6_Min_Ucell = 0xFFFF;
-		BMS6_Avg_Ucell = 0xFFFF;
-		BMS6_SOE = 0xFFFF;
-		break;
-	case 0x1888EFF4:
-		BMS7_MaxUcellSysNr = 0xFF;
-		BMS7_MaxUcellNr = 0xFFFF;
-		BMS7_MinUcellSysNr = 0xFF;
-		BMS7_MinUcellNr = 0xFFFF;
-		break;
-	case 0x1889EFF4:
-		BMS23_Gun1DCPosTemp = 0xFF;
-		BMS23_Gun1DCNegTemp = 0xFF;
-		BMS23_Gun2DCPosTemp = 0xFF;
-		BMS23_Gun2DCNegTemp = 0xFF;
-		BMS23_RemainChgTi = 0xFFFF;
-		break;
-	case 0x18A0FBF4:
-		BMS_Cell_TempN[0] = 0xFF;
-		BMS_Cell_TempN[1] = 0xFF;
-		BMS_Cell_TempN[2] = 0xFF;
-		BMS_Cell_TempN[3] = 0xFF;
-		BMS_Cell_TempN[4] = 0xFF;
-		BMS_Cell_TempN[5] = 0xFF;
-		BMS_Cell_TempN[6] = 0xFF;
-		BMS_Cell_TempN[7] = 0xFF;
-		break;
-	case 0x18A1FBF4:
-		BMS_Cell_TempN[8] = 0xFF;
-		BMS_Cell_TempN[9] = 0xFF;
-		BMS_Cell_TempN[10] = 0xFF;
-		BMS_Cell_TempN[11] = 0xFF;
-		BMS_Cell_TempN[12] = 0xFF;
-		BMS_Cell_TempN[13] = 0xFF;
-		BMS_Cell_TempN[14] = 0xFF;
-		BMS_Cell_TempN[15] = 0xFF;
-		break;
-	case 0x18A2FBF4:
-		BMS_Cell_TempN[16] = 0xFF;
-		BMS_Cell_TempN[17] = 0xFF;
-		BMS_Cell_TempN[18] = 0xFF;
-		BMS_Cell_TempN[19] = 0xFF;
-		BMS_Cell_TempN[20] = 0xFF;
-		BMS_Cell_TempN[21] = 0xFF;
-		BMS_Cell_TempN[22] = 0xFF;
-		BMS_Cell_TempN[23] = 0xFF;
-		BMS_Cell_TempN[24] = 0xFF;
-		BMS_Cell_TempN[25] = 0xFF;
-		BMS_Cell_TempN[26] = 0xFF;
-		BMS_Cell_TempN[27] = 0xFF;
-		BMS_Cell_TempN[28] = 0xFF;
-		BMS_Cell_TempN[29] = 0xFF;
-		BMS_Cell_TempN[30] = 0xFF;
-		BMS_Cell_TempN[31] = 0xFF;
-		break;
-	case 0x18A3FBF4:
-		BMS_Cell_TempN[32] = 0xFF;
-		BMS_Cell_TempN[33] = 0xFF;
-		BMS_Cell_TempN[34] = 0xFF;
-		BMS_Cell_TempN[35] = 0xFF;
-		BMS_Cell_TempN[36] = 0xFF;
-		BMS_Cell_TempN[37] = 0xFF;
-		BMS_Cell_TempN[38] = 0xFF;
-		BMS_Cell_TempN[39] = 0xFF;
-		break;
-	case 0x18A4FBF4:
-		BMS_Cell_TempN[40] = 0xFF;
-		BMS_Cell_TempN[41] = 0xFF;
-		BMS_Cell_TempN[42] = 0xFF;
-		BMS_Cell_TempN[43] = 0xFF;
-		BMS_Cell_TempN[44] = 0xFF;
-		BMS_Cell_TempN[45] = 0xFF;
-		BMS_Cell_TempN[46] = 0xFF;
-		BMS_Cell_TempN[47] = 0xFF;
-		break;
-	case 0x18A5FBF4:
-		BMS_Cell_TempN[48] = 0xFF;
-		BMS_Cell_TempN[49] = 0xFF;
-		BMS_Cell_TempN[50] = 0xFF;
-		BMS_Cell_TempN[51] = 0xFF;
-		BMS_Cell_TempN[52] = 0xFF;
-		BMS_Cell_TempN[53] = 0xFF;
-		BMS_Cell_TempN[54] = 0xFF;
-		BMS_Cell_TempN[55] = 0xFF;
-		break;
-	case 0x18A6FBF4:
-		BMS_Cell_TempN[56] = 0xFF;
-		BMS_Cell_TempN[57] = 0xFF;
-		BMS_Cell_TempN[58] = 0xFF;
-		BMS_Cell_TempN[59] = 0xFF;
-		BMS_Cell_TempN[60] = 0xFF;
-		BMS_Cell_TempN[61] = 0xFF;
-		BMS_Cell_TempN[62] = 0xFF;
-		BMS_Cell_TempN[63] = 0xFF;
-		break;
-	case 0x18E1EFF4:
-		break;
-	case 0x18E2EFF4:
-		BMS21_RateCap = 0xFFFF;
-		BMS21_RateHVolt = 0xFFFF;
-		BMS21_RatePower = 0xFFFF;
-		BMS21_BattType = 0xFF;
-		BMS21_CoolType = 0xFF;
-		BMS21_Manufacture = 0xFF;
-		BMS21_ProtocolEditionH = 0xFF;
-		BMS21_ProtocolEditionL = 0xFF;
-		break;
-	case 0x18E3EFF4:
-		BMS9_TotCSCNum = 0xFF;
-		BMS9_PackTotCellNum = BMS_CELL_MAX_NUM;
-		BMS9_PackTotTempNum = BMS_TEMP_MAX_NUM;
-		BMS9_HVBranchNum = 0xFF;
-		BMS9_SingleHVBranchCellNum = 0xFF;
-		BMS9_BattSysNum = 0xFF;
-		BMS9_BattSysSeqNum = 0xFF;
-		break;
-	case 0x18E4EFF4:
-		BMS22_PackAvaiMaxVolt = 0xFFFF;
-		BMS22_PackAvaiMinVolt = 0xFFFF;
-		BMS22_AvaiMaxSOC = 0xFF;
-		BMS22_AvaiMinSOC = 0xFF;
-		BMS22_AvaiMaxTemp = 0xFF;
-		BMS22_AvaiMinTemp = 0xFF;
-		break;
-	case 0x18FEDAF4:
-		BMS_SoftwareVersion = 0xFFFF;
-		BMS_HardwareVersion = 0xFFFF;
-		break;
-	case 0x18FF23F4:
-		BMS3_MaxDischgPow = 0xFFFF;
-		BMS3_MaxChgPow = 0xFFFF;
-		BMS3_MaxInstantDischgPow = 0xFFFF;
-		BMS3_MaxiInstantChgPow = 0xFFFF;
-		break;
-	case 0x18FF24F4:
-		BMS10_SubSysEncodingLen = 0xFF;
-		BMS10_SubSysIdx = 0xFF;
-		BMS10_SubSysErrNum = 0xFF;
-		break;
-	case 0x18FF25F4:
-		BMS5_DischgCurMaxAllw = 0xFFFF;
-		BMS5_ChrgCurMaxAllw = 0xFFFF;
-		BMS5_InstChrgCurMaxAllw = 0xFFFF;
-		BMS5_InstDischrgCurMaxAllw = 0xFFFF;
-		break;
-	case 0x18FF30F4:
-		BMS26_Bat_InstantConsume = 0xFFFF;
-		BMS26_Bat_TotalConsume = 0xFFFF;
-		BMS26_ChgReqVoltage = 0xFFFF;
-		BMS26_ChgReqCurrent = 0xFFFF;
-		break;
-	case 0x18FF45F4:
-		BMS28_ReqMode = 0xFF;
-		BMS28_HVCmd = 0xFF;
-		BMS28_ChgSts = 0xFF;
-		BMS28_HVRelaySts = 0xFF;
-		BMS28_HVVolt = 0xFFFF;
-		BMS28_SetTemp = 0xFF;
-		BMS28_Life = 0xFF;
-		BMS28_CRC = 0xFF;
-		break;
-	case 0x18FFC13A:
-		TMS_WorkStatus = 0xFF;
-		TMS_HVRelayST = 0xFF;
-		TMS_OutletTemp = 0xFF;
-		TMS_InletTemp = 0xFF;
-		TMS_Version = 0xFF;
-		TMS_ReqPow = 0xFFFF;
-		TMS_ErrCode = 0xFF;
-		TMS_FaultLevel = 0xFF;
-		break;
-	case 0x18FFD4F4:
-		BMS14_TotalChargeAh = 0xFFFFFFFF;
-		BMS14_TotalDischargeAh = 0xFFFFFFFF;
-		break;
-	case 0x18FFD5F4:
-		BMS15_TotalChargeKwh = 0xFFFFFFFF;
-		BMS15_TotalDischargeKwh = 0xFFFFFFFF;
-		break;
-	case 0x18FFD6F4:
-		BMS16_TotalEneryECOChargeAh = 0xFFFFFFFF;
-		BMS16_TotalEneryECOChargeKwh = 0xFFFFFFFF;
-		break;
-	case 0x18FFD7F4:
-		BMS17_TotalStationChargeAh = 0xFFFFFFFF;
-		BMS17_TotalStationChargeKwh = 0xFFFFFFFF;
-		break;
-	case 0x18FFD8F4:
-		BMS18_TotalPoleChargeAh = 0xFFFFFFFF;
-		BMS18_TotalPoleChargeKwh = 0xFFFFFFFF;
-		break;
-	case 0x18FFD9F4:
-		BMS19_SingleChargeAh = 0xFFFFFFFF;
-		BMS19_SingleChargeKwh = 0xFFFFFFFF;
-		break;
-	default:
-		break;
-	}
 }
-#endif

+ 0 - 5
src/AppTaskCan.h

@@ -12,11 +12,6 @@
 #include "AppFuncLib.h"
 #include "UDSTask.h"
 #include "Hal_Wdg.h"
-#ifdef APP_CAN_ENABLE
 void BcuDecodeFunction(uint32 ID, uint8 *rawData);
-void BcuRxDiagnose(void);
-void BcuRxMsgSetInvalidValue(uint32 ID);
-void CanTask(void *pvParameters);
-#endif
 
 #endif /* APPTASKCAN_H_ */

+ 15 - 6
src/AppTaskUart0.c

@@ -54,8 +54,17 @@ void Uart0Task(void *pvParameters)
 			CRC_chk_buffer = crc_chk((uint8 *)&Uart0AskMsg, 6);
 			Uart0AskMsg.CRC_L = CRC_chk_buffer;
 			Uart0AskMsg.CRC_H = CRC_chk_buffer >> 8;
-			memset(RX_Buffer[UART_LPUART0],0x00,sizeof(RX_Buffer[UART_LPUART0]));
-			UART_Query_Data(UART_LPUART0,UART_LPUART0,(uint8 *)&Uart0AskMsg,sizeof(Uart0AskMsg),RX_Buffer[UART_LPUART0], &pReadLen,500);
+			/*RS485查询命令需要使能*/
+			Dio_WriteChannel(DioConf_DioChannel_PTB4_GPIO_OUT_MCU_RS485_EN, STD_ON);
+			UART_Send_Data(UART_LPUART0, (uint8 *)&Uart0AskMsg, sizeof(Uart0AskMsg), 1000);
+			Dio_WriteChannel(DioConf_DioChannel_PTB4_GPIO_OUT_MCU_RS485_EN, STD_OFF);
+			memset(RX_Buffer[UART_LPUART0], 0x00, sizeof(RX_Buffer[UART_LPUART0]));
+			UART_Receive_Data(UART_LPUART0, RX_Buffer[UART_LPUART0], &pReadLen, 1000);
+			Dio_WriteChannel(DioConf_DioChannel_PTB4_GPIO_OUT_MCU_RS485_EN, STD_ON);
+
+			//memset(RX_Buffer[UART_LPUART0],0x00,sizeof(RX_Buffer[UART_LPUART0]));
+			//UART_Query_Data(UART_LPUART0,UART_LPUART0,(uint8 *)&Uart0AskMsg,sizeof(Uart0AskMsg),RX_Buffer[UART_LPUART0], &pReadLen,500);
+
 			if (pReadLen > 0)
 			{
 				uint16 CrcChkGet = 0xffff;
@@ -87,17 +96,17 @@ void Uart0Task(void *pvParameters)
 			CRC_chk_buffer = crc_chk((uint8 *)&Uart0AskMsg, 6);
 			Uart0AskMsg.CRC_L = CRC_chk_buffer;
 			Uart0AskMsg.CRC_H = CRC_chk_buffer >> 8;
-			/*RS485查询命令需要使能
+			/*RS485查询命令需要使能*/
 			Dio_WriteChannel(DioConf_DioChannel_PTB4_GPIO_OUT_MCU_RS485_EN, STD_ON);
 			UART_Send_Data(UART_LPUART0, (uint8 *)&Uart0AskMsg, sizeof(Uart0AskMsg), 1000);
 			Dio_WriteChannel(DioConf_DioChannel_PTB4_GPIO_OUT_MCU_RS485_EN, STD_OFF);
 			memset(RX_Buffer[UART_LPUART0], 0x00, sizeof(RX_Buffer[UART_LPUART0]));
 			UART_Receive_Data(UART_LPUART0, RX_Buffer[UART_LPUART0], &pReadLen, 1000);
 			Dio_WriteChannel(DioConf_DioChannel_PTB4_GPIO_OUT_MCU_RS485_EN, STD_ON);
-			*/
+
 			/*TTL直连可以直接查询*/
-			memset(RX_Buffer[UART_LPUART0],0x00,sizeof(RX_Buffer[UART_LPUART0]));
-			UART_Query_Data(UART_LPUART0,UART_LPUART0,(uint8 *)&Uart0AskMsg,sizeof(Uart0AskMsg),RX_Buffer[UART_LPUART0], &pReadLen,500);
+			//memset(RX_Buffer[UART_LPUART0],0x00,sizeof(RX_Buffer[UART_LPUART0]));
+			//UART_Query_Data(UART_LPUART0,UART_LPUART0,(uint8 *)&Uart0AskMsg,sizeof(Uart0AskMsg),RX_Buffer[UART_LPUART0], &pReadLen,500);
 			if (pReadLen > 0)
 			{
 				uint16 CrcChkGet = 0xffff;

+ 0 - 218
src/AppTaskUart1.c

@@ -642,7 +642,6 @@ void TcpDataEncode(uint32 *PtrSendAddr, uint16 *SendLen)
 	{
 		DataIdx = VerMsg; //版本信息发送
 	}
-#ifdef APP_UART0_ENABLE
 	else if (TcpSendTimeCounter % 10 == 0)
 	{
 		DataIdx = BattMsg; //电池信息发送
@@ -655,25 +654,6 @@ void TcpDataEncode(uint32 *PtrSendAddr, uint16 *SendLen)
 	{
 		DataIdx = GpsMsg; //定位信息发送
 	}
-#endif
-#ifdef APP_CAN_ENABLE
-	else if (TcpSendTimeCounter % 10 == 0)
-	{
-		DataIdx = TruckBattMsg; //电池信息发送
-	}
-	else if ((TcpSendTimeCounter - 1) % 60 == 0)
-	{
-		DataIdx = TruckVehiMsg; //车辆信息发送
-	}
-	else if ((TcpSendTimeCounter - 2) % 60 == 0)
-	{
-		DataIdx = TruckAcclMsg; //累计信息发送
-	}
-	else if (TcpSendTimeCounter % 60 == 0)
-	{
-		DataIdx = GpsMsg; //定位信息发送
-	}
-#endif
 	else
 	{
 		*SendLen = 0;
@@ -812,7 +792,6 @@ void TcpDataEncode(uint32 *PtrSendAddr, uint16 *SendLen)
 		*PtrSendAddr = (uint32)SendBuffer;
 		break;
 	}
-#ifdef APP_UART0_ENABLE
 	case 0x80:
 	{
 		uint16 ErrorTemp;
@@ -924,201 +903,6 @@ void TcpDataEncode(uint32 *PtrSendAddr, uint16 *SendLen)
 		*PtrSendAddr = (uint32)SendBuffer;
 		break;
 	}
-#endif
-#ifdef APP_CAN_ENABLE
-	case 0x90:
-	{
-		*SendLen = 0x52;
-		SendBuffer = malloc(*SendLen);
-		*(SendBuffer + 0) = TCP_START_SYM1;
-		*(SendBuffer + 1) = TCP_START_SYM2;
-		*(SendBuffer + 2) = TCP_CMD_SYM;
-		*(SendBuffer + 3) = TCP_ANS_SYM;
-		memcpy(SendBuffer + 4, TcpbattSN, BATT_SN_LEN);
-		*(SendBuffer + 0x15) = (TCP_ENCPT_DISABLE & 0xFF); // uint8	TCP_ENCPT_DISABLE
-		uint16 DataLen = 0x39;							   // 57
-		*(SendBuffer + 0x16) = ((DataLen >> 8) & 0xFF);	   // uint16	DataLen
-		*(SendBuffer + 0x17) = (DataLen & 0xFF);
-		*(SendBuffer + 0x18) = ((UTC8TimeTcp.year) & 0xFF); // uint8	year
-		*(SendBuffer + 0x19) = (UTC8TimeTcp.month & 0xFF);	// uint8	month
-		*(SendBuffer + 0x1A) = (UTC8TimeTcp.day & 0xFF);	// uint8	day
-		*(SendBuffer + 0x1B) = (UTC8TimeTcp.hour & 0xFF);	// uint8	hour
-		*(SendBuffer + 0x1C) = (UTC8TimeTcp.minute & 0xFF); // uint8	minute
-		*(SendBuffer + 0x1D) = (UTC8TimeTcp.second & 0xFF); // uint8	second
-		*(SendBuffer + 0x1E) = (DataIdx & 0xFF);			// uint8	BATTMSG
-		*(SendBuffer + 0x1F) = ((UTC8TimeTcp.year) & 0xFF); // uint8	year
-		*(SendBuffer + 0x20) = (UTC8TimeTcp.month & 0xFF);	// uint8	month
-		*(SendBuffer + 0x21) = (UTC8TimeTcp.day & 0xFF);	// uint8	day
-		*(SendBuffer + 0x22) = (UTC8TimeTcp.hour & 0xFF);	// uint8	hour
-		*(SendBuffer + 0x23) = (UTC8TimeTcp.minute & 0xFF); // uint8	minute
-		*(SendBuffer + 0x24) = (UTC8TimeTcp.second & 0xFF); // uint8	second
-		memcpy(SendBuffer + 0x25, VIN, 17);
-		*(SendBuffer + 0x36) = (vehicleStatus & 0xFF);		 // uint8	整车状态
-		*(SendBuffer + 0x37) = (bmsHVOn & 0xFF);			 // uint8	bms上高压指令
-		*(SendBuffer + 0x38) = (currentGearPosition & 0xFF); // uint8	当前档位
-		*(SendBuffer + 0x39) = (parkingBreakStatus & 0xFF);	 // uint8	手刹信号
-		*(SendBuffer + 0x3A) = (breakingStatus & 0xFF);		 // uint8	制动开关
-		*(SendBuffer + 0x3B) = ((ODO >> 24) & 0xFF);		 // uint32	总里程
-		*(SendBuffer + 0x3C) = ((ODO >> 16) & 0xFF);
-		*(SendBuffer + 0x3D) = ((ODO >> 8) & 0xFF);
-		*(SendBuffer + 0x3E) = (ODO & 0xFF);
-		*(SendBuffer + 0x3F) = (dcdcWorkStatus & 0xFF);			// uint8 DCDC状态
-		*(SendBuffer + 0x40) = (numOfChrgableSubsys & 0xFF);	// uint8	可充电子系统数
-		*(SendBuffer + 0x41) = (chrgableSubsysCode & 0xFF);		// uint8	可充电储能子系统号
-		*(SendBuffer + 0x42) = (BMS8_MaxTempSysNr & 0xFF);		// uint8	最高温度子系统号 精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x43) = (BMS8_MaxTempNr & 0xFF);			// uint8	最高温度探针单体代号 精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x44) = (BMS8_MinTempSysNr & 0xFF);		// uint8	最低温度子系统号 精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x45) = (BMS8_MinTempNr & 0xFF);			// uint8	最低温度探针子系统代号 精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x46) = (BMS7_MaxUcellSysNr & 0xFF);		// uint8	最高电压电池子系统号 精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x47) = ((BMS7_MaxUcellNr >> 8) & 0xFF); // uint16	最高电压电池单体代号 精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x48) = (BMS7_MaxUcellNr & 0xFF);
-		*(SendBuffer + 0x49) = (BMS7_MinUcellSysNr & 0xFF);		// uint8	最低电压电池子系统号 精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x4A) = ((BMS7_MinUcellNr >> 8) & 0xFF); // uint16	最低电压电池单体代号 精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x4B) = (BMS7_MinUcellNr & 0xFF);
-		*(SendBuffer + 0x4C) = (ebcStatus & 0xFF); // uint8 换电控制器状态
-		*(SendBuffer + 0x4D) = (uint8)((ebcAskHVOn & 0x01) | ((ebcAskHVOff & 0x01) << 1) | ((retainLockSignal & 0x01) << 3) | ((dischargeLockSignal & 0x01) << 5) | ((chargeLockSignal & 0x01) << 6));
-		*(SendBuffer + 0x4E) = (chargeFlag & 0xFF);		 // uint8 充电标志位
-		*(SendBuffer + 0x4F) = ((vcuDCVol >> 8) & 0xFF); // uint16 电机直流母线电压
-		*(SendBuffer + 0x50) = (vcuDCVol & 0xFF);
-		*(SendBuffer + 0x51) = bcc_chk(SendBuffer, 0x51);
-		*PtrSendAddr = (uint32)SendBuffer;
-		break;
-	}
-	case 0x91:
-	{
-		*SendLen = 0x54 + 384 * 2 + 64;
-		SendBuffer = malloc(*SendLen);
-		*(SendBuffer + 0) = TCP_START_SYM1;
-		*(SendBuffer + 1) = TCP_START_SYM2;
-		*(SendBuffer + 2) = TCP_CMD_SYM;
-		*(SendBuffer + 3) = TCP_ANS_SYM;
-		memcpy(SendBuffer + 4, TcpbattSN, BATT_SN_LEN);
-		*(SendBuffer + 0x15) = (TCP_ENCPT_DISABLE & 0xFF); // uint8	TCP_ENCPT_DISABLE
-		uint16 DataLen = 0x3B + 384 * 2 + 64;
-		*(SendBuffer + 0x16) = ((DataLen >> 8) & 0xFF); // uint16	DataLen
-		*(SendBuffer + 0x17) = (DataLen & 0xFF);
-		*(SendBuffer + 0x18) = ((UTC8TimeTcp.year) & 0xFF);		  // uint8	year
-		*(SendBuffer + 0x19) = (UTC8TimeTcp.month & 0xFF);		  // uint8	month
-		*(SendBuffer + 0x1A) = (UTC8TimeTcp.day & 0xFF);		  // uint8	day
-		*(SendBuffer + 0x1B) = (UTC8TimeTcp.hour & 0xFF);		  // uint8	hour
-		*(SendBuffer + 0x1C) = (UTC8TimeTcp.minute & 0xFF);		  // uint8	minute
-		*(SendBuffer + 0x1D) = (UTC8TimeTcp.second & 0xFF);		  // uint8	second
-		*(SendBuffer + 0x1E) = (DataIdx & 0xFF);				  // uint8	BATTMSG
-		*(SendBuffer + 0x1F) = ((UTC8TimeTcp.year) & 0xFF);		  // uint8	year
-		*(SendBuffer + 0x20) = (UTC8TimeTcp.month & 0xFF);		  // uint8	month
-		*(SendBuffer + 0x21) = (UTC8TimeTcp.day & 0xFF);		  // uint8	day
-		*(SendBuffer + 0x22) = (UTC8TimeTcp.hour & 0xFF);		  // uint8	hour
-		*(SendBuffer + 0x23) = (UTC8TimeTcp.minute & 0xFF);		  // uint8	minute
-		*(SendBuffer + 0x24) = (UTC8TimeTcp.second & 0xFF);		  // uint8	second
-		*(SendBuffer + 0x25) = (CSQValue & 0xFF);				  // uint8	csq
-		*(SendBuffer + 0x26) = (BMS1_SysSts & 0xFF);			  // uint8	电池管理系统工作状态,0-初始化 1-自检完成允许上电 2-运行状态 3-高压切断 4-故障状态,精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x27) = (BMS1_DCChrgConnectSt & 0xFF);	  // uint8	直流充电枪连接状态,0-未连接 1-单枪连接 2-双枪连接 3-无效,精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x28) = (BMS2_FaultLevel & 0xFF);		  // uint8	当前最高故障等级,0-正常 1-1级 轻微故障 2-2级 较严重故障 3-3级 最严重故障,精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x29) = (BMS2_FaultCode & 0xFF);			  // uint8	故障码,见BMS_ErrCode,精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x2A) = (BMS2_RqHVPoerOff & 0xFF);		  // uint8	BMS下高压请求,0-无效 1-请求下高压 2-不请求下高压 3-无效,精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x2B) = (BMS1_ChrgStatus & 0xFF);		  // uint8	充电状态,0-未充电 1-充电中 2-充电已完成 3-充电错误故障,精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x2C) = (BMS2_SOC & 0xFF);				  // uint8	电池包SOC 精度_0.4,偏移量_0,单位_*(SendBuffer+0x2D)	=	(BMS2_SOH&0xFF);		//uint8	电池包SOH 精度_0.4,偏移量_0,单位_*(SendBuffer+0x2E)	=	((BMS2_PackInsideVolt>>8)&0xFF);		//uint16	电池包内侧电压 精度_0.1,偏移量_0,单位_V
-		*(SendBuffer + 0x2D) = (BMS2_SOH / 25 * 10) & 0xFF;		  // SOH 精度1%
-		*(SendBuffer + 0x2E) = (BMS2_PackInsideVolt >> 8) & 0xFF; //电池包总电压
-		*(SendBuffer + 0x2F) = (BMS2_PackInsideVolt & 0xFF);
-		*(SendBuffer + 0x30) = ((BMS2_PackCurrent >> 8) & 0xFF); // uint16	电池包总电流,充电为负值,放电为正值 精度_0.1,偏移量_-1000,单位_A
-		*(SendBuffer + 0x31) = (BMS2_PackCurrent & 0xFF);
-		*(SendBuffer + 0x32) = ((BMS4_SysInsRes >> 8) & 0xFF); // uint16	系统绝缘电阻 精度_1,偏移量_0,单位_KΩ
-		*(SendBuffer + 0x33) = (BMS4_SysInsRes & 0xFF);
-		*(SendBuffer + 0x34) = (BMS1_MainPosRelaySt & 0xFF);	// uint8	主正继电器状态,0-预留 1-断开 2-吸合  ,精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x35) = (BMS1_PreChgRelaySt & 0xFF);		// uint8	预充继电器状态,0-预留 1-断开 2-吸合  ,精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x36) = (BMS1_MainNegRelaySt & 0xFF);	// uint8	主负继电器状态,0-预留 1-断开 2-吸合  ,精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x37) = (BMS1_DCChrgPos1RelaySt & 0xFF); // uint8	直流充正继电器1状态,0-预留 1-断开 2-吸合  ,精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x38) = (BMS1_DCChrgNeg1RelaySt & 0xFF); // uint8	直流充负继电器1状态,0-预留 1-断开 2-吸合  ,精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x39) = (BMS1_DCChrgPos2RelaySt & 0xFF); // uint8	直流充正继电器2状态,0-预留 1-断开 2-吸合  ,精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x3A) = (BMS1_DCChrgNeg2RelaySt & 0xFF); // uint8	直流充负继电器2状态,0-预留 1-断开 2-吸合  ,精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x3B) = (BMS1_HeatPosRelaySt & 0xFF);	// uint8	加热正继电器状态,0-预留 1-断开 2-吸合  ,精度_1,偏移量_0,单位_
-		*(SendBuffer + 0x3C) = (BMS1_HeatNegRelaySt & 0xFF);	// uint8	加热负继电器状态,0-预留 1-断开 2-吸合  ,精度_1,偏移量_0,单位_
-
-		*(SendBuffer + 0x50) = ((BMS9_PackTotCellNum >> 8) & 0xFF); // uint16	PACK中单体电芯的总数目
-		*(SendBuffer + 0x51) = (BMS9_PackTotCellNum & 0xFF);
-		for (uint16 index = 0; index < BMS9_PackTotCellNum; index++)
-		{
-			*(SendBuffer + 0x52 + index * 2) = ((BMS_Cell_Volt[index] >> 8) & 0xFF);
-			*(SendBuffer + 0x52 + index * 2 + 1) = ((BMS_Cell_Volt[index]) & 0xFF);
-		}
-		*(SendBuffer + 0x352) = (BMS9_PackTotTempNum & 0xFF); //  uint8	PACK中电芯温度点(探针)的总数目
-		memcpy(SendBuffer + 0x353, BMS_Cell_TempN, BMS9_PackTotTempNum);
-		*(SendBuffer + 0x393) = bcc_chk(SendBuffer, 0x393);
-		*PtrSendAddr = (uint32)SendBuffer;
-		break;
-	}
-	case 0x92:
-	{
-		*SendLen = 0x4E;
-		SendBuffer = malloc(*SendLen);
-		*(SendBuffer + 0) = TCP_START_SYM1;
-		*(SendBuffer + 1) = TCP_START_SYM2;
-		*(SendBuffer + 2) = TCP_CMD_SYM;
-		*(SendBuffer + 3) = TCP_ANS_SYM;
-		memcpy(SendBuffer + 4, TcpbattSN, BATT_SN_LEN);
-		*(SendBuffer + 0x15) = (TCP_ENCPT_DISABLE & 0xFF); // uint8	TCP_ENCPT_DISABLE
-		uint16 DataLen = 0x35;
-		*(SendBuffer + 0x16) = ((DataLen >> 8) & 0xFF); // uint16	DataLen
-		*(SendBuffer + 0x17) = (DataLen & 0xFF);
-		*(SendBuffer + 0x18) = ((UTC8TimeTcp.year) & 0xFF);			 // uint8	year
-		*(SendBuffer + 0x19) = (UTC8TimeTcp.month & 0xFF);			 // uint8	month
-		*(SendBuffer + 0x1A) = (UTC8TimeTcp.day & 0xFF);			 // uint8	day
-		*(SendBuffer + 0x1B) = (UTC8TimeTcp.hour & 0xFF);			 // uint8	hour
-		*(SendBuffer + 0x1C) = (UTC8TimeTcp.minute & 0xFF);			 // uint8	minute
-		*(SendBuffer + 0x1D) = (UTC8TimeTcp.second & 0xFF);			 // uint8	second
-		*(SendBuffer + 0x1E) = (DataIdx & 0xFF);					 // uint8
-		*(SendBuffer + 0x1F) = ((UTC8TimeTcp.year) & 0xFF);			 // uint8	year
-		*(SendBuffer + 0x20) = (UTC8TimeTcp.month & 0xFF);			 // uint8	month
-		*(SendBuffer + 0x21) = (UTC8TimeTcp.day & 0xFF);			 // uint8	day
-		*(SendBuffer + 0x22) = (UTC8TimeTcp.hour & 0xFF);			 // uint8	hour
-		*(SendBuffer + 0x23) = (UTC8TimeTcp.minute & 0xFF);			 // uint8	minute
-		*(SendBuffer + 0x24) = (UTC8TimeTcp.second & 0xFF);			 // uint8	second
-		*(SendBuffer + 0x25) = ((BMS14_TotalChargeAh >> 24) & 0xFF); // uint32	累积充入Ah 数 精度_0.1,偏移量_0,单位_Ah
-		*(SendBuffer + 0x26) = ((BMS14_TotalChargeAh >> 16) & 0xFF);
-		*(SendBuffer + 0x27) = ((BMS14_TotalChargeAh >> 8) & 0xFF);
-		*(SendBuffer + 0x28) = (BMS14_TotalChargeAh & 0xFF);
-		*(SendBuffer + 0x29) = ((BMS14_TotalDischargeAh >> 24) & 0xFF); // uint32	累积放出Ah 数 精度_0.1,偏移量_0,单位_Ah
-		*(SendBuffer + 0x2A) = ((BMS14_TotalDischargeAh >> 16) & 0xFF);
-		*(SendBuffer + 0x2B) = ((BMS14_TotalDischargeAh >> 8) & 0xFF);
-		*(SendBuffer + 0x2C) = (BMS14_TotalDischargeAh & 0xFF);
-		*(SendBuffer + 0x2D) = ((BMS15_TotalChargeKwh >> 24) & 0xFF); // uint32	累计充入kWh 数 精度_0.1,偏移量_0,单位_KWh
-		*(SendBuffer + 0x2E) = ((BMS15_TotalChargeKwh >> 16) & 0xFF);
-		*(SendBuffer + 0x2F) = ((BMS15_TotalChargeKwh >> 8) & 0xFF);
-		*(SendBuffer + 0x30) = (BMS15_TotalChargeKwh & 0xFF);
-		*(SendBuffer + 0x31) = ((BMS15_TotalDischargeKwh >> 24) & 0xFF); // uint32	累计放出kWh 数 精度_0.1,偏移量_0,单位_KWh
-		*(SendBuffer + 0x32) = ((BMS15_TotalDischargeKwh >> 16) & 0xFF);
-		*(SendBuffer + 0x33) = ((BMS15_TotalDischargeKwh >> 8) & 0xFF);
-		*(SendBuffer + 0x34) = (BMS15_TotalDischargeKwh & 0xFF);
-		*(SendBuffer + 0x35) = ((BMS16_TotalEneryECOChargeAh >> 24) & 0xFF); // uint32	累计动能回馈充入Ah 数 精度_0.1,偏移量_0,单位_Ah
-		*(SendBuffer + 0x36) = ((BMS16_TotalEneryECOChargeAh >> 16) & 0xFF);
-		*(SendBuffer + 0x37) = ((BMS16_TotalEneryECOChargeAh >> 8) & 0xFF);
-		*(SendBuffer + 0x38) = (BMS16_TotalEneryECOChargeAh & 0xFF);
-		*(SendBuffer + 0x39) = ((BMS16_TotalEneryECOChargeKwh >> 24) & 0xFF); // uint32	累计动能回馈充入kWh 数 精度_0.1,偏移量_0,单位_KWh
-		*(SendBuffer + 0x3A) = ((BMS16_TotalEneryECOChargeKwh >> 16) & 0xFF);
-		*(SendBuffer + 0x3B) = ((BMS16_TotalEneryECOChargeKwh >> 8) & 0xFF);
-		*(SendBuffer + 0x3C) = (BMS16_TotalEneryECOChargeKwh & 0xFF);
-		*(SendBuffer + 0x3D) = ((BMS17_TotalStationChargeAh >> 24) & 0xFF); // uint32	累计换电站充入Ah 数 精度_0.1,偏移量_0,单位_Ah
-		*(SendBuffer + 0x3E) = ((BMS17_TotalStationChargeAh >> 16) & 0xFF);
-		*(SendBuffer + 0x3F) = ((BMS17_TotalStationChargeAh >> 8) & 0xFF);
-		*(SendBuffer + 0x40) = (BMS17_TotalStationChargeAh & 0xFF);
-		*(SendBuffer + 0x41) = ((BMS17_TotalStationChargeKwh >> 24) & 0xFF); // uint32	累计换电站充入kWh 数 精度_0.1,偏移量_0,单位_KWh
-		*(SendBuffer + 0x42) = ((BMS17_TotalStationChargeKwh >> 16) & 0xFF);
-		*(SendBuffer + 0x43) = ((BMS17_TotalStationChargeKwh >> 8) & 0xFF);
-		*(SendBuffer + 0x44) = (BMS17_TotalStationChargeKwh & 0xFF);
-		*(SendBuffer + 0x45) = ((BMS18_TotalPoleChargeAh >> 24) & 0xFF); // uint32	累计插枪充电充入Ah 数 精度_0.1,偏移量_0,单位_Ah
-		*(SendBuffer + 0x46) = ((BMS18_TotalPoleChargeAh >> 16) & 0xFF);
-		*(SendBuffer + 0x47) = ((BMS18_TotalPoleChargeAh >> 8) & 0xFF);
-		*(SendBuffer + 0x48) = (BMS18_TotalPoleChargeAh & 0xFF);
-		*(SendBuffer + 0x49) = ((BMS18_TotalPoleChargeKwh >> 24) & 0xFF); // uint32	累计插枪充电充入kWh 数 精度_0.1,偏移量_0,单位_KWh
-		*(SendBuffer + 0x4A) = ((BMS18_TotalPoleChargeKwh >> 16) & 0xFF);
-		*(SendBuffer + 0x4B) = ((BMS18_TotalPoleChargeKwh >> 8) & 0xFF);
-		*(SendBuffer + 0x4C) = (BMS18_TotalPoleChargeKwh & 0xFF);
-		*(SendBuffer + 0x4D) = bcc_chk(SendBuffer, 0x4D);
-		*PtrSendAddr = (uint32)SendBuffer;
-		break;
-	}
-#endif
 	default:
 		break;
 	}
@@ -1181,7 +965,6 @@ static void TcpDataInfoRecvHandle(uint8 *DataRecv,uint16 DataRecvLen)
                 break;
             case TCP_CONCMD_SYM:
             {
-#ifdef APP_UART0_ENABLE
                 TcpCmdAnswer[0] = TCP_START_SYM1;
                 TcpCmdAnswer[1] = TCP_START_SYM1;
                 TcpCmdAnswer[2] = TCP_CONCMD_SYM;
@@ -1207,7 +990,6 @@ static void TcpDataInfoRecvHandle(uint8 *DataRecv,uint16 DataRecvLen)
                         tcpipConnectionSend(SocketId, TcpCmdAnswer, 31);
                     }
                 }
-#endif
             }
             default:
             {

+ 0 - 5
src/main.c

@@ -160,12 +160,7 @@ int main(void)
 
 	xTaskCreate(MainTask, (const char *const)"MainTask", 128, (void *)0, main_TASK_PRIORITY + 3, NULL);
 	xTaskCreate(Uart_4G_Task, (const char *const)"Uart_4G_Task", 2048, (void *)0, main_TASK_PRIORITY + 0, NULL);
-#ifdef APP_UART0_ENABLE
 	xTaskCreate(Uart0Task, (const char *const)"Uart0_Bms_Task", 256, (void *)0, main_TASK_PRIORITY + 1, NULL);
-#endif
-#ifdef APP_CAN_ENABLE
-	xTaskCreate(CanTask, (const char *const)"CanTask", 512, (void *)0, main_TASK_PRIORITY + 2, NULL);
-#endif
 	xTaskCreate(GpsTask, (const char *const)"GpsTask", 512, (void *)0, main_TASK_PRIORITY + 1, NULL);
 	vTaskStartScheduler();
 	for (;;)