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