import configparser import json config_ini = configparser.ConfigParser() class ConfigT: def __init__(self, config_path): config_ini.read(config_path, encoding="utf-8") self.config_path = config_path self.server_port = None self.track_num = None self.log_path = None self.stdout_log_level = None self.file_log_level = None self.ip_address = None self.slot = None self.timeout = None self.interval_plc = None self.upload_type = None self.upload_pinch_coal_url = None self.upload_gross_weight_url = None self.upload_device_type_url = None self.login_web_url = None self.username = None self.password = None self.authorization = None self.loading_mark = None self.carriage_num_max = None self.initConfig() def initConfig(self): self.server_port = config_ini.getint('server', 'server_port') # 股道名称 self.track_num = config_ini.getint('server', 'track_num') # 日志地址 self.log_path = config_ini.get('log', 'log_path') # 打印日志的存储级别 self.stdout_log_level = config_ini.get('log', 'stdout_log_level') # 文件日志的存储级别 self.file_log_level = config_ini.get('log', 'file_log_level') # PLC 的IP地址 self.ip_address = config_ini.get('plc', 'ip_address') # PLC 插槽 self.slot = config_ini.getint('plc', 'slot') # 访问超时时间 秒为单位 self.timeout = config_ini.getfloat('plc', 'timeout') # 读取PLC的循环间隔 self.interval_plc = config_ini.getint('plc', 'interval_plc') # 上传状态 self.upload_type = config_ini.getint('upload', 'upload_type') # 登录web self.login_web_url = config_ini.get('upload', 'login_web_url') # 掐煤量上传地址 self.upload_pinch_coal_url = config_ini.get('upload', 'upload_pinch_coal_url') # 毛重上传地址 self.upload_gross_weight_url = config_ini.get('upload', 'upload_gross_weight_url') # 皮带、给煤机启停状态上传地址 self.upload_device_type_url = config_ini.get('upload', 'upload_device_type_url') # 登录用户名 self.username = config_ini.get('upload', 'username') # 登录密码 self.password = config_ini.get('upload', 'password') # 登录授权码 self.authorization = config_ini.get('upload', 'authorization') # 装车车标记号 self.loading_mark = config_ini.get('real_loading', 'loading_mark') # 最大车厢数量 self.carriage_num_max = config_ini.getint('other', 'carriage_num_max') def getConfig(self): return json.dumps(self.__dict__) def updateConfig(self, option, value): try: if option in {"server_port", "track_num"}: if option == "track_num" and not 0 < int(value) <= 2: return "配置项 %s 应该0<%s<=2,而本次设置内容为 %s" % (option, option, value) config_ini.set("server", option, value) elif option in {"log_path", "stdout_log_level", "file_log_level"}: config_ini.set("log", option, value) elif option in {"ip_address", "slot", "timeout", "interval_plc"}: config_ini.set("plc", option, value) elif option in {"upload_type", "login_web_url", "upload_pinch_coal_url", "upload_gross_weight_url", "upload_device_type_url", "username", "password", "authorization"}: config_ini.set("upload", option, value) elif option in {"loading_mark"}: config_ini.set("real_loading", option, value) elif option in {"carriage_num_max"}: config_ini.set("other", option, value) else: return "未找到此配置项 {%s: %s}" % (option, value) config_ini.write(open(self.config_path, 'w')) self.initConfig() return "" except Exception as e: print("更改配置参数异常!%s" % str(e)) return "更改配置参数异常!%s" % str(e)