Skip to content

PmuSim v0.13.1

Latest

Choose a tag to compare

@github-actions github-actions released this 10 Jul 15:10

PmuSim v0.13.1

PmuSim — PMU 主站模拟器 / PMU Master Station Simulator

🇨🇳 中国大陆用户: 首次从旧版升级若失败, 请直接从镜像下载安装包 (新版本起更新检查会自动走 proxy):

https://ghfast.top/https://github.com/Karl-Dai/PmuSim/releases/latest

🌍 Users in mainland China: if the in-app updater fails on first upgrade from a previous version, download installers from the mirror above (later versions will auto-fallback through proxies).

下载 / Downloads

下方资产里按平台选择 / Pick the asset for your platform below.

主站 PmuSim — PMU Master Station

平台 / Platform 文件名 / Asset
macOS Apple Silicon PmuSim_0.13.1_aarch64.dmg
macOS Intel PmuSim_0.13.1_x64.dmg
Windows x64 (NSIS) PmuSim_0.13.1_x64-setup.exe
Windows x64 (MSI) PmuSim_0.13.1_x64_en-US.msi
Windows ARM64 (NSIS) PmuSim_0.13.1_arm64-setup.exe
Linux AppImage PmuSim_0.13.1_amd64.AppImage
Linux deb PmuSim_0.13.1_amd64.deb
Linux rpm PmuSim-0.13.1-1.x86_64.rpm

子站 PmuSub — PMU Substation (data sender)

平台 / Platform 文件名 / Asset
macOS Apple Silicon PmuSub_0.13.1_aarch64.dmg
macOS Intel PmuSub_0.13.1_x64.dmg
Windows x64 (NSIS) PmuSub_0.13.1_x64-setup.exe
Windows x64 (MSI) PmuSub_0.13.1_x64_en-US.msi
Linux AppImage PmuSub_0.13.1_amd64.AppImage
Linux deb PmuSub_0.13.1_amd64.deb
Linux rpm PmuSub-0.13.1-1.x86_64.rpm

Highlights / 亮点

  • 自动重连改为由真实连接事件确认:后端命令入队不再被误判为 TCP 连接成功;失败后按退避策略持续重试,恢复推流后才退出重连状态 / Auto-reconnect now waits for real connection events: queueing a backend command is no longer mistaken for TCP success; failures continue through backoff retries, and reconnect mode ends only after streaming is restored.
  • 断线界面不再保留旧数据:真实会话断开或心跳超时时立即清除对应的最后一帧,避免用户把历史读数误认为当前数据 / Disconnected views no longer retain stale data: the matching last frame is cleared immediately after a real session disconnect or heartbeat timeout, preventing historical readings from appearing live.
  • 时标异常提示完整支持中英文:后端改发结构化异常字段,前端按当前语言生成 toast 与事件日志;不恢复 v0.13.0 已移除的异常面板和本地时标偏移读数 / Timestamp anomaly alerts are fully bilingual: the backend emits structured anomaly fields and the frontend renders localized toasts and event-log entries; the anomaly panel and local clock-offset readouts removed in v0.13.0 remain removed.
  • 回归覆盖提升至 31 个前端用例:新增命令入队与真实连接事件的时序、placeholder 失败退避、断线清帧和英文异常提示测试;Rust 83 个测试继续全绿 / Regression coverage rises to 31 frontend cases: new tests cover command-queue versus real-connection timing, placeholder failure backoff, stale-frame cleanup, and English anomaly alerts; all 83 Rust tests remain green.

Changed 改进

  • useReconnectSessionCreated / StreamingStarted 作为重连成功信号,并在 placeholder 失败事件后继续指数退避;真实会话创建会取消已排队的重复连接,推流会话则等待数据管道恢复 / useReconnect now treats SessionCreated / StreamingStarted as reconnect success signals and continues exponential backoff after placeholder failure events; real session creation cancels queued duplicate connects, while previously streaming sessions wait for the data pipe to recover.
  • 时间戳异常由硬编码中文 Error 字符串调整为 TimestampAnomaly 结构化事件,类型、预期间隔和实际间隔由前端 i18n 格式化 / Timestamp anomalies move from hard-coded Chinese Error strings to structured TimestampAnomaly events, with kind, expected interval, and actual interval formatted through frontend i18n.

Fixed 修复

  • 修复 connect_substation 调用 resolve 后立即结束重连、导致首次异步连接失败时不再重试的问题 / Fixed reconnect stopping as soon as connect_substation resolved, which prevented further retries when the asynchronously queued connection later failed.
  • 修复 placeholder 断开与真实会话 re-key 紧邻发生时可能保留失败定时器、产生重复连接的问题 / Fixed a queued failure timer surviving the placeholder-disconnect / real-session re-key sequence and triggering a duplicate connection.
  • 修复真实断线或心跳超时后 latestData 仍显示最后一帧的问题 / Fixed latestData continuing to show the last frame after a real disconnect or heartbeat timeout.
  • 修复英文界面仍显示中文时间戳异常文案的问题 / Fixed timestamp anomaly messages remaining Chinese while the interface was set to English.

Tests 测试

  • 主站前端 Vitest:6 个测试文件、31 个用例通过;生产构建与中英文无头浏览器回归通过 / Master frontend Vitest: 31 cases across 6 files pass; the production build and bilingual headless-browser regression also pass.
  • Rust 工作区:83 个测试通过(11 个端到端场景 + 72 个库测试),0 失败 / Rust workspace: 83 tests pass (11 end-to-end scenarios plus 72 library tests), with 0 failures.

macOS 首次启动 / First launch on macOS

首次双击 .app 会被 Gatekeeper 拦截("Apple 无法验证…")。放行: 打开
系统设置 → 隐私与安全性, 滚到底点 仍要打开; 或终端执行
xattr -dr com.apple.quarantine "/Applications/PmuSim.app"

First launch is blocked by Gatekeeper ("Apple could not verify…"). To allow:
System Settings → Privacy & Security, scroll to bottom, click Open Anyway; or
run xattr -dr com.apple.quarantine "/Applications/PmuSim.app" in Terminal.


完整变更历史 / Full changelog: CHANGELOG.md

之前版本 / Previous releases: https://github.com/Karl-Dai/PmuSim/releases