generated from zhangwei/Train_Identify
119 lines
4.4 KiB
Python
119 lines
4.4 KiB
Python
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)
|