# SoftwareCopyright-SensorAndActuatorControlSystem **Repository Path**: hzp0szl/SoftwareCopyright-SensorAndActuatorControlSystem ## Basic Information - **Project Name**: SoftwareCopyright-SensorAndActuatorControlSystem - **Description**: 软件著作权-传感器与执行器监控管理系统 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-03-17 - **Last Updated**: 2026-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 传感器与执行器控制系统 ![License](https://img.shields.io/badge/license-MIT-blue.svg) ![Python](https://img.shields.io/badge/python-3.8+-green.svg) ![PySide6](https://img.shields.io/badge/PySide6-6.0+-orange.svg) ## 项目概述 传感器与执行器控制系统是一个基于Python和PySide6的现代化软件应用,旨在提供统一的传感器数据监控和执行器控制界面。该系统通过模块化设计支持灵活扩展,允许用户快速搭建自定义的监控与控制面板,适用于智能家居、实验室自动化、教学演示等多种场景。 ### 核心功能 - 传感器数据实时监控和可视化 - 执行器状态显示和交互控制 - 多类型图表展示(折线图、饼图、柱状图) - 完善的事件处理和回调机制 - 可扩展的模块化架构 ## 系统截图 [此处应包含应用程序截图] ## 安装指南 ### 系统要求 - Python 3.8+ - 支持OpenGL的显卡驱动(用于Qt图形界面渲染) - 操作系统:Windows 10/11, macOS 10.14+, 或主流Linux发行版 ### 安装步骤 1. 克隆仓库到本地 ```bash git clone https://github.com/yourusername/SensorAndActuatorControlSystem.git cd SensorAndActuatorControlSystem ``` 2. 创建并激活虚拟环境(推荐) ```bash # Windows python -m venv .venv .venv\Scripts\activate # macOS/Linux python -m venv .venv source .venv/bin/activate ``` 3. 安装依赖包 ```bash pip install -r requirements.txt ``` 4. 安装本项目(开发模式) ```bash pip install -e . ``` ## 快速开始 运行演示程序体验系统功能: ```bash python demo.py ``` 这将启动一个完整的示例应用,展示传感器数据监控、执行器控制以及实时图表功能。 ## 使用指南 ### 基本用法 创建一个简单的应用程序需要以下几个步骤: ```python from PySide6.QtWidgets import QApplication from device_panel_ui import WinManager # 创建应用实例 app = QApplication([]) # 创建主窗口 window = WinManager() # 添加传感器 window.add_sensor( sensor_id="temperature_1", sensor_name="室温传感器", unit="℃", icon_path="images/image_tem.png", update_func=lambda: "25.5℃" # 这里替换为实际的数据获取函数 ) # 添加执行器 window.add_actuator( actuator_id="main_light", actuator_name="主灯", icon_on_path="images/lamp_on.png", icon_off_path="images/lamp_off.png", get_status_func=lambda: False, # 获取当前状态的函数 callback_func=lambda status: print(f"灯状态改变为: {status}") # 状态变化时的回调 ) # 添加图表 window.add_line_chart( chart_id="temp_chart", chart_title="温度变化趋势", x_label="时间", y_label="温度(℃)", update_func=lambda: (["9:00", "10:00", "11:00"], [24, 25, 26]) ) # 显示窗口并启动应用 window.show() app.exec() ``` ### 高级功能 #### 自定义回调函数 您可以为执行器状态变化设置统一的回调函数: ```python def handle_actuator_change(actuator_id, new_status): print(f"执行器 {actuator_id} 状态变为: {'开启' if new_status else '关闭'}") # 执行实际的硬件控制代码 window.set_actuator_callback(handle_actuator_change) ``` #### 异步数据更新 对于需要长时间处理的数据获取操作,可以使用提供的异步工具: ```python from device_panel_ui import run_async @run_async def fetch_sensor_data(): # 模拟耗时操作 import time time.sleep(1) return "26.7℃" window.add_sensor( sensor_id="async_temp", sensor_name="异步温度传感器", unit="℃", icon_path="images/image_tem.png", update_func=fetch_sensor_data ) ``` ## 架构设计 ### 核心组件 系统由以下核心组件构成: 1. **WinManager**: 主窗口管理器,整合所有UI组件 2. **SensorManager**: 管理传感器显示和数据更新 3. **ActuatorManager**: 管理执行器显示和控制 4. **ChartManager**: 管理各类图表的显示和数据更新 5. **LogManager**: 日志管理系统 6. **AsyncUtils**: 提供异步操作支持 ### 组件关系图 ``` ┌─────────────────────────────────────┐ │ WinManager │ │ (集成传感器、执行器和图表显示区域) │ ├───────────────┬──────────┬──────────┤ │ SensorManager │ActuatorM.│ ChartM. │ │ (传感器管理) │(执行器管理)│(图表管理)│ └───────────────┴──────────┴──────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────────────────────────┐ │ AsyncUtils │ │ (异步操作支持工具) │ └─────────────────────────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────────────────────────┐ │ LogManager │ │ (日志管理) │ └─────────────────────────────────────┘ ``` ### 代码组织 ``` SensorAndActuatorControlSystem/ ├── device_panel_ui/ # 核心UI组件包 │ ├── __init__.py # 包初始化和导出接口 │ ├── WinManager.py # 主窗口管理 │ ├── SensorManager.py # 传感器组件管理 │ ├── ActuatorManager.py # 执行器组件管理 │ ├── LogManager.py # 日志管理 │ ├── AsyncUtils.py # 异步操作工具 │ ├── ui_config.py # UI配置常量 │ └── charts/ # 图表组件子包 │ ├── __init__.py │ ├── ChartManager.py │ ├── LineChartWidget.py │ ├── PieChartWidget.py │ └── BarChartWidget.py ├── demo.py # 演示程序 ├── demo_config.py # 演示配置 ├── setup.py # 安装脚本 ├── requirements.txt # 依赖列表 ├── LICENSE # 许可证 └── README.md # 项目文档 ``` ## 扩展开发 ### 添加新的传感器类型 1. 在`SensorManager.py`中扩展相关类 2. 设计传感器数据获取函数 3. 准备传感器图标 4. 通过`add_sensor()`方法注册新传感器 ### 添加新的执行器类型 1. 在`ActuatorManager.py`中扩展相关类 2. 实现执行器状态获取和控制函数 3. 准备执行器的开/关状态图标 4. 通过`add_actuator()`方法注册新执行器 ### 添加新的图表类型 1. 在`charts/`子包中创建新的图表组件类 2. 在`ChartManager.py`中添加相应的管理方法 3. 在`__init__.py`中导出新组件 4. 在`WinManager.py`中添加便捷方法 ## 常见问题 **Q: 系统支持哪些类型的传感器数据?** A: 系统设计上不限制传感器类型,只要能将数据转换为字符串格式即可显示。常见的如温度、湿度、压力、光照等均可支持。 **Q: 如何连接实际的硬件设备?** A: 您需要编写相应的硬件接口函数,并将其作为`update_func`(传感器)或`get_status_func`和回调函数(执行器)传入。 **Q: 图表数据如何更新?** A: 系统会定期调用您提供的`update_func`函数获取最新数据并刷新图表显示。 **Q: 是否支持数据记录和历史查询?** A: 当前版本专注于实时显示,但您可以在回调函数中实现数据持久化逻辑。 ## 许可证 本项目采用MIT许可证。详见[LICENSE](LICENSE)文件。 ## 鸣谢 - PySide6团队提供的优秀GUI框架 - Matplotlib团队提供的强大图表绘制库 - 所有为本项目做出贡献的开发者 ## 联系与贡献 如有问题或建议,请通过以下方式联系: - 提交Issue - 发送Pull Request - 联系Email: [your-email@example.com](mailto:your-email@example.com) 我们欢迎各种形式的贡献,包括功能改进、文档完善、错误修复等!