CAMERA V1

This commit is contained in:
2025-09-11 20:29:17 +08:00
parent c7165f0dc5
commit ccbe0f626f
135 changed files with 26211 additions and 182 deletions

View File

@@ -0,0 +1,94 @@
---
trigger: manual
---
# 🌊 Windsurf Rules for FATrace Projects
## 📦 全局规则
1. **语言/框架**
* 使用 **C# + WinForms + ReaLTaiizor + FreeSql**
* 项目代码应结构清晰,命名规范,遵循 C# 标准。
* 尽量保持简单,不要过度封装,模块化即可。
2. **外部依赖**
* 使用 **海康威视 SDK**(提供 CHM/PDF 手册作为主要参考)。
* SDK 接口调用需要稳定性,尽量用封装类统一管理,避免散乱调用。
3. **开发风格**
* UI使用 ReaLTaiizor 美化控件,风格现代、简洁。
* 数据:使用 FreeSql 管理视频文件信息、索引和元数据。
* 模块:每个大功能单独建 `Module`,保持独立,方便后期扩展。
---
## 🎥 FATrace.OEMApp 模块规则
1. **功能目标**
* 支持实时显示海康摄像头视频流。
* 在触发事件时,回溯 **30秒前到触发结束** 的录像,并保存为视频文件。
* 保存的视频需带有元数据(时间戳、触发来源、文件路径等)。
2. **实现规则**
* 视频捕获和录像功能封装在 `MediaCaptureModule`
* SDK 相关逻辑写在单独的 `HikvisionSdkWrapper` 类里,不直接散落在 UI 层。
* 视频文件保存路径支持配置,命名规则:`YYYYMMDD_HHMMSS_trigger.mp4`
* 保持触发录像的逻辑简单,不要写复杂的多线程调度,能满足实时即可。
3. **数据规则**
* 使用 FreeSql 存储录像片段的索引信息:
* `Id`
* `StartTime`
* `EndTime`
* `FilePath`
* `TriggerSource`
---
## 🌐 FATrace.MediaServer 模块规则
1. **功能目标**
* 将 FATrace.OEMApp 保存的视频片段以 API 或文件共享形式发布。
* 提供接口供其他用户查询和下载录像片段。
2. **实现规则**
* 使用 ASP.NET Core Minimal API 或简单的 Web 服务,不需要复杂框架。
* 提供 REST API
* `GET /videos` → 获取视频列表(支持按时间过滤)。
* `GET /videos/{id}` → 下载对应视频。
* 不要实现复杂权限系统,先保证能正常发布。
3. **数据规则**
* 直接复用 FreeSql 数据库,作为视频片段索引的查询来源。
---
## 📚 SDK 文档使用规则
1. Windsurf 在调用 SDK 时,应结合我提供的 **海康 SDK CHM/PDF 文档**作为主要参考。
2. 如果遇到接口不确定,应优先查阅 SDK 文档,再写封装代码。
3. 封装类需要加上注释,标明对应的 SDK 函数。
4. SDK文档地址在FATrace.OEMApp.SDKHelper中
5. 可以联网查询使用方法
---
## ✅ 开发约束总结
* 不要过度架构,保持模块化和简单性。
* 所有和视频相关的逻辑集中在 `Media` 模块,不要分散到 UI。
* UI 只负责展示和触发,不处理 SDK 细节。
* 保存和发布的视频信息必须有数据库索引。
---

6
.windsurf/rules/r.md Normal file
View File

@@ -0,0 +1,6 @@
---
trigger: manual
glob:
description:
---