class BatteryInfo():
    def __init__(self,celltype):
        self.CellMaxUSBTemp=55
        self.AllowChgMinTemp=0
        self.AllowDsChgTemp=-5
        self.AvgVolGap=1
        self.AvgCellTempGap=10
        self.AvgOtherTempGap=40
        self.PackOTlmt=65
        self.PackUTlmt=-20
        self.OtherOTlmt=91
        self.OtherUTlmt=-20        
        self.FaultCount=100



        if celltype==1: #6040
            self.Capacity = 41
            self.PackFullChrgVolt=69.99
            self.CellFullChrgVolt=4.2
            self.CellVoltNums=17
            self.CellTempNums=3
            self.OtherTempNums=5
            self.FullChrgSoc=98
            self.PeakSoc=57
            self.PackCrntDec=1
            self.BalCurrent=0.015
            self.LookTab_SOC = [0,	    3.5348,	8.3581,	13.181,	18.004,	22.827,	27.651,	32.474,	37.297,	42.120,	46.944,	51.767,	56.590,	61.413,	66.237,	71.060,	75.883,	80.707,	85.530,	90.353,	95.176,	100,   105]
            self.LookTab_OCV = [3.3159,	3.4384,	3.4774,	3.5156,	3.5478,	3.5748,	3.6058,	3.6238,	3.638,	3.6535,	3.6715,	3.6951,	3.7279,	3.7757,	3.8126,	3.8529,	3.8969,	3.9446,	3.9946,	4.0491,	4.109,	4.183, 4.263]
            self.BLVol = 3
            self.CellOVlmt=5#原为5
            self.CellUVlmt=2#原为2
            self.CantChrgVol=3
          
        elif celltype==2: #4840
            self.Capacity = 41
            self.PackFullChrgVolt=69.99
            self.CellFullChrgVolt=4.2
            self.CellVoltNums=14
            self.CellTempNums=4
            self.OtherTempNums=5            
            self.FullChrgSoc=98
            self.PeakSoc=57
            self.PackCrntDec=1
            self.BalCurrent=0.015
            self.LookTab_SOC = [0,	    3.5348,	8.3581,	13.181,	18.004,	22.827,	27.651,	32.474,	37.297,	42.120,	46.944,	51.767,	56.590,	61.413,	66.237,	71.060,	75.883,	80.707,	85.530,	90.353,	95.176,	100,   105]
            self.LookTab_OCV = [3.3159,	3.4384,	3.4774,	3.5156,	3.5478,	3.5748,	3.6058,	3.6238,	3.638,	3.6535,	3.6715,	3.6951,	3.7279,	3.7757,	3.8126,	3.8529,	3.8969,	3.9446,	3.9946,	4.0491,	4.109,	4.183, 4.263]
            self.BLVol = 3
            self.CellOVlmt=5
            self.CellUVlmt=2
            self.CantChrgVol=3        

        elif  celltype==3:   #力信50ah三元电芯
            self.Capacity = 51
            self.PackFullChrgVolt=80
            self.CellFullChrgVolt=4.2
            self.CellVoltNums=20
            self.CellTempNums=4
            self.OtherTempNums=1
            self.FullChrgSoc=98
            self.PeakSoc=57
            self.PackCrntDec=1
            self.BalCurrent=0.015
            self.LookTab_SOC = [0,	    5,	    10,	    15,	    20,	    25,	    30,	    35,	    40,	    45,	    50,	    55,	    60,	    65,	    70,	    75,	    80,	    85,	    90,	    95,	    100,   105]
            self.LookTab_OCV = [3.357, 	3.455, 	3.493, 	3.540, 	3.577, 	3.605, 	3.622, 	3.638, 	3.655, 	3.677, 	3.707, 	3.757, 	3.815, 	3.866, 	3.920, 	3.976, 	4.036, 	4.099, 	4.166, 	4.237, 	4.325, 4.415]
            self.BLVol = 3
            self.CellOVlmt=5
            self.CellUVlmt=2
            self.CantChrgVol=3

        elif celltype==4:   #CATL 50ah三元电芯
            self.Capacity = 50
            self.PackFullChrgVolt=80
            self.CellFullChrgVolt=4.2
            self.CellVoltNums=20
            self.CellTempNums=2
            self.OtherTempNums=0
            self.FullChrgSoc=98
            self.PeakSoc=57
            self.PackCrntDec=-1
            self.BalCurrent=0.015
            self.LookTab_SOC = [0,	    5,	    10,	    15,	    20,	    25,	    30,	    35,	    40,	    45,	    50,	    55,	    60,	    65,	    70,	    75,	    80,	    85,	    90,	    95,	    100,   105]
            self.LookTab_OCV = [3.152, 	3.397, 	3.438, 	3.481, 	3.523, 	3.560, 	3.586, 	3.604, 	3.620, 	3.638, 	3.661, 	3.693, 	3.748, 	3.803, 	3.853, 	3.903, 	3.953, 	4.006, 	4.063, 	4.121, 	4.183, 4.253]
            self.BLVol = 3
            self.CellOVlmt=5
            self.CellUVlmt=2
            self.CantChrgVol=3
          

        elif celltype==99:   #60ah磷酸铁锂电芯
            self.Capacity = 54
            self.PackFullChrgVolt=69.99
            self.CellFullChrgVolt=3.5
            self.OcvInflexionBelow=3.285
            self.OcvInflexion2=3.296
            self.OcvInflexion3=3.328
            self.OcvInflexionAbove=3.4
            self.CellVoltNums=20
            self.CellTempNums=4
            self.OtherTempNums=5 
            self.FullChrgSoc=98
            self.PeakSoc=59
            self.PeakVoltLowLmt=3.35
            self.PeakVoltUpLmt=3.4
            self.PeakCellVolt=[3.362,3.363,3.365,3.366,3.367]
            self.PackCrntDec=1
            self.BalCurrent=0.015
            self.LookTab_SOC = [0.00, 	2.40, 	6.38, 	10.37, 	14.35, 	18.33, 	22.32, 	26.30, 	30.28, 	35.26, 	40.24, 	45.22, 	50.20, 	54.19, 	58.17, 	60.16, 	65.14, 	70.12, 	75.10, 	80.08, 	84.06, 	88.05, 	92.03, 	96.02, 	100.00]
            self.LookTab_OCV = [2.7151,	3.0298,	3.1935,	3.2009,	3.2167,	3.2393,	3.2561,	3.2703,	3.2843,	3.2871,	3.2874,	3.2868,	3.2896,	3.2917,	3.2967,	3.3128,	3.3283,	3.3286,	3.3287,	3.3288,	3.3289,	3.3296,	3.3302,	3.3314,	3.3429]
            self.BLVol = 3
            self.CellOVlmt=4
            self.CellUVlmt=2
            self.CantChrgVol=2.6
 
        elif celltype==100:
            self.Capacity = 14
            self.PackFullChrgVolt=80
            self.CellFullChrgVolt=4.2
            self.CellVoltNums=10
            self.CellTempNums=1
            self.FullChrgSoc=98
            self.PeakSoc=57
            self.PackCrntDec=1
            self.LookTab_SOC = [0,	1,	2,	3,	4,	5,	6,	7,	8,	9,	10,	11,	12,	13,	14,	15,	16,	17,	18,	19,	20,	21,	22,	23,	24,	25,	26,	27,	28,	29,	30,	31,	32,	33,	34,	35,	36,	37,	38,	39,	40,	41,	42,	43,	44,	45,	46,	47,	48,	49,	50,	51,	52,	53,	54,	55,	56,	57,	58,	59,	60,	61,	62,	63,	64,	65,	66,	67,	68,	69,	70,	71,	72,	73,	74,	75,	76,	77,	78,	79,	80,	81,	82,	83,	84,	85,	86,	87,	88,	89,	90,	91,	92,	93,	94,	95,	96,	97,	98,	100]
            self.LookTab_OCV = [2.841,	3.064,	3.181,	3.261,	3.322,	3.372,	3.413,	3.445,	3.464,	3.475,	3.482,	3.489,	3.495,	3.502,	3.51,	3.519,	3.529,	3.537,	3.545,	3.553,	3.562,	3.57,	3.578,	3.586,	3.594,	3.602,	3.611,	3.621,	3.631,	3.642,	3.655,	3.668,	3.681,	3.694,	3.708,	3.722,	3.735,	3.748,	3.761,	3.771,	3.782,	3.791,	3.799,	3.807,	3.81,	3.814,	3.82,	3.826,	3.832,	3.836,	3.841,	3.847,	3.852,	3.856,	3.861,	3.866,	3.871,	3.875,	3.88,	3.885,	3.891,	3.896,	3.903,	3.91,	3.917,	3.926,	3.936,	3.944,	3.953,	3.961,	3.969,	3.976,	3.983,	3.991,	3.997,	4.004,	4.01,	4.016,	4.022,	4.026,	4.03,	4.034,	4.037,	4.041,	4.044,	4.048,	4.052,	4.056,	4.06,	4.064,	4.069,	4.075,	4.081,	4.088,	4.097,	4.106,	4.116,	4.129,	4.145,	4.164]

            self.CellTempHighLv1=45
            self.CellTempHighLv2=50
            self.CellTempLowLv1=-20
            self.CellTempLowLv2=-25
            self.CellTempDiffLv1=10
            self.CellTempDiffLv2=15
            self.CellTempRate=0.99

            self.CellOvLv1=4.3
            self.CellOvLv2=4.35
            self.CellUvLv1=2.8
            self.CellUvLv2=2.5
            self.CellVoltDiffLv1=0.3
            self.CellVoltDiffLv2=0.5
            self.PackVoltOvLv1=self.CellOvLv1*self.CellVoltNums
            self.PackVoltOvLv2=self.CellOvLv2*self.CellVoltNums
            self.PackVoltUvLv1=self.CellUvLv1*self.CellVoltNums
            self.PackVoltUvLv2=self.CellUvLv2*self.CellVoltNums

            self.PackChgOc=1.5*self.Capacity
            self.PackDisChgOc=3*self.Capacity

            self.SocJump=3
            self.SocClamp=3
            self.BLVol = 3
            self.CellOVlmt=5
            self.CellUVlmt=2
            self.CantChrgVol=3
        else:
            print('未找到对应电池编号!!!')
            # sys.exit()