# EDC 服务 (Edge Data Center) 测试工装边缘数据中心 — Python 实现,基于 uvloop 的高性能异步网络服务。 ## 系统架构 ``` TCP/UDP ┌─────────────────────────────────────┐ ◄─────────────► │ EDC 服务 │ │ │ UDP :5500 ───► │ 设备发现 / 心跳 / 信息查询 │ UDP :5505 ───► │ 消息监听 │ TCP :5550 ───► │ 时间同步 / 数据上报 / 串口透传 │ │ │ │ 后台解析服务 ──► DG430 协议 → MySQL │ └─────────────────────────────────────┘ ``` ## 快速开始 ```bash # 安装依赖 pip install -r requirements.txt # 设置环境变量 export EDC_MYSQL_HOST=127.0.0.1 export EDC_MYSQL_USER=root export EDC_MYSQL_PASSWORD=your_password export EDC_MYSQL_DB=edc # 确保数据库已创建 mysql -u root -e "CREATE DATABASE IF NOT EXISTS edc CHARACTER SET utf8mb4" # 启动 python run.py ``` ## 配置 所有配置通过环境变量,见 `src/config.py`: | 变量 | 默认值 | 说明 | |------|--------|------| | `EDC_UDP_PORT` | 5500 | UDP 设备发现端口 | | `EDC_UDP_MSG_PORT` | 5505 | UDP 消息监听端口 | | `EDC_TCP_PORT` | 5550 | TCP 数据上报端口 | | `EDC_BIND_HOST` | 0.0.0.0 | 绑定地址 | | `EDC_MYSQL_HOST` | 127.0.0.1 | MySQL 地址 | | `EDC_MYSQL_PORT` | 3306 | MySQL 端口 | | `EDC_MYSQL_USER` | root | 数据库用户 | | `EDC_MYSQL_PASSWORD` | — | 数据库密码 | | `EDC_MYSQL_DB` | edc | 数据库名 | | `EDC_PARSE_POLL_INTERVAL` | 0.5 | 解析轮询间隔(秒) | | `EDC_LOG_LEVEL` | INFO | 日志级别 | ## 协议参考 - [DG430 串口协议](../vd_test_fixture/docs/DG430串口协议.md) - [PGLC 网络接口协议](../vd_test_fixture/docs/PGLC网络接口协议.md) - [EDC 服务设计](../vd_test_fixture/docs/EDC服务.md) ## 目录结构 ``` edc_server/ ├── run.py # 入口 ├── requirements.txt # uvloop, aiomysql └── src/ ├── config.py # 环境变量配置 ├── models.py # MySQL 连接池 + 表结构 + CRUD ├── protocol.py # PGLC JSON 协议解析 ├── dg430.py # DG430 二进制协议解析 ├── handlers.py # 业务处理 + 后台解析服务 └── server.py # UDP/TCP 异步服务主程序 ```