#ifndef BMS_EEPROM_H_
#define BMS_EEPROM_H_

#ifdef   __cplusplus
extern   "C" {
#endif

#include "kit_macro.h"
#include "bsp_eeprom.h"

//************电池类型*******************//
typedef enum
{
	kCellType_Start,
	kCellType_kLiFePO4 = kCellType_Start,  //磷酸铁锂
	kCellType_LiNiCoMnO2,                  //三元材料
	kCellType_kLi2TiO3,                    //钛酸锂
    kCellType_LeadAcid,                    //铅酸
	kCellType_Capacity,                    //超级电容
	kCellType_End, 
}CellType;


/*****************************配置枚举*****************************/

typedef enum
{
    kEEpromStartIdx,
	kEEData_UpdateFlag = kEEpromStartIdx,	//5升级模式 0-延时判断模式 1-不升级 2-立即升级模式
	kEEData_UpdateTimeLowIdx,					    //上次跟新时间
	kEEData_UpdateTimeHighIdx,
							
	kEEData_DevAddr_SlaverNum,				//地址编号+BCU/BMU个数
	kEEData_TempType_BatteryType,						//电池类型+温感类型
	kEEData_CellNum,						    //电池总数
	kEEData_TempNum,						    //温感总数
	kEEData_CoolOn_OffTemp,						//风扇开启温度+风扇关闭温度
    kEEData_VoltFaultTemp2_Temp1,				//电压故障温度点2_1
    
    kEEData_RatedChgCur,                 		//额定充电电流(0.1A/bit,0)
	kEEData_RatedDisCur,                 	    //额定放电电流(0.1A/bit,0)
	kEEData_GridConnVolt,					//允许并机压差
	kEEData_GridConnCur,				    //允许并机电流
	kEEData_PwrOffDly_MinOnlineCluster,		//高压下电延时+最小在线簇数
	kEEData_TripPulse_DataSavePeriod,       //脱口脉冲时间(0.1s/bit) + 数据存储周期
	kEEData_Inter485Parity_Baudrate,		//内部485校验位+内部485波特率
	kEEData_Exter485_2Parity_Baudrate,		//外部4852校验位+外部4852波特率
	kEEData_Exter485_3Parity_Baudrate,		//外部4853校验位+外部4853波特率    
	kEEData_InterCanProtocol_Baudrate,		//内部can协议+内部can波特率
	kEEData_ExterCanProtocol_Baudrate,		//外部can协议+外部can波特率
//20	
    kEEData_InterRS485_SlaveID_Protocol,		//内部RS485设备地址+内部RS485通讯协议
	kEEData_ExterRS485_1SlaveID_Protocol,	//外部RS4852设备地址+外部RS4852通讯协议
	kEEData_ExterRS485_2SlaveID_Protocol,	//外部RS4853设备地址+外部RS4853通讯协议
	kEEData_EthSlaveID_EthProtocal,			//以太网通讯地址 + 以太网通讯协议	
	kEEData_Shunt1CaliGain,					//分流器1矫正增益
	kEEData_Shunt2CaliGain,					//分流器2矫正增益
	kEEData_shunt2_Shunt1CaliOffset,		//分流器2_1矫正偏置	
    kEEData_Hall1CalFactor,						//电流1校准系数
	kEEData_Hall2CalFactor,						//电流2校准系数
	kEEData_Volt1CalFactor,						//电压1校准系数
//30	
	kEEData_Volt2CalFactor,						//电压2校准系数	
	kEEData_Hall2_Hall1CaliOffset,				//电流2_1矫正偏置	
    kEEData_HallSwingVolt,						//霍尔摆幅电压
	kEEData_ChgCurDir_ShuntRatedVolt,                //充电电流方向+分流器额定电压	
	kEEData_CurSensor2_1Range,    				    //电流传感器2_1量程
	kEEData_CurSensor2_1Type,						//电流传感器2_1类型
	kEEData_CurSensor2_1Dir,						//电流传感器2_1方向
	kEEData_ZeroFilter2_1Filter,					//电流传感器2_1滤波
	kEEData_CurSensor2_1Offset,					//电流传感器2_1偏移(0.1A/bit 偏移 -12)
	kEEData_ChgCurThreshold_KeepTime,               //状态转换电流阈值+状态转换保持时间
  	//继电器配置
  	kRelayCfgTypeStartIdx,  				
    kEEData_Relay2_1Type = kRelayCfgTypeStartIdx,	//继电器2_1类型
    kEEData_Relay4_3Type,  							//继电器4_3类型
    kEEData_Relay6_5Type,  							//继电器6_5类型
	kEEData_Relay8_7Type,							//继电器8_7类型
	
	kEEData_DisSelfFaultLow,
	kEEData_DisSelfFaultHigh,
	kEEData_ChgSelfFaultLow,
	kEEData_ChgSelfFaultHigh,

	kEEData_PreChgTimeout_Count,    //超时时间(s) + 预充次数
  	kEEData_PreChgVoltType_Rate,    //预充电压类型 + 预充电压百分比
	kEEData_HV2_HV1VoltRate,		//HV2电压比例+HV1电压比例
    kEEData_HeatOn_OffTemp,			//加热开启温度+加热关闭温度	

	kEEData_RatedCapacity,                 		//额定容量
	kEEData_ActualCapacity,                 		//实际容量
    kEEData_RatedTotalVolt,                 //额定总压(0.1V/bit,0)
    kEEData_ReqCghVolt,                 	//请求充电电压(0.1V/bit,0)
	kEEData_FullDisVolt,				//SOC过放校准电压值-----168 
	kEEData_FullChgVolt,				//SOC过充校准电压值
	
	kDisAlarmParamStart,
	//放电总压低38
	kEEData_DisLTVoltHTAlarm1 = kDisAlarmParamStart,
	kEEData_DisLTVoltHTAlarm1Dly,
	kEEData_DisLTVoltHTAlarm1Rel,        
	kEEData_DisLTVoltHTAlarm1RelDly,
	kEEData_DisLTVoltHTAlarm1Cur_Handle,
	kEEData_DisLTVoltHTAlarm2,
	kEEData_DisLTVoltHTAlarm2Dly,
	kEEData_DisLTVoltHTAlarm2Rel,        
	kEEData_DisLTVoltHTAlarm2RelDly,
	kEEData_DisLTVoltHTAlarm2Cur_Handle,
	kEEData_DisLTVoltHTAlarm3,
	kEEData_DisLTVoltHTAlarm3Dly,
	kEEData_DisLTVoltHTAlarm3Rel,        
	kEEData_DisLTVoltHTAlarm3RelDly,
	kEEData_DisLTVoltHTAlarm3Cur_Handle,
	//放电总压低 68 低温
	kEEData_DisLTVoltLTAlarm1,
	kEEData_DisLTVoltLTAlarm1Dly,
	kEEData_DisLTVoltLTAlarm1Rel,        
	kEEData_DisLTVoltLTAlarm1RelDly,
	kEEData_DisLTVoltLTAlarm1Cur_Handle,
	kEEData_DisLTVoltLTAlarm2,
	kEEData_DisLTVoltLTAlarm2Dly,
	kEEData_DisLTVoltLTAlarm2Rel,        
	kEEData_DisLTVoltLTAlarm2RelDly,
	kEEData_DisLTVoltLTAlarm2Cur_Handle,
	kEEData_DisLTVoltLTAlarm3,
	kEEData_DisLTVoltLTAlarm3Dly,
	kEEData_DisLTVoltLTAlarm3Rel,        
	kEEData_DisLTVoltLTAlarm3RelDly,
	kEEData_DisLTVoltLTAlarm3Cur_Handle,
	//放电单体低53
	kEEData_DisLCVoltHTAlarm1,
	kEEData_DisLCVoltHTAlarm1Dly,
	kEEData_DisLCVoltHTAlarm1Rel,        
	kEEData_DisLCVoltHTAlarm1RelDly,
	kEEData_DisLCVoltHTAlarm1Cur_Handle,
	kEEData_DisLCVoltHTAlarm2,
	kEEData_DisLCVoltHTAlarm2Dly,
	kEEData_DisLCVoltHTAlarm2Rel,        
	kEEData_DisLCVoltHTAlarm2RelDly,
	kEEData_DisLCVoltHTAlarm2Cur_Handle,
	kEEData_DisLCVoltHTAlarm3,
	kEEData_DisLCVoltHTAlarm3Dly,
	kEEData_DisLCVoltHTAlarm3Rel,        
	kEEData_DisLCVoltHTAlarm3RelDly,
	kEEData_DisLCVoltHTAlarm3Cur_Handle,
	//放电单体低 83 低温
	kEEData_DisLCVoltLTAlarm1,
	kEEData_DisLCVoltLTAlarm1Dly,
	kEEData_DisLCVoltLTAlarm1Rel,        
	kEEData_DisLCVoltLTAlarm1RelDly,
	kEEData_DisLCVoltLTAlarm1Cur_Handle,
	kEEData_DisLCVoltLTAlarm2,
	kEEData_DisLCVoltLTAlarm2Dly,
	kEEData_DisLCVoltLTAlarm2Rel,        
	kEEData_DisLCVoltLTAlarm2RelDly,
	kEEData_DisLCVoltLTAlarm2Cur_Handle,
	kEEData_DisLCVoltLTAlarm3,
	kEEData_DisLCVoltLTAlarm3Dly,
	kEEData_DisLCVoltLTAlarm3Rel,        
	kEEData_DisLCVoltLTAlarm3RelDly,
	kEEData_DisLCVoltLTAlarm3Cur_Handle,
	//放电单体高
	kEEData_DisHCVoltAlarm1,
	kEEData_DisHCVoltAlarm1Dly,
	kEEData_DisHCVoltAlarm1Rel,        
	kEEData_DisHCVoltAlarm1RelDly,
	kEEData_DisHCVoltAlarm1Cur_Handle,
	kEEData_DisHCVoltAlarm2,
	kEEData_DisHCVoltAlarm2Dly,
	kEEData_DisHCVoltAlarm2Rel,        
	kEEData_DisHCVoltAlarm2RelDly,
	kEEData_DisHCVoltAlarm2Cur_Handle,
	kEEData_DisHCVoltAlarm3,
	kEEData_DisHCVoltAlarm3Dly,
	kEEData_DisHCVoltAlarm3Rel,        
	kEEData_DisHCVoltAlarm3RelDly,
	kEEData_DisHCVoltAlarm3Cur_Handle,
	//放电过流98
	kEEData_DisOverCurAlarm1,
	kEEData_DisOverCurAlarm1Dly,
	kEEData_DisOverCurAlarm1Rel,        
	kEEData_DisOverCurAlarm1RelDly,
	kEEData_DisOverCurAlarm1Cur_Handle,
	kEEData_DisOverCurAlarm2,
	kEEData_DisOverCurAlarm2Dly,
	kEEData_DisOverCurAlarm2Rel,        
	kEEData_DisOverCurAlarm2RelDly,
	kEEData_DisOverCurAlarm2Cur_Handle,
	kEEData_DisOverCurAlarm3,
	kEEData_DisOverCurAlarm3Dly,
	kEEData_DisOverCurAlarm3Rel,        
	kEEData_DisOverCurAlarm3RelDly,
	kEEData_DisOverCurAlarm3Cur_Handle,
	//放电高温113
	kEEData_DisHighTempAlarm1,
	kEEData_DisHighTempAlarm1Dly,
	kEEData_DisHighTempAlarm1Rel,        
	kEEData_DisHighTempAlarm1RelDly,
	kEEData_DisHighTempAlarm1Cur_Handle,
	kEEData_DisHighTempAlarm2,
	kEEData_DisHighTempAlarm2Dly,
	kEEData_DisHighTempAlarm2Rel,        
	kEEData_DisHighTempAlarm2RelDly,
	kEEData_DisHighTempAlarm2Cur_Handle,
	kEEData_DisHighTempAlarm3,
	kEEData_DisHighTempAlarm3Dly,
	kEEData_DisHighTempAlarm3Rel,        
	kEEData_DisHighTempAlarm3RelDly,
	kEEData_DisHighTempAlarm3Cur_Handle,
	//放电低温128
	kEEData_DisLowTempAlarm1,
	kEEData_DisLowTempAlarm1Dly,
	kEEData_DisLowTempAlarm1Rel,        
	kEEData_DisLowTempAlarm1RelDly,
	kEEData_DisLowTempAlarm1Cur_Handle,
	kEEData_DisLowTempAlarm2,
	kEEData_DisLowTempAlarm2Dly,
	kEEData_DisLowTempAlarm2Rel,        
	kEEData_DisLowTempAlarm2RelDly,
	kEEData_DisLowTempAlarm2Cur_Handle,
	kEEData_DisLowTempAlarm3,
	kEEData_DisLowTempAlarm3Dly,
	kEEData_DisLowTempAlarm3Rel,        
	kEEData_DisLowTempAlarm3RelDly,
	kEEData_DisLowTempAlarm3Cur_Handle,
	//放电压差143
	kEEData_DisHVDiffAlarm1,
	kEEData_DisHVDiffAlarm1Dly,
	kEEData_DisHVDiffAlarm1Rel,        
	kEEData_DisHVDiffAlarm1RelDly,
	kEEData_DisHVDiffAlarm1Cur_Handle,
	kEEData_DisHVDiffAlarm2,
	kEEData_DisHVDiffAlarm2Dly,
	kEEData_DisHVDiffAlarm2Rel,        
	kEEData_DisHVDiffAlarm2RelDly,
	kEEData_DisHVDiffAlarm2Cur_Handle,
	kEEData_DisHVDiffAlarm3,
	kEEData_DisHVDiffAlarm3Dly,
	kEEData_DisHVDiffAlarm3Rel,        
	kEEData_DisHVDiffAlarm3RelDly,
	kEEData_DisHVDiffAlarm3Cur_Handle,
	//放电温差158
	kEEData_DisHTDiffAlarm1,
	kEEData_DisHTDiffAlarm1Dly,
	kEEData_DisHTDiffAlarm1Rel,        
	kEEData_DisHTDiffAlarm1RelDly,
	kEEData_DisHTDiffAlarm1Cur_Handle,
	kEEData_DisHTDiffAlarm2,
	kEEData_DisHTDiffAlarm2Dly,
	kEEData_DisHTDiffAlarm2Rel,        
	kEEData_DisHTDiffAlarm2RelDly,
	kEEData_DisHTDiffAlarm2Cur_Handle,
	kEEData_DisHTDiffAlarm3,
	kEEData_DisHTDiffAlarm3Dly,
	kEEData_DisHTDiffAlarm3Rel,        
	kEEData_DisHTDiffAlarm3RelDly,
	kEEData_DisHTDiffAlarm3Cur_Handle,
	//SOC
	kEEData_DisLowSocAlarm1,
	kEEData_DisLowSocAlarm1Dly,
	kEEData_DisLowSocAlarm1Rel,        
	kEEData_DisLowSocAlarm1RelDly,
	kEEData_DisLowSocAlarm1Cur_Handle,
	kEEData_DisLowSocAlarm2,
	kEEData_DisLowSocAlarm2Dly,
	kEEData_DisLowSocAlarm2Rel,        
	kEEData_DisLowSocAlarm2RelDly,
	kEEData_DisLowSocAlarm2Cur_Handle,
	kEEData_DisLowSocAlarm3,
	kEEData_DisLowSocAlarm3Dly,
	kEEData_DisLowSocAlarm3Rel,        
	kEEData_DisLowSocAlarm3RelDly,
	kEEData_DisLowSocAlarm3Cur_Handle,

	//充电总压高257
	kEEData_ChgHTVoltHTAlarm1,
	kEEData_ChgHTVoltHTAlarm1Dly,
	kEEData_ChgHTVoltHTAlarm1Rel,        
	kEEData_ChgHTVoltHTAlarm1RelDly,
	kEEData_ChgHTVoltHTAlarm1Cur_Handle,
	kEEData_ChgHTVoltHTAlarm2,
	kEEData_ChgHTVoltHTAlarm2Dly,
	kEEData_ChgHTVoltHTAlarm2Rel,        
	kEEData_ChgHTVoltHTAlarm2RelDly,
	kEEData_ChgHTVoltHTAlarm2Cur_Handle,
	kEEData_ChgHTVoltHTAlarm3,
	kEEData_ChgHTVoltHTAlarm3Dly,
	kEEData_ChgHTVoltHTAlarm3Rel,        
	kEEData_ChgHTVoltHTAlarm3RelDly,
	kEEData_ChgHTVoltHTAlarm3Cur_Handle,
	//充电总压高(低温)257
	kEEData_ChgHTVoltLTAlarm1,
	kEEData_ChgHTVoltLTAlarm1Dly,
	kEEData_ChgHTVoltLTAlarm1Rel,        
	kEEData_ChgHTVoltLTAlarm1RelDly,
	kEEData_ChgHTVoltLTAlarm1Cur_Handle,
	kEEData_ChgHTVoltLTAlarm2,
	kEEData_ChgHTVoltLTAlarm2Dly,
	kEEData_ChgHTVoltLTAlarm2Rel,        
	kEEData_ChgHTVoltLTAlarm2RelDly,
	kEEData_ChgHTVoltLTAlarm2Cur_Handle,
	kEEData_ChgHTVoltLTAlarm3,
	kEEData_ChgHTVoltLTAlarm3Dly,
	kEEData_ChgHTVoltLTAlarm3Rel,        
	kEEData_ChgHTVoltLTAlarm3RelDly,
	kEEData_ChgHTVoltLTAlarm3Cur_Handle,	
	//充电单体高272
	kEEData_ChgHCVoltHTAlarm1,
	kEEData_ChgHCVoltHTAlarm1Dly,
	kEEData_ChgHCVoltHTAlarm1Rel,        
	kEEData_ChgHCVoltHTAlarm1RelDly,
	kEEData_ChgHCVoltHTAlarm1Cur_Handle,
	kEEData_ChgHCVoltHTAlarm2,
	kEEData_ChgHCVoltHTAlarm2Dly,
	kEEData_ChgHCVoltHTAlarm2Rel,        
	kEEData_ChgHCVoltHTAlarm2RelDly,
	kEEData_ChgHCVoltHTAlarm2Cur_Handle,
	kEEData_ChgHCVoltHTAlarm3,
	kEEData_ChgHCVoltHTAlarm3Dly,
	kEEData_ChgHCVoltHTAlarm3Rel,        
	kEEData_ChgHCVoltHTAlarm3RelDly,
	kEEData_ChgHCVoltHTAlarm3Cur_Handle,
	//充电单体高(低温)272
	kEEData_ChgHCVoltLTAlarm1,
	kEEData_ChgHCVoltLTAlarm1Dly,
	kEEData_ChgHCVoltLTAlarm1Rel,        
	kEEData_ChgHCVoltLTAlarm1RelDly,
	kEEData_ChgHCVoltLTAlarm1Cur_Handle,
	kEEData_ChgHCVoltLTAlarm2,
	kEEData_ChgHCVoltLTAlarm2Dly,
	kEEData_ChgHCVoltLTAlarm2Rel,        
	kEEData_ChgHCVoltLTAlarm2RelDly,
	kEEData_ChgHCVoltLTAlarm2Cur_Handle,
	kEEData_ChgHCVoltLTAlarm3,
	kEEData_ChgHCVoltLTAlarm3Dly,
	kEEData_ChgHCVoltLTAlarm3Rel,        
	kEEData_ChgHCVoltLTAlarm3RelDly,
	kEEData_ChgHCVoltLTAlarm3Cur_Handle,
	//充电单体低
	kEEData_ChgLCVoltAlarm1,
	kEEData_ChgLCVoltAlarm1Dly,
	kEEData_ChgLCVoltAlarm1Rel,        
	kEEData_ChgLCVoltAlarm1RelDly,
	kEEData_ChgLCVoltAlarm1Cur_Handle,
	kEEData_ChgLCVoltAlarm2,
	kEEData_ChgLCVoltAlarm2Dly,
	kEEData_ChgLCVoltAlarm2Rel,        
	kEEData_ChgLCVoltAlarm2RelDly,
	kEEData_ChgLCVoltAlarm2Cur_Handle,
	kEEData_ChgLCVoltAlarm3,
	kEEData_ChgLCVoltAlarm3Dly,
	kEEData_ChgLCVoltAlarm3Rel,        
	kEEData_ChgLCVoltAlarm3RelDly,
	kEEData_ChgLCVoltAlarm3Cur_Handle,
	//充电过流287
	kEEData_ChgOverCurAlarm1,
	kEEData_ChgOverCurAlarm1Dly,
	kEEData_ChgOverCurAlarm1Rel,        
	kEEData_ChgOverCurAlarm1RelDly,
	kEEData_ChgOverCurAlarm1Cur_Handle,
	kEEData_ChgOverCurAlarm2,
	kEEData_ChgOverCurAlarm2Dly,
	kEEData_ChgOverCurAlarm2Rel,        
	kEEData_ChgOverCurAlarm2RelDly,
	kEEData_ChgOverCurAlarm2Cur_Handle,
	kEEData_ChgOverCurAlarm3,
	kEEData_ChgOverCurAlarm3Dly,
	kEEData_ChgOverCurAlarm3Rel,        
	kEEData_ChgOverCurAlarm3RelDly,
	kEEData_ChgOverCurAlarm3Cur_Handle,
	//温度过高317
	kEEData_ChgHighTempAlarm1,
	kEEData_ChgHighTempAlarm1Dly,
	kEEData_ChgHighTempAlarm1Rel,        
	kEEData_ChgHighTempAlarm1RelDly,
	kEEData_ChgHighTempAlarm1Cur_Handle,
	kEEData_ChgHighTempAlarm2,
	kEEData_ChgHighTempAlarm2Dly,
	kEEData_ChgHighTempAlarm2Rel,        
	kEEData_ChgHighTempAlarm2RelDly,
	kEEData_ChgHighTempAlarm2Cur_Handle,
	kEEData_ChgHighTempAlarm3,
	kEEData_ChgHighTempAlarm3Dly,
	kEEData_ChgHighTempAlarm3Rel,        
	kEEData_ChgHighTempAlarm3RelDly,
	kEEData_ChgHighTempAlarm3Cur_Handle,
	//充电低温332
	kEEData_ChgLowTempAlarm1,
	kEEData_ChgLowTempAlarm1Dly,
	kEEData_ChgLowTempAlarm1Rel,        
	kEEData_ChgLowTempAlarm1RelDly,
	kEEData_ChgLowTempAlarm1Cur_Handle,
	kEEData_ChgLowTempAlarm2,
	kEEData_ChgLowTempAlarm2Dly,
	kEEData_ChgLowTempAlarm2Rel,        
	kEEData_ChgLowTempAlarm2RelDly,
	kEEData_ChgLowTempAlarm2Cur_Handle,
	kEEData_ChgLowTempAlarm3,
	kEEData_ChgLowTempAlarm3Dly,
	kEEData_ChgLowTempAlarm3Rel,        
	kEEData_ChgLowTempAlarm3RelDly,
	kEEData_ChgLowTempAlarm3Cur_Handle,
	//充电压差347
	kEEData_ChgHVDiffAlarm1,
	kEEData_ChgHVDiffAlarm1Dly,
	kEEData_ChgHVDiffAlarm1Rel,        
	kEEData_ChgHVDiffAlarm1RelDly,
	kEEData_ChgHVDiffAlarm1Cur_Handle,
	kEEData_ChgHVDiffAlarm2,
	kEEData_ChgHVDiffAlarm2Dly,
	kEEData_ChgHVDiffAlarm2Rel,        
	kEEData_ChgHVDiffAlarm2RelDly,
	kEEData_ChgHVDiffAlarm2Cur_Handle,
	kEEData_ChgHVDiffAlarm3,
	kEEData_ChgHVDiffAlarm3Dly,
	kEEData_ChgHVDiffAlarm3Rel,        
	kEEData_ChgHVDiffAlarm3RelDly,
	kEEData_ChgHVDiffAlarm3Cur_Handle,
	//充电温差362
	kEEData_ChgHTDiffAlarm1,
	kEEData_ChgHTDiffAlarm1Dly,
	kEEData_ChgHTDiffAlarm1Rel,        
	kEEData_ChgHTDiffAlarm1RelDly,
	kEEData_ChgHTDiffAlarm1Cur_Handle,
	kEEData_ChgHTDiffAlarm2,
	kEEData_ChgHTDiffAlarm2Dly,
	kEEData_ChgHTDiffAlarm2Rel,        
	kEEData_ChgHTDiffAlarm2RelDly,
	kEEData_ChgHTDiffAlarm2Cur_Handle,
	kEEData_ChgHTDiffAlarm3,
	kEEData_ChgHTDiffAlarm3Dly,
	kEEData_ChgHTDiffAlarm3Rel,        
	kEEData_ChgHTDiffAlarm3RelDly,
	kEEData_ChgHTDiffAlarm3Cur_Handle,
	//绝缘低377
	kEEData_LInsuAlarm1,
	kEEData_LInsuAlarm1Dly,
	kEEData_LInsuAlarm1Rel,        
	kEEData_LInsuAlarm1RelDly,
	kEEData_LInsuAlarm1Cur_Handle,
	kEEData_LInsuAlarm2,
	kEEData_LInsuAlarm2Dly,
	kEEData_LInsuAlarm2Rel,        
	kEEData_LInsuAlarm2RelDly,
	kEEData_LInsuAlarm2Cur_Handle,
	kEEData_LInsuAlarm3,
	kEEData_LInsuAlarm3Dly,
	kEEData_LInsuAlarm3Rel,        
	kEEData_LInsuAlarm3RelDly,
	kEEData_LInsuAlarm3Cur_Handle,
	//T1高温
    kEEData_HT1TempAlarm1Alarm1,
	kEEData_HT1TempAlarm1Alarm1Dly,
    kEEData_HT1TempAlarm1Alarm1Rel,
	kEEData_HT1TempAlarm1Alarm1RelDly,
	kEEData_HT1TempAlarm1Alarm1Cur_Handle,        //50
	//T1低温
    kEEData_LT1TempAlarm1,
	kEEData_LT1TempAlarm1Dly,
    kEEData_LT1TempAlarm1Rel,
	kEEData_LT1TempAlarm1RelDly,
	kEEData_LT1TempAlarm1Cur_Handle,
	//电压排线
    kEEData_VCableAlarm1,
	kEEData_VCableAlarm1Dly,
    kEEData_VCableAlarm1Rel,
	kEEData_VCableAlarm1RelDly,
	kEEData_VCableAlarm1Cur_Handle,
	//温度排线
    kEEData_TCableAlarm1,
	kEEData_TCableAlarm1Dly,
    kEEData_TCableAlarm1Rel,
	kEEData_TCableAlarm1RelDly,
	kEEData_TCableAlarm1Cur_Handle,
	//主从通讯
    kEEData_MSCommAlarm1,
	kEEData_MSCommAlarm1Dly,
    kEEData_MSCommAlarm1Rel,
	kEEData_MSCommAlarm1RelDly,
	kEEData_MSCommAlarm1Cur_Handle,
	//供电欠压
    kEEData_LSplVoltAlarm1,
	kEEData_LSplVoltAlarm1Dly,
    kEEData_LSplVoltAlarm1Rel,
	kEEData_LSplVoltAlarm1RelDly,
	kEEData_LSplVoltAlarm1Cur_Handle,
	//供电过压
	kEEData_HSplVoltAlarm1,
	kEEData_HSplVoltAlarm1Dly,
    kEEData_HSplVoltAlarm1Rel,
	kEEData_HSplVoltAlarm1RelDly,
	kEEData_HSplVoltAlarm1Cur_Handle,	
 	kEEData_HighVoltDiffAlarm1, 				//高压异常
	kEEData_HighVoltDiffAlarm1Dly,
    kEEData_HighVoltDiffAlarm1Rel,
	kEEData_HighVoltDiffAlarm1RelDly,
	kEEData_HighVoltDiffAlarm1Cur_Handle,  
	kEEData_CmdTimeoutAlarm,
	kEEData_CmdTimeoutAlarmDly,				//指令超时时间
//430	
	kEEData_CmdTimeoutAlarmRel,
	kEEData_CmdTimeoutAlarmRelDly,	
	kEEData_CmdTimeoutAlarmCur_Handle,			//指令超时降流+指令超时告警处理	
	kEEData_Di2_1Type,	//DI2 1策略
	kEEData_Di4_3Type,	//DI4 3策略
	kEEData_Di6_5Type,
    kEEData_Di8_7Type,
    kEEData_Di10_9Type,	
	kEEData_Di2_1Polarity,	//DI2 1类型
	kEEData_Di4_3Polarity,	//DI4 3类型
//440		
	kEEData_Di6_5Polarity,	
	kEEData_Di8_7Polarity,	
	kEEData_Di10_9Polarity,		
	kEEData_Di2_1Delay,	//DI2 1判定延迟 单位100ms
	kEEData_Di4_3Delay,	//DI4 3判定延迟 单位100ms
	kEEData_Di6_5Delay,	
	kEEData_Di8_7Delay,	
	kEEData_Di10_9Delay,		
	kEEData_ChgDisChangeBasis_RelayOnOffMode,		//充放电转换依据(高)上下电模式（低）	
    kEEData_ChgDisMode_HighVoltStrategy,              //充放电模式选择 + 高压控制策略
//450	
	kEEData_InsuPeriod_Enable,//绝缘采集周期 单位:秒（高）+绝缘采集使能(低)		
	kEEData_ChgFstCurDownVolt,//充电末端一档降流电压
	kEEData_ChgSndCurDownVolt,//充电末端二档降流电压
	kEEData_ChgSnd_FstCurDownRate,//充电末端二档（高）一档（低）降流系数
	kEEData_ForbidChgVolt,//禁充电压阈值
	kEEData_ForbidChgRelVolt,//禁充释放电压
	kEEData_ForbidDisVolt,//禁放电压阈值
	kEEData_ForbidDisRelVolt,//禁放释放电压
	kEEData_SOHSeventyCycle,//70%容量衰减次数
	kEEData_SOHSeventyCapL,//70%容量衰减累计容量低
//460	
	kEEData_SOHSeventyCapH,//70%容量衰减累计容量高	
	kEEData_Standby_LowVoltSleepDly, //待机(0.1day/bit) + 低压(1min/bit)休眠延时 	
    kEEData_ForbidDisRelDelay,                  //禁放释放延迟	
    kEEData_ForbidChgRelDelay,                  //禁充释放延迟	
    kEEData_OcvStandbyCur_Time,                 //OCV静置电流(0.1A/bit)+OCV静置时间(0.1h/bit)	
    kEEData_OcvDisRangeLower_Upper,             //OCV禁校上限(1%/bit)+下限(1%/bit)
    kEEData_ForceChg1Volt,                      //强充1电压阈值	
    kEEData_ForceChg2Volt,                      //强充2电压阈值
    kEEData_ForceChg2Cur_ForceChg1Cur,          //强充2_1请求电流	
    kEEData_DO2_DO1_ErrSrc,    					//DO2_DO1故障检测源
//470	
    kEEData_DO4_DO3_ErrSrc,    					//DO4_DO3故障检测源
    kEEData_DO6_DO5_ErrSrc,    					//DO6_DO5故障检测源
    kEEData_DO8_DO7_ErrSrc,    					//DO8_DO7故障检测源
	kEEData_Sop_OcvIndex,						//SOP表索引 + OCV表索引
	
	
    //T2高温
    kEEData_HT2TempAlarm1Alarm1,
	kEEData_HT2TempAlarm1Alarm1Dly,
    kEEData_HT2TempAlarm1Alarm1Rel,
	kEEData_HT2TempAlarm1Alarm1RelDly,
	kEEData_HT2TempAlarm1Alarm1Cur_Handle,       
	//T2低温
    kEEData_LT2TempAlarm1,
	kEEData_LT2TempAlarm1Dly,
    kEEData_LT2TempAlarm1Rel,
	kEEData_LT2TempAlarm1RelDly,
	kEEData_LT2TempAlarm1Cur_Handle,	
	
    kEEData_RatedChgPower, 						//额定充电功率
	kEEData_RatedDisPower, 						//额定放电功率
	kEEData_ACMode,						//请求设定空调模式
	kEEData_ACTemp,						//请求设定空调温度

    kEEData_FullDisAvgVolt,			 //SOC过放校准电压值 
	kEEData_FullChgAvgVolt,		     //SOC过充校准电压值
	kEEData_L2HighCurCutDly,         //2级过流(0.1min/bit)切断延时
	//极柱过温故障1级
    kEEData_PoleHighTempAlarm1,
	kEEData_PoleHighTempAlarm1Dly,
    kEEData_PoleHighTempAlarm1Rel,
	kEEData_PoleHighTempAlarm1RelDly,
	kEEData_PoleHighTempAlarm1Cur_Handle,   
	//极柱过温故障2级
    kEEData_PoleHighTempAlarm2,
	kEEData_PoleHighTempAlarm2Dly,
    kEEData_PoleHighTempAlarm2Rel,
	kEEData_PoleHighTempAlarm2RelDly,
	kEEData_PoleHighTempAlarm2Cur_Handle,   
	//极柱过温故障3级
    kEEData_PoleHighTempAlarm3,
	kEEData_PoleHighTempAlarm3Dly,
    kEEData_PoleHighTempAlarm3Rel,
	kEEData_PoleHighTempAlarm3RelDly,
	kEEData_PoleHighTempAlarm3Cur_Handle,          
	//温升故障1级
    kEEData_TempRiseAlarm1,
	kEEData_TempRiseAlarm1Dly,
    kEEData_TempRiseAlarm1Rel,
	kEEData_TempRiseAlarm1RelDly,
	kEEData_TempRiseAlarm1Cur_Handle,      
	//温升故障2级
    kEEData_TempRiseAlarm2,
	kEEData_TempRiseAlarm2Dly,
    kEEData_TempRiseAlarm2Rel,
	kEEData_TempRiseAlarm2RelDly,
	kEEData_TempRiseAlarm2Cur_Handle,
	//温升故障3级
    kEEData_TempRiseAlarm3,
	kEEData_TempRiseAlarm3Dly,
    kEEData_TempRiseAlarm3Rel,
	kEEData_TempRiseAlarm3RelDly,
	kEEData_TempRiseAlarm3Cur_Handle, 

	//电池箱过压1级
    kEEData_HighPackVoltAlarm1,
	kEEData_HighPackVoltAlarm1Dly,
    kEEData_HighPackVoltAlarm1Rel,
	kEEData_HighPackVoltAlarm1RelDly,
	kEEData_HighPackVoltAlarm1Cur_Handle,  
	//电池箱过压2级
    kEEData_HighPackVoltAlarm2,
	kEEData_HighPackVoltAlarm2Dly,
    kEEData_HighPackVoltAlarm2Rel,
	kEEData_HighPackVoltAlarm2RelDly,
	kEEData_HighPackVoltAlarm2Cur_Handle,  
	//电池箱过压3级
    kEEData_HighPackVoltAlarm3,
	kEEData_HighPackVoltAlarm3Dly,
    kEEData_HighPackVoltAlarm3Rel,
	kEEData_HighPackVoltAlarm3RelDly,
	kEEData_HighPackVoltAlarm3Cur_Handle,
    
	//电池箱欠压1级
    kEEData_LowPackVoltAlarm1,
	kEEData_LowPackVoltAlarm1Dly,
    kEEData_LowPackVoltAlarm1Rel,
	kEEData_LowPackVoltAlarm1RelDly,
	kEEData_LowPackVoltAlarm1Cur_Handle, 
	//电池箱欠压2级
    kEEData_LowPackVoltAlarm2,
	kEEData_LowPackVoltAlarm2Dly,
    kEEData_LowPackVoltAlarm2Rel,
	kEEData_LowPackVoltAlarm2RelDly,
	kEEData_LowPackVoltAlarm2Cur_Handle,     
	//电池箱欠压3级
    kEEData_LowPackVoltAlarm3,
	kEEData_LowPackVoltAlarm3Dly,
    kEEData_LowPackVoltAlarm3Rel,
	kEEData_LowPackVoltAlarm3RelDly,
	kEEData_LowPackVoltAlarm3Cur_Handle, 
    //SCO过高
	kEEData_DisHighSocAlarm1,
	kEEData_DisHighSocAlarm1Dly,
	kEEData_DisHighSocAlarm1Rel,        
	kEEData_DisHighSocAlarm1RelDly,
	kEEData_DisHighSocAlarm1Cur_Handle,
	kEEData_DisHighSocAlarm2,
	kEEData_DisHighSocAlarm2Dly,
	kEEData_DisHighSocAlarm2Rel,        
	kEEData_DisHighSocAlarm2RelDly,
	kEEData_DisHighSocAlarm2Cur_Handle,
	kEEData_DisHighSocAlarm3,
	kEEData_DisHighSocAlarm3Dly,
	kEEData_DisHighSocAlarm3Rel,        
	kEEData_DisHighSocAlarm3RelDly,
	kEEData_DisHighSocAlarm3Cur_Handle,

	//充电过流map
	kEEData_ChgOverCurAlarm1_map,
	kEEData_ChgOverCurAlarm1Dly_map,
	kEEData_ChgOverCurAlarm1Rel_map,        
	kEEData_ChgOverCurAlarm1RelDly_map,
	kEEData_ChgOverCurAlarm1Cur_Handle_map,
	kEEData_ChgOverCurAlarm2_map,
	kEEData_ChgOverCurAlarm2Dly_map,
	kEEData_ChgOverCurAlarm2Rel_map,        
	kEEData_ChgOverCurAlarm2RelDly_map,
	kEEData_ChgOverCurAlarm2Cur_Handle_map,
	kEEData_ChgOverCurAlarm3_map,
	kEEData_ChgOverCurAlarm3Dly_map,
	kEEData_ChgOverCurAlarm3Rel_map,        
	kEEData_ChgOverCurAlarm3RelDly_map,
	kEEData_ChgOverCurAlarm3Cur_Handle_map,

	kEEData_FaultCntStart,
	kEEDate_FaultCnt31 = kEEData_FaultCntStart,
	kEEDate_FaultCnt32,
	kEEDate_FaultCnt33,
	kEEDate_FaultCnt34,
	kEEDate_FaultCnt35,
	kEEDate_FaultCnt36,
	kEEDate_FaultCnt37,
	kEEDate_FaultCnt38,
	kEEDate_FaultCnt39,
	kEEDate_FaultCnt40,
	
	kEEDate_FaultCnt41,
	kEEDate_FaultCnt42,
	kEEDate_FaultCnt43,
	kEEDate_FaultCnt44,
	kEEDate_FaultCnt45,
	kEEDate_FaultCnt46,
	kEEDate_FaultCnt47,
	kEEDate_FaultCnt48,
	kEEDate_FaultCnt49,
	kEEDate_FaultCnt50,	
	
	kEEDate_FaultCnt51,
	kEEDate_FaultCnt52,
	kEEDate_FaultCnt53,
	kEEDate_FaultCnt54,
	kEEDate_FaultCnt55,
	kEEDate_FaultCnt56,
	kEEDate_FaultCnt57,
	kEEDate_FaultCnt58,
	kEEDate_FaultCnt59,
	kEEDate_FaultCnt60,
	
	kEEDate_FaultCnt61,
	kEEDate_FaultCnt62,
	kEEDate_FaultCnt63,
	kEEDate_FaultCnt64,
    
    kEEData_FullChgTotalVolt,				//SOC过充校准电压值
    kEEData_FullDisTotalVolt,				//SOC过放校准电压值-----168 
	kEEData_SwitchEnable,
	kEEData_EnTempChannel_NtcType,          //环境温度检测通道 + 环境温度温感类型
	kEE_SwitchOffDly_BcuShuntTrip,          //分闸断开延时 + Bcu分励断开延时  0.1s
	kEE_Reserve_SafetyChainDly,             //预留 + 安全链断开延时 0.1s
	kEE_FanFullSpeedTemp,                   //风扇全速温度
	kEE_CutOffCurrent,                      //断开继电器电流阈值 1A
	kEE_SOCRunMax_Min,                      //SOC运行上限 + SOC运行下限
	kEE_Reserve_BmuSampleOrder,                     //从机采集顺序
    
    kEE_HasMsd_Polarity,                    //是否存在MSD + MSD极性
	kEE_SelfConsumpCurrent,                 //自耗电电流 分辨率0.001A
	kEE_Bmu_Afe1,                           //模拟前端1极柱温感位置
	kEE_Bmu_Afe2,                           //模拟前端2的极柱温感位置
	kEE_Bmu_Afe3,                           //模拟前端3的极柱温感位置
	kEE_Bmu_Afe4,                           //模拟前端4的极柱温感位置
    kEE_485TcpEnable,                       //485通道TCP使能                      
	kEE_PrechgDiffVolt,                     //预充环流搭建压差
	kEE_PrechgTimeDly,                      //预充搭接压差满足时间
	kEE_Reverse19,
    
	kEE_Reverse20,
	kEE_Reverse21,
	kEE_Reverse22,
	kEE_Reverse23,
	kEE_Reverse24,
	kEE_Reverse25,
	kEE_Reverse26,
	kEE_Reverse27,
	kEE_Reverse28,
	kEE_Reverse29,

	kEE_Reverse30,
	kEE_Reverse31,
	kEE_Reverse32,
	kEE_Reverse33,
	kEE_Reverse34,
	kEE_Reverse35,
	kEE_Reverse36,
	kEE_Reverse37,
	kEE_Reverse38,
	kEE_Reverse39,
	
	kEE_Reverse40,
	kEE_Reverse41,
	kEE_Reverse42,
	kEE_Reverse43,
	kEE_Reverse44,
	kEE_Reverse45,
	kEE_Reverse46,
	kEE_Reverse47,
	kEE_Reverse48,
	kEE_Reverse49,
	
    kEE_GateDataStart,
    kEE_GateData0 = kEE_GateDataStart,
    kEE_GateData1,
    kEE_GateData2,
	kEE_GateData3,
    kEE_GateData4,
    kEE_GateData5,
    kEE_GateData6,
    kEE_GateData7,
    kEE_GateData8,
    kEE_GateData9,
    
    kEE_GateData10,
    kEE_GateData11,
    kEE_GateData12,
	kEE_GateData13,
    kEE_GateData14,
    kEE_GateData15,
    kEE_GateData16,
    kEE_GateData17,
    kEE_GateData18,
    kEE_GateData19,
    
    kEE_GateData20,
    kEE_GateData21,
    kEE_GateData22,
	kEE_GateData23,
    kEE_GateData24,
    kEE_GateData25,
    kEE_GateData26,
    kEE_GateData27,
    kEE_GateData28,
    kEE_GateData29,
    
    kEE_GateData30,
    kEE_GateData31,
    kEE_GateData32,
	kEE_GateData33,
    kEE_GateData34,
    kEE_GateData35,
    kEE_GateData36,
    kEE_GateData37,
    kEE_GateData38,
    kEE_GateData39,
    
    kEE_GateData40,
    kEE_GateData41,
    kEE_GateData42,
	kEE_GateData43,
    kEE_GateData44,
    kEE_GateData45,
    kEE_GateData46,
    kEE_GateData47,
    kEE_GateData48,
    kEE_GateData49,
    kEE_GateDataEnd = kEE_GateData49,

	//SOC
	kEEData_StatDay_CycleTimesFlag,	//统计记录天+电池循环次数更新标志
	kEEData_CycleTimes,		    //电池循环次数
    kEEData_SOC,	    // SOC 0.1%/bit         	0x01CA
	kEEData_SOE,
         		
	kEEData_DayChg_DisTime,     //日充放电累计时间0.1h/bit
    kEEData_DayDisCapL,	        //日放电累计容量0.1AH/bit
	kEEData_DayDisCapH,	        							
    kEEData_DayDisEnergyL,          //日放电电量1s/bit
	kEEData_DayDisEnergyH,         							
	kEEData_DayChgCapL,	        //日充电累计时间0.1AH/bit
	kEEData_DayChgCapH,	    																	
    kEEData_DayChgEnergyL,          //日充电电电量1s/bit
	kEEData_DayChgEnergyH,
	kEEData_AccDisTimeL,         //放电累计时间1s/bit		
	kEEData_AccDisTimeH, 
    kEEData_AccDisCapL,	        //放电累计容量0.1AH/bit		
	kEEData_AccDisCapH,	        								
    kEEData_AccDisEnergyL,	        //放电累计电量0.1AH/bit		
	kEEData_AccDisEnergyH,	        							
	kEEData_AccChgTimeL,		    //充电累计时间1s/bit		
	kEEData_AccChgTimeH,
    kEEData_AccChgCapL,	        //充电累计容量0.1AH/bit		
	kEEData_AccChgCapH,	    								
    kEEData_AccChgEnergyL,	        //放电累计电量0.1AH/bit		
	kEEData_AccChgEnergyH,	        							
    kEEData_PowerOffTimeL,		    //下电时间1s/bit		
	kEEData_PowerOffTimeH,										

    kEE_IsSoftReset,   //是否软复位
	kEE_TargetCurrent, //目标电流
	kEE_TargetVolt,    //采集目标电压
	kEE_TargetVoltHv1,    //扩展目标电压,
	kEE_ReservedDaynmic5,
	kEE_ReservedDaynmic6,
	kEE_ReservedDaynmic7,
	kEE_ReservedDaynmic8,
	kEE_ReservedDaynmic9,	
	kEE_ReservedDaynmic10,

	kRelay2_1ForceCtrlStatus,
	kRelay4_3ForceCtrlStatus,
	kRelay6_5ForceCtrlStatus,
	kRelay8_7ForceCtrlStatus,	
	kEEDataIdx_End,  //438
} EEDataIdx;



typedef enum
{
    kR485BaudRateStart,
    kR485_4800 = kR485BaudRateStart,
    kR485_9600,
	kR485_19200,
	kR485_38400,
    kR485_115200,
    kR485BaudRateEnd,
    
}R485BaudRate; 

//CAN波特率
typedef enum
{
    kCanBaudRateStart,
	kCAN_125kbps = kCanBaudRateStart,
	kCAN_250kbps,
	kCAN_500kbps,
	kCAN_1000kbps,
	kCanBaudRateEnd,
}CanBaudRate;

typedef enum
{
    kCusrTypeStart,
	kCurType_Shunt = kCusrTypeStart,
	kCurType_Single,
	kCurType_Double,
    kCurType_Single_Base,
	kCurTypeEnd,
}CurType;

typedef enum
{
	kCurScaleStart,
	kCurScale_50 = kCurScaleStart,
	kCurScale_100,
	kCurScale_150,
	kCurScale_200,
	kCurScale_300,
	kCurScale_400,
	kCurScale_500,
	kCurScale_600,
	kCurScale_750,
	kCurScale_800,
	kCurScale_1000,
	kCurScaleTypeEnd,
}CurSenScale;

typedef enum
{
    kSoftReset_Wdog = 1,
    kSoftReset_CmdCtrl,
    kSoftReset_HardFault,
}SoftReset;

void bms_init_eeprom(void);
void bms_pwr_off_save(void);
void bms_soft_reset_save(SoftReset type, uint8_t *buf, uint16_t len);

#ifdef   __cplusplus
}
#endif

#endif

