152 lines
3.3 KiB
Python
152 lines
3.3 KiB
Python
"""
|
|
全局配置文件
|
|
提供应用程序的配置参数和常量定义
|
|
"""
|
|
import os
|
|
from enum import Enum
|
|
from pathlib import Path
|
|
|
|
|
|
class FieldType(Enum):
|
|
"""字段类型枚举"""
|
|
INT = "int"
|
|
FLOAT = "float"
|
|
DOUBLE = "double"
|
|
STRING = "string"
|
|
DATETIME = "datetime"
|
|
BOOLEAN = "boolean"
|
|
BYTES = "bytes"
|
|
ENUM = "enum"
|
|
STRUCT = "struct"
|
|
|
|
|
|
class OperatorType(Enum):
|
|
"""操作符类型枚举"""
|
|
DIRECT = "DIRECT"
|
|
ADD = "ADD"
|
|
SUBTRACT = "SUBTRACT"
|
|
MULTIPLY = "MULTIPLY"
|
|
DIVIDE = "DIVIDE"
|
|
MODULO = "MODULO"
|
|
BIT_SHIFT_LEFT = "BIT_SHIFT_LEFT"
|
|
BIT_SHIFT_RIGHT = "BIT_SHIFT_RIGHT"
|
|
BIT_AND = "BIT_AND"
|
|
BIT_OR = "BIT_OR"
|
|
BIT_XOR = "BIT_XOR"
|
|
CONCAT = "CONCAT"
|
|
SUBSTRING = "SUBSTRING"
|
|
CAST = "CAST"
|
|
|
|
|
|
class ProtocolType(Enum):
|
|
"""传输协议类型枚举"""
|
|
TCP = "tcp"
|
|
UDP = "udp"
|
|
DDS = "dds"
|
|
CUSTOM = "custom"
|
|
|
|
|
|
class SerializationType(Enum):
|
|
"""序列化格式枚举"""
|
|
JSON = "json"
|
|
XML = "xml"
|
|
PROTOBUF = "protobuf"
|
|
CUSTOM = "custom"
|
|
|
|
|
|
class LanguageType(Enum):
|
|
"""编程语言类型枚举"""
|
|
C = "C"
|
|
CPP = "CPP"
|
|
PYTHON = "Python"
|
|
|
|
|
|
class LanguageStandard(Enum):
|
|
"""语言标准枚举"""
|
|
C99 = "C99"
|
|
C11 = "C11"
|
|
CPP11 = "C++11"
|
|
CPP14 = "C++14"
|
|
CPP17 = "C++17"
|
|
CPP20 = "C++20"
|
|
|
|
|
|
class Config:
|
|
"""应用程序配置类"""
|
|
|
|
# 应用程序信息
|
|
APP_NAME = "体系集成试验工具"
|
|
APP_VERSION = "1.0.0"
|
|
APP_AUTHOR = "System Integration Team"
|
|
|
|
# 路径配置
|
|
BASE_DIR = Path(__file__).parent
|
|
DATABASE_DIR = BASE_DIR / "database"
|
|
TEMPLATES_DIR = BASE_DIR / "templates"
|
|
RESOURCES_DIR = BASE_DIR / "resources"
|
|
LOGS_DIR = BASE_DIR / "logs"
|
|
|
|
# 数据库配置
|
|
DATABASE_NAME = "system_integration.db"
|
|
DATABASE_PATH = DATABASE_DIR / DATABASE_NAME
|
|
|
|
# 日志配置
|
|
LOG_LEVEL = "INFO"
|
|
LOG_FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
|
LOG_FILE = LOGS_DIR / "app.log"
|
|
LOG_MAX_BYTES = 10 * 1024 * 1024 # 10MB
|
|
LOG_BACKUP_COUNT = 5
|
|
|
|
# UI配置
|
|
WINDOW_WIDTH = 1400
|
|
WINDOW_HEIGHT = 900
|
|
WINDOW_MIN_WIDTH = 1000
|
|
WINDOW_MIN_HEIGHT = 700
|
|
|
|
# 性能配置
|
|
MAX_FIELDS = 10000
|
|
MAX_MESSAGES = 1000
|
|
GRAPH_QUERY_TIMEOUT = 1.0 # 秒
|
|
CODE_GEN_TIMEOUT = 5.0 # 秒
|
|
|
|
# 分页配置
|
|
DEFAULT_PAGE_SIZE = 50
|
|
MAX_PAGE_SIZE = 200
|
|
|
|
# 图形编辑器配置
|
|
NODE_WIDTH = 120
|
|
NODE_HEIGHT = 60
|
|
NODE_SPACING = 150
|
|
EDGE_WIDTH = 2
|
|
|
|
# 代码生成配置
|
|
DEFAULT_OUTPUT_DIR = BASE_DIR / "generated_code"
|
|
INDENT_SIZE = 4
|
|
|
|
@classmethod
|
|
def ensure_directories(cls):
|
|
"""确保必要的目录存在"""
|
|
directories = [
|
|
cls.DATABASE_DIR,
|
|
cls.TEMPLATES_DIR,
|
|
cls.RESOURCES_DIR,
|
|
cls.LOGS_DIR,
|
|
cls.DEFAULT_OUTPUT_DIR,
|
|
]
|
|
for directory in directories:
|
|
directory.mkdir(parents=True, exist_ok=True)
|
|
|
|
@classmethod
|
|
def get_template_path(cls, template_name: str) -> Path:
|
|
"""获取模板文件路径"""
|
|
return cls.TEMPLATES_DIR / template_name
|
|
|
|
@classmethod
|
|
def get_resource_path(cls, resource_name: str) -> Path:
|
|
"""获取资源文件路径"""
|
|
return cls.RESOURCES_DIR / resource_name
|
|
|
|
|
|
# 初始化配置
|
|
Config.ensure_directories()
|