Files
FATrace/.windsurf/rules/projectrules.md
2025-10-29 11:42:58 +08:00

2.9 KiB
Raw Permalink Blame History

trigger
trigger
always_on

🌊 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 细节。
  • 保存和发布的视频信息必须有数据库索引。