76 lines
2.6 KiB
Markdown
76 lines
2.6 KiB
Markdown
# 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 异步服务主程序
|
||
```
|