from eeprom import EEPROM


class Config:
    dicParamAddr = {
        "SET_TestTime": 0x003D,
        "SetTempra": 0x003C,
        "Flow12": 0x003B,
        "Flow11": 0x003A,
        "Flow07": 0x0036,
        "Flow06": 0x0035,
        "Flow10": 0x0039,
        "Flow09": 0x0038,
        "Flow08": 0x0037,
        "Flow05": 0x0034,
        "Flow04": 0x0033,
        "Flow03": 0x0032,
        "Flow02": 0x0031,
        "Flow01": 0x0030,
        "KD4": 0x0067,
        "KD3": 0x0066,
        "KD2": 0x0065,
        "KD1": 0x0064,
        "KI2": 0x0063,
        "KI1": 0x0062,
        "KP2": 0x0061,
        "KP1": 0x0060,
        "Flow12_k": 0x005B,
        "Flow11_k": 0x005A,
        "Flow07_k": 0x0056,
        "Flow06_k": 0x0055,
        "Flow10_k": 0x0059,
        "Flow09_k": 0x0058,
        "Flow08_k": 0x0057,
        "Flow05_k": 0x0054,
        "Flow04_k": 0x0053,
        "Flow03_k": 0x0052,
        "Flow02_k": 0x0051,
        "Flow01_k": 0x0050,
        "Flow12_b": 0x004B,
        "Flow11_b": 0x004A,
        "Flow07_b": 0x0046,
        "Flow06_b": 0x0045,
        "Flow10_b": 0x0049,
        "Flow09_b": 0x0048,
        "Flow08_b": 0x0047,
        "Flow05_b": 0x0044,
        "Flow04_b": 0x0043,
        "Flow03_b": 0x0042,
        "Flow02_b": 0x0041,
        "Flow01_b": 0x0040,
        "Tempr_b": 0x004C,
        "Tempra_k": 0x005C
    }

    def __init__(self, ee: EEPROM):
        self.SET_TestTime = 500  #0x003D
        self.SetTempra = 500  #0x003C

        self.Flow12 = 500  # 0x003B
        self.Flow11 = 500  # 0x003A
        self.Flow07 = 500  # 0x0036
        self.Flow06 = 500  # 0x0035
        self.Flow10 = 500  # 0x0039
        self.Flow09 = 500  # 0x0038
        self.Flow08 = 500  # 0x0037
        self.Flow05 = 500  # 0x0034
        self.Flow04 = 500  # 0x0033
        self.Flow03 = 500  # 0x0032
        self.Flow02 = 500  # 0x0031
        self.Flow01 = 500  # 0x0030

        self.KD4 = 500  # 0x0067
        self.KD3 = 500  # 0x0066
        self.KD2 = 500  # 0x0065
        self.KD1 = 500  # 0x0064
        self.KI2 = 500  # 0x0063
        self.KI1 = 500  # 0x0062
        self.KP2 = 500  # 0x0061
        self.KP1 = 500  # 0x0060

        self.Flow12_k = 500  # 0x005B
        self.Flow11_k = 500  # 0x005A
        self.Flow07_k = 500  # 0x0056
        self.Flow06_k = 500  # 0x0055
        self.Flow10_k = 500  # 0x0059
        self.Flow09_k = 500  # 0x0058
        self.Flow08_k = 500  # 0x0057
        self.Flow05_k = 500  # 0x0054
        self.Flow04_k = 500  # 0x0053
        self.Flow03_k = 500  # 0x0052
        self.Flow02_k = 500  # 0x0051
        self.Flow01_k = 500  # 0x0050
        self.Flow12_b = 500  # 0x004B
        self.Flow11_b = 500  # 0x004A
        self.Flow07_b = 500  # 0x0046
        self.Flow06_b = 500  # 0x0045
        self.Flow10_b = 500  # 0x0049
        self.Flow09_b = 500  # 0x0048
        self.Flow08_b = 500  # 0x0047
        self.Flow05_b = 500  # 0x0044
        self.Flow04_b = 500  # 0x0043
        self.Flow03_b = 500  # 0x0042
        self.Flow02_b = 500  # 0x0041
        self.Flow01_b = 500  # 0x0040

        self.Tempr_b = 500  # 0x004C
        self.Tempra_k = 500  # 0x005C

        self.dicParam_var = {
            "SET_TestTime": self.SET_TestTime,
            "SetTempra": self.SetTempra,
            "Flow12": self.Flow12,
            "Flow11": self.Flow11,
            "Flow07": self.Flow07,
            "Flow06": self.Flow06,
            "Flow10": self.Flow10,
            "Flow09": self.Flow09,
            "Flow08": self.Flow08,
            "Flow05": self.Flow05,
            "Flow04": self.Flow04,
            "Flow03": self.Flow03,
            "Flow02": self.Flow02,
            "Flow01": self.Flow01,
            "KD4": self.KD4,
            "KD3": self.KD3,
            "KD2": self.KD2,
            "KD1": self.KD1,
            "KI2": self.KI2,
            "KI1": self.KI1,
            "KP2": self.KP2,
            "KP1": self.KP1,
            "Flow12_k": self.Flow12_k,
            "Flow11_k": self.Flow11_k,
            "Flow07_k": self.Flow07_k,
            "Flow06_k": self.Flow06_k,
            "Flow10_k": self.Flow10_k,
            "Flow09_k": self.Flow09_k,
            "Flow08_k": self.Flow08_k,
            "Flow05_k": self.Flow05_k,
            "Flow04_k": self.Flow04_k,
            "Flow03_k": self.Flow03_k,
            "Flow02_k": self.Flow02_k,
            "Flow01_k": self.Flow01_k,
            "Flow12_b": self.Flow12_b,
            "Flow11_b": self.Flow11_b,
            "Flow07_b": self.Flow07_b,
            "Flow06_b": self.Flow06_b,
            "Flow10_b": self.Flow10_b,
            "Flow09_b": self.Flow09_b,
            "Flow08_b": self.Flow08_b,
            "Flow05_b": self.Flow05_b,
            "Flow04_b": self.Flow04_b,
            "Flow03_b": self.Flow03_b,
            "Flow02_b": self.Flow02_b,
            "Flow01_b": self.Flow01_b,
            "Tempr_b": self.Tempr_b,
            "Tempra_k": self.Tempra_k
        }
        self.loadparam(ee)

    def saveparam(self, ee: EEPROM):
        """枚举 dicParam_var dicParamAddr ,分别获取变量名和地址,保存到EEPROM里"""
        for key, value in self.dicParam_var.items():
            ee.write_word(self.dicParamAddr[key] * 2, value)
        pass

    def loadparam(self, ee: EEPROM):
        '''dicParamAddr 字典中取出地址，读取数据赋值给对应的变量'''
        for key, _var in self.dicParam_var.items():
            addr = value * 2
            _var = ee.read_word(addr)
            print("config loadparam  addr:{:02X} = {:02X}!\r\n".format(addr, value))
        pass


if __name__ == "__main__":
    eeprom = EEPROM()
    config = Config(eeprom)