金色时刻 · 15:48
让好资源,触手可及
AGENT SKILL

eew-architecture

eew-architecture 是面向文档处理的 Agent Skill,来自 ingen084/KyoshinEewViewerIngen。查看技能说明、操作步骤与使用约定,并通过原项目了解详细用法。

EEW(緊急地震速報)機能のアーキテクチャ解説。EEW関連のコード修正、予報電文・警報電文の処理フロー、キャッシュ管理、ソース優先順位の理解に使用。

SKILL.md

下载 MD ↓
nameeew-architecture
descriptionEEW(緊急地震速報)機能のアーキテクチャ解説。EEW関連のコード修正、予報電文・警報電文の処理フロー、キャッシュ管理、ソース優先順位の理解に使用。
user-invocable

EEW (緊急地震速報) Architecture

EEW機能はKyoshinMonitorシリーズ内で実装されており、複数のソースからの緊急地震速報を統合管理する。

Key Files

  • Controller: src/KyoshinEewViewer/Series/KyoshinMonitor/Services/Eew/EewController.cs
  • Model: src/KyoshinEewViewer/Series/KyoshinMonitor/Models/Eew.cs
  • UI: src/KyoshinEewViewer/Series/KyoshinMonitor/Controls/EewPanel.axaml
  • Telegram Subscriber: src/KyoshinEewViewer/Series/KyoshinMonitor/Services/Eew/EewTelegramSubscriber.cs
  • SNP File Watcher: src/KyoshinEewViewer/Series/KyoshinMonitor/Services/Eew/SignalNowFileWatcher.cs
  • Mock Data: src/KyoshinEewViewer/Series/KyoshinMonitor/Models/EewMock.cs

EEW Data Sources

EewSource enum: - KyoshinMonitor: 強震モニタ - SignalNowProfessional: SignalNow Professional - Dmdata: DM-D.S.S (dmdata.jp) - Axis: AXIS

Dual Cache Architecture

EewControllerは2つの独立したキャッシュを管理。詳細はreference.mdを参照。

1. EewCache(予報電文)

  • Update() メソッドで処理
  • 電文タイトル: 緊急地震速報(地震動予報)

2. WarningEewCache(警報電文)

  • UpdateWarning() メソッドで処理
  • 電文タイトル: 緊急地震速報(警報)

重要: 予報電文と警報電文は報数(SerialNo)が別々に管理される。

Processing Flow

[予報電文] → EewTelegramSubscriber → EewController.Update() → EewCache
[警報電文] → EewTelegramSubscriber → EewController.UpdateWarning() → WarningEewCache
    ↓
InvokeEewUpdated() → 両キャッシュをマージ → EewUpdated イベント発火

Source Priority (MixEew)

同じ報数で異なるソースから受信した場合: - Dmdataが最優先(他ソースを上書き) - SNPは精度情報のみ補完 - 報数が新しければ問答無用で更新 - 報数が古ければ無視

UI Display

EewPanel.axamlの構成: - ヘッダー: 報数・最終報表示 - 本文: 発生時刻、震央地名、深さ、M、最大震度 - 精度情報: 震央/深さ/規模の精度フラグ - 警報地域: 地域名一覧と警報受信元(報数含む) - フッター: 受信元

Additional Resources

  • 詳細なモデル・イベント仕様はreference.mdを参照

来源:ingen084/KyoshinEewViewerIngen · MIT 许可 · 许可原文 · MD 为来源页保存的历史版本