Files
pbf/tasks/NavSea V11 核心域定义.md
2026-04-08 19:32:25 +08:00

290 lines
4.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# NavSea V11 核心域定义Core Domain Definition
## 版本
v11-core-domain-1 (CN)
---
# 1. 文档目的
本文件用于定义 NavSea 在 V11 架构下的**核心域边界Domain Boundaries**。
NavSea 被定义为:
> 一个**航海视觉辅助系统**,在离线可生存的前提下,将海图数据、传感器解析结果与环境信息统一供给显示层。
本文件只定义:
* 系统结构
* 各域职责边界
本文件**不涉及具体实现**。
---
# 2. 系统核心原则
NavSea 不是:
* ❌ 航行控制系统
* ❌ 设备控制系统
* ❌ 单纯地图显示软件
NavSea 是:
> 一个**面向显示的多源数据供给系统Display-Oriented Data Supply System**
所有模块的存在目的只有一个:
> **为显示层提供可靠、可解释、可降级的数据**
---
# 3. 顶层结构
NavSea 由四个核心域组成:
1. 海图域Chart Domain
2. 传感器域Sensor Domain
3. 环境域Environment Domain
4. 显示域Display Domain
---
# 4. 海图域Chart Domain
## 4.1 职责
海图域负责:
* 向 MapLibre 提供瓦片数据PBF
* 管理海图数据来源(预置 / 本地缓存 / 在线)
* 保证离线可用
* 管理数据版本与更新
* 决定每个 tile 请求返回哪份数据
## 4.2 核心能力
* Base Pack预置海图
* Region Cache区域缓存
* Online Pack在线最新数据
* Tile Resolver瓦片解析与选择
* Manifest本地索引与版本管理
## 4.3 输出
海图域输出:
> MapLibre 可渲染的矢量瓦片PBF及相关资源
## 4.4 非职责
海图域不得:
* ❌ 解析 NMEA
* ❌ 做航行判断
* ❌ 控制 UI
* ❌ 处理非地图业务逻辑
---
# 5. 传感器域Sensor Domain
## 5.1 职责
传感器域负责:
* 接收船内 UDP 数据
* 解析 NMEA 电文
* 统一数据结构
* 维护本船状态
* 进行实时判断与推导
* 输出可显示的结果
## 5.2 输入
* 船内 UDP 网络
* NMEA 电文(如 GNRMC、YDMWV 等)
## 5.3 核心能力
* 数据解析与标准化
* 状态建模(本船 / 目标)
* 计算派生数据(航向、风等)
* 风险识别与判断
* 生成可展示结果
## 5.4 输出
传感器域输出:
> 已解释的、可直接用于显示的结果(不是原始数据)
示例:
* 本船状态
* 目标信息
* 风信息
* 风险提示
* 告警
## 5.5 非职责
传感器域不得:
* ❌ 管理海图
* ❌ 访问互联网 API
* ❌ 控制设备
* ❌ 直接渲染 UI
---
# 6. 环境域Environment Domain
## 6.1 职责
环境域负责:
* 获取天气与海洋数据API
* 本地缓存环境信息
* 离线时提供可用数据
* 管理数据时效性(新鲜度)
## 6.2 输入
* 互联网 API天气、海流、气压等
## 6.3 核心能力
* API 请求
* 数据缓存(带 TTL
* 离线 fallback
* 时间戳管理
* 数据新鲜度评估
## 6.4 输出
环境域输出:
> 带时间语义的环境信息
示例:
* 风预报
* 海流
* 天气状态
## 6.5 非职责
环境域不得:
* ❌ 管理地图瓦片
* ❌ 解析 NMEA
* ❌ 控制 UI
* ❌ 生成无时间标记的数据
---
# 7. 显示域Display Domain
## 7.1 职责
显示域负责:
* 将所有数据呈现给用户
* 融合多来源数据
* 管理 UI 组件与布局
* 表达系统状态(包括降级状态)
## 7.2 输入
* 海图域(瓦片)
* 传感器域(判断结果)
* 环境域(环境信息)
## 7.3 核心能力
* MapLibre 地图显示
* 覆盖层(目标 / 风险 / 航向等)
* 信息面板
* 告警展示
* 数据新鲜度提示
* 降级模式提示
## 7.4 输出
> 用户看到的完整视觉系统
## 7.5 非职责
显示域不得:
* ❌ 获取数据
* ❌ 解析数据
* ❌ 管理缓存
* ❌ 执行业务计算
---
# 8. 域间交互规则
## 8.1 允许的数据流
* 海图域 → 显示域
* 传感器域 → 显示域
* 环境域 → 显示域
## 8.2 禁止耦合
* ❌ 海图域 ↔ 传感器域
* ❌ 传感器域 ↔ 环境域
* ❌ 显示域依赖内部实现细节
所有交互必须通过**明确的输出接口**。
---
# 9. 离线策略定义
## 9.1 海图域
* 必须始终提供可显示内容
* Base Pack 提供最低保障
## 9.2 传感器域
* 必须完全离线可运行
* 不依赖互联网
## 9.3 环境域
* 离线时使用缓存数据
* 必须标注数据时间
## 9.4 显示域
* 必须清晰表达数据缺失或过期
* 禁止伪装正常状态
---
# 10. V11 架构约束
后续开发必须遵守:
* 不破坏域边界
* 通过 wrapper / adapter 扩展
* 不允许跨域逻辑泄漏
* 不允许隐式数据共享
---
# 11. 最终定义
NavSea 架构定义为:
> 一个由海图域、传感器域、环境域独立生成数据,并由显示域统一呈现的离线可生存视觉系统。
---