VMiddleware/utils/ConfigT.py

119 lines
4.4 KiB
Python
Raw Permalink Normal View History

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)