# Central temperature control system **Repository Path**: gl__twentyone/central-temperature-control-system ## Basic Information - **Project Name**: Central temperature control system - **Description**: 这是一个基于 Python 开发的快捷廉价酒店中央温控系统,实现了自助计费式空调服务,支持多房间并发请求、智能调度、费用计算和统计报表等功能。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-24 - **Last Updated**: 2026-04-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 中央温控系统 > 快捷酒店自助计费式中央温控系统 ## 项目简介 基于 Python + tkinter 开发的酒店中央空调管理系统,实现多房间并发、智能调度、实时计费和统计报表等功能。 **开发语言**: Python 3.7+ **GUI 框架**: tkinter(内置,无外部依赖) **项目状态**: ✅ 已完成并通过全部测试 **业务需求**: ✅ 100% 完成 ## 📋 目录 - [快速开始](#快速开始) - [业务需求完成度](#业务需求完成度) - [系统功能](#系统功能) - [系统参数](#系统参数) - [项目结构](#项目结构) - [测试说明](#测试说明) --- ## 快速开始 ### 运行系统 ```bash # 检查 Python 版本 (需要 >= 3.7) python3 --version # 启动主程序 python3 main.py ``` ### 运行测试 ```bash # 自动化测试 python3 tests/test_system.py # 使用示例 python3 tests/example_usage.py ``` --- ## 业务需求完成度 ### ✅ 总体评估:100% 完成 #### 1. 基本功能 ✅ | 功能 | 实现位置 | 状态 | | -------------------- | -------------------- | ---- | | 客户端设定温度和风速 | `ui/client.py` | ✅ | | 实时显示费用 | `ui/client.py` | ✅ | | 前台出具账单和详单 | `core/billing.py` | ✅ | | 管理员监控空调状态 | `ui/monitor.py` | ✅ | | 经理查看统计报表 | `core/statistics.py` | ✅ | #### 2. 温控参数 ✅ | 参数 | 需求值 | 实现值 | 状态 | | -------- | ------- | -------- | ---- | | 制冷范围 | 18-25°C | (18, 25) | ✅ | | 制热范围 | 25-30°C | (25, 30) | ✅ | | 缺省温度 | 25°C | 25 | ✅ | | 计费标准 | 1 元/度 | 1.0 | ✅ | #### 3. 耗电标准 ✅ | 风速 | 需求值 | 实现值 | 状态 | | ---- | ----------- | -------- | ---- | | 高风 | 1 度/分钟 | 1.0 | ✅ | | 中风 | 1 度/2 分钟 | 0.5 | ✅ | | 低风 | 1 度/3 分钟 | 0.333... | ✅ | #### 4. 温度变化速率 ✅ | 风速 | 需求计算 | 实现值 | 状态 | | ---- | ----------------------- | ------ | ---- | | 中风 | 0.5 度/分钟 | 0.5 | ✅ | | 高风 | 0.5×1.2=0.6 度/分钟 | 0.6 | ✅ | | 低风 | 0.5×0.8=0.4 度/分钟 | 0.4 | ✅ | | 关机 | 0.5 度/分钟回归初始温度 | 0.5 | ✅ | #### 5. 自动控制 ✅ - ✅ 达到目标温度自动停止送风(`core/central_ac.py`) - ✅ 超过目标温度 1 度自动重启(`core/service_object.py`) - ✅ 请求间隔<1 秒只发送最后一次(`core/central_ac.py`) #### 6. 调度策略 ✅ **优先级调度**(`core/scheduler.py`): - ✅ 高风 > 中风 > 低风 - ✅ 只有 1 个低优先级:释放该服务 - ✅ 多个相同低优先级:选服务时长最长的 - ✅ 多个不同低优先级:选风速最低的 **时间片调度**(默认 120 秒): - ✅ 等待时间到达后抢占服务时长最长的 - ✅ 服务对象释放时,等待最久的获得服务 - ✅ 已等待满时间片的优先级更高 **请求区分**: - ✅ 风速变化 = 新请求(需重新调度) - ✅ 只调温 ≠ 新请求(直接更新) #### 7. 系统架构 ✅ | 组件 | 职责 | 实现位置 | 状态 | | -------- | ------------------------------- | ------------------------ | ---- | | 调度对象 | 接收请求、转发、监控 | `core/scheduler.py` | ✅ | | 服务对象 | 温度计算、计费、详单 | `core/service_object.py` | ✅ | | 服务队列 | 房间号、服务对象 ID、风速、时长 | `core/scheduler.py` | ✅ | | 等待队列 | 房间号、风速、等待时长 | `core/scheduler.py` | ✅ | --- ## 系统功能 ### 核心功能 - ✅ **智能调度**: 优先级调度 + 时间片调度 - ✅ **实时温控**: 制冷/制热模式,精确温度控制 - ✅ **自动计费**: 实时计算耗电量和费用 - ✅ **状态监控**: 管理员实时监控所有房间 - ✅ **账单管理**: 自动生成详单和账单 - ✅ **统计报表**: 多时间范围使用统计 ### 用户界面 1. **客户端控制面板** - 房间内控制(温度、风速、模式) 2. **管理员监控系统** - 实时监控(服务队列、等待队列、房间状态) 3. **前台系统** - 账单查询和统计报表 --- ## 系统参数 ### 核心参数配置 | 参数类型 | 参数 | 值 | | -------- | -------- | ------------ | | **温控** | 制冷范围 | 18-25°C | | | 制热范围 | 25-30°C | | | 缺省温度 | 25°C | | | 初始室温 | 30°C | | **计费** | 计费单价 | 1 元/度 | | | 高风耗电 | 1 度/分钟 | | | 中风耗电 | 0.5 度/分钟 | | | 低风耗电 | 0.33 度/分钟 | | **温变** | 高风速率 | 0.6°C/分钟 | | | 中风速率 | 0.5°C/分钟 | | | 低风速率 | 0.4°C/分钟 | | | 关机速率 | 0.5°C/分钟 | | **调度** | 总房间数 | 10 间 | | | 服务对象 | 3 个 | | | 时间片 | 120 秒 | ### 修改配置 编辑 `core/config.py` 文件即可修改所有参数。 --- ## 项目结构 ### 📁 目录结构 ``` SoftwareProject/ ├── core/ # 核心功能模块 │ ├── __init__.py │ ├── central_ac.py # 中央空调主控制器 │ ├── service_object.py # 服务对象 │ ├── scheduler.py # 调度器 │ ├── billing.py # 计费管理 │ ├── statistics.py # 统计报表 │ ├── models.py # 数据模型 │ └── config.py # 配置文件 ├── ui/ # 用户界面模块 │ ├── __init__.py │ ├── client.py # 客户端界面(原 ui_client.py) │ ├── monitor.py # 监控端界面(原 ui_monitor.py) │ ├── reception.py # 前台端界面(原 ui_reception.py) │ └── styles.py # UI样式配置(原 ui_styles.py) ├── tests/ # 测试模块 │ ├── __init__.py │ ├── test_system.py # 系统测试 │ └── example_usage.py # 使用示例 ├── main.py # 主程序入口 ⭐ ├── run.py # 快速启动脚本 ├── README.md # 项目说明(本文档) └── requirements.txt # 依赖包列表(无外部依赖) ``` ### 模块说明 #### core/ - 核心功能模块 包含系统的所有核心业务逻辑: - **central_ac.py**: 中央空调系统的主控制器 - **scheduler.py**: 负责优先级调度和时间片调度 - **service_object.py**: 服务对象,负责温度计算和计费 - **billing.py**: 账单管理系统 - **statistics.py**: 统计报表生成器 - **models.py**: 数据模型定义 - **config.py**: 系统配置参数 #### ui/ - 用户界面模块 包含所有图形界面相关代码: - **client.py**: 客户端控制面板 - **monitor.py**: 管理员监控系统 - **reception.py**: 前台系统面板 - **styles.py**: UI 样式和主题配置 #### tests/ - 测试模块 包含测试和示例代码: - **test_system.py**: 自动化测试脚本 - **example_usage.py**: 使用示例 ### 导入说明 由于文件结构已重新组织,导入语句使用模块化导入: ```python # 从 core 模块导入 from core.central_ac import CentralAC from core import config # 从 ui 模块导入 from ui.client import ClientPanel from ui.monitor import MonitorPanel from ui.reception import ReceptionPanel from ui.styles import COLORS, FONTS ``` ### 依赖关系 ``` main.py ├─ core.central_ac │ ├─ core.scheduler │ │ ├─ core.models │ │ ├─ core.service_object │ │ └─ core.config │ ├─ core.service_object │ │ ├─ core.models │ │ └─ core.config │ └─ core.models ├─ ui.client (使用 ui.styles) ├─ ui.monitor (使用 ui.styles) └─ ui.reception (使用 ui.styles) ├─ core.billing └─ core.statistics ``` ### 代码统计 - **总代码行数**: ~2000 行 - **核心模块**: ~1000 行 - **界面模块**: ~700 行 - **文档**: ~500 行 - **测试**: ~200 行 --- ## 测试说明 ### 运行测试 ```bash python tests/test_system.py # 或 python3 tests/test_system.py ``` ### 测试结果 ``` ============================================================ 测试1: 基本功能测试 ✓ 通过 - 系统启动/停止 - 请求发送 - 状态查询 - 温度变化 - 关机操作 测试2: 调度功能测试 ✓ 通过 - 服务队列填满 - 优先级调度(高风抢占低风) - 等待队列形成 测试3: 计费功能测试 ✓ 通过 - 详单生成 - 费用计算 - 账单生成 测试4: 统计功能测试 ✓ 通过 - 报表生成 - 统计数据准确性 总计: 4/4 通过 ✅ ============================================================ ``` --- **开发时间**: 2025-10-10 **版本**: 1.1.0 **测试状态**: ✅ 4/4 通过 **业务完成度**: ✅ 100% **兼容性**: ✅ Windows/macOS/Linux