/*
 * CanVar.c
 *
 *  Created on: 2021年12月27日
 *  编码
 *      Author: QiXiang_CHENJIE
 */
#include "CanVar.h"
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->Ebc解码变量存放区
 ************************************************************/
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[64] = {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[384] = {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
/*************************************************************
 *Ebc->Bcu组码变量存放区
 ************************************************************/
UINT32 Ebc2BcuOutTable[5][2] = {
	{0x1802F4EF, 100},
	{0x1803F4EF, 100},
	{0x18E1F4EF, 1000},
	{0x18FF11F1, 100},
	{0x18FF12F1, 100},
};
// UINT8 VCU_Life = 0x00;			   // VCU生命信号，精度_1，偏移_0，单位_

UINT8 VCU_ReqHV = 0x00;	  //整车发给BMS的主回路上下高压指令,1 _PowerOn   2_PowerOff，精度_1，偏移_0，单位_
UINT8 VCU_DCDCSts = 0x00; // DCDC 状态,1_停止(断开)2_运行中，精度_1，偏移_0，单位_
UINT8 VCU_DCACSts = 0x00; //电动油泵状态,1_停止(断开)2_运行中，精度_1，偏移_0，单位_
UINT8 VCU_DCAPSts = 0x00; //电动空压机状态,1_停止(断开)2_运行中，精度_1，偏移_0，单位_
// UINT8 VCU_VehicleSpeed = 0x00;	   //车速，精度_1，偏移_0，单位_km/h
UINT8 VCU_PosRlySts = 0x00;		   //整车端主正继电器状态,1_断开   2_闭合，精度_1，偏移_0，单位_
UINT8 VCU_PosRlyErrSts = 0x00;	   //整车端主正继电器故障状态,0_正常 1_粘连 2 无法吸合，精度_1，偏移_0，单位_
UINT8 VCU_PTCRlSts = 0x00;		   // PTC 继电器状态,1_断开   2_闭合，精度_1，偏移_0，单位_
UINT8 VCU_PTCRlErrSts = 0x00;	   // PTC 继电器故障状态,0_正常 1_粘连" 2 无法吸合，精度_1，偏移_0，单位_
UINT8 VCU_StopChgCmd = 0x00;	   //停止充电指令,1_未激活  2_激活，精度_1，偏移_0，单位_
UINT8 VCU_HVInterlock = 0x00;	   //高压互锁故障,0_正常 1_故障，精度_1，偏移_0，单位_
UINT8 VCU_AssistRlySts = 0x00;	   //辅助接触器状态,1_断开   2_闭合，精度_1，偏移_0，单位_
UINT8 VCU_AssistRlyErrSts = 0x00;  //辅助接触器故障状态,0_正常 1_粘连" 2 无法吸合，精度_1，偏移_0，单位_
UINT8 VCU_ACRlySts = 0x00;		   //空调压缩机接触器状态,1_断开   2_闭合，精度_1，偏移_0，单位_
UINT8 VCU_ACRlyErrSts = 0x00;	   //空调压缩机接触器故障状态,0_正常 1_粘连" 2 无法吸合，精度_1，偏移_0，单位_
UINT8 ISO_WorkStatus = 0x00;	   //绝缘检测仪工作状态,0_安全检查 1_ 工作  2_ 停止工作 3_设备故障，精度_1，偏移_0，单位_
UINT8 ISO_FaultLevel = 0x00;	   //绝缘故障等级,0_无故障 1_1级故障 2_2级故障 3_3级故障 ，精度_1，偏移_0，单位_
UINT16 ISO_PosResis = 0x00;		   //正极绝缘值，精度_1，偏移_0，单位_
UINT16 ISO_NegResis = 0x00;		   //负极绝缘值，精度_1，偏移_0，单位_
UINT8 VIN_FrameNo = 0;			   // VIN帧序号
UINT8 EBC_State = 0x00;			   //换电控制器状态，0_行车状态 1_通讯状态 2_换电状态，精度_1，偏移_0，单位_
UINT8 EBC_ForbidHVOn = 0x00;	   //禁止高压上电，0_允许高压上电 1_禁止高压上电，精度_1，偏移_0，单位_
UINT8 EBC_RequestHVOff = 0x00;	   //请求高压下电，0_无效 1_请求高压下电，精度_1，偏移_0，单位_
UINT8 EBC_ChgFaultFlag = 0x00;	   //充电故障标志，0_无故障 1_有故障，精度_2，偏移_0，单位_
UINT8 EBC_LockupFaultFlag = 0x00;  //锁止机构故障标志，0_异常 1_正常，精度_1，偏移_0，单位_
UINT8 EBC_ChgCnctOverTemp = 0x00;  //充电连接器过温故障标志，0_异常 1_正常，精度_1，偏移_0，单位_
UINT8 EBC_DischgHIVLFlag = 0x00;   //放电互锁故障标志，0_异常 1_正常，精度_1，偏移_0，单位_
UINT8 EBC_ChargeHIVLFlag = 0x00;   //充电互锁故障标志，0_异常 1_正常，精度_1，偏移_0，单位_
UINT8 EBC_DChgCnctOverTemp = 0x00; //放电连接器过温故障标志，0_异常 1_正常，精度_1，偏移_0，单位_
UINT8 EBC_FaultLevel = 0x00;	   //故障等级，0_无效 1_1级故障 2_2级故障 3_3级故障，精度_1，偏移_0，单位_
UINT8 EBC_FaultCode = 0x00;		   //故障码，见附件，精度_1，偏移_0，单位_
UINT8 EBC_ChargingStatus = 0x00;   //充电标志位，1_车载插枪充入 2_换电站充入，精度_1，偏移_0，单位_
UINT8 EBC_ActiveHeatReq = 0x00;	   //主动预热请求，0_无主动预热请求 1_请求主动预热 2~3预留，精度_1，偏移_0，单位_
UINT8 EBC_AirPressure = 0x00;	   //气压值，精度_0.01，偏移_0，单位_Mpa
// UINT8 EBC_Life = 0x00;			   // LIFE 信号，精度_1，偏移_0，单位_
//  UINT8 EBC_ChgPos1Temp = 0x00;	   //充电正1温度（保留），精度_1，偏移_-40，单位_℃
//  UINT8 EBC_ChgNeg1Temp = 0x00;	   //充电负1温度（保留），精度_1，偏移_-40，单位_℃
//  UINT8 EBC_ChgPos2Temp = 0x00;	   //充电正2温度（保留），精度_1，偏移_-40，单位_℃
//  UINT8 EBC_ChgNeg2Temp = 0x00;	   //充电负2温度（保留），精度_1，偏移_-40，单位_℃
//  UINT8 EBC_DchgPos1Temp = 0x00;	   //放电正1温度，精度_1，偏移_-40，单位_℃
//  UINT8 EBC_DchgNeg1Temp = 0x00;	   //放电负1温度，精度_1，偏移_-40，单位_℃
//  UINT8 EBC_DchgPos2Temp = 0x00;	   //放电正2温度，精度_1，偏移_-40，单位_℃
//  UINT8 EBC_DchgNeg2Temp = 0x00;	   //放电负2温度，精度_1，偏移_-40，单位_℃
/*************************************************************
 *Vcu->Ebc组码变量存放区
 ************************************************************/
UINT8 EBC_VinMsgFlag = 0x00; // EBC收全VIN标志位
UINT32 VcuInTable[8] = {
	0x1802F3D0,
	0x18E1F3D0,
	0x18FEDA17,
	0x18FF15F6,
	0x18FF43A8,
	0x18FF44A8,
	0x18FF4617,
	0x18FF48A8,
};
UINT8 VcuRxFlag[8] = {0};
BOOL VcuRxShortError[8] = {0};
BOOL VcuRxLongError[8] = {0};
UINT8 VcuRxErrorCount[8] = {0};
UINT8 Checksum = 0x00;			   //(No)最后7个字节checksum，Byte0=Byte1 XOR Byte2 XOR Byte3 XOR Byte4 XOR Byte5 XOR Byte6 XOR Byte7，精度_1，偏移_0
UINT8 VCU_Life = 0x00;			   // VCU生命信号，0~14循环，15_信号无效，精度_1，偏移_0
UINT8 VCU_HvOnOff = 0x00;		   //高压上下电指令，0_预留；1_高压上电；2_高压下电；3_无效；，精度_1，偏移_0
UINT8 VCU_AuxOnOff = 0x00;		   //(No)附件高压上下电指令（保留），0_预留；1_高压上电；2_高压下电；3_无效；，精度_1，偏移_0
UINT8 VCU_VehicleSpeed = 0x00;	   //车速，有效值 0~255，单位 km/h，范围（0~255） km/h，偏移量 0，比例因子 1km/h/bit，精度_1，偏移_0
UINT8 VCU_HeatOnOff = 0x00;		   //加热开启关闭指令(保留)，0_预留；1_加热开启；2_加热关断；3_无效；，精度_1，偏移_0
UINT8 VCU_MainPosRlySts = 0x00;	   //主正继电器状态(如继电器状态由整车检测)（保留），0_预留；1_开启；2_闭合；3_无效；，精度_1，偏移_0
UINT8 VCU_MainNegRlySts = 0x00;	   //主负继电器状态(如继电器状态由整车检测)（保留），0_预留；1_开启；2_闭合；3_无效；，精度_1，偏移_0
UINT8 VCU_PreChgRlySts = 0x00;	   //预充继电器状态(如继电器状态由整车检测)（保留），0_预留；1_开启；2_闭合；3_无效；，精度_1，偏移_0
UINT8 VCU_AuxRlySts = 0x00;		   //附件继电器状态(如继电器状态由整车检测)（保留），0_预留；1_开启；2_闭合；3_无效；，精度_1，偏移_0
UINT8 VCU_MainMotRlySts = 0x00;	   //主电机接触器状态（保留），0_预留；1_开启；2_闭合；3_无效；，精度_1，偏移_0
UINT8 VCU_MainMotRlyErrSts = 0x00; //主电机接触器故障（保留），0_预留；1_开启；2_闭合；3_无效；，精度_1，偏移_0
UINT8 VCU_Assist1RlySts = 0x00;	   //辅件1接触器状态（保留），0_预留；1_开启；2_闭合；3_无效；，精度_1，偏移_0
UINT8 VCU_Assist1RlyErrSts = 0x00; //辅件1接触器故障（保留），0_预留；1_开启；2_闭合；3_无效；，精度_1，偏移_0
UINT8 VCU_Assist2RlySts = 0x00;	   //辅件2接触器状态（保留），0_预留；1_开启；2_闭合；3_无效；，精度_1，偏移_0
UINT8 VCU_Assist2RlyErrSts = 0x00; //辅件2接触器故障（保留），0_预留；1_开启；2_闭合；3_无效；，精度_1，偏移_0
UINT8 VCU_Assist3RlySts = 0x00;	   //辅件3接触器状态（保留），0_预留；1_开启；2_闭合；3_无效；，精度_1，偏移_0
UINT8 VCU_Assist3RlyErrSts = 0x00; //辅件3接触器故障（保留），0_预留；1_开启；2_闭合；3_无效；，精度_1，偏移_0
UINT8 VCU_Assist4RlySts = 0x00;	   //辅件4接触器状态（保留），0_预留；1_开启；2_闭合；3_无效；，精度_1，偏移_0
UINT8 VCU_Assist4RlyErrSts = 0x00; //辅件4接触器故障（保留），0_预留；1_开启；2_闭合；3_无效；，精度_1，偏移_0
UINT8 VCU_VIN[17] = {0x00};
UINT8 DrvMotPosRySts = 0x00;	 //驱动电机主正继电器状态，0_断开；1_闭合；2_粘连；，精度_1，偏移_0
UINT8 VehSts = 0x00;			 //车辆状态，1_启动 2_熄火，精度_1，偏移_0
UINT8 BrakePedal = 0x00;		 //制动开度 精度_0.005，偏移_0
UINT8 HandbrakeSts = 0x00;		 //手刹信号，0_未拉手刹1_已拉手刹，其它值无效，精度_1，偏移_0
UINT8 GearPos = 0x00;			 //档位，最小值__-1，最大值 14 ，0x0F表示无效，_-1 代表倒档 R；0 代表空挡 N；大于 0 代表前进档 D；，精度_1，偏移_0
UINT16 VehSpd = 0x00;			 //车速 精度_0.00390625，偏移_0
UINT32 VCU_TotalDistance = 0x00; //累计行驶里程，0~16777215，精度_1，偏移_0
/*************************************************************
 *Ebc->Vcu组码变量存放区
 ************************************************************/
UINT32 Ebc2VcuOutTable[25][2] = {
	{0x1801D0F3, 100},
	{0x1801D8F3, 1000},
	{0x1880D0F3, 100},
	{0x1881D0F3, 100},
	{0x1882D0F3, 100},
	{0x1883D0F3, 100},
	{0x1884D0F3, 100},
	{0x1885D0F3, 100},
	{0x1886D0F3, 100},
	{0x1887D0F3, 1000},
	{0x18C1D0F3, 100},
	{0x18C2D0F3, 200},
	{0x18E1D0F3, 1000},
	{0x18E2D0F3, 1000},
	{0x18E3D0F3, 1000},
	{0x18E4D0F3, 1000},
	{0x18E5D0F3, 100},
	{0x18E6D0F3, 100},
	{0x18F1D0F3, 1000},
	{0x18F2D0F3, 1000},
	{0x18F3D0F3, 1000},
	{0x18FEF8A7, 100},
	{0x18FF45F4, 1000},
	{0x18FFC13A, 1000},
	{0x18FFF8A7, 100},
};
UINT8 ReqVIN = 0x00;					   //是否请求VIN码,0_预留；1_请求VIN；2_不请求VIN；3_无效；,精度_1,_偏移_0,单位_
UINT8 ReqHVOff = 0x00;					   //是否请求下高压,0_预留；1_请求下高压；2_不请求下高压；3_无效；,精度_1,_偏移_0,单位_
UINT8 ChgSysNum = 0x00;					   //可充电装置系统序号(BMS是整车中可充电装置系统中的第几个， 需要整车告知),1,精度_1,_偏移_0,单位_
UINT8 Fult2_MainPosRelayWeldErr = 0x00;	   //主正继电器粘连故障,0_正常； 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_MainNegRelayWeldErr = 0x00;	   //主负继电器粘连故障,0_正常； 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_DCChgPos1RelayWeldErr = 0x00;  //充正1继电器粘连故障,0_正常； 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_DCChgNeg1RelayWeldErr = 0x00;  //充负1继电器粘连故障,0_正常； 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_DCChgPos2RelayWeldErr = 0x00;  //充正2继电器粘连故障,0_正常； 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_DCChgNeg2RelayWeldErr = 0x00;  //充负2继电器粘连故障,0_正常； 1_故障,精度_1,_偏移_0,单位_
UINT8 HeatPosRelayWeldErr = 0x00;		   //加热正继电器粘连故障,0_正常； 1_故障,精度_1,_偏移_0,单位_
UINT8 HeatNegRelayWeldErr = 0x00;		   //加热负继电器粘连故障,0_正常； 1_故障,精度_1,_偏移_0,单位_
UINT8 MainPosRelaySt = 0x00;			   //主正继电器状态(如继电器状态由BMS检测),0_预留；1_开启；2_闭合；3_无效；,精度_1,_偏移_0,单位_
UINT8 MainNegRelaySt = 0x00;			   //主负继电器状态(如继电器状态由BMS检测),0_预留；1_开启；2_闭合；3_无效；,精度_1,_偏移_0,单位_
UINT8 PreChgRelaySt = 0x00;				   //预充继电器状态,0_预留；1_开启；2_闭合；3_无效；,精度_1,_偏移_0,单位_
UINT8 DCChrgPos1RelaySt = 0x00;			   //直流充正继电器1状态,0_预留；1_开启；2_闭合；3_无效；,精度_1,_偏移_0,单位_
UINT8 DCChrgNeg1RelaySt = 0x00;			   //直流充负继电器1状态,0_预留；1_开启；2_闭合；3_无效；,精度_1,_偏移_0,单位_
UINT8 DCChrgPos2RelaySt = 0x00;			   //直流充正继电器2状态,0_预留；1_开启；2_闭合；3_无效；,精度_1,_偏移_0,单位_
UINT8 DCChrgNeg2RelaySt = 0x00;			   //直流充负继电器2状态,0_预留；1_开启；2_闭合；3_无效；,精度_1,_偏移_0,单位_
UINT8 AuxRelayWeldErr = 0x00;			   //附件继电器粘连故障（保留）,0_正常； 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_BranchBreakErr = 0x00;		   //支路断路故障,0_正常； 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_OverChrgCurrInTheDrive = 0x00; //回充电流超限报警,0_正常  1_1级 轻微故障 2_2级 较严重故障 3_3级 最严重故障,精度_1,_偏移_0,单位_
UINT8 Fult2_MainPosRelayOpenErr = 0x00;	   //主正继电器无法闭合报警,0_正常； 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_MainNegRelayOpenErr = 0x00;	   //主负继电器无法闭合报警,0_正常； 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_DCChgPos1RelayOpenErr = 0x00;  //直流充电正1继电器无法闭合报警,0_正常； 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_DCChgPos2RelayOpenErr = 0x00;  //直流充电正2继电器无法闭合报警,0_正常； 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_DCChgNeg1RelayOpenErr = 0x00;  //直流充电负1继电器无法闭合报警,0_正常； 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_DCChgNeg2RelayOpenErr = 0x00;  //直流充电负2继电器无法闭合报警,0_正常； 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_HeatRelayWeldErr = 0x00;	   //加热膜或TMS接触器无法断开报警,0_正常； 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_HeatRelayOpenErr = 0x00;	   //加热膜或TMS接触器无法闭合报警,0_正常； 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_TMSErr = 0x00;				   //热管理系统故障,0_正常； 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_PowerSupplyErr = 0x00;		   // BMS 24V供电异常报警,0_正常； 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_PackSelfProtect = 0x00;		   //电池包自保护报警,0_正常； 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_ChrgNTCTempOver = 0x00;		   //充电插座过温报警,0_正常 1_1级 轻微故障 2_2级 较严重故障 3_3级 最严重故障,精度_1,_偏移_0,单位_
UINT8 BattSysNum = 0x00;				   //可充电储能子系统总数(保留),,精度_1,_偏移_0,单位_
UINT8 BatSysFaultCode = 0x00;			   //电池系统故障码,详见附表电池系统故障码列表,精度_1,_偏移_0,单位_
UINT8 ST1_CheckSum = 0x00;				   // B2V_ST1的CheckSum,Byte0=Byte1 XOR Byte2 XOR Byte3 XOR Byte4 XOR Byte5 XOR Byte6 XOR Byte7,精度_1,_偏移_0,单位_
UINT8 ST1_Life = 0x00;					   // B2V_ST1的生命信号,0~14循环，15_信号无效,精度_1,_偏移_0,单位_
UINT8 BMS_SysSts = 0x00;				   // BMS当前状态,0_预留；1_高压上电；2_高压下电；3_无效；,精度_1,_偏移_0,单位_
UINT8 AssisRelaySts = 0x00;				   //附件继电器状态,0_开启；1_闭合；,精度_1,_偏移_0,单位_
UINT8 BlanceSts = 0x00;					   // BMS当前均衡状态,0_未开启均衡；1_开启均衡；,精度_1,_偏移_0,单位_
UINT8 DCChrgConnectSt = 0x00;			   //直流充电枪连接状态,0_未连接 1_连接,精度_1,_偏移_0,单位_
UINT8 ChrgMode = 0x00;					   // BMS当前充电模式,0_预留 1_直流充电 2_交流充电 3_其他充电,精度_1,_偏移_0,单位_
UINT8 ChrgStatus = 0x00;				   //充电状态,0_可以充电 1_正在充电 2_充电结束 3_充电故障,精度_1,_偏移_0,单位_
UINT8 FaultLevel = 0x00;				   //当前最高故障等级,0_正常 1_1级 轻微故障 2_2级 较严重故障 3_3级 最严重故障,精度_1,_偏移_0,单位_
UINT8 Fult1_DelTemp = 0x00;				   //电芯温差异常报警,0_无故障； 1_1级 轻微故障； 2_2级 较严重故障 3_3级 最严重故障,精度_1,_偏移_0,单位_
UINT8 Fult1_OverTemp = 0x00;			   //电芯温度过高报警,0_无故障； 1_1级 轻微故障； 2_2级 较严重故障 3_3级 最严重故障,精度_1,_偏移_0,单位_
UINT8 Fult1_PackOverHVolt = 0x00;		   // PACK过压报警,0_无故障； 1_1级 轻微故障； 2_2级 较严重故障 3_3级 最严重故障,精度_1,_偏移_0,单位_
UINT8 Fult1_PackLowHVolt = 0x00;		   // PACK欠压报警,0_无故障； 1_1级 轻微故障； 2_2级 较严重故障 3_3级 最严重故障,精度_1,_偏移_0,单位_
UINT8 Fult1_LowSOC = 0x00;				   // SOC过低报警,0_无故障； 1_1级 轻微故障； 2_2级 较严重故障 3_3级 最严重故障,精度_1,_偏移_0,单位_
UINT8 Fult1_OverUcell = 0x00;			   //单体电压过高报警,0_无故障； 1_1级 轻微故障； 2_2级 较严重故障 3_3级 最严重故障,精度_1,_偏移_0,单位_
UINT8 Fult1_LowUcell = 0x00;			   //单体电压欠压报警,0_无故障； 1_1级 轻微故障； 2_2级 较严重故障 3_3级 最严重故障,精度_1,_偏移_0,单位_
UINT8 Fult1_LowInsRes = 0x00;			   //绝缘报警,0_无故障； 1_1级 轻微故障； 2_2级 较严重故障 3_3级 最严重故障,精度_1,_偏移_0,单位_
UINT8 Fult1_UcellUniformity = 0x00;		   //单体压差过大,0_无故障； 1_1级 轻微故障； 2_2级 较严重故障 3_3级 最严重故障,精度_1,_偏移_0,单位_
UINT8 Fult2_CellLowTemp = 0x00;			   //电芯低温报警,0_无故障； 1_1级 轻微故障； 2_2级 较严重故障 3_3级 最严重故障,精度_1,_偏移_0,单位_
UINT8 Fult2_OverDischrgCurr = 0x00;		   //放电电流超限报警,0_无故障； 1_1级 轻微故障； 2_2级 较严重故障 3_3级 最严重故障,精度_1,_偏移_0,单位_
UINT8 Fult2_OverChrgCurrInTheChrg = 0x00;  //充电电流超限报警,0_无故障； 1_1级 轻微故障； 2_2级 较严重故障 3_3级 最严重故障,精度_1,_偏移_0,单位_
UINT8 Fult_BranchVolUniformity = 0x00;	   //支路压差过大报警（存在并联支路的系统）,0_无故障； 1_1级 轻微故障； 2_2级 较严重故障 3_3级 最严重故障,精度_1,_偏移_0,单位_
UINT8 Fult_BMSHardware = 0x00;			   // BMS硬件故障,0_无故障； 1_1级 轻微故障； 2_2级 较严重故障 3_3级 最严重故障,精度_1,_偏移_0,单位_
UINT8 Fult1_OverSOC = 0x00;				   // SOC过高报警,0_正常; 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult1_SOCChangeFast = 0x00;		   // SOC跳变报警,0_正常; 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_InnerCommunicationErr = 0x00;  // BMS内部通信故障,0_正常; 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult1_BatSysNotMatch = 0x00;		   //可充电储能系统不匹配报警,0_正常; 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult1_HVILFault = 0x00;			   //高压互锁报警,0_正常; 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_FireDetectorEr = 0x00;		   //火警探测器故障,0_正常; 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_PackFireWarning = 0x00;		   //电池包火灾报警,0_正常; 1_故障,精度_1,_偏移_0,单位_
UINT8 Fult2_FaultNum = 0x00;			   // BMS当前发生的故障总数目（包括GB32960中规定的故障数目）,,精度_1,_偏移_0,单位_
UINT8 SOC = 0x00;						   //电池包SOC,,精度_0.4,_偏移_0,单位_
UINT8 SOH = 0x00;						   //电池包SOH,,精度_0.4,_偏移_0,单位_
UINT8 Max_Temp = 0x00;					   //单体最高温度,,精度_1,_偏移_-50,单位_℃
UINT8 Min_Temp = 0x00;					   //单体最低温度,,精度_1,_偏移_-50,单位_℃
UINT8 Avg_Temp = 0x00;					   //单体平均温度,,精度_1,_偏移_-50,单位_℃
UINT8 MaxTempSysNr = 0x00;				   //最高温度子系统（CSC）号,范围（1~255）,精度_1,_偏移_0,单位_
UINT8 MaxTempNr = 0x00;					   //最高温度探针单体代号,范围（1~255）,精度_1,_偏移_0,单位_
UINT8 MinTempSysNr = 0x00;				   //最低温度子系统（CSC）号,范围（1~255）,精度_1,_偏移_0,单位_
UINT8 MinTempNr = 0x00;					   //最低温度探针子系统代号,范围（1~255）,精度_1,_偏移_0,单位_
UINT8 MaxUcellSysNr = 0x00;				   //最高电压电池子系统号,范围（1~255）,精度_1,_偏移_0,单位_
UINT8 MaxUcellNr = 0x00;				   //最高电压电池单体代号,范围（1~255）,精度_1,_偏移_0,单位_
UINT8 MinUcellSysNr = 0x00;				   //最低电压电池子系统号,范围（1~255）,精度_1,_偏移_0,单位_
UINT8 MinUcellNr = 0x00;				   //最低电压电池单体代号,范围（1~255）,精度_1,_偏移_0,单位_
UINT8 Gun1DCNegTemp = 0x00;				   //充电口1负温感值,,精度_1,_偏移_-40,单位_℃
UINT8 Gun1DCPosTemp = 0x00;				   //充电口1正温感值,,精度_1,_偏移_-40,单位_℃
UINT8 Gun2DCNegTemp = 0x00;				   //充电口2负温感值,,精度_1,_偏移_-40,单位_℃
UINT8 Gun2DCPosTemp = 0x00;				   //充电口2正温感值,,精度_1,_偏移_-40,单位_℃
UINT8 HeatPosRelaySt = 0x00;			   //加热正继电器状态,0_断开；1_闭合；2_粘连；3_无效；,精度_1,_偏移_0,单位_
UINT8 HeatNegRelaySt = 0x00;			   //加热负继电器状态,0_断开；1_闭合；2_粘连；3_无效；,精度_1,_偏移_0,单位_
UINT8 UcellFrameNum = 0x01;				   //单体电压帧序号,有效值1~255,精度_1,_偏移_0,单位_
UINT8 UcellCSCNum = 0x00;				   //子系统编号CSC,有效值1~255,精度_1,_偏移_0,单位_
UINT8 TempFrameNum = 0x01;				   //温度帧序号,有效值1~255,精度_1,_偏移_0,单位_
UINT8 TempCSCNum = 0x00;				   //子系统编号CSC,有效值1~255,精度_1,_偏移_0,单位_
UINT8 CurCSC_TempN = 0x00;				   //当前CSC下的第N个探针的温度,255 "Invalid" 0xFF 无效 有效值 0~254，单位 ℃，范围（-50~204）℃，,精度_1,_偏移_-50,单位_℃
UINT8 CurCSC_TempN1 = 0x00;				   //当前CSC下的第N1个探针的温度,255 "Invalid" 0xFF 无效 有效值 0~254，单位 ℃，范围（-50~204）℃，,精度_1,_偏移_-50,单位_℃
UINT8 CurCSC_TempN2 = 0x00;				   //当前CSC下的第N2个探针的温度,255 "Invalid" 0xFF 无效 有效值 0~254，单位 ℃，范围（-50~204）℃，,精度_1,_偏移_-50,单位_℃
UINT8 CurCSC_TempN3 = 0x00;				   //当前CSC下的第N3个探针的温度,255 "Invalid" 0xFF 无效 有效值 0~254，单位 ℃，范围（-50~204）℃，,精度_1,_偏移_-50,单位_℃
UINT8 CurCSC_TempN4 = 0x00;				   //当前CSC下的第N4个探针的温度,255 "Invalid" 0xFF 无效 有效值 0~254，单位 ℃，范围（-50~204）℃，,精度_1,_偏移_-50,单位_℃
UINT8 CurCSC_TempN5 = 0x00;				   //当前CSC下的第N5个探针的温度,255 "Invalid" 0xFF 无效 有效值 0~254，单位 ℃，范围（-50~204）℃，,精度_1,_偏移_-50,单位_℃
UINT8 BattType = 0x00;					   //电池类型,1_铅酸电池; 2_镍氢电池; 3_磷酸铁锂电池; 4_锰酸锂电池; 5_钴酸锂电池; 6_三元材料电池; 7_聚合物锂离子电池; 8_钛酸锂电池; 9_超级电容; 10~13_保留； 14_燃料电池；15_保留,精度_1,_偏移_0,单位_
UINT8 CoolType = 0x00;					   //电池冷却方式,0_其他冷却方式 1_自然冷却 2_风扇冷却 3_水冷却,精度_1,_偏移_0,单位_
UINT8 TotCSCNum = 0x00;					   //电池系统中CSC总的数目,,精度_1,_偏移_0,单位_
UINT8 CellVoltPlat = 0x00;				   //单体平台电压(非实时变化的值),有效值0~5V;  255 "Signal Invalid" 0xFF 无效,精度_0.1,_偏移_0,单位_V
UINT8 MinAvlCellVolt = 0x00;			   //单体可用最低电压(非实时变化的值),有效值0~5V;  255 "Signal Invalid" 0xFF 无效,精度_0.1,_偏移_0,单位_V
UINT8 MaxAvlCellVolt = 0x00;			   //单体可用最高电压(非实时变化的值),有效值0~5V;  255 "Signal Invalid" 0xFF 无效,精度_0.1,_偏移_0,单位_V
UINT8 EBC_DchgPos1Temp = 0x00;			   //放电正1温度，，精度_1，偏移_-40，单位_℃
UINT8 EBC_DchgNeg1Temp = 0x00;			   //放电负1温度，，精度_1，偏移_-40，单位_℃
UINT8 EBC_DchgPos2Temp = 0x00;			   //放电正2温度，，精度_1，偏移_-40，单位_℃
UINT8 EBC_DchgNeg2Temp = 0x00;			   //放电负2温度，，精度_1，偏移_-40，单位_℃
UINT8 EBC_ChgPos1Temp = 0x00;			   //充电正1温度(保留)，，精度_1，偏移_-40，单位_℃
UINT8 EBC_ChgNeg1Temp = 0x00;			   //充电负1温度(保留)，，精度_1，偏移_-40，单位_℃
UINT8 EBC_ChgPos2Temp = 0x00;			   //充电正2温度(保留)，，精度_1，偏移_-40，单位_℃
UINT8 EBC_ChgNeg2Temp = 0x00;			   //充电负2温度(保留)，，精度_1，偏移_-40，单位_℃
UINT8 ReqMode = 0x00;					   // BMS请求设定模式,0_关机模式 1_制冷模式 2_制热模式 3_自循环模式,精度_1,_偏移_0,单位_
UINT8 HVCmd = 0x00;						   //高压请求,0_请求上高压 1_请求下高压,精度_1,_偏移_0,单位_
UINT8 ChgSts = 0x00;					   //充电状态,0_非充电 1_充电,精度_1,_偏移_0,单位_
UINT8 HVRelaySts = 0x00;				   // BMS高压继电器状态,0_断开状态； 1_闭合状态； 2~3_无效,精度_1,_偏移_0,单位_
UINT8 SetTemp = 0x00;					   //设定温度,,精度_1,_偏移_-40,单位_
UINT8 Bms_Life = 0x00;					   // BMS生命帧,,精度_1,_偏移_0,单位_
UINT8 CRC = 0x00;						   // CRC校验值,,精度_1,_偏移_0,单位_
// UINT8 TMS_WorkStatus = 0x00;			   // TMS工作状态,0_关机模式 1_制冷模式 2_制热模式 3_自循环模式,精度_1,_偏移_0,单位_
// UINT8 TMS_HVRelayST = 0x00;				   // TMS高压继电器状态,0_断开状态； 1_闭合状态； 2~3_无效,精度_1,_偏移_0,单位_
// UINT8 TMS_OutletTemp = 0x00;			   //出水温度（机组到电池）,255_无效,精度_1,_偏移_-40,单位_
// UINT8 TMS_InletTemp = 0x00;				   //回水温度（电池到机组）,255_无效,精度_1,_偏移_-40,单位_
// UINT8 TMS_ErrCode = 0x00;				   // TMS故障码,0_无故障； 出现 1 种以上循环发送,精度_1,_偏移_0,单位_
// UINT8 TMS_FaultLevel = 0x00;			   // TMS故障码等级,0_无效 1_1级故障 2_2级故障 3_3级故障,精度_1,_偏移_0,单位_
// UINT8 EBC_Life = 0x00;					   // LIFE 信号，0~255循环计数，每次+1，精度_1，偏移_0，单位_
UINT8 EBC_LockupSts = 0x00;			 //锁止销反馈状态，0_锁止故障（未解锁和未上锁同时出现） 1_解锁成功 2_上锁成功其他状态无效，精度_1，偏移_0，单位_
UINT8 EBC_ConnectorSts = 0x00;		 //换电连接器状态（充电回路&放电回路同时闭合代表闭合，有一路断开则为断开），0_未连接 1_连接 其他状态无效，精度_1，偏移_0，单位_
UINT8 EBC_DischgConnectorSts = 0x00; //放电回路换电连接器状态(保留)，0_未连接 1_连接 其他状态无效，精度_1，偏移_0，单位_
UINT8 EBC_ChgConnectorSts = 0x00;	 //充电回路换电连接器状态（保留），0_未连接 1_连接 其他状态无效，精度_1，偏移_0，单位_
// UINT8 EBC_FaultLevel = 0x00;		 //换电系统故障等级，0_无故障 1_1级故障 2_2级故障 3_3级故障，精度_1，偏移_0，单位_
// UINT8 EBC_FaultCode = 0x00;			 //换电系统故障码，见附件，精度_1，偏移_0，单位_
//  UINT16 BMS_SoftwareVersion = 0x00;  //软件版本号_RyyyBzzz（R为软件版本、B为测试版本、正式版本不带B）  ,yyy_ 0~254，精度1,255_无效，不显示; zzz_ 0~254，精度1,255_无效，不显示;,精度_1,_偏移_0,单位_
//  UINT16 BMS_HardwareVersion = 0x00;  //硬件版本号_VyyyBzzz（V为硬件版本、B为测试版本、正式版本不带B）  ,xxx_ 0~254，精度1,255_无效，不显示; zzz_ 0~254，精度1,255_无效，不显示 ,精度_1,_偏移_0,单位_
UINT16 PackCurrent = 0x00;			 //电池包总电流，充电为负值，放电为正值,,精度_0.1,_偏移_-1000,单位_A
UINT16 InstChrgCurMaxAllw = 0x00;	 //动力电池允许最大瞬时充电电流,,精度_0.1,_偏移_-1000,单位_A
UINT16 InstDischrgCurMaxAllw = 0x00; //电池允许最大瞬时放电电流,,精度_0.1,_偏移_-1000,单位_A
UINT16 PosIsolation = 0x00;			 //母线正对车体绝缘电阻,,精度_1,_偏移_0,单位_KΩ
UINT16 NegIsolation = 0x00;			 //母线负对车体绝缘电阻,,精度_1,_偏移_0,单位_KΩ
UINT16 PackInsideVolt = 0x00;		 //电池包内侧电压,,精度_0.1,_偏移_0,单位_V
UINT16 PackOutsideVolt = 0x00;		 //电池包外侧电压,,精度_0.1,_偏移_0,单位_V
UINT16 Max_Ucell = 0x00;			 //单体最高电压值,,精度_0.001,_偏移_0,单位_V
UINT16 Avg_Ucell = 0x00;			 //电体电压平均值,,精度_0.001,_偏移_0,单位_V
UINT16 Min_Ucell = 0x00;			 //单体最低电压值,,精度_0.001,_偏移_0,单位_V
UINT16 ChrgCurMaxAllw = 0x00;		 //电池最大允许充电电流,,精度_0.1,_偏移_0,单位_A
// UINT16 CurCSC_UCellN = 0x00;		 //当前CSC下的第N个电芯的电压,65535 "Invalid" 0xFFFF 无效 有效值 0~65534，范围（0~65.534）V,精度_0.001,_偏移_0,单位_V
// UINT16 CurCSC_UCellN1 = 0x00;		 //当前CSC下的第N1个电芯的电压,65535 "Invalid" 0xFFFF 无效 有效值 0~65534，范围（0~65.534）V,精度_0.001,_偏移_0,单位_V
// UINT16 CurCSC_UCellN2 = 0x00;		 //当前CSC下的第N2个电芯的电压,65535 "Invalid" 0xFFFF 无效 有效值 0~65534，范围（0~65.534）V,精度_0.001,_偏移_0,单位_V

UINT16 Pack_RateCap = 0x00;	   //电池包额定容量,有效值 0~65534，65535 "Signal Invalid" 无效,精度_1,_偏移_0,单位_Ah
UINT16 Pack_RateHVolt = 0x00;  //电池包额定电压,有效值 0~6553.4，65535 "Signal Invalid" 无效,精度_0.1,_偏移_0,单位_V
UINT16 Pack_RatePower = 0x00;  //电池包额定总能量,有效值 0~6553.4，65535 "Signal Invalid" 无效,精度_0.1,_偏移_0,单位_kWh
UINT16 PackTotCellNum = 0x00;  // PACK中单体电芯的总数目,,精度_1,_偏移_0,单位_
UINT16 PackTotTempNum = 0x00;  // PACK中电芯温度点(探针)的总数目,,精度_1,_偏移_0,单位_
UINT16 SingleChargeKwh = 0x00; //单次充电kWh 数,,精度_0.1,_偏移_0,单位_KWh
UINT16 HVVolt = 0x00;		   // BMS当前电压,,精度_1,_偏移_0,单位_
// UINT16 TMS_ReqPow = 0x00;			  // TMS需求功率,65535_无效,精度_0.1,_偏移_0,单位_Kw
UINT32 TotalChargeKwh = 0x00;		  //累计充入kWh 数,,精度_0.1,_偏移_0,单位_KWh
UINT32 TotalDischargeKwh = 0x00;	  //累计放出kWh 数,,精度_0.1,_偏移_0,单位_KWh
UINT32 TotalEneryECOChargeKwh = 0x00; //累计动能回馈充入kWh 数,,精度_0.1,_偏移_0,单位_KWh
UINT32 TotalStationChargeKwh = 0x00;  //累计换电站充入kWh 数,,精度_0.1,_偏移_0,单位_KWh
UINT32 TotalPoleChargeKwh = 0x00;	  //累计插枪充电充入kWh 数,,精度_0.1,_偏移_0,单位_KWh

/*************************************************************
 *Ebc->Ble组码变量以及Ebc应用层变量存放区
 ************************************************************/
uint8 g_c_BlePwr = 0;
uint8 g_c_AirPwr = 0;
uint8 g_c_LedPwr = 0;
uint16 bcud_E_snglChrg;		 //单次充电能量，精度0.1kwh
uint16 ebcd_Nr_swapBatt;	 //换电次数
uint16 ebcd_Nr_swapSucBatt;	 //换电成功次数
uint16 bcud_pct_soc;		 //电池SOC，精度0.1
uint16 bcud_Q_snglChrg;		 //单次充电容量，精度0.1Ah
uint16 bcud_V_battU;		 //电池电压 精度0.1V
uint32 bcud_E_accChrg;		 //累计充电能量，精度0.1kwh
uint32 bcud_E_accDischrg;	 //累计放电能量，精度0.1kwh
uint32 bcud_E_accPlugInChrg; //累计插枪充电能量，精度0.1kwh
uint32 bcud_E_accRecovry;	 //累计回收能量，精度0.1kwh
uint32 bcud_E_accSwapBatt;	 //累计换电站能量，精度0.1kwh
uint32 bcud_Q_accChrg;		 //累计充电容量，精度0.1ah
uint32 bcud_Q_accDischrg;	 //累计放电容量，精度0.1ah
uint32 bcud_Q_accPlugInChrg; //累计插枪充电容量，精度0.1ah
uint32 bcud_Q_accRecovry;	 //累计回收容量，精度0.1ah
uint32 bcud_Q_accSwapBatt;	 //累计换电站容量，精度0.1ah
uint32 vcud_M_accDrv;		 //累计行驶里程,精度0.1km
uint8 bcud_pct_bcuSoh;		 //电池Soh，精度0.4%
uint8 bcud_st_bcuComun;		 //电池通讯状态,0-通信中断,1-通信正常
uint8 bcud_st_bcuMainRelay;	 //主继电器信号,0-保留 1-断开,2-关闭 3-异常
uint8 bcud_st_bcuTmsLiquid;	 //热管理液位状态,1-液位正常,0-液位过低
uint8 bcud_st_hvWork;		 //电池高压状态，0-高压开启 1-预充，2-高压关断，3-高压上电故障
uint8 bcuv_Num_battSn[32];	 //电池SN号码
// uint8 ebcd_flg_pluginLockSig; //互锁接插件信号状态,1-触发,0-无触发
// uint8 ebcd_flg_swapAdmit;	  //允许换电判断：0-不允许,1-允许
// uint8 ebcd_Num_err1;		  //故障码1
// uint8 ebcd_Num_err2;		  //故障码2
// uint8 ebcd_st_ebcConnect;	  // Ebc通讯模式，0-无线蓝牙，1-有线连接 ，默认0
// uint8 ebcd_st_ebcLockWork;	  // Ebc解锁模式，0-单步模式，1-自动模式
// uint8 ebcd_st_errTable1;	  //故障表1，bit0-气压异常，bit1-液位异常，bit2-Flash读取异常
// uint8 ebcd_st_errTable2;	  //故障表2，bit0-互锁异常，bit1-整车CAN异常，bit2-电池CAN异常，bit3-锁钩异常，bit4-升降机异常，bit5-电池位置异常
// uint8 ebcd_st_errTable3;	  //故障表3，bit0-放电互锁异常，bit1-充电互锁异常，bit2-整车高压互锁异常
// uint8 ebcd_st_lockSensor;	  //锁紧传感器信号：bit0-bit3：传感器0-3的状态每，bit：1-触发，0-不触发
// uint8 ebcd_st_lockSucJug;	  //锁紧完成判断：0-完全未锁紧,1-完全锁紧,2-未完全锁紧"
// uint8 ebcd_st_pedstSensor;	  //底座落座传感器：bit0-bit1：传感器0-1的状态,每bit：1-触发，0-无触发
// uint8 ebcd_st_pedstSucJug;	  //电池底座到位判断：0-完全未到位,1-完全到位,2-未完全到位
// uint8 ebcd_st_pluginLockSig;  //互锁接插件信号具体状态,1-触发,0-无触发
// uint8 ebcd_st_unlockSensor;	  //解锁传感器信号：bit0-bit3：传感器0-3的状态每，bit：1-触发，0-不触发
// uint8 ebcd_st_unlockSucJug;	  //解锁完成判断：0-完全未解锁，1-完全解锁，2-未完全解锁
// uint8 ebcd_P_airSensor;				   //压力传感器气压值：单位Mpa，精度0.01Mpa
uint8 vcud_P_airSensorBack;			   //后桥气压值，单位Mpa，精度0.01Mpa
uint8 vcud_P_airSensorForward;		   //前桥气压值，单位Mpa，精度0.01Mpa
uint8 vcud_st_carStart;				   //整车启动状态，0001-车辆启动状态，0010-熄火，0011-其他状态，1111-无效
uint8 vcud_st_footbrake;			   //脚刹信号，0-无效，1-有效
uint8 vcud_st_gear;					   //档位信号，FF-倒挡（R），0-空挡（N），X-前进档（DX）X取1-12
uint8 vcud_st_handbrake;			   //手刹信号，0-无效，1-有效
uint8 vcud_st_keyOn;				   //钥匙信号，1-上电，0-下电
uint8 vcud_st_Steer;				   //方向盘信号，bit0-左侧转向灯，bit1-右侧转向灯，每bit 0-OFF，1-ON
uint8 vcud_st_vcuComun;				   // vcu通讯状态，0-通信中断,1-通信正常
uint8 vcuv_Num_vin[17];				   // VIN码
uint8 bled_flg_lockCmd = 0;			   //锁钩电磁阀锁紧命令，1-有效，0-无效
uint8 bled_flg_unlockCmd = 0;		   //锁钩电磁阀解锁命令，1-有效，0-无效
uint8 bled_flg_lockCmdForce = 0;	   //锁钩电磁阀锁紧强制命令，1-有效，0-无效
uint8 bled_flg_unlockCmdForce = 0;	   //锁钩电磁阀解锁强制命令，1-有效，0-无效
uint8 bled_flg_topAscendCmd = 0;	   //顶板上升命令，1-有效，0-无效
uint8 bled_flg_topDescendCmd = 0;	   //顶板下降命令，1-有效，0-无效
uint8 bled_flg_topAscendCmdForce = 0;  //顶板强制上升命令，1-有效，0-无效
uint8 bled_flg_topDescendCmdForce = 0; //顶板强制下降命令，1-有效，0-无效
uint8 bled_flg_openDustReCmd = 0;	   //除尘打开指令，1-有效，0-无效
uint8 bled_flg_closeDustReCmd = 0;	   //除尘关闭指令，1-有效，0-无效
uint8 bled_flg_Heart = 0;			   //心跳维持指令
uint8 bled_flg_getEbcData = 0;		   //获取ebc数据指令
uint8 bled_flg_getVcuData = 0;		   //获取vcu数据指令
uint8 bled_flg_getBmsData = 0;		   //获取bms数据指令
uint8 bled_flg_handShake = 0;		   //握手指令
uint8 bled_flg_swapBattDone = 0;	   //换电完成指令
uint8 bled_flg_backToDrv = 0;		   //回到行驶状态指令
uint8 bled_flg_autoLock = 0;		   //自动锁定指令
uint8 bled_flg_autoUnlock = 0;		   //自动解锁指令
uint8 bled_flg_toSwapMod = 0;		   //换到换电状态
uint8 bled_flg_safeStopCmd = 0;		   //急停指令
uint32 bled_Nr_softVer = 0;			   // BLE软件版本
uint8 bled_flg_role = 0;			   // ble的主从模式 01-主，02-从
uint8 bled_flg_bleConn = 0;			   // ble蓝牙连接状态
uint8 bled_flg_bleDisconn = 0;		   // ble蓝牙断开状态
/*
ebc应用层变量
*/
uint8 ebcd_flg_Can2SendEnbale = 0;
uint8 ebcd_st_toBleAns = 0;
uint8 ebcd_P_airSensor = 0;
uint8 ebcd_T_plugin[4] = {0};		 //四个接插件温度
uint8 ebcd_flg_forbidHVOn = 0;		 //禁止高压上电
uint8 ebcb_flg_reqHvOff = 0;		 //请求高压下电
uint8 ebcd_flg_LockErr = 0;			 //锁紧机构故障状态,0-异常，1-正常
uint8 ebcd_flg_dChrgLockErr = 0;	 //放电互锁故障状态
uint8 ebcd_flg_chrgLockErr = 0;		 //充电互锁故障状态
uint8 ebcd_flg_dChgCnctOverTemp = 0; //放电连接器过温标志
uint8 ebcd_st_ebcWork = 0;			 // Ebc当前状态 0-行车，1-通讯，2-换电
uint8 ebcd_Nr_errMax;				 //故障等级：当前故障最大等级
uint8 ebcd_Num_faultCode;			 // ebc故障码，未定义
uint8 ebcd_st_chargingMod;			 //充电模式，1-车载充电，2-换电站充电
uint8 ebdc_st_lockUpState = 0;		 //锁止机构状态，0-故障，1-解锁成功，2-上锁成功
uint8 ebdc_st_ConnecState = 0;		 //换电连接器状态（充电回路&放电回路同时闭合代表闭合，有一路断开则为断开），0_未连接 1_连接
uint8 ebcd_flg_pluginLockSig;		 //互锁接插件信号状态,1-触发,0-无触发
uint8 ebcd_flg_swapAdmit;			 //允许换电判断：0-不允许,1-允许
uint8 ebcd_Num_err1;				 //故障码1
uint8 ebcd_Num_err2;				 //故障码2
uint8 ebcd_st_ebcConnect;			 // Ebc通讯模式，0-无线蓝牙，1-有线连接 ，默认0
uint8 ebcd_st_ebcLockWork;			 // Ebc解锁模式，0-单步模式，1-自动模式
uint8 ebcd_st_errTable1;			 //故障表1，bit0-气压异常，bit1-液位异常，bit2-Flash读取异常
uint8 ebcd_st_errTable2;			 //故障表2，bit0-互锁异常，bit1-整车CAN异常，bit2-电池CAN异常，bit3-锁钩异常，bit4-升降机异常，bit5-电池位置异常
uint8 ebcd_st_errTable3;			 //故障表3，bit0-放电互锁异常，bit1-充电互锁异常，bit2-整车高压互锁异常
uint8 ebcd_st_lockSensor;			 //锁紧传感器信号：bit0-bit3：传感器0-3的状态每，bit：1-触发，0-不触发
uint8 ebcd_st_lockSucJug;			 //锁紧完成判断：0-完全未锁紧,1-完全锁紧,2-未完全锁紧"
uint8 ebcd_st_pedstSensor;			 //底座落座传感器：bit0-bit1：传感器0-1的状态,每bit：1-触发，0-无触发
uint8 ebcd_st_pedstSucJug;			 //电池底座到位判断：0-完全未到位,1-完全到位,2-未完全到位
uint8 ebcd_st_pluginLockSig;		 //互锁接插件信号具体状态,1-触发,0-无触发
uint8 ebcd_st_unlockSensor;			 //解锁传感器信号：bit0-bit3：传感器0-3的状态每，bit：1-触发，0-不触发
uint8 ebcd_st_unlockSucJug;			 //解锁完成判断：0-完全未解锁，1-完全解锁，2-未完全解锁

uint16 Test_LockPressure = 0;//锁紧力测试

#define EEPDATA_START_SEC_VAR
#include "MemMap.h"
uint32 Control_Times = 0;
uint8 ebcd_flg_ebcEolDone = 0;		 // EBC下线检测状态完成标志位
#define EEPDATA_STOP_SEC_VAR
#include "MemMap.h"
#define APPLAYERVER_START_SEC_VAR
#include "MemMap.h"
const uint8 T_table[240] = {239, 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224,
							223, 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, 203,
							202, 201, 200, 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182,
							181, 180, 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161,
							160, 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140,
							139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119,
							118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97,
							96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69,
							68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41,
							40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13,
							12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
const uint32 R_table[240] = {125, 127, 129, 131, 133, 136, 138, 141, 143, 145, 148, 151, 153, 156, 159, 162, 165,
							 168, 171, 174, 177, 180, 183, 187, 190, 194, 198, 201, 205, 209, 213, 217, 221, 226, 230, 234, 239, 244, 249,
							 254, 259, 264, 269, 274, 280, 286, 292, 298, 304, 310, 316, 323, 330, 337, 344, 351, 359, 366, 374, 382, 391,
							 399, 408, 417, 426, 436, 445, 455, 466, 476, 487, 498, 509, 521, 533, 546, 558, 571, 585, 599, 613, 627, 642,
							 658, 674, 690, 707, 724, 742, 760, 779, 799, 819, 839, 861, 883, 905, 928, 952, 977, 1002, 1029, 1056, 1083,
							 1112, 1142, 1172, 1204, 1236, 1270, 1305, 1340, 1377, 1415, 1455, 1495, 1537, 1581, 1626, 1672, 1720, 1769,
							 1821, 1874, 1928, 1985, 2044, 2104, 2167, 2232, 2299, 2369, 2441, 2515, 2592, 2672, 2755, 2841, 2931, 3023,
							 3119, 3218, 3321, 3428, 3539, 3654, 3773, 3898, 4026, 4160, 4299, 4443, 4593, 4749, 4911, 5080, 5255, 5438,
							 5627, 5825, 6030, 6244, 6466, 6698, 6940, 7191, 7454, 7727, 8012, 8309, 8619, 8942, 9280, 9632, 10000, 10383,
							 10784, 11203, 11641, 12098, 12577, 13077, 13600, 14147, 14720, 15319, 15947, 16604, 17293, 18015, 18771,
							 19564, 20395, 21268, 22183, 23144, 24152, 25211, 26324, 27493, 28722, 30014, 31373, 32802, 34307, 35891,
							 37558, 39315, 41166, 43117, 45174, 47343, 49633, 52049, 54599, 57293, 60140, 63148, 66329, 69693, 73252,
							 77019, 81008, 85233, 89710, 94455, 99488, 104827, 110493, 116508, 122898, 129687, 136905, 144580,
							 152746, 161438, 170694, 180554, 191063, 202269};

const uint8 DataPackCounter[21] = {1, 1, 7, 5, 16, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
const uint8 DataPackBegin[21] = {0, 0x11, 0x21, 0x31, 0x40, 0x51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
#define APPLAYERVER_STOP_SEC_VAR
#include "MemMap.h"
/*************************************************************
 *测试变量存放区
 ************************************************************/
#ifdef _APP_TEST_CODE
uint32 PressureValue = 0;
uint16 Distence1 = 0;
uint16 Distence2 = 0;
uint8 Switch1 = 0;
uint8 Switch2 = 0;
uint8 ControlState = 0;
uint32 PressureValueBuffer = 0;
uint32 VehCo_fInputUIA[2];
uint16 VehCo_rInputUWA[2];
uint16 VehCo_uADChanUWA[_ATD_NUM_CHAN];
uint8 VehCo_bDINChanUBA[_DIN_NUM_CHAN];
float32 VehCo_uBattF;
uint16 VehCo_uAccPedUW;
#define EEPDATA_START_SEC_VAR
#include "MemMap.h"
uint32 VehCo_ctEEPTestUB = 0;
uint32 VehCo_ctEEPTestUI = 0; //在定义时给EEPROM里的变量赋初值
uint32 Control_Times = 0;
#define EEPDATA_STOP_SEC_VAR
#include "MemMap.h"
#endif
#ifdef _APP_TEST_MOTOR_CODE
uint8 MotorControlCmd = 0;	   //电机自动控制模式，0-不控制，1-控制锁紧，2-控制解锁
uint8 MotorDebugCmd = 0;	   //电机调试模式。0-不控制，1-持续锁紧，2-持续解锁
uint8 MotorControlEnable = 0;  //电机控制使能，每bit代表一个电机从低位开始， 0-不控制，1-控制
uint8 MotorControlLockNum = 0; //调试参数
uint8 MotorControlunLockNum = 0;
uint8 MotorLifeTestCmd = 0;
#define EEPDATA_START_SEC_VAR
#include "MemMap.h"
uint16 RunFailedDelay = 30000; //电机最大运动时间，超时则取消控制
uint16 LockDelay = 1000;	   //电机传感器到位后，延时锁紧时间
uint16 LifeTestCounter = 0;
#define EEPDATA_STOP_SEC_VAR
#include "MemMap.h"
#endif
