Files
edc_server/README.md
2026-05-27 10:34:15 +08:00

76 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 串口协议](../docs/DG430串口协议.md)
- [PGLC 网络接口协议](../docs/PGLC网络接口协议.md)
- [EDC 服务设计](../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 异步服务主程序
```