wangfq 8c5389670d fix: 修正设备接入流程
- Count_Off 改为读取 Data.Device_id (设备返回格式), 不再回复设备
- TimeStamp 改为同步函数 (无异步 IO)
- TCP 改用 JSON 流解析 (raw_decode), 支持紧凑 JSON 和 NDJSON
- TSReport/SerialNet 返回确认消息
2026-05-27 14:17:36 +08:00
2026-05-27 14:17:36 +08:00

EDC 服务 (Edge Data Center)

测试工装边缘数据中心 — Python 实现,基于 uvloop 的高性能异步网络服务。

系统架构

 TCP/UDP         ┌─────────────────────────────────────┐
◄─────────────►  │              EDC 服务                │
                 │                                     │
 UDP :5500  ───► │  设备发现 / 心跳 / 信息查询           │
 UDP :5505  ───► │  消息监听                            │
 TCP :5550  ───► │  时间同步 / 数据上报 / 串口透传       │
                 │                                     │
                 │  后台解析服务 ──► DG430 协议 → MySQL  │
                 └─────────────────────────────────────┘

快速开始

# 创建虚拟环境
python3 -m venv .venv && source .venv/bin/activate

# 安装依赖
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 日志级别

协议参考

目录结构

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 异步服务主程序
Description
EDC 边缘数据中心 — 车检器测试工装后端服务 (Python/uvloop)
Readme 301 KiB
Languages
Python 100%