121 lines
5.0 KiB
Markdown
121 lines
5.0 KiB
Markdown
# Lab 实验数据采集系统
|
||
|
||
## 项目概述
|
||
这是一个用于实验数据采集和监控的分布式系统,包含采集端、服务器端和Web监控界面。
|
||
|
||
## 更新日志
|
||
|
||
### 2025-01-21更新
|
||
0. 更新代码结构
|
||
### 2025-01-17更新
|
||
0. 本次主要更新paper页面;
|
||
1. 接入了memarid.js, 后端分析报告添加了对流程图的输出,前端渲染流程图;
|
||
2. 更新了文献报告显示的样式。
|
||
### 2025-01-16更新
|
||
1. 调整了项目页面和实验页面,项目页面增加了"reports"页面,可以查看项目分析报告,实验页面移除了左侧导航栏的下载数据和报告按钮;原有功能添加到实验详情页面
|
||
2. 将生成项目报告和实验报告的逻辑改为异步,不会阻碍其他路由
|
||
3. 给项目报告和实验报告添加了 AI Chat 功能
|
||
4. 将literature页面更名为paper
|
||
### 2025-01-15更新
|
||
0. 本次主要更新literature页面
|
||
1. 将左侧导航栏"Summary"改为查看总结报告页面,同时在Summary页面增加了"download"按钮和"regenerate"按钮,可以下载对所有文献的总结报告,也可以重新生成总结报告;
|
||
2. 左侧导航栏原"upload"按钮改为"literature list",显示文献列表;
|
||
3. 移除左侧导航栏"upload"按钮,改为在文献列表页面中增加"upload"按钮,上传文献;
|
||
4. 更新了页面设计;
|
||
5. 将生成总结报告的逻辑改为异步,不会阻碍其他路由;
|
||
6. 优化了文献分析页面的AI chat功能,对markdown格式的回答进行渲染,更容易阅读;
|
||
7. 在分析文献的逻辑中添加了长文档分析,长文档会分段分析再合并,最后生成报告。
|
||
### 2025-01-14更新
|
||
1. 更新了设备管理逻辑,保证一个设备可以在多个用户之间切换,但一个设备只能被一名用户使用,以及删除设备逻辑,删除设备改为更新设备状态。
|
||
2. 优化了整个web的设计,包括设备注册页面,以及更新了左侧导航栏内容和各按钮样式
|
||
### 2025-01-13更新
|
||
1. 将各页面独立出来,便于维护,同时优化了Web设计,导航栏增加了literature入口。
|
||
2. 在文献分析部分,修改了前后端代码,支持文献批量上传,将文献上传和文献分析完全解耦,上传文件后会立即得到响应,分析过程在后台进行,前端通过 Redis 中的状态来实时更新界面显示,并且添加了项目列表,可直接从导航栏进入查看各项目的文献分析,也可以从项目进入文献分析页面。
|
||
3. 文献分析部分,增加了AI chat功能,接入API,可以对已经生成分析报告的文献进行提问,并保存历史记录,可查看历史回答。
|
||
### 2025-01-12更新
|
||
Initial commit
|
||
|
||
## 系统架构
|
||
|
||
### 1. 数据采集 (boot/)
|
||
- 基于MicroPython实现的高速数据采集器
|
||
- 支持多通道数据采集
|
||
- 使用UDP协议传输数据
|
||
- 支持设备序列号注册机制
|
||
|
||
### 2. 数据处理 (data/)
|
||
- 基于Python asyncio的异步UDP服务器
|
||
- 支持数据解析和转发
|
||
- 与MongoDB集成存储实验数据
|
||
- 实现WebSocket实时数据推送
|
||
- 设备在线状态管理
|
||
|
||
### 3. 设备管理 (device-manager/)
|
||
- 设备注册和管理API
|
||
- 序列号生成和验证
|
||
- 设备状态监控
|
||
- Redis集成用于在线状态追踪
|
||
- device-register.html: 设备注册界面
|
||
|
||
### 4. 主程序 (app/)
|
||
- 主程序 app/main.py
|
||
- web页面 app/frontend/
|
||
- 项目管理
|
||
- 实验管理
|
||
- 报告生成
|
||
|
||
## 主要功能
|
||
1. 高速数据采集
|
||
2. 实时数据传输和显示
|
||
3. 设备管理和监控
|
||
4. 实验数据存储
|
||
5. 在线状态追踪
|
||
|
||
## 使用说明
|
||
|
||
### 文件结构
|
||
lab/
|
||
├── app/ #主程序文件夹
|
||
| ├── app/ # app主程序
|
||
| ├── docs/ # app文档
|
||
| ├── frontend/ # app前端页面
|
||
| ├── main.py # 主程序
|
||
| └── README.md # 项目说明
|
||
├── boot/ # 采集端
|
||
├── data/ # 数据处理服务器
|
||
├── device-manager/ # 设备管理
|
||
└── README.md # 项目说明
|
||
|
||
### 项目部署
|
||
#### 主程序 app/main.py
|
||
1. 服务器:222.186.10.253
|
||
2. PORT = 6000
|
||
3. 数据库:
|
||
mongodb: 222.186.10.253:27017/lab
|
||
Redis:222.186.10.253:6379; db199、201-208
|
||
4. 访问地址:[https://dev.obscura.work/lab]
|
||
|
||
#### 前端页面 app/frontend/
|
||
1. 访问地址:[https://beta.obscura.work/lab]
|
||
|
||
#### 设备管理 device-manager/device-register.py
|
||
1. 服务器:222.186.10.253
|
||
2. PORT = 6001
|
||
3. 数据库:
|
||
mongodb: 222.186.10.253:27017/lab
|
||
Redis:222.186.10.253:6379; db200
|
||
4. 访问地址:[https://dev.obscura.work/devices]
|
||
|
||
#### 采集端配置 boot/
|
||
SSID = "Obscura"
|
||
UDP_HOST = "222.186.10.253"
|
||
UDP_PORT = 6002
|
||
|
||
#### 数据处理 data/
|
||
1. 服务器:222.186.10.253
|
||
2. PORT = 6002
|
||
3. 数据库:
|
||
mongodb: 222.186.10.253:27017/lab
|
||
Redis:222.186.10.253:6379; db200; data type:stream
|
||
|