# gb-device-config **Repository Path**: liuhuayun/gb-device-config ## Basic Information - **Project Name**: gb-device-config - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-09 - **Last Updated**: 2026-03-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 应急广播系统 - 协议配置与设备管理 基于 PyQt5 的应急广播设备管理桌面应用,支持系统初始化配置、设备管理(手动/Excel 导入)、协议配置下发及广播管理,遵循国标协议封装与 TCP 通信。 --- ## 功能特性 - **登录验证**:启动时身份验证,默认账号 `admin` / 密码 `comtom@2025`(可修改)。 - **系统初始化配置(Tab1)** - 回传地址、回传周期、本机 TCP 监听端口 - 县适配器地址配置与连通性检测 - 初始化区域选择,本机平台资源编码生成 - 接收数据日志展示 - **设备管理中心(Tab2)** - 设备列表分页、筛选(区域、设备类型等) - 手动新增/编辑/删除设备 - Excel 批量导入(.xlsx/.xls)、导入模板下载 - 按设备类型下发多种协议配置(0x01~0x11、0x40、0xFF 等) - **广播管理(Tab3)** - 广播记录分页与条件筛选 - 新增/删除广播,事件类型、级别、资源码等配置 - 紧急/日常广播开关机指令(0x04)下发 --- ## 技术栈 | 类别 | 技术 | |----------|------| | 界面 | PyQt5 | | 数据库 | SQLite(`app.db`) | | Excel | openpyxl | | 打包 | PyInstaller | --- ## 项目结构 ``` gb-device-config/ ├── main.py # 程序入口、登录框、主窗口 ├── main.spec # PyInstaller 打包配置(含 icon 内置) ├── tab_init.py # Tab1:系统初始化配置 ├── tab_device.py # Tab2:设备管理中心 ├── tab_broadcast.py # Tab3:广播管理 ├── utils/ │ ├── db.py # 数据库访问(sys_config/sys_regions/sys_device/sys_broadcast 等) │ ├── excel_parser.py # Excel 解析与导入模板 │ ├── protocol_builder.py # 国标协议封装与 CRC32 │ └── tcp_handler.py # TCP 监听与发送 ├── assets/ │ └── style.qss # 界面样式 ├── requirements.txt ├── icon.ico # 可选:窗口/打包 exe 图标 └── README.md ``` 运行后会在项目根目录生成 **`app.db`**(若不存在则自动创建并初始化表结构)。 --- ## 环境要求 - Python 3.9+ - Windows(推荐;其他平台未专门测试) --- ## 安装与运行 ### 1. 克隆或解压项目 ```bash cd gb-device-config ``` ### 2. 创建虚拟环境(推荐) ```bash python -m venv .venv .venv\Scripts\activate ``` ### 3. 安装依赖 ```bash pip install -r requirements.txt ``` ### 4. 运行程序 ```bash python main.py ``` 首次运行会初始化 SQLite 数据库(`app.db`),并弹出登录界面;登录成功后进入主界面,底部状态栏右下角固定显示「开发者:liuhy」。 --- ## 登录说明 - **默认账号**:`admin` - **默认密码**:`comtom@2025` - 可在 `main.py` 顶部修改常量 `DEFAULT_USERNAME`、`DEFAULT_PASSWORD`。 - 取消登录将直接退出程序。 --- ## 打包为 exe 使用项目自带的 `main.spec` 可将程序打成单文件 exe,并可选内置图标: 1. 安装依赖(含 PyInstaller): ```bash pip install -r requirements.txt ``` 2. **可选**:将 `icon.ico` 放在项目根目录(与 `main.py` 同级)。 - 若存在:会内置到 exe,并作为 exe 文件图标与窗口图标。 - 若不存在:仍可正常打包,仅无自定义图标。 3. 执行打包: ```bash pyinstaller exe.spec ``` 或: ```bash python -m PyInstaller exe.spec ``` 4. 生成的 exe 位于 `dist/gb-device-config.exe`(无控制台窗口)。 首次运行 exe 会在 exe 所在目录生成 `app.db`,请保证该目录可写。 --- ## 数据库与配置 - **数据库文件**:`app.db`(SQLite,与 `main.py` 同目录)。 - **主要表**: - `sys_config`:系统配置(回传地址、回传周期、监听端口等) - `sys_regions`:区域编码与层级 - `sys_device`:设备信息(物理码、资源编码、区域、类型等) - `sys_ebr_id_creator`:EBR 编码生成记录 - `sys_broadcast`:广播记录 配置与设备、广播数据均存储在本地 `app.db`,无需额外服务。 --- ## 开发者与版权 - 主界面底部状态栏右下角固定显示:**开发者:liuhy**。 可在 `main.py` 顶部修改常量 `DEVELOPER_NAME`。 - 登录页底部:版权所有,有疑问请联系管理员:568656253@qq.com。 --- ## 许可证 版权所有,仅供授权使用。