# EdgeDataKit
**Repository Path**: elfbobo_admin_admin/edge-data-kit
## Basic Information
- **Project Name**: EdgeDataKit
- **Description**: 边缘节点常接收来自不同设备的异构数据(如传感器的数值数据、摄像头的图像数据、温湿度模块的时序数据),在网络不稳定时容易出现数据丢失。此中间件可统一处理异构数据的解析、清洗,并提供轻量级缓存(避免断网丢数据),再按需转发给上层应用(如 AI 模型、云端)。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2025-12-03
- **Last Updated**: 2025-12-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# EdgeDataKit
## 1.🌟项目简介
EdgeDataKit是一款面向边缘计算场景的**数据预处理与缓存中间件**,专注于解决边缘设备“多格式数据解析、断网数据缓存、全流程监控”三大核心问题,大幅降低边缘设备集成与维护成本。
## 2.📌核心功能
- **2.1 插件化设备扩展**:新增设备仅需添加独立子包(解析规则+测试数据),框架自动加载;
- **2.2 网络自适应转发**:实时检测网络状态,断网时缓存数据、联网后自动重试。优先使用 Redis 缓存,Redis 不可用时自动降级为本地内存缓存,确保数据可靠性,避免数据丢失;
- **2.3 过程监控**:记录设备解析、转发状态,生成统计报告并写入日志,故障排查更高效;
## 3.⚡快速开始
### 3.1环境要求
- Python 3.7+
- Redis 5.0+
### 3.2安装步骤
1. 克隆项目:
```bash
git clone https://gitee.com/sadnewfwrag/edge-data-kit
cd edge-data-kit
```
2. 安装依赖:
```bash
pip install -r requirements.txt
```
3. 启动 Redis:
Windows:解压 Redis 安装包后,在安装目录执行
```bash
redis-server.exe redis.windows.conf
```
4. 运行示例程序:
```bash
python examples/main.py
```
## 4.📋目录结构
```text
edge-data-kit/
├── config/ # 配置文件
│ ├── redis_config.py # redis配置文件
│ └── __init__.py # 包标记文件(空)
├── core/ # 核心功能模块
│ ├── base_parser.py # 解析器基类(所有设备插件需继承)
│ ├── data_parser.py # 解析器管理器(动态加载设备插件)
│ ├── cache_retry.py # 缓存与重试模块
│ ├── monitor.py # 数据处理监控与统计
│ └── device_loader.py # 自动加载设备测试数据
├── devices/ # 设备子包目录(新增设备在此添加)
│ ├── light_sensor/ # 光照传感器示例
│ │ ├── __init__.py # 包标记文件(空)
│ │ ├── parser.py # 光照传感器解析规则
│ │ └── test_data.txt # 光照传感器测试数据
│ └── temp_sensor/ # 温度传感器示例
│ ├── __init__.py
│ ├── parser.py
│ └── test_data.txt
├── tests/ # 功能模块测试文件
│ ├── __init__.py # 包标记文件(空)
│ ├── test_monitor.py # 数据处理监控与统计测试
│ ├── test_parsers.py # 数据解析模块测试
│ └── test_redis.py # 缓存与重试模块测试
├── docs/ # 说明文档
│ ├── 项目需求.md
│ └── 新增设备操作指南.md
├── examples/
│ └── main.py # 主程序入口(含网络测试、缓存验证)
├── picture/ # 图片素材
│ ├── 功能验证1.PNG
│ ├── 功能验证2.PNG
│ └── 日志记录.PNG
├── edge_data_logs.log # 自动生成的运行日志
├── README.md # 项目说明文档
├── .gitignore # 定义 Git 需忽略的文件
├── LICENSE # 项目的开源许可证
├── setup.py # Python 项目的打包配置文件
└── requirements.txt # 项目依赖
```
## 5.📚包含文档
[项目需求](https://gitee.com/sadnewfwrag/edge-data-kit/blob/master/docs/%E9%A1%B9%E7%9B%AE%E9%9C%80%E6%B1%82.md)
[新增设备操作指南](https://gitee.com/sadnewfwrag/edge-data-kit/blob/master/docs/%E6%96%B0%E5%A2%9E%E8%AE%BE%E5%A4%87%E5%AD%90%E5%8C%85%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97.md)
## 6.🧪功能验证
### 基础功能验证
运行 `examples/main.py`,控制台会输出设备解析、转发状态及统计报告:


### 网络断开场景验证
程序支持断网测试,验证缓存重试功能:
- 前2条数据断网,数据存入缓存;
- 第3条数据起恢复网络,自动重试缓存数据并输出成功结果。
## 7.📄日志说明
运行日志保存在 `edge_data_logs.log` 中,包含时间、操作类型、设备信息:

## 8.🤝贡献指南
- 欢迎参与项目开发,贡献流程如下:
- Fork 本仓库
- 创建 feature 分支(git checkout -b feature/xxx)
- 提交代码(git commit -m "feat: add xxx feature")
- 推送分支(git push origin feature/xxx)
- 提交 Pull Request
## 9.🔒贡献规范
- 代码风格:遵循 PEP8 规范
- 注释要求:核心函数需添加文档字符串(参数、返回值、功能)
- 测试要求:新增功能需补充测试用例
## 10.📄许可证
- 本项目采用 MIT 许可证,详见 LICENSE。