VMiddleware/utils/ConfigT.py

119 lines
4.4 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)